Class SmithWaterman


  • public class SmithWaterman
    extends AlignmentAlgorithm
    Smith and Waterman developed an efficient dynamic programming algorithm to perform local sequence alignments, which returns the most conserved region of two sequences (longest common substring with modifications). This algorithm is performed by the method pairwiseAlignment of this class. It uses affine gap penalties if and only if the expenses of a delete or insert operation are unequal to the expenses of gap extension. This uses significantly more memory (four times as much) and increases the runtime if swapping is performed.
    Since:
    1.5
    Author:
    Andreas Dräger, Gero Greiner, Mark Schreiber
    • Constructor Detail

      • SmithWaterman

        public SmithWaterman​(short match,
                             short replace,
                             short insert,
                             short delete,
                             short gapExtend,
                             SubstitutionMatrix matrix)
        Constructs the new SmithWaterman alignment object. Alignments are only performed, if the alphabet of the given SubstitutionMatrix equals the alphabet of both the query and the target Sequence. The alignment parameters here are expenses and not scores as they are in the NeedlemanWunsch object. scores are just given by multiplying the expenses with (-1). For example you could use parameters like "-2, 5, 3, 3, 0". If the expenses for gap extension are equal to the cost of starting a gap (delete or insert), no affine gap penalties are used, which saves memory.
        Parameters:
        match - expenses for a match
        replace - expenses for a replace operation
        insert - expenses for a gap opening in the query sequence
        delete - expenses for a gap opening in the target sequence
        gapExtend - expenses for the extension of a gap which was started earlier.
        matrix - the SubstitutionMatrix object to use.
    • Method Detail

      • getDelete

        public short getDelete()
        Returns:
        the delete
      • getGapExt

        public short getGapExt()
        Returns:
        the gapExt
      • getInsert

        public short getInsert()
        Returns:
        the insert
      • getMatch

        public short getMatch()
        Returns:
        the match
      • getReplace

        public short getReplace()
        Returns:
        the replace
      • setDelete

        public void setDelete​(short del)
        Overrides the method inherited from the NeedlemanWunsch and sets the penalty for a delete operation to the specified value. Reason: internally scores are used instead of penalties so that the value is muliplyed with -1.
        Parameters:
        del - costs for a single deletion operation
      • setGapExt

        public void setGapExt​(short ge)
        Overrides the method inherited from the NeedlemanWunsch and sets the penalty for an extension of any gap (insert or delete) to the specified value. Reason: internally scores are used instead of penalties so that the value is muliplyed with -1.
        Parameters:
        ge - costs for any gap extension
      • setInsert

        public void setInsert​(short ins)
        Overrides the method inherited from the NeedlemanWunsch and sets the penalty for an insert operation to the specified value. Reason: internally scores are used instead of penalties so that the value is muliplyed with -1.
        Parameters:
        ins - costs for a single insert operation
      • setMatch

        public void setMatch​(short ma)
        Overrides the method inherited from the NeedlemanWunsch and sets the penalty for a match operation to the specified value. Reason: internally scores are used instead of penalties so that the value is muliplyed with -1.
        Parameters:
        ma - costs for a single match operation
      • setReplace

        public void setReplace​(short rep)
        Overrides the method inherited from the NeedlemanWunsch and sets the penalty for a replace operation to the specified value. Reason: internally scores are used instead of penalties so that the value is muliplyed with -1.
        Parameters:
        rep - costs for a single replace operation