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

java.lang.Object
org.biojava.nbio.core.alignment.SimpleAlignedSequence<S,C>
Type Parameters:
C - each element of the Sequence is a Compound of type C
All Implemented Interfaces:
Serializable, Iterable<C>, AlignedSequence<S,C>, Accessioned, Sequence<C>

public class SimpleAlignedSequence<S extends Sequence<C>,C extends Compound> extends Object implements Serializable, AlignedSequence<S,C>
Implements a data structure for a Sequence within an alignment.
Author:
Mark Chapman
See Also:
  • Constructor Details

  • Method Details

    • clearCache

      public void clearCache()
      Description copied from interface: AlignedSequence
      Nullifies cached arrays/objects.
      Specified by:
      clearCache in interface AlignedSequence<S extends Sequence<C>,C extends Compound>
    • getAlignmentFromSequence

      public int[] getAlignmentFromSequence()
      Description copied from interface: AlignedSequence
      Returns the alignment.
      Specified by:
      getAlignmentFromSequence in interface AlignedSequence<S extends Sequence<C>,C extends Compound>
      Returns:
      the alignment
    • getAlignmentIndexAt

      public int getAlignmentIndexAt(int sequenceIndex)
      Description copied from interface: AlignedSequence
      Returns the column index within an alignment corresponding to the given index in the original Sequence. Both indices are 1-indexed and inclusive.
      Specified by:
      getAlignmentIndexAt in interface AlignedSequence<S extends Sequence<C>,C extends Compound>
      Parameters:
      sequenceIndex - index in the original Sequence
      Returns:
      column index within an alignment
    • getEnd

      public Point getEnd()
      Description copied from interface: AlignedSequence
      Returns the Point within an alignment of the last element of the original Sequence.
      Specified by:
      getEnd in interface AlignedSequence<S extends Sequence<C>,C extends Compound>
      Returns:
      position within an alignment of final original Sequence element
    • getLocationInAlignment

      public Location getLocationInAlignment()
      Description copied from interface: AlignedSequence
      Returns the Location of the original Sequence within an alignment. This provides access to additional substructure beyond start and end points.
      Specified by:
      getLocationInAlignment in interface AlignedSequence<S extends Sequence<C>,C extends Compound>
      Returns:
      location within an alignment
    • getNumGaps

      public int getNumGaps()
      Description copied from interface: AlignedSequence
      Returns number of gaps in the sequence. This could be determined from the Location information or from gap Compounds, which may not necessarily result in the same number.
      Specified by:
      getNumGaps in interface AlignedSequence<S extends Sequence<C>,C extends Compound>
      Returns:
      number of gaps in the sequence
    • getOriginalSequence

      public S getOriginalSequence()
      Description copied from interface: AlignedSequence
      Returns the original Sequence before alignment.
      Specified by:
      getOriginalSequence in interface AlignedSequence<S extends Sequence<C>,C extends Compound>
      Returns:
      the original sequence
    • getOverlapCount

      public int getOverlapCount()
      Description copied from interface: AlignedSequence
      Returns the maximum number of elements contributed to a column of an alignment by this Sequence. If this Sequence is circular, this number is >= 1. If not, this overlap count is definitely 1.
      Specified by:
      getOverlapCount in interface AlignedSequence<S extends Sequence<C>,C extends Compound>
      Returns:
      the most elements contributed to any alignment column
    • getSequenceFromAlignment

      public int[] getSequenceFromAlignment()
      Description copied from interface: AlignedSequence
      Returns the sequence positions at each alignment index
      Specified by:
      getSequenceFromAlignment in interface AlignedSequence<S extends Sequence<C>,C extends Compound>
      Returns:
      array of the sequence positions
    • getSequenceIndexAt

      public int getSequenceIndexAt(int alignmentIndex)
      Description copied from interface: AlignedSequence
      Returns the index in the original Sequence corresponding to the given index within an alignment. Both indices are 1-indexed and inclusive.
      Specified by:
      getSequenceIndexAt in interface AlignedSequence<S extends Sequence<C>,C extends Compound>
      Parameters:
      alignmentIndex - column index within an alignment
      Returns:
      index in the original Sequence
    • getStart

      public Point getStart()
      Description copied from interface: AlignedSequence
      Returns the Point within an alignment of the first element of the original Sequence.
      Specified by:
      getStart in interface AlignedSequence<S extends Sequence<C>,C extends Compound>
      Returns:
      position within an alignment of first original Sequence element
    • isCircular

      public boolean isCircular()
      Description copied from interface: AlignedSequence
      Returns true if this Sequence wraps around from the last alignment column back to the first. This makes overlap possible, but does not require an overlap count > 1.
      Specified by:
      isCircular in interface AlignedSequence<S extends Sequence<C>,C extends Compound>
      Returns:
      true for circular alignment elements
    • isGap

      public boolean isGap(int alignmentIndex)
      Description copied from interface: AlignedSequence
      Returns true if this Sequence has a gap at a particular alignment column.
      Specified by:
      isGap in interface AlignedSequence<S extends Sequence<C>,C extends Compound>
      Parameters:
      alignmentIndex - column index within an alignment
      Returns:
      true if this column has a gap
    • countCompounds

      public int countCompounds(C... compounds)
      Description copied from interface: Sequence
      Returns the number of times we found a compound in the Sequence
      Specified by:
      countCompounds in interface Sequence<S extends Sequence<C>>
      Parameters:
      compounds - Vargs of the compounds to count
      Returns:
      Number of times a compound was found
    • getAccession

      public AccessionID getAccession()
      Description copied from interface: Accessioned
      Returns the AccessionID this location is currently bound with
      Specified by:
      getAccession in interface Accessioned
    • getAsList

      public List<C> getAsList()
      Description copied from interface: Sequence
      Returns the Sequence as a List of compounds
      Specified by:
      getAsList in interface Sequence<S extends Sequence<C>>
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getCompoundAt

      public C getCompoundAt(int alignmentIndex)
      Description copied from interface: Sequence
      Returns the Compound at the given biological index
      Specified by:
      getCompoundAt in interface Sequence<S extends Sequence<C>>
      Parameters:
      alignmentIndex - Biological index (1 to n)
      Returns:
      Compound at the specified position
    • getCompoundSet

      public CompoundSet<C> getCompoundSet()
      Description copied from interface: Sequence
      Gets the compound set used to back this Sequence
      Specified by:
      getCompoundSet in interface Sequence<S extends Sequence<C>>
    • getIndexOf

      public int getIndexOf(C compound)
      Description copied from interface: Sequence
      Scans through the Sequence looking for the first occurrence of the given compound
      Specified by:
      getIndexOf in interface Sequence<S extends Sequence<C>>
      Parameters:
      compound - Compounds to look for
      Returns:
      Index of the first position of the compound in the sequence (1 to n)
    • getLastIndexOf

      public int getLastIndexOf(C compound)
      Description copied from interface: Sequence
      Scans through the Sequence looking for the last occurrence of the given compound
      Specified by:
      getLastIndexOf in interface Sequence<S extends Sequence<C>>
      Parameters:
      compound - Compounds to look for
      Returns:
      Index of the last position of the compound in the sequence (1 to n)
    • getLength

      public int getLength()
      Description copied from interface: Sequence
      Returns the length of the Sequence
      Specified by:
      getLength in interface Sequence<S extends Sequence<C>>
    • getSequenceAsString

      public String getSequenceAsString()
      Description copied from interface: Sequence
      Returns the String representation of the Sequence
      Specified by:
      getSequenceAsString in interface Sequence<S extends Sequence<C>>
    • getSubSequence

      public SequenceView<C> getSubSequence(Integer start, Integer end)
      Description copied from interface: Sequence
      Returns a portion of the sequence from the different positions. This is indexed from 1
      Specified by:
      getSubSequence in interface Sequence<S extends Sequence<C>>
      Parameters:
      start - Biological index start; must be greater than 0
      end - Biological end; must be less than length + 1
      Returns:
      A SequenceView of the offset
    • iterator

      public Iterator<C> iterator()
      Specified by:
      iterator in interface Iterable<S extends Sequence<C>>
    • toString

      public String toString()
      Provides standard Java language access to results of getSequenceAsString().
      Overrides:
      toString in class Object
    • getInverse

      public SequenceView<C> getInverse()
      Description copied from interface: Sequence
      Does the right thing to get the inverse of the current Sequence. This means either reversing the Sequence and optionally complementing the Sequence.
      Specified by:
      getInverse in interface Sequence<S extends Sequence<C>>
    • getNumGapPositions

      public int getNumGapPositions()
      Description copied from interface: AlignedSequence
      Returns number of gap positions (gap openings and extensions) in the sequence. This could be determined from the Location information or from gap Compounds, which may not necessarily result in the same number.
      Specified by:
      getNumGapPositions in interface AlignedSequence<S extends Sequence<C>,C extends Compound>
      Returns:
      number of gap positions in the sequence
    • getCoverage

      public double getCoverage()
      Description copied from interface: AlignedSequence
      Returns the coverage, as a fraction between 0 and 1, of this AlignedSequence with respect to the original sequence. This is equivalent to (Sequence.getLength() - AlignedSequence.getNumGapPositions()) / getOriginalSequence().getLength().
      Specified by:
      getCoverage in interface AlignedSequence<S extends Sequence<C>,C extends Compound>
      Returns:
      coverage of the original sequence by the aligned sequence