diff --git a/modules/seq/alg/doc/seqalg.rst b/modules/seq/alg/doc/seqalg.rst index b846283f30ff5b7a2ec7d319cf91b7c65195d4cb..bd951af7ab2bf996caf71c7aa509b7520faef5b6 100644 --- a/modules/seq/alg/doc/seqalg.rst +++ b/modules/seq/alg/doc/seqalg.rst @@ -133,3 +133,32 @@ :returns: list of column entropies +.. function:: SemiGlobalAlign(seq1, seq2, subst_weight, gap_open=-5, gap_ext=-2) + + Performs a semi-global alignment of *seq1* and *seq2* and returns the best- + scoring alignment. The algorithm is Needleman/Wunsch same as GlobalAlign, but + without any gap penalty for starting or ending gaps. This is prefereble + whenever one of the sequences is significantly shorted than the other. + This make it also suitable for fragment assembly. + + **Example:** + + .. code-block:: python + + seq_a=seq.CreateSequence('A', 'abcdefghijklmnok') + seq_b=seq.CreateSequence('B', 'cdehijk') + alns=seq.alg.GlobalAlign(seq_a, seq_b, seq.alg.BLOSUM62) + print alns[0].ToString(80) + # >>> A abcdefghijklmnok + # >>> B --cde--hijk----- + + :param seq1: A valid sequence + :type seq1: :class:`~ost.seq.ConstSequenceHandle` + :param seq2: A valid sequence + :type seq2: :class:`~ost.seq.ConstSequenceHandle` + + :param subst_weigth: The substitution weights matrix + :type subst_weight: :class:`SubstWeightMatrix` + :param gap_open: The gap opening penalty. Must be a negative number + :param gap_ext: The gap extension penalty. Must be a negative number + :returns: best-scoring alignment of *seq1* and *seq2*. \ No newline at end of file