Class SequenceFileProxyLoader<C extends Compound>

java.lang.Object
org.biojava.nbio.core.sequence.loader.SequenceFileProxyLoader<C>
Type Parameters:
C -
All Implemented Interfaces:
Iterable<C>, Accessioned, ProxySequenceReader<C>, Sequence<C>, SequenceReader<C>

public class SequenceFileProxyLoader<C extends Compound> extends Object implements ProxySequenceReader<C>
This class represents the storage container of a sequence stored in a fasta file where the initial parsing of the file we store the offset and length of the sequence. When a call is made to any method that needs sequence data then the file will be opened and the sequence loaded. This class could be improved by using the hints or a some algorithm that indicates the sequence data once loaded should stay loaded. Could keep track of the last time sequence data was loaded and then after X amount of time clear the contents to free up memory.
Author:
Scooter Willis
  • Constructor Details

    • SequenceFileProxyLoader

      public SequenceFileProxyLoader(File file, SequenceParserInterface sequenceParser, long sequenceStartIndex, int sequenceLength, CompoundSet<C> compoundSet) throws IOException, CompoundNotFoundException
      Parameters:
      file - The file where the sequence will be found
      sequenceParser - The parser to use to load the sequence
      sequenceStartIndex - The file offset to the start of the sequence
      sequenceLength - The length of the sequence
      compoundSet -
      Throws:
      IOException - if problems occur while reading the file
      CompoundNotFoundException - if a compound in the sequence can't be found in the given compoundSet
  • Method Details

    • setCompoundSet

      public void setCompoundSet(CompoundSet<C> compoundSet)
      Specified by:
      setCompoundSet in interface SequenceReader<C extends Compound>
      Parameters:
      compoundSet -
    • setContents

      public void setContents(String sequence) throws CompoundNotFoundException
      Specified by:
      setContents in interface SequenceReader<C extends Compound>
      Parameters:
      sequence -
      Throws:
      CompoundNotFoundException
    • getLength

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

      public C getCompoundAt(int position)
      Description copied from interface: Sequence
      Returns the Compound at the given biological index
      Specified by:
      getCompoundAt in interface Sequence<C extends Compound>
      Parameters:
      position -
      Returns:
    • 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<C extends Compound>
      Parameters:
      compound -
      Returns:
    • 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<C extends Compound>
      Parameters:
      compound -
      Returns:
    • toString

      public String toString()
      Overrides:
      toString in class Object
      Returns:
    • getSequenceAsString

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

      public String getSequenceAsString(Integer bioBegin, Integer bioEnd, Strand strand)
      Parameters:
      bioBegin -
      bioEnd -
      strand -
      Returns:
    • getAsList

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

      public SequenceView<C> getSubSequence(Integer bioBegin, Integer bioEnd)
      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<C extends Compound>
      Parameters:
      bioBegin -
      bioEnd -
      Returns:
    • iterator

      public Iterator<C> iterator()
      Specified by:
      iterator in interface Iterable<C extends Compound>
      Returns:
    • 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<C extends Compound>
      Returns:
    • getAccession

      public AccessionID getAccession()
      Description copied from interface: Accessioned
      Returns the AccessionID this location is currently bound with
      Specified by:
      getAccession in interface Accessioned
      Returns:
    • 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<C extends Compound>
      Parameters:
      compounds -
      Returns:
    • 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<C extends Compound>
      Returns: