Releases: samtools/bcftools
Release list
1.24
Download the source code here: bcftools-1.24.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.)
Changes affecting the whole of bcftools, or multiple commands:
-
Calculation of MAC and MAF in
-i/-efiltering expressions- Minor allele count and minor allele frequency were calculated incorrectly at multiallelic sites.
Changes affecting specific commands:
-
bcftools +af-dist- New
-s, --samplesto print per-sample HWE probability, geometric mean
- New
-
bcftools annotate-
Fix a bug in annotation renaming via
--rename-annotsand-c NEW:=OLD, where renamingINFO/TAGwould simultaneously rename alsoFORMAT/TAG(#2489) -
Allow annotation of
Number=A,RINFOtags from tab-delimited files when alleles are split across multiple records.
-
-
bcftools cnv- Fix off-by-one error in reporting HMM qualities
-
bcftools convert- Make
--gvcf2vcfwork around malformed gVCF records whereINFO/ENDoverlaps the next record
- Make
-
bcftools csq -
bcftools +fill-tags-
Fix custom functions to use rounding instead of truncation when converting to integer, so that
-t 'MAC:1=float(MAF*AN)'and-t 'MAC:1=int(MAF*AN)'return consistent values. -
Support per-population annotation for embedded functions, such as in
-t 'MAC:1=int(MAF*AN)' -S groups.txt(#2514)
-
-
bcftools +mendelian2- Number of fixes and improvements, including a fix in assigning 1X vs 2X inheritance rules with
-p(#2545)
- Number of fixes and improvements, including a fix in assigning 1X vs 2X inheritance rules with
-
bcftools merge -
bcftools mpileup-
Remove unused experimental
INFO/MIN_PL_SUMannotation -
Add new
FORMAT/QMannotation, to be used with the newbcftools +trio-dnm3 --use-ALMmodel.
-
-
bcftools norm-
Fix a bug in splitting
Type=StringFORMAT fields via-aand-m(#2476) -
Fix erroneous
INFO/ENDrecalculation of symbolic alleles (#2500). -
Added
--no-realign[=NUM]to skip realignment during normalization; when NUM is given, only events longer than NUM bp are skipped. This deprecates the option--do-not-normalize(equivalent to--no-realign=0). See also #2500. -
Convert ambiguous IUPAC bases to their lexicographically first concrete base, as required by the VCF specification (#2551)
-
-
bcftools +prune- When pruning by window length in base pairs, one out-of-window record would be incorrectly accessed. Not only this by-one error would calculate LD in unwanted pair of records, it also led to unexpected behavior when the first out-of-window record would change by filtering (#2475)
-
bcftools roh- Fix off-by-one error in reporting HMM qualities
-
bcftools +split-vep-
Add support for SnpEff output, add a new option
--csq-field,--consequence-fieldwhich allows to override the default consequence field name 'Consequence' (#2566) -
Stop converting consequence severity to lower case
-
-
bcftools stats- Fix per-sample stats when samples provided in different order via
-s/-S(#2534)
- Fix per-sample stats when samples provided in different order via
-
bcftools +tag2tag- Make the advertised default for
-t, --thresholdmatch the implementation: 0, not 0.1. Also clarify that the value is the maximum allowed GP error (call if GP >= 1 - FLOAT), not a minimum GP threshold (#2564)
- Make the advertised default for
-
bcftools +trio-dnm3- Add a new TrioDNM model and make it the new default. To prevent confusion, the old
+trio-dnm2plugin was removed and replaced with+trio-dnm3. The original+trio-dnm3model can be run as
bcftools +trio-dnm3 --use-ALM
- Add a new TrioDNM model and make it the new default. To prevent confusion, the old
-
bcftools view
- Fix the
-v/V,--types/--exclude-typesoption to work with ref and extend for all types supported by htslib: snps,indels,mnps,ref,bnd,other,overlap (#2567)
- Fix the
Download the source code here: bcftools-1.24.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.)
1.23.2
Download the source code here: bcftools-1.23.2.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.)
This release bundles HTSlib 1.23.2, which includes many important bug fixes. There are no changes to BCFtools. Please see htslib/NEWS for details.
1.22.2
Download the source code here: bcftools-1.22.2.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.)
This release bundles HTSlib 1.22.3, which includes many important bug fixes. There are no changes to BCFtools. Please see htslib/NEWS for details.
1.21.2
Download the source code here: bcftools-1.21.2.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.)
This release bundles HTSlib 1.21.2, which includes many important bug fixes. There are no changes to BCFtools. Please see htslib/NEWS for details.
1.23.1
Download the source code here: bcftools-1.23.1.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.)
Changes affecting the whole of bcftools, or multiple commands:
-
This release bundles HTSlib 1.23.1, which includes many important bug fixes. Please see htslib/NEWS for details.
-
Fix silent output truncation due to missing checks for read errors in the
annotate,cnv,concat,convert,consensus,csq,filter,gtcheck,isec,merge,norm,queryandstatscommands; and all plugins. They will now print an error and return a non-zero exit code if an error is encountered when reading input data. (PR #2503)
Download the source code here: bcftools-1.23.1.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.)
1.22.1
Download the source code here: bcftools-1.22.1.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.)
Changes affecting the whole of bcftools, or multiple commands:
-
This release bundles HTSlib 1.22.2, which includes many important bug fixes. Please see htslib/NEWS for details.
-
Fix silent output truncation due to missing checks for read errors in the
annotate,cnv,concat,convert,consensus,csq,filter,gtcheck,isec,merge,norm,queryandstatscommands; and all plugins. They will now print an error and return a non-zero exit code if an error is encountered when reading input data. (#2503)
Changes affecting specific commands:
-
bcftools consensus-
Fix a bug which prevented reading fasta files containing empty lines in their entirety (#2424)
-
Fix a bug which causes
--absentmiss some absent positions
-
-
bcftools +fill-tags -
bcftools gtcheck- Fix an error in parsing -i/-e command line options where the
qry:andgt:prefix was not stripped (#2432)
- Fix an error in parsing -i/-e command line options where the
-
bcftools +split-vep- Fix the option
-A, --all-fields, it was not working properly and could lead to a segfault (#2473)
- Fix the option
Download the source code here: bcftools-1.22.1.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.)
1.21.1
Download the source code here: bcftools-1.21.1.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.)
Changes affecting the whole of bcftools, or multiple commands:
-
This release bundles HTSlib 1.21.1, which includes many important bug fixes. Please see htslib/NEWS for details.
-
Fix silent output truncation due to missing checks for read errors in the
annotate,cnv,concat,convert,consensus,csq,filter,gtcheck,isec,merge,norm,queryandstatscommands; and all plugins. They will now print an error and return a non-zero exit code if an error is encountered when reading input data. (#2503)
Changes affecting specific commands:
-
bcftools annotate- Fix Number in the header definition of transferred FILTER and ID tags (#2335)
-
bcftools consensus-
Fix a bug which prevented reading fasta files containing empty lines in their entirety (#2424)
-
Fix a bug which causes
--absentmiss some absent positions
-
-
bcftools +fill-tags -
bcftools gtcheck- Fix an error in parsing -i/-e command line options where the
qry:andgt:prefix was not stripped (#2432)
- Fix an error in parsing -i/-e command line options where the
-
bcftools merge- Fix a bug where an incorrectly formatted gVCF file with overlapping blocks would trigger an infinite loop in the program (#2410)
-
bcftools +split-vep- Fix the option
-A, --all-fields, it was not working properly and could lead to a segfault (#2473)
- Fix the option
Download the source code here: bcftools-1.21.1.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.)
1.23
Download the source code here: bcftools-1.23.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.)
Changes affecting the whole of bcftools, or multiple commands:
-
The
-i/-efiltering expressions and-fformatting inquery- Add a new function
smpl_COUNT()/sCOUNT()which returns the number of elements (#2423)
- Add a new function
Changes affecting specific commands:
-
bcftools annotate- Make dynamic variables read from a tab-delimited annotation file (#2151) work also for regions. For example, while the first command below was functional, the second was not (#2441)
bcftools annotate -a ann.tsv.gz -c CHROM,POS,-,SCORE,~STR -i'TAG={STR}' -k in.vcf
bcftools annotate -a ann.tsv.gz -c CHROM,BEG,END,SCORE,~STR -i'TAG={STR}' -k in.vcf
- Make dynamic variables read from a tab-delimited annotation file (#2151) work also for regions. For example, while the first command below was functional, the second was not (#2441)
-
bcftools consensus-
Fix a bug which prevented reading fasta files containing empty lines in their entirety (#2424)
-
Fix a bug which causes
--absentmiss some absent positions
-
-
bcftools csq- Add support for complex substitutions, such as AC>TAA
-
bcftools +fill-tags -
bcftools gtcheck-
The program is now able to process gVCF blocks. Newly, monoallelic sites are excluded only when the site is monoallelic in both query and genotype file. The new option
--keep-refsallows to always include monoallelic sites. -
Fix an error in parsing
-i/-ecommand line options where theqry:andgt:prefix was not stripped (#2432)
-
-
bcftools mpileup- Make
-d, --max-depth 0set the depth to unlimited (#2435)
- Make
-
bcftools norm- Make the
-i/-efiltering option work for all options, such as line merging and duplication removal (#2415)
- Make the
-
bcftools query- Numerical functions, such as
SUM(INFO/DP), would previously return the value 0 when executed on missing values. This was incorrect, newly a missing value is printed.
- Numerical functions, such as
-
bcftools reheader- Add options
--samples-listand--samples-fileto allow renaming samples from a list of samples on command line, rather than from a file of sample names (#2383)
- Add options
-
bcftools +split-vep- Fix the option
-A, --all-fields, it was not working properly and could lead to a segfault (#2473)
- Fix the option
Download the source code here: bcftools-1.23.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.)
1.22
Download the source code here: bcftools-1.22.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.)
Changes affecting the whole of bcftools, or multiple commands:
-
Add support for matching lines by ID via the
--pair-logicand--collapseoptions (#1739) -
The -i/-e filtering expressions
-
The expressions now properly match the regex negation of missing values, e.g.
-i 'TAG!~"\."'(#2355) -
Added support for Fisher's exact test
-
-
Add the option
-v, --verbosity INTto all bcftools commands and plugins. Verbosity values bigger than 3 are passed to the underlying HTSlib library so that the user can investigate network issues and other problems occurring at the library level.
Changes affecting specific commands:
-
bcftools annotate- Fix Number in the header definition of transferred FILTER and ID tags (#2335)
-
bcftools call- The
-s, --samplesoption was not working properly, now also supporting sample negation as advertised in the manual page, e.g.-s ^sample1,sample2to include all samples but sample1 and sample2 (#2380)
- The
-
bcftools consensus -
bcftools convert- The command
convert --gvcf2vcfwas not filling the REF allele when BCF was output (#243)
- The command
-
bcftools csq-
Check the input GFF for features outside transcript boundaries and extend the transcript to contain the feature fully (#2323)
-
Add experimental support for alternative genetic code tables, accessible via a new option
-C, --genetic-code(#2368) -
Change in the
--unify-chr-namesoption, no automatic sequence name modification is attempted anymore, the prefixes to trim must be given explictly. For example, if run with--unify-chr-names chr,Chromosome,-, the program will trim the "chr" prefix in the VCF, "Chromosome" in the GFF, leaving the fasta unchanged (#2378)
-
-
bcftools +fill-tags- Thanks to the extension of filtering expressions with Fisher's exact test, the plugin can now be used to add FT annotation (#1582)
-
bcftools merge-
Preserve phasing in half-missing genotypes (#2331)
-
The option
--merge noneis expected to create no new multiallelic sites, but it should allow to merge, say,A>CwithA>C,AT(#2333) -
Make
--merge bothwork with indel-only records; for example, the multiallelic siteG>GT,Tshould be merged withG>GT(#2339) -
Do not merge symbolic alleles unless they have not just the same type, eg.
<DEL>, but also length, i.e theINFO/ENDcoordinate (#2362) -
Fix a bug where an incorrectly formatted gVCF file with overlapping blocks would trigger an infinite loop in the program (#2410)
-
-
bcftools mpileup- The
-r/-Roption newly merge overlapping regions, preventing the output of duplicate sites
- The
-
bcftools norm -
plot-vcfstats- Make the option
-s, --sample-namesfunctional again (#2353)
- Make the option
-
bcftools +prune- New option to remove or annotate clusters of sites within a window
-
bcftools query- The functions used in
-i/-efiltering expressions (such asSUM,MEDIAN, etc) can be now used in formatting expressions (#2271). If the VCF containsINFO/ADandFORMAT/AD, try:bcftools query test.vcf -f '%CHROM:%POS \t [ %AD] \t [ %sSUM(FMT/AD)]' bcftools query test.vcf -f '%CHROM:%POS \t [ %AD] \t [ %SUM(FMT/AD)]' bcftools query test.vcf -f '%CHROM:%POS \t [ %AD] \t %SUM(FMT/AD)' bcftools query test.vcf -f '%CHROM:%POS \t [ %AD] \t %SUM(INFO/AD)' - Make it possible to refer to the ID column from the FORMAT expression (#2337)
bcftools query test.vcf -f 'ID=%ID ID=[ %/ID] vs FMT_ID=[ %ID]'
- The functions used in
-
bcftools roh- New visualization tool misc/roh-viz, see below
-
bcftools +setGT- Support for setting missing genotypes with arbitrary ploidy via
-n c:./.(#2303)
- Support for setting missing genotypes with arbitrary ploidy via
-
bcftools +split-vep- The
-s, --selectoption was extended to print only one consequence. Previously it was possible to select a single transcript (e.g., the one with the worst consequence), and it was possible to filter by consequence severity (e.g., missing or worse), but in some cases multiple consequences are reported within a single transcript (e.g., start_lost&splice_region). The extended option allows to print the worst part, for example as--select primary:missense+:worst
- The
-
bcftools +trio-dnm2-
Fix a problem with
--strictly-noveloption which would neglect the presence of the apparent de novo allele in the father for male offspring -
Fix a problem with uncalled mosaic chrX variants in males
-
-
roh-viz- HTML/JavaScript visualization of bcftools/roh output and homozygosity rate.
-
bcftools +vrfs- New experimental plugin for scoring variants and assess site noisiness (variant read frequency profiles) from a large number of unaffected parental samples
Download the source code here: bcftools-1.22.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.)
1.21
Download the source code here: bcftools-1.21.tar.bz2.
Changes affecting the whole of bcftools, or multiple commands:
-
Support multiple semicolon-separated strings when filtering by ID using
-i/-e(#2190). For example,-i 'ID="rs123"'now correctly matchesrs123;rs456 -
The filtering expression ILEN can be positive (insertion), negative (deletion), zero (balanced substitutions), or set to missing value (symbolic alleles).
-
bcftools query -
bcftools +split-vep- The columns indices printed by default with
-H(e.g.,#[1]CHROM) can be now suppressed by giving the option twice-HH(#2152)
- The columns indices printed by default with
Changes affecting specific commands:
-
bcftools annotate
- Support dynamic variables read from a tab-delimited annotation file (#2151) For example, in the two cases below the field
STRfrom the-afile is required to match theINFO/TAGin VCF. In the first example the allelesREF,ALTmust match, in the second example they are ignored. The option-kis required to output also records that were not annotated:
bcftools annotate -a ann.tsv.gz -c CHROM,POS,REF,ALT,SCORE,~STR -i'TAG={STR}' -k in.vcf bcftools annotate -a ann.tsv.gz -c CHROM,POS,-,-,SCORE,~STR -i'TAG={STR}' -k in.vcf- When adding
Type=Stringannotations from a tab-delimited file, encode characters with special meaning using percent encoding (;,=inINFOand:inFORMAT) (#2202)
- Support dynamic variables read from a tab-delimited annotation file (#2151) For example, in the two cases below the field
-
bcftools consensus-
Allow to apply a reference allele which overlaps a previous deletion, there is no need to complain about overlapping alleles in such case
-
Fix a bug which required
-s -to be present even when there were no samples in the VCF (#2260)
-
-
bcftools csq- Fix a rare bug where indel combined with a substitution ending at exon boundary is incorrectly predicted to have 'inframe' rather than 'frameshift' consequence (#2212)
-
bcftools gtcheck-
Fix a segfault with
--no-HWE-prob. The bug was introduced with the output format change in 1.19 which replaced theDCsection withDCv2(#2180) -
The number of matching genotypes in the
DCv2output was not calculated correctly with non-zero-E, --error-probability. Consequently, also the average HWE score was incorrect. The main output, the discordance score, was not affected by the bug
-
-
bcftools +mendelian2-
Include the number of good cases where at least one of the trio genotypes has an alternate allele (#2204)
-
Fix the error message which would report the wrong sample when non-existent sample is given. Note that bug only affected the error message, the program otherwise assigns the family members correctly (#2242)
-
-
bcftools merge- Fix a severe bug in merging of
FORMATfields withNumber=RandNumber=Avalues. For example, rows with high-coverageFORMAT/ADvalues (bigger or equal to 128) could have been assigned to incorrect samples. The bug was introduced in version 1.19. For details see #2244.
- Fix a severe bug in merging of
-
bcftools mpileup-
Return non-zero error code when the input BAM/CRAM file is truncated (#2177)
-
Add
FORMAT/ADannotation by default, disable with-a -AD
-
-
bcftools norm-
Support realignment of symbolic
<DUP.*>alleles, similarly to<DEL.*>added previously (#1919,#2145) -
Fix in reporting reference allele genotypes with
--multi-overlaps .(#2160) -
Support of duplicate removal of symbolic alleles of the same type but different
SVLEN(#2182) -
New
-S, --sortswitch to optionally sort output records by allele (#1484) -
Add the
-i/-efiltering options to select records for normalization. Note duplicate removal ignores this option. -
Fix a bug where
--atomizewould not fillGTalleles for atomized SNVs followed by an indel (#2239)
-
-
bcftools +remove-overlaps- Revamp the program to allow greater flexibility, with the following new options:
-M, --mark-tag TAG Mark -m sites with INFO/TAG
-m, --mark EXPR Mark (if also -M is present) or remove sites [overlap]
dup .. all overlapping sites
overlap .. overlapping sites
min(QUAL) .. mark sites with lowest QUAL until overlaps are resolved
--missing EXPR Value to use for missing tags with -m 'min(QUAL)'
0 .. the default
DP .. heuristics, scale maximum QUAL value proportionally to INFO/DP
--reverse Apply the reverse logic, for example preserve duplicates instead of removing
-O, --output-type t t: plain list of sites (chr,pos), tz: compressed list
-
bcftools +tag2tag-
The conversions
--LXX-to-XX,--XX-to-LXXwere working but specific cases such as--LAD-to-ADwere not. -
Print more informative error message when source tag type violiates VCF specification
-
-
bcftools +trio-dnm2- Better handling of the
--strictly-novelfunctionality, especically with respect to chrX inheritance
- Better handling of the
Download the source code here: bcftools-1.21.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.)