Skip to content

Staden Io_lib v1.14.9

Compare
Choose a tag to compare
@jkbonfield jkbonfield released this 10 Feb 12:32
· 271 commits to master since this release

Version 1.14.9 (9th February 2017)

Updates:

  • BAM: Added CRC checking. Bizarrely this was absent here and in most
    other BAM implementations too. Pure BAM decode of an uncompressed
    BAM is around 9% slower and compressed BAM to compressed BAM is
    almost identical. The most significant hit is reading uncompressed
    BAM (and doing nothing else) which is 120% slower as CRC dominates.
    Options are available to disable the CRC checking incase this is an
    issue (scramble -!).
  • CRAM: Now supports bgziped fasta references.
  • CRAM/SAM: Headers are now kept in the same basic type order while
    transcoding. (Eg all @pg before all @sq, or vice versa, depending on
    input ordering.)
  • CRAM: Compression level 1 is now faster but larger. (The old -1 and
    -2 were too similar.)
  • CRAM: Improved compression efficiency in some files, when switching
    from sorted to unsorted data.
  • CRAM: Various speedups relating to memory handling,
    multi-threaded performance and the rANS codec.
  • CRAM: Block CRC checks are now only done when the block is used,
    speeding up multi-threading and tools that do not decode all blocks
    (eg flagstat).
  • Scramble -g and -G options to generate and reuse bgzip indices when
    reading and writing BAM files.
  • Scramble -q option to omit updating the @pg header records.
  • Experimental cram_filter tool has been added, to rapidly produce
    cram subsets.
  • Migrated code base to git. Use github for primary repository.

Bug fixes:

  • BAM: Fixed the bin value calculation for placed but unmapped reads.
  • CRAM: Fixed file descriptor leak in refs_load_fai().
  • CRAM: Fixed a crash in MD5 calculation for sequences beyond the
    reference end.
  • CRAM: Bug fixes when encoding malformed @sq records.
  • CRAM: Fixed a rare renormalisation bug in rANS codec.
  • Fixed tests so make -j worked.
  • Removed ancient, broken and unused popen() code.