1.11
Download the source code here: bcftools-1.11.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:
-
Filtering
-i
/-e
expressions-
Breaking change in
-i
/-e
expressions on theFILTER
column. Originally it was possible to query only a subset of filters, but not an exact match. The new behaviour is:Expression Result FILTER="A"
Exact match, for example "A;B" does not pass FILTER!="A"
Exact match, for example "A;B" does pass FILTER~"A"
Both "A" and "A;B" pass FILTER!~"A"
Neither "A" nor "A;B" pass -
Fix in commutative comparison operators, in some cases reversing sides would produce incorrect results (#1224; #1266)
-
Better support for filtering on sample subsests
-
Add
SMPL_*/S*
family of functions that evaluate within rather than across all samples. (#1180)
-
-
Improvements in the build system
Changes affecting specific commands:
-
bcftools annotate
:-
Previously it was not possible to use
--columns =TAG
withINFO
tags and the--merge-logic
feature was restricted to tab files withBEG
,END
columns, now extended to work also withREF
,ALT
. -
Make
annotate -TAG/+TAG
work also withFORMAT
fields. (#1259) -
ID
andFILTER
can be transferred toINFO
andID
can be populated fromINFO
. However, theFILTER
column still cannot be populated from anINFO
tag because all possibleFILTER
values must be known at the time of writing the header (#947; #1187)
-
-
bcftools consensus
:-
Fix in handling symbolic deletions and overlapping variants. (#1149; #1155; #1295)
-
Fix
--iupac-codes
crash on REF-only positions withALT="."
. (#1273) -
Fix
--chain
crash. (#1245) -
Preserve the case of the genome reference. (#1150)
-
Add new
-a, --absent
option which allows to set positions with no supporting evidence to "N" (or any other character). (#848; #940)
-
-
bcftools convert
:-
The option
--vcf-ids
now works also with-haplegendsample2vcf
. (#1217) -
New option
--keep-duplicates
-
-
bcftools csq
:-
Add
misc/gff2gff.py
script for conversion between various flavors of GFF files. The initial commit supports only one type and was contributed by @flashton2003. (#530) -
Allow overlapping CDS to support ribosomal slippage. (#1208)
-
-
bcftools +fill-tags
:- Added new annotations:
INFO/END
,TYPE
,F_MISSING
.
- Added new annotations:
-
bcftools filter
:- Make
--SnpGap
optionally filter also SNPs close to other variant types. (#1126)
- Make
-
bcftools gtcheck
:- Complete revamp of the command. The new version is faster and allows N:M sample comparisons, not just 1:N or NxN comparisons. Some functionality was lost (plotting and clustering) but may be added back on popular demand.
-
bcftools +mendelian
:- Revamp of user options, output VCFs with mendelian errors annotation, read PED files (thanks to Giulio Genovese).
-
bcftools merge
:-
Update headers when appropriate with the '--info-rules *:join' INFO rule. (#1282)
-
Local alleles merging that produce
LAA
andLPL
when requested, a draft implementation of samtools/hts-specs#434 (#1138) -
New
--no-index
which allows to merge unindexed files. Requires the input files to have chromosomes in th same order and consistent with the order of sequences in the header. (PR #1253; samtools/htslib#1089)
-
-
bcftools norm
: -
bcftools +prune
:- Extend to allow annotating with various LD metrics: r^2, Lewontin's D' (PMID:19433632), or Ragsdale's D (PMID:31697386).
-
bcftools query
:- New
%N_PASS()
formatting expression to output the number of samples that pass the filtering expression.
- New
-
bcftools reheader
:- Improved error reporting to prevent user mistakes. (#1288)
-
bcftools roh
: -
bcftools scatter
:- New plugin intended as a convenient inverse to
concat
(thanks to Giulio Genovese, PR #1249)
- New plugin intended as a convenient inverse to
-
bcftools +split
:-
New
--groups-file
option for more flexibility of defining desired output. (#1240) -
New
--hts-opts
option to reduce required memory by reusing one output header and allow overriding the default hFile's block size with--hts-opts block_size=XXX
. On some file systems (lustre) the default size can be 4M which becomes a problem when splitting files with 10+ samples. -
Add support for multisample output and sample renaming
-
-
bcftools +split-vep
:- Add default types (Integer, Float, String) for VEP subfields and make
--columns -
extract all subfields into INFO tags in one go.
- Add default types (Integer, Float, String) for VEP subfields and make