org.biojava3.alignment.routines
Class AnchoredPairwiseSequenceAligner<S extends Sequence<C>,C extends Compound>

java.lang.Object
  extended by org.biojava3.alignment.template.AbstractScorer
      extended by org.biojava3.alignment.template.AbstractMatrixAligner<S,C>
          extended by org.biojava3.alignment.template.AbstractPairwiseSequenceAligner<S,C>
              extended by org.biojava3.alignment.routines.AnchoredPairwiseSequenceAligner<S,C>
Type Parameters:
S - each Sequence of the alignment pair is of type S
C - each element of an AlignedSequence is a Compound of type C
All Implemented Interfaces:
Aligner<S,C>, MatrixAligner<S,C>, PairwiseSequenceAligner<S,C>, PairwiseSequenceScorer<S,C>, Scorer
Direct Known Subclasses:
GuanUberbacher

public class AnchoredPairwiseSequenceAligner<S extends Sequence<C>,C extends Compound>
extends AbstractPairwiseSequenceAligner<S,C>

This algorithm uses a divide-and-conquer approach to find optimal pairwise global sequence alignments (from the first until the last Compound of each Sequence) with the restriction that any alignment produced will connect the query sequence to the target sequence at the anchors. This class performs such global sequence comparisons efficiently by dynamic programming with a space requirement reduced from quadratic (a multiple of query sequence length times target sequence length) to only linear (a multiple of query sequence length). The counterpoint to this reduction in space complexity is a modest (a multiple < 2) increase in time.

Author:
Mark Chapman

Field Summary
 
Fields inherited from class org.biojava3.alignment.template.AbstractPairwiseSequenceAligner
pair
 
Fields inherited from class org.biojava3.alignment.template.AbstractMatrixAligner
anchors, cutsPerSection, gapPenalty, max, min, profile, score, scores, time, xyMax, xyStart
 
Constructor Summary
AnchoredPairwiseSequenceAligner()
          Before running a pairwise global sequence alignment, data must be sent in via calls to AbstractPairwiseSequenceAligner.setQuery(Sequence), AbstractPairwiseSequenceAligner.setTarget(Sequence), AbstractMatrixAligner.setGapPenalty(GapPenalty), and AbstractMatrixAligner.setSubstitutionMatrix(SubstitutionMatrix).
AnchoredPairwiseSequenceAligner(S query, S target, GapPenalty gapPenalty, SubstitutionMatrix<C> subMatrix)
          Prepares for a pairwise global sequence alignment.
AnchoredPairwiseSequenceAligner(S query, S target, GapPenalty gapPenalty, SubstitutionMatrix<C> subMatrix, int cutsPerSection)
          Prepares for a pairwise global sequence alignment.
AnchoredPairwiseSequenceAligner(S query, S target, GapPenalty gapPenalty, SubstitutionMatrix<C> subMatrix, int cutsPerSection, int[] anchors)
          Prepares for a pairwise global sequence alignment.
 
Method Summary
 int[] getAnchors()
          Returns the list of anchors.
 int getCutsPerSection()
          Returns the number of cuts added to each section during each pass.
protected  void reset()
           
 void setAnchors(int[] anchors)
          Sets the starting list of anchors before running the alignment routine.
 void setCutsPerSection(int cutsPerSection)
          Sets the number of cuts added to each section during each pass.
static void setDefaultCutsPerSection(int defaultCutsPerSection)
          Sets the default number of cuts added to each section during each pass.
protected  void setProfile(List<AlignedSequence.Step> sx, List<AlignedSequence.Step> sy)
           
 
Methods inherited from class org.biojava3.alignment.template.AbstractPairwiseSequenceAligner
getCompoundSet, getCompoundsOfQuery, getCompoundsOfTarget, getPair, getQuery, getScoreMatrixDimensions, getSubstitutionScore, getTarget, isReady, setQuery, setTarget
 
Methods inherited from class org.biojava3.alignment.template.AbstractMatrixAligner
align, getComputationTime, getGapPenalty, getMaxScore, getMinScore, getProfile, getScore, getScoreMatrix, getScoreMatrixAsString, getSubstitutionMatrix, getSubstitutionScoreVector, getSubstitutionScoreVector, isLocal, isStoringScoreMatrix, resetAnchors, setGapPenalty, setStoringScoreMatrix, setSubstitutionMatrix
 
Methods inherited from class org.biojava3.alignment.template.AbstractScorer
getDistance, getDistance, getSimilarity, getSimilarity
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.biojava3.alignment.template.Aligner
getComputationTime, getProfile
 
Methods inherited from interface org.biojava3.alignment.template.Scorer
getDistance, getDistance, getMaxScore, getMinScore, getScore, getSimilarity, getSimilarity
 

Constructor Detail

AnchoredPairwiseSequenceAligner

public AnchoredPairwiseSequenceAligner()
Before running a pairwise global sequence alignment, data must be sent in via calls to AbstractPairwiseSequenceAligner.setQuery(Sequence), AbstractPairwiseSequenceAligner.setTarget(Sequence), AbstractMatrixAligner.setGapPenalty(GapPenalty), and AbstractMatrixAligner.setSubstitutionMatrix(SubstitutionMatrix).


AnchoredPairwiseSequenceAligner

public AnchoredPairwiseSequenceAligner(S query,
                                       S target,
                                       GapPenalty gapPenalty,
                                       SubstitutionMatrix<C> subMatrix)
Prepares for a pairwise global sequence alignment.

Parameters:
query - the first Sequence of the pair to align
target - the second Sequence of the pair to align
gapPenalty - the gap penalties used during alignment
subMatrix - the set of substitution scores used during alignment

AnchoredPairwiseSequenceAligner

public AnchoredPairwiseSequenceAligner(S query,
                                       S target,
                                       GapPenalty gapPenalty,
                                       SubstitutionMatrix<C> subMatrix,
                                       int cutsPerSection)
Prepares for a pairwise global sequence alignment.

Parameters:
query - the first Sequence of the pair to align
target - the second Sequence of the pair to align
gapPenalty - the gap penalties used during alignment
subMatrix - the set of substitution scores used during alignment
cutsPerSection - the number of cuts added to each section during each pass

AnchoredPairwiseSequenceAligner

public AnchoredPairwiseSequenceAligner(S query,
                                       S target,
                                       GapPenalty gapPenalty,
                                       SubstitutionMatrix<C> subMatrix,
                                       int cutsPerSection,
                                       int[] anchors)
Prepares for a pairwise global sequence alignment.

Parameters:
query - the first Sequence of the pair to align
target - the second Sequence of the pair to align
gapPenalty - the gap penalties used during alignment
subMatrix - the set of substitution scores used during alignment
cutsPerSection - the number of cuts added to each section during each pass
anchors - the initial list of anchors
Method Detail

setDefaultCutsPerSection

public static void setDefaultCutsPerSection(int defaultCutsPerSection)
Sets the default number of cuts added to each section during each pass.

Parameters:
defaultCutsPerSection - the default number of cuts added to each section during each pass

getAnchors

public int[] getAnchors()
Returns the list of anchors. The populated elements correspond to query compounds with a connection established to a target compound.

Returns:
the list of anchors

getCutsPerSection

public int getCutsPerSection()
Returns the number of cuts added to each section during each pass.

Returns:
the number of cuts added to each section during each pass

setAnchors

public void setAnchors(int[] anchors)
Sets the starting list of anchors before running the alignment routine.

Parameters:
anchors - list of points that are tied to the given indices in the target

setCutsPerSection

public void setCutsPerSection(int cutsPerSection)
Sets the number of cuts added to each section during each pass.

Parameters:
cutsPerSection - the number of cuts added to each section during each pass

reset

protected void reset()
Overrides:
reset in class AbstractPairwiseSequenceAligner<S extends Sequence<C>,C extends Compound>

setProfile

protected void setProfile(List<AlignedSequence.Step> sx,
                          List<AlignedSequence.Step> sy)
Specified by:
setProfile in class AbstractMatrixAligner<S extends Sequence<C>,C extends Compound>