|
| 1 | +Noteworthy changes in release 1.18 (25th July 2023) |
| 2 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 3 | + |
| 4 | +Updates |
| 5 | +------- |
| 6 | + |
| 7 | +* Using CRAM 3.1 no longer gives a warning about the specification |
| 8 | + being draft. Note CRAM 3.0 is still the default output format. |
| 9 | + (PR#1583) |
| 10 | + |
| 11 | +* Replaced use of sprintf with snprintf, to silence potential warnings |
| 12 | + from Apple's compilers and those who implement similar checks. |
| 13 | + (PR#1594, fixes #1586. Reported by Oleksii Nikolaienko) |
| 14 | + |
| 15 | +* Fastq output will now generate empty records for reads with no |
| 16 | + sequence data (i.e. sequence is "*" in SAM format). (PR#1576, |
| 17 | + fixes samtools/samtools#1576. Reported by Nils Homer) |
| 18 | + |
| 19 | +* CRAM decoding speed-ups. (PR#1580) |
| 20 | + |
| 21 | +* A new MN aux tag can now be used to verify that MM/ML base modification |
| 22 | + data has not been broken by hard clipping. (PR#1590, PR#1612. See also |
| 23 | + PR samtools/hts-specs#714 and issue samtools/hts-specs#646. |
| 24 | + Reported by Jared Simpson) |
| 25 | + |
| 26 | +* The base modification API has been improved to make it easier for callers |
| 27 | + to tell unchecked bases from unmodified ones. (PR#1636, fixes #1550. |
| 28 | + Requested by Chris Wright) |
| 29 | + |
| 30 | +* A new bam_mods_queryi() API has been added to return additional |
| 31 | + data about the i-th base modification returned by bam_mods_recorded(). |
| 32 | + (PR#1636, fixes #1550 and #1635. Requested by Jared Simpson) |
| 33 | + |
| 34 | +* Speed up index look-ups for whole-chromosome queries. (PR#1596) |
| 35 | + |
| 36 | +* Mpileup now merges adjacent (mis)match CIGAR operations, so CIGARs |
| 37 | + using the X/= operators give the same results as if the M operator |
| 38 | + was used. (PR#1607, fixes #1597. Reported by Marcel Martin) |
| 39 | + |
| 40 | +* It's now possible to call bcf_sr_set_regions() after adding readers |
| 41 | + using bcf_sr_add_reader() (previously this returned an error). Doing so |
| 42 | + will discard any unread data, and reset the readers so they iterate over |
| 43 | + the new regions. (PR#1624, fixes samtools/bcftools#1918. Reported by |
| 44 | + Gregg Thomas) |
| 45 | + |
| 46 | +* The synced BCF reader can now accept regions with reference names including |
| 47 | + colons and hyphens, by enclosing them in curly braces. For example, |
| 48 | + {chr_part:1-1001}:10-20 will return bases 10 to 20 from reference |
| 49 | + "chr_part:1-1001". (PR#1630, fixes #1620. Reported by Bren) |
| 50 | + |
| 51 | +* Add a "samples" directory with code demonstrating usage of HTSlib plus |
| 52 | + a tutorial document. (PR#1589) |
| 53 | + |
| 54 | +Build changes |
| 55 | +------------- |
| 56 | + |
| 57 | +* Htscodecs has been updated to 1.5.1 (PR#1654) |
| 58 | + |
| 59 | +* Htscodecs SIMD code now works with Apple multiarch binaries. |
| 60 | + (PR#1587, HTSlib fix for samtools/htscodecs#76. Reported by John Marshall) |
| 61 | + |
| 62 | +* Improve portability of "expr" usage in version.sh. |
| 63 | + (PR#1593, fixes #1592. Reported by John Marshall) |
| 64 | + |
| 65 | +* Improve portability to *BSD targets by ensuring _XOPEN_SOURCE is defined |
| 66 | + correctly and that source files properly include "config.h". Perl |
| 67 | + scripts also now all use #!/usr/bin/env instead of assuming that |
| 68 | + it's in /usr/bin/perl. (PR#1628, fixes #1606. |
| 69 | + Reported by Robert Clausecker) |
| 70 | + |
| 71 | +* Fixed NAME entry in htslib-s3-plugin man page so the whatis and apropos |
| 72 | + commands find it. (PR#1634, thanks to Étienne Mollier) |
| 73 | + |
| 74 | +* Assorted dependency tracking fixes. (PR#1653, thanks to John Marshall) |
| 75 | + |
| 76 | +Documentation updates |
| 77 | +--------------------- |
| 78 | + |
| 79 | +* Changed Alpine build instructions as they've switched back to using openssl. |
| 80 | + (PR#1609) |
| 81 | + |
| 82 | +* Recommend using -rdynamic when statically linking a libhts.a with |
| 83 | + plugins enabled. (PR#1611, thanks to John Marshall. Fixes #1600, |
| 84 | + reported by Jack Wimberley) |
| 85 | + |
| 86 | +* Fixed example in docs for sam_hdr_add_line(). (PR#1618, thanks to kojix2) |
| 87 | + |
| 88 | +* Improved test harness for base modifications API. (PR#1648) |
| 89 | + |
| 90 | +Bug fixes |
| 91 | +--------- |
| 92 | + |
| 93 | +* Fix a major bug when searching against a CRAM index where one container |
| 94 | + has start and end coordinates entirely contained within the previous |
| 95 | + container. This would occasionally miss data, and sometimes return much |
| 96 | + more than required. The bug affected versions 1.11 to 1.17, although the |
| 97 | + change in 1.11 was bug-fixing multi-threaded index queries. This bug did |
| 98 | + not affect index building. There is no need to reindex your CRAM files. |
| 99 | + (PR#1574, PR#1640. Fixes #1569, #1639, samtools/samtools#1808, |
| 100 | + samtools/samtools#1819. Reported by xuxif, Jens Reeder and Jared Simpson) |
| 101 | + |
| 102 | +* Prevent CRAM blocks from becoming too big in files with short |
| 103 | + sequences but very long aux tags. (PR #1613) |
| 104 | + |
| 105 | +* Fix bug where the CRAM decoder for CONST_INT and CONST_BYTE |
| 106 | + codecs may incorrectly look for extra data in the CORE block. |
| 107 | + Note that this bug only affected the experimental CRAM v4.0 decoder. |
| 108 | + (PR#1614) |
| 109 | + |
| 110 | +* Fix crypt4gh redirection so it works in conjunction with non-file |
| 111 | + IO, such as using htsget. (PR#1577) |
| 112 | + |
| 113 | +* Improve error checking for the VCF POS column, when facing invalid |
| 114 | + data. (PR#1575, replaces #1570 originally reported and fixed |
| 115 | + by Colin Nolan.) |
| 116 | + |
| 117 | +* Improved error checking on VCF indexing to validate the data is BGZF |
| 118 | + compressed. (PR#1581) |
| 119 | + |
| 120 | +* Fix bug where bin number calculation could overflow when making iterators |
| 121 | + over regions that go to the end of a chromosome. (PR#1595) |
| 122 | + |
| 123 | +* Backport attractivechaos/klib#78 (by Pall Melsted) to HTSlib. |
| 124 | + Prevents infinite loops in kseq_read() when reading broken gzip files. |
| 125 | + (PR#1582, fixes #1579. Reported by Goran Vinterhalter) |
| 126 | + |
| 127 | +* Backport attractivechaos/klib@384277a (by innoink) to HTSlib. |
| 128 | + Fixes the kh_int_hash_func2() macro definition. |
| 129 | + (PR#1599, fixes #1598. Reported by fanxinping) |
| 130 | + |
| 131 | +* Remove a compilation warning on systems with newer libcurl releases. |
| 132 | + (PR#1572) |
| 133 | + |
| 134 | +* Windows: Fixed BGZF EOF check for recent MinGW releases. (PR#1601, |
| 135 | + fixes samtools/bcftools#1901) |
| 136 | + |
| 137 | +* Fixed bug where tabix would not return the correct regions for files |
| 138 | + where the column ordering is end, ..., begin instead of begin, ..., end. |
| 139 | + (PR#1626, fixes #1622. Reported by Hiruna Samarakoon) |
| 140 | + |
| 141 | +* sam_format_aux1() now always NUL-terminates Z/H tags. (PR#1631) |
| 142 | + |
| 143 | +* Ensure base modification iterator is reset when no MM tag is present. |
| 144 | + (PR#1631, PR#1647) |
| 145 | + |
| 146 | +* Fix segfault when attempting to write an uncompressed BAM file opened using |
| 147 | + hts_open(name, "wbu"). This was attempting to write BAM data without |
| 148 | + wrapping it in BGZF blocks, which is invalid according to the BAM |
| 149 | + specification. "wbu" is now internally converted to "wb0" to output |
| 150 | + uncompressed data wrapped in BGZF blocks. (PR#1632, fixes #1617. |
| 151 | + Reported by Joyjit Daw) |
| 152 | + |
| 153 | +* Fixed over-strict bounds check in probaln_glocal() which caused it to make |
| 154 | + sub-optimal alignments when the requested band width was greater than the |
| 155 | + query length. (PR#1616, fixes #1605. Reported by Jared Simpson) |
| 156 | + |
| 157 | +* Fixed possible double frees when handling errors in bcf_hdr_add_hrec(), |
| 158 | + if particular memory allocations fail. (PR#1637) |
| 159 | + |
| 160 | +* Ensure that bcf_hdr_remove() clears up all pointers to the items removed |
| 161 | + from dictionaries. Failing to do this could have resulted in a call |
| 162 | + requesting a deleted item via bcf_hdr_get_hrec() returning a stale pointer. |
| 163 | + (PR#1637) |
| 164 | + |
| 165 | +* Stop the gzip decompresser from finishing prematurely when an empty |
| 166 | + gzip block is followed by more data. (PR#1643, PR#1646) |
| 167 | + |
1 | 168 | Noteworthy changes in release 1.17 (21st February 2023)
|
2 | 169 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
3 | 170 |
|
|
0 commit comments