htsjdk.samtools.BrowseableBAMIndex Maven / Gradle / Ivy
package htsjdk.samtools;
/**
* An index interface with additional functionality for querying and inspecting the structure of a BAM index.
*
* @author mhanna
* @version 0.1
*/
public interface BrowseableBAMIndex extends BAMIndex {
/**
* Gets the size (number of bins in) a given level of a BAM index.
* @param levelNumber Level for which to inspect the size.
* @return Size of the given level.
*/
public int getLevelSize(final int levelNumber);
/**
* Gets the level associated with the given bin number.
* @param bin The bin for which to determine the level.
* @return the level associated with the given bin number.
*/
public int getLevelForBin(final Bin bin);
/**
* Gets the first locus that this bin can index into.
* @param bin The bin to test.
* @return The last position that the given bin can represent.
*/
int getFirstLocusInBin(final Bin bin);
/**
* Gets the last locus that this bin can index into.
* @param bin The bin to test.
* @return The last position that the given bin can represent.
*/
int getLastLocusInBin(final Bin bin);
/**
* Get a list of bins in the BAM file that may contain SAMRecords for the given range.
* @param referenceIndex sequence of desired SAMRecords
* @param startPos 1-based start of the desired interval, inclusive
* @param endPos 1-based end of the desired interval, inclusive
* @return a list of bins that contain relevant data.
*/
BinList getBinsOverlapping(final int referenceIndex, final int startPos, final int endPos);
/**
* Perform an overlapping query of all bins bounding the given location.
* @param bin The bin over which to perform an overlapping query.
* @return The file pointers
*/
BAMFileSpan getSpanOverlapping(final Bin bin);
}