Skip to content

1.21

Latest
Compare
Choose a tag to compare
@daviesrob daviesrob released this 12 Sep 15:55
· 31 commits to develop since this release
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 matches rs123;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)

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 STR from the -a file is required to match the INFO/TAG in VCF. In the first example the alleles REF,ALT must match, in the second example they are ignored. The option -k is 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=String annotations from a tab-delimited file, encode characters with special meaning using percent encoding (;, = in INFO and : in FORMAT) (#2202)
  • 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 the DC section with DCv2 (#2180)

    • The number of matching genotypes in the DCv2 output 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 FORMAT fields with Number=R and Number=A values. For example, rows with high-coverage FORMAT/AD values (bigger or equal to 128) could have been assigned to incorrect samples. The bug was introduced in version 1.19. For details see #2244.
  • bcftools mpileup

    • Return non-zero error code when the input BAM/CRAM file is truncated (#2177)

    • Add FORMAT/AD annotation 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, --sort switch to optionally sort output records by allele (#1484)

    • Add the -i/-e filtering options to select records for normalization. Note duplicate removal ignores this option.

    • Fix a bug where --atomize would not fill GT alleles 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-LXX were working but specific cases such as --LAD-to-AD were not.

    • Print more informative error message when source tag type violiates VCF specification

  • bcftools +trio-dnm2

    • Better handling of the --strictly-novel functionality, especically with respect to chrX inheritance

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.)