Class TabixIndexMerger

java.lang.Object
htsjdk.samtools.IndexMerger<TabixIndex>
htsjdk.tribble.index.tabix.TabixIndexMerger

public class TabixIndexMerger extends IndexMerger<TabixIndex>
Merges tabix files for parts of a VCF file that have been concatenated. A partitioned VCF is a directory containing the following files:
  1. A file named header containing all header bytes in VCF format.
  2. Zero or more files named part-00000, part-00001, ... etc, containing a list of VCF records.
  3. A file named terminator containing a BGZF end-of-file marker block (only if the VCF is bgzip-compressed).
If the VCF is bgzip-compressed then the header and part files must be all bgzip-compressed. For a compressed VCF, if an index is required, then a tabix index can be generated for each (headerless) part file. These files should be named .part-00000.tbi, .part-00001.tbi, ... etc. Note the leading . to make the files hidden. This format has the following properties:
  • Parts and their indexes may be written in parallel, since one part file can be written independently of the others.
  • A VCF file can be created from a partitioned VCF file by concatenating all the non-hidden files (header, part-00000, part-00001, ..., terminator).
  • A VCF index can be created from a partitioned VCF file by merging all of the hidden files with a .tbi suffix. Note that this is not a simple file concatenation operation. See TabixIndexMerger.
  • Constructor Details

    • TabixIndexMerger

      public TabixIndexMerger(OutputStream out, long headerLength)
  • Method Details

    • processIndex

      public void processIndex(TabixIndex index, long partLength)
      Description copied from class: IndexMerger
      Process the next index and add to the merged index.
      Specified by:
      processIndex in class IndexMerger<TabixIndex>
      Parameters:
      index - the index to merge
      partLength - the length of the part file corresponding to the index, in bytes.
    • finish

      public void finish(long dataFileLength) throws IOException
      Description copied from class: IndexMerger
      Finish merging the indexes, and close the output stream.
      Specified by:
      finish in class IndexMerger<TabixIndex>
      Parameters:
      dataFileLength - the length of the total data file, in bytes.
      Throws:
      IOException - if an error occurs