Class SingleCompoundSequenceReader<C extends Compound>

  • All Implemented Interfaces:
    java.lang.Iterable<C>, Accessioned, ProxySequenceReader<C>, Sequence<C>, SequenceReader<C>

    public class SingleCompoundSequenceReader<C extends Compound>
    extends java.lang.Object
    implements ProxySequenceReader<C>
    An implementation of the SequenceReader interface which for every call will return only 1 compound (given to it during construction; a String is also valid but will require a CompoundSet). The idea is to represent large runs of a single compound without the memory footprint of storing these compounds e.g. a run of 10KB of Ns in a DNASequence.
    Author:
    ayates
    • Constructor Detail

      • SingleCompoundSequenceReader

        public SingleCompoundSequenceReader​(java.lang.String compound,
                                            CompoundSet<C> compoundSet,
                                            int length)
        Public constructor to be used with String based constructor
      • SingleCompoundSequenceReader

        public SingleCompoundSequenceReader​(C compound,
                                            CompoundSet<C> compoundSet,
                                            int length)
        Build the object with a compound rather than a String
    • Method Detail

      • getLength

        public int getLength()
        Returns the length given during construction
        Specified by:
        getLength in interface Sequence<C extends Compound>
      • getCompoundAt

        public C getCompoundAt​(int position)
        Always returns the compound given at construction
        Specified by:
        getCompoundAt in interface Sequence<C extends Compound>
        Parameters:
        position - Biological index (1 to n)
        Returns:
        Compound at the specified position
      • getIndexOf

        public int getIndexOf​(C compound)
        Returns 1 if the given compound is equal to the one given during construction; otherwise will return -1.
        Specified by:
        getIndexOf in interface Sequence<C extends Compound>
        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)
        Returns the length of the Sequence if the given compound was equal to the one given during construction. Otherwise returns -1
        Specified by:
        getLastIndexOf in interface Sequence<C extends Compound>
        Parameters:
        compound - Compounds to look for
        Returns:
        Index of the last position of the compound in the sequence (1 to n)
      • getSubSequence

        public SequenceView<C> getSubSequence​(java.lang.Integer start,
                                              java.lang.Integer end)
        Creates a SequenceProxyView for the given coordinates
        Specified by:
        getSubSequence in interface Sequence<C extends Compound>
        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
      • countCompounds

        public int countCompounds​(C... compounds)
        Delegates to SequenceMixin#countCompounds(org.biojava.nbio.core.sequence.template.Sequence, C[])
        Specified by:
        countCompounds in interface Sequence<C extends Compound>
        Parameters:
        compounds - Vargs of the compounds to count
        Returns:
        Number of times a compound was found
      • 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>
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • equals

        public boolean equals​(Sequence<C> o)