11Noteworthy changes in release a.b
22~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33
4+ Features and Updates
5+ --------------------
6+
7+ * Added experimental CRAM 3.1 and 4.0 support. (#929)
8+
9+ These should not be used for long term data storage as the
10+ specification still needs to be ratified by GA4GH and may be subject
11+ to changes in format. (This is highly likely for 4.0). However it
12+ may be tested using:
13+
14+ test/test_view -t ref.fa -C -o version=3.1 in.bam -p out31.cram
15+
16+ For smaller but slower files, try varying the compression profile
17+ with an additional "-o small". Profile choices are fast, normal,
18+ small and archive, and can be applied to all CRAM versions.
19+
20+ * Added a general filtering syntax for alignment records in SAM/BAM/CRAM
21+ readers. (#1181, #1203)
22+
23+ An example to find chromosome spanning read-pairs with high mapping
24+ quality: 'mqual >= 30 && mrname != rname'
25+
26+ To find significant sized deletions:
27+ 'cigar =~ "[0-9]{2}D"' or 'rlen - qlen > 10'.
28+
29+ To report duplicates that aren't part of a "proper pair":
30+ 'flag.dup && !flag.proper_pair'
31+
32+ More details are in the samtools.1 man page under "FILTER EXPRESSIONS".
33+
434* The knet networking code has been removed. It only supported the http
535 and ftp protocols, and a better and safer alternative using libcurl
636 has been available since release 1.3. If you need access to ftp:// and
@@ -9,6 +39,117 @@ Noteworthy changes in release a.b
939* The old htslib/knetfile.h interfaces have been marked as deprecated. Any
1040 code still using them should be updated to use hFILE instead. (#1200)
1141
42+ * Added an introspection API for checking some of the capabilities provided
43+ by HTSlib. (#1170) Thanks also to John Marshall for contributions. (#1222)
44+ - `hfile_list_schemes`: returns the number of schemes found
45+ - `hfile_list_plugins`: returns the number of plugins found
46+ - `hfile_has_plugin`: checks if a specific plugin is available
47+ - `hts_features`: returns a bit mask with all available features
48+ - `hts_test_feature`: test if a feature is available
49+ - `hts_feature_string`: return a string summary of enabled features
50+
51+ * Made performance improvements to `probaln_glocal` method, which
52+ speeds up mpileup BAQ calculations. (#1188)
53+ - Caching of reused loop variables and removal of loop invariants
54+ - Code reordering to remove instruction latency.
55+ - Other refactoring and tidyups.
56+
57+ * Added a public method for constructing a BAM record from the
58+ component pieces. Thanks to Anders Kaplan. (#1159, #1164)
59+
60+ * Added two public methods, `sam_parse_cigar` and `bam_parse_cigar`, as part of
61+ a small CIGAR API (#1169, #1182). Thanks to Daniel Cameron for input. (#1147)
62+
63+ * HTSlib, and the included htsfile program, will now recognise the old
64+ RAZF compressed file format. Note that while the format is detected,
65+ HTSlib is unable to read it. It is recommended that RAZF files are
66+ uncompressed with `gunzip` before using them with HTSlib. Thanks to
67+ John Marshall (#1244); and Matthew J. Oldach who reported problems
68+ with uncompressing some RAZF files (samtools/samtools#1387).
69+
70+ * The S3 plugin now has options to force the address style. It will recognise
71+ the addressing_style and host_bucket entries in the respective aws
72+ .credentials and s3cmd .s3cfg files. There is also a new HTS_S3_ADDRESS_STYLE
73+ environment variable. Details are in the htslib-s3-plugin.7 man file (#1249).
74+
75+ Build changes
76+ -------------
77+
78+ These are compiler, configuration and makefile based changes.
79+
80+ * Added new Makefile targets for the applications that embed HTSlib and
81+ want to run its test suite or clean its generated artefacts. (#1230, #1238)
82+
83+ * The CRAM codecs are now obtained via the htscodecs submodule, hence
84+ when cloning it is now best to use "git clone --recursive". In an
85+ existing clone, you may use "git submodule update --init" to obtain
86+ the htscodecs submodule checkout.
87+
88+ * Updated CI test configuration to recurse HTSlib submodules. (#1359)
89+
90+ * Added Cirrus-CI integration as a replacement for Travis, which was
91+ phased out. (#1175; #1212)
92+
93+ * Updated the Windows image used by Appveyor to 'Visual Studio 2019'. (#1172;
94+ fixed #1166)
95+
96+ * Fixed a buglet in configure.ac, exposed by the release 2.70 of autoconf.
97+ Thanks to John Marshall. (#1198)
98+
99+ * Fixed plugin linking on macOS, to prevent symbol conflict when linking
100+ with a static HTSlib. Thanks to John Marshall. (#1184)
101+
102+ * Fixed a clang++9 error in `cram_io.h`. Thanks to Pjotr Prins. (#1190)
103+
104+ * Introduced $(ALL_CPPFLAGS) to allow for more flexibility in setting the
105+ compiler flags. Thanks to John Marshall. (#1187)
106+
107+ * Added 'fall through' comments to prevent warnings issued by Clang on
108+ intentional fall through case statements, when building with
109+ `-Wextra flag`. Thanks to John Marshall. (#1163)
110+
111+ * Non-configure builds now define _XOPEN_SOURCE=600 to allow them to work
112+ when the `gcc -std=c99` option is used. Thanks to John Marshall. (#1246)
113+
114+ Bug fixes
115+ ---------
116+
117+ * Fixed VCF `#CHROM` header parsing to only separate columns at tab characters.
118+ Thanks to Sam Morris for reporting the issue.
119+ (#1237; fixed samtools/bcftools#1408)
120+
121+ * Fixed a crash reported in `bcf_sr_sort_set`, which expects REF to be present.
122+ (#1204; fixed samtools/bcftools#1361)
123+
124+ * Fixed a bug in the overlapping logic of mpileup, dealing with iterating over
125+ CIGAR segments. Thanks to `@wulj2` for the analysis. (#1202; fixed #1196)
126+
127+ * Fixed a tabix bug that prevented setting the correct number of lines to be
128+ skipped in a region file. Thanks to Jim Robinson for reporting it. (#1189;
129+ fixed #1186)
130+
131+ * Made `bam_itr_next` an alias for `sam_itr_next`, to prevent it from crashing
132+ when working with htsFile pointers. Thanks to Torbjörn Klatt for
133+ reporting it. (#1180; fixed #1179)
134+
135+ * Fixed once per outgoing multi-threaded block `bgzf_idx_flush` assertion, to
136+ accommodate situations when a single record could span multiple blocks.
137+ Thanks to `@lacek`. (#1168; fixed samtools/samtools#1328)
138+
139+ * Fixed assumption of pthread_t being a non-structure, as permitted by POSIX.
140+ Thanks also to John Marshall and Anders Kaplan. (#1167, #1153, #1153)
141+
142+ * Fixed the minimum offset of a BAI index bin, to account for unmapped reads.
143+ Thanks to John Marshall for spotting the issue. (#1158; fixed #1142)
144+
145+ * Fixed the CRLF handling in `sam_parse_worker` method. Thanks to
146+ Anders Kaplan. (#1149; fixed #1148)
147+
148+ * Included unistd.h and erro.h directly in HTSlib files, as opposed to
149+ including them indirectly, via third party code. Thanks to
150+ Andrew Patterson (#1143) and John Marshall (#1145).
151+
152+
12153Noteworthy changes in release 1.11 (22nd September 2020)
13154~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14155
0 commit comments