Skip to content

1.13

Compare
Choose a tag to compare
@valeriuo valeriuo released this 09 Jul 11:13
· 542 commits to develop since this release

Download the source code here: htslib-1.13.tar.bz2.(The "Source code" downloads are generated by GitHub and are incomplete as they are missing some generated files.)

Features and Updates

  • In case a PG header line has multiple ID tags supplied by other applications, the header API now selects the first one encountered as the identifying tag and issues a warning when detecting subsequent ID tags. (#1256; fixed samtools/samtools#1393)

  • VCF header reading function (vcf_hdr_read) no longer tries to download a remote index file by default. (#1266; fixes #380)

  • Support reading and writing FASTQ format in the same way as SAM, BAM or CRAM. Records read from a FASTQ file will be treated as unmapped data. (#1156)

  • Added GCP requester pays bucket access. Thanks to @indraniel. (#1255)

  • Made mpileup's overlap removal choose which copy to remove at random instead of always removing the second one. This avoids strand bias in experiments where the +ve and -ve strand reads always appear in the same order. (#1273; fixes samtools/bcftools#1459)

  • It is now possible to use platform specific BAQ parameters. This also selects long-read parameters for read lengths bigger than 1kb, which helps bcftools mpileup call SNPs on PacBio CCS reads. (#1275)

  • Improved bcf_remove_allele_set. This fixes a bug that stopped iteration over alleles prematurely, marks removed alleles as 'missing' and does automatic lazy unpacking. (#1288; fixes #1259)

  • Improved compression metrics for unsorted CRAM files. This improves the choice of codecs when handling unsorted data. (#1291)

  • Linear index entries for empty intervals are now initialised with the file offset in the next non-empty interval instead of the previous one. This may reduce the amount of data iterators have to discard before reaching the desired region, when the starting location is in a sequence gap. Thanks to @CarsonH for reporting the issue. (#1286; fixes #486)

  • A new hts_bin_level API function has been added, to compute the level of a given bin in the binning index. (#1286)

  • Related to the above, a new API method, hts_idx_nseq, now returns the total number of contigs from an index. (#1295 and #1299)

  • Added bracket handling to bcf_hdr_parse_line, for use with ##META lines. Thanks to Alberto Casas Ortiz. (#1240)

Build changes

These are compiler, configuration and makefile based changes.

  • HTSlib now uses libhtscodecs release 1.1.1.

  • Added a curl/curl.h check to configure and improved INSTALL documentation on build options. Thanks to Melanie Kirsche and John Marshall. (#1265; fixes #1261)

  • Some fixes to address GCC 11.1 warnings. (#1280, #1284, #1285; fixes #1283)

  • Supports building HTSlib in a separate directory. Thanks to John Marshall. (#1277; fixes #231)

  • Supports building HTSlib on MinGW 32-bit environments. Thanks to John Marshall. (#1301)

Bug fixes

  • Fixed hts_itr_query() et al region queries: fixed bug introduced in HTSlib 1.12, which led to iterators producing very few reads for some queries (especially for larger target regions) when unmapped reads were present. HTSlib 1.11 had a related problem in which iterators would omit a few unmapped reads that should have been produced; cf #1142. Thanks to Daniel Cooke for reporting the issue. (#1281; fixes #1279)

  • Removed compressBound assertions on opening bgzf files. Thanks to Gurt Hulselmans for reporting the issue. (#1258; fixed #1257)

  • Duplicate sample name error message for a VCF file now only displays the duplicated name rather the entire same name list. (#1262; fixes samtools/bcftools#1451)

  • Fix to make samtools cat work on CRAMs again. (#1276; fixes samtools/samtools#1420)

  • Fix for a double memory free in SAM header creation. Thanks to @ihsinme. (#1274)

  • Prevent assert in bcf_sr_set_regions. Thanks to Dr K D Murray. (#1270)

  • Fixed crash in knet_open() etc stubs. Thanks to John Marshall. (#1289)

  • Fixed filter expression "cigar" on unmapped reads. Stop treating an empty CIGAR string as an error. Thanks to Chang Y for reporting the issue. (#1298, fixes samtools/samtools#1445)

  • Bug fixes in the bundled copy of htscodecs:

    • Fixed an uninitialized access in the name tokeniser decoder. (samtools/htscodecs#23)

    • Fixed a bug with name tokeniser and variable number of names per slice, causing it to incorrectly report an error on certain valid inputs. (samtools/htscodecs#24)