Class AbstractMatrixAligner<S extends Sequence<C>,C extends Compound>

java.lang.Object
org.biojava.nbio.alignment.template.AbstractScorer
org.biojava.nbio.alignment.template.AbstractMatrixAligner<S,C>
Type Parameters:
S - each element of the alignment Profile 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>, Scorer
Direct Known Subclasses:
AbstractPairwiseSequenceAligner, AbstractProfileProfileAligner

public abstract class AbstractMatrixAligner<S extends Sequence<C>,C extends Compound> extends AbstractScorer implements MatrixAligner<S,C>
Implements common code for an Aligner which builds a score matrix during computation.
Author:
Mark Chapman, Daniel Cameron
  • Field Details

    • gapPenalty

      protected GapPenalty gapPenalty
    • anchors

      protected List<AlignerHelper.Anchor> anchors
    • cutsPerSection

      protected int cutsPerSection
    • profile

      protected Profile<S extends Sequence<C>,C extends Compound> profile
    • xyStart

      protected int[] xyStart
      Start position of the aligned sequence in the query and target respectively
    • xyMax

      protected int[] xyMax
      End position of the aligned sequence in the query and target respectively
    • max

      protected int max
    • min

      protected int min
    • score

      protected int score
    • scores

      protected int[][][] scores
      Dynamic programming score matrix The first dimension has the length of the first (query) sequence + 1 The second has the length of the second (target) sequence + 1 The third has length 1 for linear gap penalty and 3 for affine/constant gap (one each for match/substitution, deletion, insertion)
    • time

      protected long time
  • Constructor Details

    • AbstractMatrixAligner

      protected AbstractMatrixAligner()
      Before running an alignment, data must be sent in via calls to setGapPenalty(GapPenalty) and setSubstitutionMatrix(SubstitutionMatrix).
    • AbstractMatrixAligner

      protected AbstractMatrixAligner(GapPenalty gapPenalty, SubstitutionMatrix<C> subMatrix)
      Prepares for an alignment.
      Parameters:
      gapPenalty - the gap penalties used during alignment
      subMatrix - the set of substitution scores used during alignment
    • AbstractMatrixAligner

      protected AbstractMatrixAligner(GapPenalty gapPenalty, SubstitutionMatrix<C> subMatrix, boolean local)
      Prepares for an alignment.
      Parameters:
      gapPenalty - the gap penalties used during alignment
      subMatrix - the set of substitution scores used during alignment
      local - if true, find a region of similarity rather than aligning every compound
  • Method Details

    • getGapPenalty

      public GapPenalty getGapPenalty()
      Returns the gap penalties.
      Returns:
      the gap penalties used during alignment
    • getSubstitutionMatrix

      public SubstitutionMatrix<C> getSubstitutionMatrix()
      Returns the substitution matrix.
      Returns:
      the set of substitution scores used during alignment
    • isLocal

      public boolean isLocal()
      Returns whether alignment finds a region of similarity rather than aligning every compound.
      Returns:
      true if alignment finds a region of similarity rather than aligning every compound
    • isStoringScoreMatrix

      public boolean isStoringScoreMatrix()
      Returns choice to cache the score matrix or to save memory by deleting score matrix after alignment.
      Returns:
      choice to cache the score matrix
    • setGapPenalty

      public void setGapPenalty(GapPenalty gapPenalty)
      Sets the gap penalties.
      Parameters:
      gapPenalty - the gap penalties used during alignment
    • setSubstitutionMatrix

      public void setSubstitutionMatrix(SubstitutionMatrix<C> subMatrix)
      Sets the substitution matrix.
      Parameters:
      subMatrix - the set of substitution scores used during alignment
    • setStoringScoreMatrix

      public void setStoringScoreMatrix(boolean storingScoreMatrix)
      Sets choice to cache the score matrix or to save memory by deleting score matrix after alignment.
      Parameters:
      storingScoreMatrix - choice to cache the score matrix
    • getScoreMatrix

      public int[][][] getScoreMatrix()
      Description copied from interface: MatrixAligner
      Returns the entire score matrix built during alignment. The first dimension has the length of the first (query) sequence + 1; the second has the length of the second (target) sequence + 1; the third has length equal to the number of scores stored per pairing of an element from each Sequence.
      Specified by:
      getScoreMatrix in interface MatrixAligner<S extends Sequence<C>,C extends Compound>
      Returns:
      the score matrix
    • getScoreMatrixAsString

      public String getScoreMatrixAsString()
      Description copied from interface: MatrixAligner
      Returns a depiction of the score matrix as a String. This may include additional description such as labels for each dimension: element from query sequence, element from target sequence, and meaning of each score.
      Specified by:
      getScoreMatrixAsString in interface MatrixAligner<S extends Sequence<C>,C extends Compound>
      Returns:
      the score matrix as a character sequence
    • getComputationTime

      public long getComputationTime()
      Description copied from interface: Aligner
      Returns the computation time needed for an alignment computed in nanoseconds.
      Specified by:
      getComputationTime in interface Aligner<S extends Sequence<C>,C extends Compound>
      Returns:
      the computation time in nanoseconds
    • getProfile

      public Profile<S,C> getProfile()
      Description copied from interface: Aligner
      Returns the alignment Profile produced by this alignment algorithm.
      Specified by:
      getProfile in interface Aligner<S extends Sequence<C>,C extends Compound>
      Returns:
      the alignment profile
    • getMaxScore

      public double getMaxScore()
      Description copied from interface: Scorer
      Returns maximum possible score.
      Specified by:
      getMaxScore in interface Scorer
      Returns:
      maximum possible score
    • getMinScore

      public double getMinScore()
      Description copied from interface: Scorer
      Returns minimum possible score.
      Specified by:
      getMinScore in interface Scorer
      Returns:
      minimum possible score
    • getScore

      public double getScore()
      Description copied from interface: Scorer
      Returns score resulting from algorithm. This should normalize between 0 and 1 by calculating (Scorer.getScore() - Scorer.getMinScore()) / (Scorer.getMaxScore() - Scorer.getMinScore()).
      Specified by:
      getScore in interface Scorer
      Returns:
      score resulting from algorithm
    • align

      protected void align()
      Performs alignment
    • getSubstitutionScoreVector

      protected int[] getSubstitutionScoreVector(int queryColumn)
      Returns score for the alignment of the query column to all target columns
      Parameters:
      queryColumn -
      Returns:
    • getSubstitutionScoreVector

      protected int[] getSubstitutionScoreVector(int queryColumn, AlignerHelper.Subproblem subproblem)
      Returns score for the alignment of the query column to all target columns
      Parameters:
      queryColumn -
      subproblem -
      Returns:
    • reset

      protected void reset()
      Resets output fields; should be overridden to set max and min
    • getCompoundSet

      protected abstract CompoundSet<C> getCompoundSet()
    • getCompoundsOfQuery

      protected abstract List<C> getCompoundsOfQuery()
    • getCompoundsOfTarget

      protected abstract List<C> getCompoundsOfTarget()
    • getScoreMatrixDimensions

      protected abstract int[] getScoreMatrixDimensions()
    • getSubstitutionScore

      protected abstract int getSubstitutionScore(int queryColumn, int targetColumn)
    • isReady

      protected abstract boolean isReady()
    • setProfile

      protected abstract void setProfile(List<AlignedSequence.Step> sx, List<AlignedSequence.Step> sy)