Class TabixIndex

java.lang.Object
htsjdk.tribble.index.tabix.TabixIndex
All Implemented Interfaces:
Index

public class TabixIndex extends Object implements Index
This class represent a Tabix index that has been built in memory or read from a file. It can be queried or written to a file.
  • Field Details

    • MAGIC_NUMBER

      public static final int MAGIC_NUMBER
  • Constructor Details

    • TabixIndex

      public TabixIndex(TabixFormat formatSpec, List<String> sequenceNames, BinningIndexContent[] indices)
      Parameters:
      formatSpec - Information about how to interpret the file being indexed. Unused by this class other than written to an output file.
      sequenceNames - Sequences in the file being indexed, in the order they appear in the file.
      indices - One for each element of sequenceNames
    • TabixIndex

      public TabixIndex(InputStream inputStream) throws IOException
      Parameters:
      inputStream - This is expected to be buffered and be gzip-decompressing as appropriate. Caller should close input stream after ctor returns.
      Throws:
      IOException
    • TabixIndex

      public TabixIndex(File tabixFile) throws IOException
      Convenient ctor that opens the file, wraps with with BGZF reader, and closes after reading index.
      Throws:
      IOException
    • TabixIndex

      public TabixIndex(Path tabixPath) throws IOException
      Convenient ctor that opens the path, wraps with with BGZF reader, and closes after reading index.
      Throws:
      IOException
  • Method Details

    • getBlocks

      public List<Block> getBlocks(String chr, int start, int end)
      Description copied from interface: Index
      Query the index.
      Specified by:
      getBlocks in interface Index
      Parameters:
      chr - the chromosome
      start - the start position, one-based, inclusive.
      end - the end position, one-based, inclusive.
      Returns:
      List of regions of file that are candidates for the given query.

      TODO: This method has not yet been tested, since the primary task is index writing.

    • isCurrentVersion

      public boolean isCurrentVersion()
      Specified by:
      isCurrentVersion in interface Index
      Returns:
      true if the index is up to date, false otherwise
    • getSequenceNames

      public List<String> getSequenceNames()
      Specified by:
      getSequenceNames in interface Index
      Returns:
      a list of the sequence names we've seen during indexing, in order
    • containsChromosome

      public boolean containsChromosome(String chr)
      Specified by:
      containsChromosome in interface Index
      Parameters:
      chr - the chromosome (or contig) name
      Returns:
      true if we have an entry; false otherwise
    • getProperties

      public Map<String,String> getProperties()
      No arbitrary properties in Tabix
      Specified by:
      getProperties in interface Index
      Returns:
      get the list of properties for this index. Returns null if no properties.
    • equalsIgnoreProperties

      public boolean equalsIgnoreProperties(Object o)
      Description copied from interface: Index
      Returns true if this and obj are 'effectively' equivalent indices. Ignores the time stamp on the file, as this may not be the same for even identical indices
      Specified by:
      equalsIgnoreProperties in interface Index
      Returns:
    • getFormatSpec

      public TabixFormat getFormatSpec()
    • getIndices

      public BinningIndexContent[] getIndices()
    • write

      public void write(Path tabixPath) throws IOException
      Writes the index with BGZF.
      Specified by:
      write in interface Index
      Parameters:
      tabixPath - Where to write the index.
      Throws:
      IOException - if the index is unable to write to the specified path.
    • writeBasedOnFeaturePath

      public void writeBasedOnFeaturePath(Path featurePath) throws IOException
      Writes to a path with appropriate name and directory based on feature path.
      Specified by:
      writeBasedOnFeaturePath in interface Index
      Parameters:
      featurePath - Path being indexed.
      Throws:
      IOException - if featureFile is not a normal file.
    • write

      public void write(LittleEndianOutputStream los) throws IOException
      Description copied from interface: Index
      all indexes are writable to disk
      Specified by:
      write in interface Index
      Parameters:
      los - It is assumes that caller has done appropriate buffering and BlockCompressedOutputStream wrapping. Caller should close output stream after invoking this method.
      Throws:
      IOException
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object