Skip to content
Snippets Groups Projects
Select Git revision
  • 6b6c8a3fdd5aee98f1ae7c50545c2d0ce2eb89a5
  • develop default protected
  • master
  • hts_opt_block_size
  • bz2-lzma-pkgconfig
  • exp/raw-index
  • cram_split_tags
  • configure
  • feature/contig_comma
  • parser-flags
  • irods_update
  • cigar-P-bis
  • cram_digests
  • CSIv2
  • ftype
  • lite
  • norm-indels
  • 1.8
  • 1.7
  • 1.6
  • 1.5
  • 1.4.1
  • 1.4
  • 1.3.2
  • 1.3.1
  • 1.3
  • 1.2.1
  • 1.2
  • 1.1
  • 1.0
  • 0.2.0-rc12
  • 0.2.0-rc11
  • 0.2.0-rc10
  • 0.2.0-rc9
  • 0.2.0-rc8
  • 0.2.0-rc7
  • 0.2.0-rc6
37 results

htslib

  • Clone with SSH
  • Clone with HTTPS
  • user avatar
    James Bonfield authored and Rob Davies committed
    1) When skipping past slices to find one that overlaps the start of
    our region, don't free container here (affects non-threading also).
    Fixes a crash reported by xiaofeng.liu@sentieon.com.
    
    2) Don't cache cram_get_block_by_id values in the codec as multiple
    slices may be decoding in parallel using the same codec.  This also
    removes the need for the reset function.
    
    Instead we use the already existing per-slice lookup array, but
    improved so it works (mostly without linear scan) on large ID aux
    blocks too.  We could conceivably go the whole hog of using a hash
    table, but I think it's overkill and this is minimum code.
    
    3) We now distinguish between fd->ctr, c->curr_slice (being consumed
    by get_seq calls) and fd->ctr_mt, c->curr_slice_mt (the read-ahead
    for dispatching thread tasks).  Similarly for EOF / OOC (out of
    container) parameters.
    
    4) Cram multi-threaded flush now does the freeing of containers
    better.
    
    5) Added a larger input file of 1000 reads and a test using
    multi-slice containers.
    
    Also added the ability to debug the test harness with e.g. valgrind
    
    Set the TEST_PRECMD first.  For example:
    
        TEST_PRECMD="valgrind --leak-check=full" make check
    6b6c8a3f
    History

    HTSlib is an implementation of a unified C library for accessing common file formats, such as SAM, CRAM and VCF, used for high-throughput sequencing data, and is the core library used by samtools and bcftools. HTSlib only depends on zlib. It is known to be compatible with gcc, g++ and clang.

    HTSlib implements a generalized BAM index, with file extension .csi (coordinate-sorted index). The HTSlib file reader first looks for the new index and then for the old if the new index is absent.

    This project also includes the popular tabix indexer, which indexes both .tbi and .csi formats, and the bgzip compression utility.

    Building HTSlib

    See INSTALL for complete details. Release tarballs contain generated files that have not been committed to this repository, so building the code from a Git repository requires extra steps:

    autoheader     # If using configure, generate the header template...
    autoconf       # ...and configure script (or use autoreconf to do both)
    ./configure    # Optional, needed for choosing optional functionality
    make
    make install