Download the source code here: samtools-1.12.tar.bz2.
(The "Source code" downloads are generated by GitHub and are incomplete as they don't bundle HTSlib and are missing some generated files.)
-
The legacy samtools API (
libbam.a
,bam.h
,sam.h
, etc) has not been actively maintained since 2015. It is deprecated and will be removed entirely in a future SAMtools release. We recommend coding against the HTSlib API directly. -
I/O errors and record parsing errors during the reading of SAM/BAM/CRAM files are now always detected. Thanks to John Marshall (#1379; fixed #101)
-
New make targets have been added:
check-all
,test-all
,distclean-all
,mostlyclean-all
,testclean-all
, which allow SAMtools installations to call corresponding Makefile targets from embedded HTSlib installations. -
samtools --version
now displays a summary of the compilation details and available features, including flags, used libraries and enabled plugins from HTSlib. As an alias,samtools version
can also be used. (#1371) -
samtools stats
now displays the number of supplementary reads in theSN
section. Also, supplementary reads are no longer considered when splitting read pairs by orientation (inward, outward, other). (#1363) -
samtools stats
now counts only the filtered alignments that overlap target regions, if any are specified. (#1363) -
samtools view
now accepts option-N
, which takes a file containing read names of interest. This allows the output of only the reads with names contained in the given file. Thanks to Daniel Cameron. (#1324) -
samtools view
-d
option now works without a tag associated value, which allows it to output all the reads with the given tag. (#1339; fixed #1317) -
samtools view
-d
and-D
options now accept integer and single character values associated with tags, not just strings. Thanks to @darioMe and Keiran Raine for the suggestions. (#1357, #1392) -
samtools view
now works with the filtering expressions introduced by HTSlib. The filtering expression is passed to the program using the specific option-e
or the global long option--input-fmt-option
. E.g.samtools view -e 'qname =~ "#49$" && mrefid != refid && refid != -1 && mrefid != -1' align.bam
looks for records with query-name ending in
#49
that have their mate aligned in a different chromosome. More details can be found in the FILTER EXPRESSIONS section of the main man page. (#1346) -
samtools markdup
now benefits from an increase in performance in the situation when a single read has tens or hundreds of thousands of duplicates. Thanks to @denriquez for reporting the issue. (#1345; fixed #1325) -
The documentation for
samtools ampliconstats
has been added to the samtools man page. (#1351) -
A new FASTA/FASTQ sanitizer script (
fasta-sanitize.pl
) was added, which corrects the invalid characters in the reference names. (#1314) Thanks to John Marshall for the installation fix. (#1353) -
The CI scripts have been updated to recurse the HTSlib submodules when cloning HTSlib, to accommodate for the CRAM codecs, which now reside in the htscodecs submodule. (#1359)
-
The CI integrations now include Cirrus-CI rather than Travis. (#1335; #1365)
-
Updated the Windows image used by Appveyor to 'Visual Studio 2019'. (#1333; fixed #1332)
-
Fixed a bug in
samtools cat
, which prevented the command from running in multi-threaded mode. Thanks to Alex Leonard for reporting the issue. (#1337; fixed #1336) -
A couple of invalid CIGAR strings have been corrected in the test data. (#1343)
-
The documentation for
samtools depth -s
has been improved. Thanks to @wulj2. (#1355) -
Fixed a
samtools merge
segmentation fault when it failed to merge header@PG
records. Thanks to John Marshall. (#1394; reported by Kemin Zhou in #1393) -
Ampliconclip and ampliconstats now guard against the BED file containing more than one reference (chromosome) and fail when found. Adding proper support for multiple references will appear later. (#1398)