Skip to content

Commit fc13b08

Browse files
committed
Release 1.13
2 parents 06e3645 + 186dc93 commit fc13b08

File tree

127 files changed

+18134
-12865
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

127 files changed

+18134
-12865
lines changed

HMM.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* The MIT License
22
3-
Copyright (c) 2014-2015 Genome Research Ltd.
3+
Copyright (c) 2014-2017 Genome Research Ltd.
44
55
Author: Petr Danecek <[email protected]>
66

HMM.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* The MIT License
22
3-
Copyright (c) 2014-2015 Genome Research Ltd.
3+
Copyright (c) 2014-2016 Genome Research Ltd.
44
55
Author: Petr Danecek <[email protected]>
66

INSTALL

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ The latest source code can be downloaded from github and compiled using:
1515
---
1616
In order to use the BCFtools plugins, this environment variable must be set and point
1717
to the correct location
18-
18+
1919
export BCFTOOLS_PLUGINS=/path/to/bcftools/plugins
2020

2121
---
@@ -100,14 +100,20 @@ Compilation
100100
./configure
101101
make
102102

103-
If installing from a tarballs (as opposed form github), BCFtools release
104-
contains a copy of HTSlib which will be used to build BCFtools. If you
103+
If installing from a release (as opposed to from GitHub), the BCFtools release
104+
tarball contains a copy of HTSlib which will be used to build BCFtools. If you
105105
already have a system-installed HTSlib or another HTSlib that you would
106106
prefer to build against, you can arrange this by using the configure script's
107107
--with-htslib option. Use --with-htslib=DIR to point to an HTSlib source tree
108-
or installation in DIR; or --with-htslib=system to use a system-installed HTSlib.
109-
When downloaded from github and --with-htslib option is not given, the directory
110-
../htslib is used.
108+
or installation in DIR (if the desired source tree has been configured to
109+
build in a separate build directory, DIR should refer to the build directory);
110+
or use --with-htslib=system to ignore any nearby HTSlib source tree and use
111+
only a system-installed HTSlib.
112+
113+
When --with-htslib is not used, configure looks for an HTSlib source tree
114+
within or alongside the BCFtools source directory; if there are several
115+
likely candidates, you will have to use --with-htslib to choose one. When
116+
using make without running configure first, the directory ../htslib is used.
111117

112118

113119
Optional Compilation with Perl

LICENSE

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ the INSTALL document), the use of this software is governed by the GPL license.
99

1010
The MIT/Expat License
1111

12-
Copyright (C) 2012-2014 Genome Research Ltd.
12+
Copyright (C) 2012-2021 Genome Research Ltd.
1313

1414
Permission is hereby granted, free of charge, to any person obtaining a copy
1515
of this software and associated documentation files (the "Software"), to deal
@@ -746,3 +746,28 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
746746
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
747747
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
748748
THE SOFTWARE.
749+
750+
-----------------------------------------------------------------------------
751+
752+
LICENSE for utlist.h
753+
754+
Copyright (c) 2007-2014, Troy D. Hanson http://troydhanson.github.com/uthash/
755+
All rights reserved.
756+
757+
Redistribution and use in source and binary forms, with or without
758+
modification, are permitted provided that the following conditions are met:
759+
760+
* Redistributions of source code must retain the above copyright
761+
notice, this list of conditions and the following disclaimer.
762+
763+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
764+
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
765+
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
766+
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
767+
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
768+
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
769+
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
770+
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
771+
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
772+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
773+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Makefile

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Makefile for bcftools, utilities for Variant Call Format VCF/BCF files.
22
#
3-
# Copyright (C) 2012-2017 Genome Research Ltd.
3+
# Copyright (C) 2012-2021 Genome Research Ltd.
44
#
55
# Author: Petr Danecek <[email protected]>
66
#
@@ -42,7 +42,7 @@ OBJS = main.o vcfindex.o tabix.o \
4242
regidx.o smpl_ilist.o csq.o vcfbuf.o \
4343
mpileup.o bam2bcf.o bam2bcf_indel.o bam_sample.o \
4444
vcfsort.o cols.o extsort.o dist.o abuf.o \
45-
ccall.o em.o prob1.o kmin.o
45+
ccall.o em.o prob1.o kmin.o str_finder.o
4646
PLUGIN_OBJS = vcfplugin.o
4747

4848
prefix = /usr/local
@@ -104,7 +104,7 @@ endif
104104

105105
include config.mk
106106

107-
PACKAGE_VERSION = 1.12
107+
PACKAGE_VERSION = 1.13
108108

109109
# If building from a Git repository, replace $(PACKAGE_VERSION) with the Git
110110
# description of the working tree: either a release tag with the same value
@@ -233,6 +233,7 @@ abuf_h = abuf.h $(htslib_vcf_h)
233233
bam2bcf_h = bam2bcf.h $(htslib_hts_h) $(htslib_vcf_h)
234234
bam_sample_h = bam_sample.h $(htslib_sam_h)
235235

236+
str_finder.o: str_finder.h utlist.h
236237
main.o: main.c $(htslib_hts_h) config.h version.h $(bcftools_h)
237238
vcfannotate.o: vcfannotate.c $(htslib_vcf_h) $(htslib_synced_bcf_reader_h) $(htslib_kseq_h) $(htslib_khash_str2int_h) $(bcftools_h) vcmp.h $(filter_h) $(convert_h) $(smpl_ilist_h) regidx.h $(htslib_khash_h)
238239
vcfplugin.o: vcfplugin.c config.h $(htslib_vcf_h) $(htslib_synced_bcf_reader_h) $(htslib_kseq_h) $(htslib_khash_str2int_h) $(bcftools_h) vcmp.h $(filter_h)
@@ -273,9 +274,9 @@ dist.o: dist.c dist.h
273274
cols.o: cols.c cols.h
274275
regidx.o: regidx.c $(htslib_hts_h) $(htslib_kstring_h) $(htslib_kseq_h) $(htslib_khash_str2int_h) regidx.h
275276
consensus.o: consensus.c $(htslib_vcf_h) $(htslib_kstring_h) $(htslib_synced_bcf_reader_h) $(htslib_kseq_h) $(htslib_bgzf_h) regidx.h $(bcftools_h) rbuf.h $(filter_h)
276-
mpileup.o: mpileup.c $(htslib_sam_h) $(htslib_faidx_h) $(htslib_kstring_h) $(htslib_khash_str2int_h) regidx.h $(bcftools_h) $(bam2bcf_h) $(bam_sample_h) $(gvcf_h)
277+
mpileup.o: mpileup.c $(htslib_sam_h) $(htslib_faidx_h) $(htslib_kstring_h) $(htslib_khash_str2int_h) $(htslib_hts_os_h) regidx.h $(bcftools_h) $(bam2bcf_h) $(bam_sample_h) $(gvcf_h)
277278
bam2bcf.o: bam2bcf.c $(htslib_hts_h) $(htslib_sam_h) $(htslib_kstring_h) $(htslib_kfunc_h) $(bam2bcf_h) mw.h
278-
bam2bcf_indel.o: bam2bcf_indel.c $(htslib_hts_h) $(htslib_sam_h) $(htslib_khash_str2int_h) $(bam2bcf_h) $(htslib_ksort_h)
279+
bam2bcf_indel.o: bam2bcf_indel.c $(htslib_hts_h) $(htslib_sam_h) $(htslib_khash_str2int_h) $(bam2bcf_h) $(htslib_ksort_h) str_finder.h
279280
bam_sample.o: bam_sample.c $(htslib_hts_h) $(htslib_kstring_h) $(htslib_khash_str2int_h) $(khash_str2str_h) $(bam_sample_h) $(bcftools_h)
280281
version.o: version.h version.c
281282
hclust.o: hclust.c $(htslib_hts_h) $(htslib_kstring_h) $(bcftools_h) hclust.h
@@ -320,10 +321,10 @@ test/test-regidx: test/test-regidx.o regidx.o | $(HTSLIB)
320321

321322
# make docs target depends the a2x asciidoc program
322323
doc/bcftools.1: doc/bcftools.txt
323-
cd doc && a2x -adate="$(DOC_DATE)" -aversion=$(DOC_VERSION) --doctype manpage --format manpage bcftools.txt
324+
cd doc && asciidoctor -adate="$(DOC_DATE)" -aversion=$(DOC_VERSION) -b manpage -a linkcss -a stylesheet=docbook-xsl.css bcftools.txt
324325

325326
doc/bcftools.html: doc/bcftools.txt
326-
cd doc && a2x -adate="$(DOC_DATE)" -aversion=$(DOC_VERSION) --doctype manpage --format xhtml bcftools.txt
327+
cd doc && asciidoctor -adate="$(DOC_DATE)" -aversion=$(DOC_VERSION) -b html5 -a linkcss -a stylesheet=docbook-xsl.css bcftools.txt
327328

328329
docs: doc/bcftools.1 doc/bcftools.html
329330

NEWS

Lines changed: 160 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,164 @@
1-
## Release 1.12 (17th March 2021)
1+
## Release 1.13 (7th July 2021)
2+
3+
4+
This release brings new options and significant changes in BAQ parametrization
5+
in `bcftools mpileup`. The previous behavior can be triggered by providing
6+
the `--config 1.12` option. Please see https://github.com/samtools/bcftools/pull/1474
7+
for details.
8+
9+
10+
Changes affecting the whole of bcftools, or multiple commands:
11+
12+
* Improved build system
13+
14+
15+
Changes affecting specific commands:
16+
17+
* bcftools annotate:
18+
19+
- Fix rare a bug when INFO/END is present, all INFO fields are removed
20+
with `bcftools annotate -x INFO` and BCF output is produced. Then the
21+
removed INFO/END continues to inform the end coordinate and causes
22+
incorrect retrieval of records with the -r option (#1483)
23+
24+
- Support for matching annotation line by ID, in addition to CHROM,POS,REF,
25+
and ALT (#1461)
26+
27+
bcftools annotate -a annots.tab.gz -c CHROM,POS,~ID,REF,ALT,INFO/END input.vcf
28+
29+
* bcftools csq:
30+
31+
- When GFF and VCF/fasta use a different chromosome naming convention
32+
(e.g. chrX vs X), no consequences would be added. Newly the program
33+
attempts to detect these differences and remove/add the "chr" prefix
34+
to chromosome name to match the GFF and VCF/fasta (#1507)
235

36+
- Parametrize brief-predictions parameter to allow explicit number of
37+
aminoacids to be printed. Note that the `-b, --brief-predictions` option
38+
is being replaced with `-B, --trim-protein-seq INT`
39+
40+
* bcftools +fill-tags:
41+
42+
- Generalization and better support for custom functions that allow
43+
adding new INFO tags based on arbitrary `-i, --include` type of
44+
expressions. For example, to calculate a missing INFO/DP annotation
45+
from FORMAT/AD, it is possible to use:
46+
47+
-t 'DP:1=int(sum(FORMAT/AD))'
48+
49+
Here the optional ":1" part specifies that a single value will be
50+
added (by default Number=. is used) and the optional int(...) adds
51+
an integer value (by default Type=Float is used).
52+
53+
- When FORMAT/GT is not present, the INFO/AF tag will be newly calculated
54+
from INFO/AC and INFO/AN.
55+
56+
* bcftools gtcheck:
57+
58+
- Switch between FORMAT/GT or FORMAT/PL when one is (implicitly) requested
59+
but only the other is available
60+
61+
- Improve diagnostics, printing warnings when a line cannot be matched and
62+
the number of lines skipped for various reasons (#1444)
63+
64+
- Minor bug fix, with PLs being the default, the `--distinctive-sites` option
65+
started to require explicit `--error-probability 0`
66+
67+
* bcftools index:
68+
69+
- The program now accepts both data file name and the index file name. This
70+
adds to user convenience when running index statistics (-n, -s)
71+
72+
* bcftools isec:
73+
74+
- Always generate sites.txt with isec -p (#1462)
75+
76+
* bcftools +mendelian:
77+
78+
- Consider only complete trios, do not crash on sample name typos (#1520)
79+
80+
* bcftools mpileup:
81+
82+
- New `--seed` option for reproducibility of subsampling code in HTSlib
83+
84+
- The SCR annotation which shows the number of soft-clipped reads now
85+
correctly pools reads together regardless of the variant type. Previously
86+
only reads with indels were included at indel sites.
87+
88+
- Major revamp of BAQ. Please see https://github.com/samtools/bcftools/pull/1474
89+
for details. The previous behavior can be triggered by providing the `--config 1.12`
90+
option.
91+
92+
- Thanks to improvements in HTSlib, the removal of overlapping reads (which can
93+
be disabled with the `-x, --ignore-overlaps` options) is not systematically biased
94+
anymore (https://github.com/samtools/htslib/pull/1273)
95+
96+
- Modified scale of Mann-Whitney U tests. Newly INFO/*Z annotations will be printed,
97+
for example MQBZ replaces MQB.
98+
99+
* bcftools norm:
100+
101+
- Fix Type=Flag output in `norm --atomize` (#1472)
102+
103+
- Atomization must not discard ALT=. records
104+
105+
- Atomization of AD and QS tags now correctly updates occurrences of duplicate
106+
alleles within different haplotypes
107+
108+
- Fix a bug in atomization of Number=A,R tags
109+
110+
* bcftools reheader:
111+
112+
- Add `-T, --temp-prefix` option
113+
114+
* bcftools +setGT:
115+
116+
- A wider range of genotypes can be set by the plugin by allowing
117+
specifying custom genotypes. For example, to force a heterozygous
118+
genotype it is now possible to use expressions like:
119+
120+
c:'m|M'
121+
c:0/1
122+
c:0
123+
124+
* bcftools +split-vep:
125+
126+
- New `-u, --allow-undef-tags` option
127+
128+
- Better handling of ambiguous keys such as INFO/AF and CSQ/AD. The
129+
`-p, --annot-prefix` option is now applied before doing anything else
130+
which allows its use with `-f, --format` and `-c, --columns` options.
131+
132+
- Some consequence field names may not constitute a valid tag name, such
133+
as "pos(1-based)". Newly field names are trimmed to exclude brackets.
134+
135+
* bcftools +tag2tag:
136+
137+
- New --QR-QA-to-QS option to convert annotations generated by Freebays
138+
to QS used by BCFtools
139+
140+
* bcftools +trio-dnm:
141+
142+
- Add support for sites with more than four alleles. Note that only the
143+
four most frequent alleles are considered, the model remains unchanged.
144+
Previously such sites were skipped.
145+
146+
- New --use-NAIVE option for a naive DNM calling based solely on FORMAT/GT
147+
and expected Mendelian inheritance. This option is suitable for prefiltering.
148+
149+
- Fix behavior to match the documentation, the `--dnm-tag DNG` option now
150+
correctly outputs log scaled values by default, not phred scaled.
151+
152+
- Fix bug in VAF calculation, homozygous de novo variants were incorrectly
153+
reported as having VAF=50%
154+
155+
- Fix arithmetic underflow which could lead to imprecise scores and improve
156+
sensitivity in high coverage regions
157+
158+
- Allow combining --pn and --pns to set the noise trehsholds independently
159+
160+
161+
## Release 1.12 (17th March 2021)
3162

4163
Changes affecting the whole of bcftools, or multiple commands:
5164

README

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,25 @@ SAMtools) and manipulating VCF and BCF files. The program is intended
33
to replace the Perl-based tools from vcftools.
44

55
See INSTALL for building and installation instructions.
6+
7+
Please cite this paper when using BCFtools for your publications:
8+
9+
Twelve years of SAMtools and BCFtools
10+
Petr Danecek, James K Bonfield, Jennifer Liddle, John Marshall, Valeriu Ohan, Martin O Pollard, Andrew Whitwham, Thomas Keane, Shane A McCarthy, Robert M Davies, Heng Li
11+
GigaScience, Volume 10, Issue 2, February 2021, giab008, https://doi.org/10.1093/gigascience/giab008
12+
13+
@article{10.1093/gigascience/giab008,
14+
author = {Danecek, Petr and Bonfield, James K and Liddle, Jennifer and Marshall, John and Ohan, Valeriu and Pollard, Martin O and Whitwham, Andrew and Keane, Thomas and McCarthy, Shane A and Davies, Robert M and Li, Heng},
15+
title = "{Twelve years of SAMtools and BCFtools}",
16+
journal = {GigaScience},
17+
volume = {10},
18+
number = {2},
19+
year = {2021},
20+
month = {02},
21+
abstract = "{SAMtools and BCFtools are widely used programs for processing and analysing high-throughput sequencing data. They include tools for file format conversion and manipulation, sorting, querying, statistics, variant calling, and effect analysis amongst other methods.The first version appeared online 12 years ago and has been maintained and further developed ever since, with many new features and improvements added over the years. The SAMtools and BCFtools packages represent a unique collection of tools that have been used in numerous other software projects and countless genomic pipelines.Both SAMtools and BCFtools are freely available on GitHub under the permissive MIT licence, free for both non-commercial and commercial use. Both packages have been installed \\&gt;1 million times via Bioconda. The source code and documentation are available from https://www.htslib.org.}",
22+
issn = {2047-217X},
23+
doi = {10.1093/gigascience/giab008},
24+
url = {https://doi.org/10.1093/gigascience/giab008},
25+
note = {giab008},
26+
eprint = {https://academic.oup.com/gigascience/article-pdf/10/2/giab008/36332246/giab008.pdf},
27+
}

README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,28 @@ File format specifications live on [HTS-spec GitHub page](http://samtools.github
1616
[samtools](https://github.com/samtools/samtools)
1717
[tabix](https://github.com/samtools/tabix)
1818

19+
### Citing
1920

21+
Please cite this paper when using BCFtools for your publications. http://samtools.github.io/bcftools/howtos/publications.html
22+
23+
> Twelve years of SAMtools and BCFtools </br>
24+
> Petr Danecek, James K Bonfield, Jennifer Liddle, John Marshall, Valeriu Ohan, Martin O Pollard, Andrew Whitwham, Thomas Keane, Shane A McCarthy, Robert M Davies, Heng Li </br>
25+
> _GigaScience_, Volume 10, Issue 2, February 2021, giab008, https://doi.org/10.1093/gigascience/giab008
26+
27+
```
28+
@article{10.1093/gigascience/giab008,
29+
author = {Danecek, Petr and Bonfield, James K and Liddle, Jennifer and Marshall, John and Ohan, Valeriu and Pollard, Martin O and Whitwham, Andrew and Keane, Thomas and McCarthy, Shane A and Davies, Robert M and Li, Heng},
30+
title = "{Twelve years of SAMtools and BCFtools}",
31+
journal = {GigaScience},
32+
volume = {10},
33+
number = {2},
34+
year = {2021},
35+
month = {02},
36+
abstract = "{SAMtools and BCFtools are widely used programs for processing and analysing high-throughput sequencing data. They include tools for file format conversion and manipulation, sorting, querying, statistics, variant calling, and effect analysis amongst other methods.The first version appeared online 12 years ago and has been maintained and further developed ever since, with many new features and improvements added over the years. The SAMtools and BCFtools packages represent a unique collection of tools that have been used in numerous other software projects and countless genomic pipelines.Both SAMtools and BCFtools are freely available on GitHub under the permissive MIT licence, free for both non-commercial and commercial use. Both packages have been installed \\&gt;1 million times via Bioconda. The source code and documentation are available from https://www.htslib.org.}",
37+
issn = {2047-217X},
38+
doi = {10.1093/gigascience/giab008},
39+
url = {https://doi.org/10.1093/gigascience/giab008},
40+
note = {giab008},
41+
eprint = {https://academic.oup.com/gigascience/article-pdf/10/2/giab008/36332246/giab008.pdf},
42+
}
43+
```

0 commit comments

Comments
 (0)