Class CSIIndex

All Implemented Interfaces:
BAMIndex, BrowseableBAMIndex, Closeable, AutoCloseable

public class CSIIndex extends AbstractBAMFileIndex implements BrowseableBAMIndex
Implementation of the CSI index for BAM files. The CSI index extends the BAI index by allowing a more flexible binning scheme, with variable depth (number of levels) and bin sizes, thus allowing for genomic regions longer than 2^29-1.
  • Constructor Details

  • Method Details

    • getBinDepth

      public int getBinDepth()
      Bin depth is the number of levels of the index. By default, BAI has 6 levels. CSI makes this variable.
    • getMinShift

      public int getMinShift()
      2^(min shift) is the smallest width of a bin
    • getMaxBins

      public int getMaxBins()
    • getMaxSpan

      public int getMaxSpan()
    • getAuxData

      public byte[] getAuxData()
    • getNumberOfReferences

      public int getNumberOfReferences()
      Overrides:
      getNumberOfReferences in class AbstractBAMFileIndex
    • getLevelSize

      public int getLevelSize(int levelNumber)
      Computes the number of bins on the given level.
      Specified by:
      getLevelSize in interface BrowseableBAMIndex
      Overrides:
      getLevelSize in class AbstractBAMFileIndex
      Parameters:
      levelNumber - Level for which to compute the size.
      Returns:
    • getFirstBinInLevelForCSI

      public int getFirstBinInLevelForCSI(int levelNumber)
      Extends the functionality of AbstractBAMFileIndex.getFirstBinInLevel(int) , which cannot be overridden due to its static nature.
    • getLevelForBin

      public int getLevelForBin(Bin bin)
      Description copied from class: AbstractBAMFileIndex
      Gets the level associated with the given bin number.
      Specified by:
      getLevelForBin in interface BrowseableBAMIndex
      Overrides:
      getLevelForBin in class AbstractBAMFileIndex
      Parameters:
      bin - The bin for which to determine the level.
      Returns:
      the level associated with the given bin number.
    • getFirstLocusInBin

      public int getFirstLocusInBin(Bin bin)
      Description copied from class: AbstractBAMFileIndex
      Gets the first locus that this bin can index into.
      Specified by:
      getFirstLocusInBin in interface BrowseableBAMIndex
      Overrides:
      getFirstLocusInBin in class AbstractBAMFileIndex
      Parameters:
      bin - The bin to test.
      Returns:
      The last position that the given bin can represent.
    • getLastLocusInBin

      public int getLastLocusInBin(Bin bin)
      Description copied from class: AbstractBAMFileIndex
      Gets the last locus that this bin can index into.
      Specified by:
      getLastLocusInBin in interface BrowseableBAMIndex
      Overrides:
      getLastLocusInBin in class AbstractBAMFileIndex
      Parameters:
      bin - The bin to test.
      Returns:
      The last position that the given bin can represent.
    • getBinsOverlapping

      public BinList getBinsOverlapping(int referenceIndex, int startPos, int endPos)
      Description copied from interface: BrowseableBAMIndex
      Get a list of bins in the BAM file that may contain SAMRecords for the given range.
      Specified by:
      getBinsOverlapping in interface BrowseableBAMIndex
      Parameters:
      referenceIndex - sequence of desired SAMRecords
      startPos - 1-based start of the desired interval, inclusive
      endPos - 1-based end of the desired interval, inclusive
      Returns:
      a list of bins that contain relevant data.
    • getSpanOverlapping

      public BAMFileSpan getSpanOverlapping(int referenceIndex, int startPos, int endPos)
      Description copied from interface: BAMIndex
      Gets the compressed chunks which should be searched for the contents of records contained by the span referenceIndex:startPos-endPos, inclusive. See the BAM spec for more information on how a chunk is represented.
      Specified by:
      getSpanOverlapping in interface BAMIndex
      Parameters:
      referenceIndex - The contig.
      startPos - Genomic start of query.
      endPos - Genomic end of query.
      Returns:
      A file span listing the chunks in the BAM file.
    • getSpanOverlapping

      public BAMFileSpan getSpanOverlapping(Bin bin)
      Description copied from interface: BrowseableBAMIndex
      Perform an overlapping query of all bins bounding the given location.
      Specified by:
      getSpanOverlapping in interface BrowseableBAMIndex
      Parameters:
      bin - The bin over which to perform an overlapping query.
      Returns:
      The file pointers
    • getStartOfLastLinearBin

      public long getStartOfLastLinearBin()
      Description copied from class: AbstractBAMFileIndex
      Use to get close to the unmapped reads at the end of a BAM file.
      Specified by:
      getStartOfLastLinearBin in interface BAMIndex
      Overrides:
      getStartOfLastLinearBin in class AbstractBAMFileIndex
      Returns:
      The file offset of the first record in the last linear bin, or -1 if there are no elements in linear bins (i.e. no mapped reads).
    • verifyIndexMagicNumber

      protected void verifyIndexMagicNumber(String sourceName)
      Overrides:
      verifyIndexMagicNumber in class AbstractBAMFileIndex
    • initParameters

      protected final void initParameters()
      Description copied from class: AbstractBAMFileIndex
      Initialization method used for simplifying the constructor hierarchy.
      Overrides:
      initParameters in class AbstractBAMFileIndex
    • getParentBinNumber

      public int getParentBinNumber(int binNumber)
    • getParentBinNumber

      public int getParentBinNumber(Bin bin)
    • query

      protected htsjdk.samtools.BAMIndexContent query(int referenceSequence, int startPos, int endPos)
      Overrides:
      query in class AbstractBAMFileIndex
    • getMetaData

      public BAMIndexMetaData getMetaData(int reference)
      Return meta data for the given reference including information about number of aligned, unaligned, and noCoordinate records
      Specified by:
      getMetaData in interface BAMIndex
      Overrides:
      getMetaData in class AbstractBAMFileIndex
      Parameters:
      reference - the reference of interest
      Returns:
      meta data for the reference
    • getNoCoordinateCount

      public Long getNoCoordinateCount()
      Returns count of records unassociated with any reference. Call before the index file is closed
      Overrides:
      getNoCoordinateCount in class AbstractBAMFileIndex
      Returns:
      meta data at the end of the bam index that indicates count of records holding no coordinates or null if no meta data (old index format)
    • getQueryResults

      public htsjdk.samtools.BAMIndexContent getQueryResults(int referenceSequence)
      Specified by:
      getQueryResults in class AbstractBAMFileIndex
    • skipToSequence

      protected void skipToSequence(int sequenceIndex)
      Overrides:
      skipToSequence in class AbstractBAMFileIndex