Class BitSequenceReader<C extends Compound>
java.lang.Object
org.biojava3.core.sequence.storage.BitSequenceReader<C>
- Type Parameters:
C
- Type of compound; must extendNucleotideCompound
- All Implemented Interfaces:
Iterable<C>
,Accessioned
,ProxySequenceReader<C>
,Sequence<C>
,SequenceReader<C>
- Direct Known Subclasses:
FourBitSequenceReader
,TwoBitSequenceReader
An implementation of the popular bit encodings. This class provides the Sequence view over what
is actually carried out in the
BitSequenceReader.BitArrayWorker
instances. These are the objects that carry
out array storage as well as indexing into those arrays. New bit encodings can be written by
extending this class and a worker class. There are a number of issues with this type of storage
engine:
- We can only support a finite number of
Compound
s; 2 bit allows no N compounds - For real savings you must read the sequence in using your own Reader and a
BitSequenceReader.BitArrayWorker
instance
- Author:
- ayates
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
BitSequenceReader.BitArrayWorker<C extends Compound>
The logic of working with a bit has been separated out into this class to help developers create the bit data structures without having to put the code into an intermediate format and to also use the format without the need to copy this code. -
Constructor Summary
ConstructorDescriptionBitSequenceReader
(BitSequenceReader.BitArrayWorker<C> worker, AccessionID accession) Instance which allows you to supply a different @{BitArrayWorker} object. -
Method Summary
Modifier and TypeMethodDescriptionint
countCompounds
(C... compounds) Counts the number of times a compound appears in this sequence storeboolean
Returns the AccessionID this location is currently bound withReturns this Sequence store as a ListgetCompoundAt
(int position) Returns the compound at the specified biological indexReturns the compound set backing this storeint
getIndexOf
(C compound) Returns the first occurrence of the given compound in this store; performs a linear searchDoes the right thing to get the inverse of the current Sequence.int
getLastIndexOf
(C compound) Returns the last occurrence of the given compound in this store; performs a linear searchint
Returns the length of the sequenceReturns the sequence as a StringgetSubSequence
(int start, int end) Returns a sub sequence viewgetSubSequence
(Integer start, Integer end) Returns a portion of the sequence from the different positions.int
hashCode()
iterator()
Provides basic iterable access to this classvoid
setCompoundSet
(CompoundSet<C> compoundSet) Class is immutable & so this is unsupportedvoid
setContents
(String sequence) Class is immutable & so this is unsupportedMethods inherited from class java.lang.Object
getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
BitSequenceReader
Instance which allows you to supply a different @{BitArrayWorker} object.
-
-
Method Details
-
setCompoundSet
Class is immutable & so this is unsupported- Specified by:
setCompoundSet
in interfaceSequenceReader<C extends Compound>
-
setContents
Class is immutable & so this is unsupported- Specified by:
setContents
in interfaceSequenceReader<C extends Compound>
-
countCompounds
Counts the number of times a compound appears in this sequence store- Specified by:
countCompounds
in interfaceSequence<C extends Compound>
- Parameters:
compounds
- Vargs of the compounds to count- Returns:
- Number of times a compound was found
-
getAccession
Description copied from interface:Accessioned
Returns the AccessionID this location is currently bound with- Specified by:
getAccession
in interfaceAccessioned
-
getAsList
Returns this Sequence store as a List -
getCompoundAt
Returns the compound at the specified biological index- Specified by:
getCompoundAt
in interfaceSequence<C extends Compound>
- Parameters:
position
- Biological index (1 to n)- Returns:
- Compound at the specified position
-
getCompoundSet
Returns the compound set backing this store- Specified by:
getCompoundSet
in interfaceSequence<C extends Compound>
-
getIndexOf
Returns the first occurrence of the given compound in this store; performs a linear search- Specified by:
getIndexOf
in interfaceSequence<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
Returns the last occurrence of the given compound in this store; performs a linear search- Specified by:
getLastIndexOf
in interfaceSequence<C extends Compound>
- 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()Returns the length of the sequence -
getSequenceAsString
Returns the sequence as a String- Specified by:
getSequenceAsString
in interfaceSequence<C extends Compound>
-
getSubSequence
Returns a sub sequence view -
iterator
Provides basic iterable access to this class -
getSubSequence
Description copied from interface:Sequence
Returns a portion of the sequence from the different positions. This is indexed from 1- Specified by:
getSubSequence
in interfaceSequence<C extends Compound>
- Parameters:
start
- Biological index start; must be greater than 0end
- Biological end; must be less than length + 1- Returns:
- A SequenceView of the offset
-
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 interfaceSequence<C extends Compound>
-
hashCode
public int hashCode() -
equals
-