Class BlockCompressedIndexedFastaSequenceFile

  • All Implemented Interfaces:
    ReferenceSequenceFile, Closeable, AutoCloseable

    public class BlockCompressedIndexedFastaSequenceFile
    extends Object
    A block-compressed FASTA file driven by an index for fast lookups.

    Supports two interfaces: the ReferenceSequenceFile for old-style, stateful lookups and a direct getter.

    • Method Detail

      • readFromPosition

        protected int readFromPosition​(ByteBuffer buffer,
                                       long position)
                                throws IOException
        Reads a sequence of bytes from this sequence file into the given buffer, starting at the given file position.
        Parameters:
        buffer - the buffer into which bytes are to be transferred
        position - the position to start reading at
        Returns:
        the number of bytes read
        Throws:
        IOException - if an I/O error occurs while reading
      • findFastaIndex

        protected static Path findFastaIndex​(Path fastaFile)
      • sanityCheckDictionaryAgainstIndex

        protected static void sanityCheckDictionaryAgainstIndex​(String fastaFile,
                                                                SAMSequenceDictionary sequenceDictionary,
                                                                FastaSequenceIndex index)
        Do some basic checking to make sure the dictionary and the index match.
        Parameters:
        fastaFile - Used for error reporting only.
        sequenceDictionary - sequence dictionary to check against the index.
        index - index file to check against the dictionary.
      • nextSequence

        public ReferenceSequence nextSequence()
        Gets the next sequence if available, or null if not present.
        Returns:
        next sequence if available, or null if not present.
      • reset

        public void reset()
        Reset the iterator over the index.
      • isIndexed

        public final boolean isIndexed()
        default implementation -- override if index is supported
        Specified by:
        isIndexed in interface ReferenceSequenceFile
        Returns:
        true if getSequence and getSubsequenceAt methods are allowed.
      • getSequence

        public ReferenceSequence getSequence​(String contig)
        Retrieves the complete sequence described by this contig.
        Specified by:
        getSequence in interface ReferenceSequenceFile
        Parameters:
        contig - contig whose data should be returned.
        Returns:
        The full sequence associated with this contig.
      • getSubsequenceAt

        public ReferenceSequence getSubsequenceAt​(String contig,
                                                  long start,
                                                  long stop)
        Gets the subsequence of the contig in the range [start,stop]
        Specified by:
        getSubsequenceAt in interface ReferenceSequenceFile
        Parameters:
        contig - Contig whose subsequence to retrieve.
        start - inclusive, 1-based start of region.
        stop - inclusive, 1-based stop of region.
        Returns:
        The partial reference sequence associated with this range.
      • findSequenceDictionary

        protected static File findSequenceDictionary​(File file)
      • findSequenceDictionary

        protected static Path findSequenceDictionary​(Path path)
      • getPath

        protected Path getPath()
        Returns the path to the reference file.
      • getSource

        protected String getSource()
        Returns the named source of the reference file.
      • getSequenceDictionary

        public SAMSequenceDictionary getSequenceDictionary()
        Returns the list of sequence records associated with the reference sequence if found otherwise null.
        Specified by:
        getSequenceDictionary in interface ReferenceSequenceFile
        Returns:
        a list of sequence records representing the sequences in this reference file
      • getAbsolutePath

        protected String getAbsolutePath()
        Returns the full path to the reference file.
      • toString

        public String toString()
        Returns the full path to the reference file, or the source if no path was specified.
        Specified by:
        toString in interface ReferenceSequenceFile
        Overrides:
        toString in class Object
        Returns:
        Reference name, file name, or something other human-readable representation.