Skip to content

Tags: samtools/bcftools

Tags

1.24

Toggle 1.24's commit message

Verified

This tag was signed with the committer’s verified signature.
bcftools release 1.24:

Changes affecting the whole of bcftools, or multiple commands:

* Calculation of MAC and MAF in `-i/-e` filtering expressions

    - Minor allele count and minor allele frequency were calculated
      incorrectly at multiallelic sites.

Changes affecting specific commands:

* bcftools +af-dist

    - New `-s, --samples` to print per-sample HWE probability,
      geometric mean

* bcftools annotate

    - Fix a bug in annotation renaming via `--rename-annots` and `-c
      NEW:=OLD`, where renaming INFO/TAG would simultaneously rename
      also FORMAT/TAG (#2489)

    - Allow annotation of Number=A,R INFO tags 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 --gvcf2vcf work around malformed gVCF records where
      INFO/END overlaps the next record

* bcftools csq

    - Fix a start_lost issue in haplotype mode: suppress formatting
      of amino-acid changes of variants that follow on the same
      haplotype, but still print DNA changes (#2543)

    - Add a new -G, --greedy option which forces the program to check
      intronic consequences after feature hits (#2548)

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

* bcftools merge

    - Fixes in memory access with localized alleles, it could
      result in printing printing trailing garbage in localized
      FORMAT fields (#2520)

    - Add new `-m exact` mode to merge only records with the exact
      same alleles (#2498)

* bcftools mpileup

    - Remove unused experimental INFO/MIN_PL_SUM annotation

    - Add new FORMAT/QM annotation, to be used with the new `bcftools
      +trio-dnm3 --use-ALM` model.

* bcftools norm

    - Fix a bug in splitting Type=String FORMAT fields via -a and -m
      (#2476)

    - Fix erroneous INFO/END recalculation 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-field which 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)

* bcftools +tag2tag

    - Make the advertised default for `-t, --threshold` match 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)

* bcftools +trio-dnm3

    - Add a new TrioDNM model and make it the new default. To prevent
      confusion, the old +trio-dnm2 plugin was removed and replaced
      with +trio-dnm3. The original +trio-dnm3 model can be run as

      bcftools +trio-dnm3 --use-ALM

* bcftools view

    - Fix the -v/V, --types/--exclude-types option to work with
      ref and extend for all types supported by htslib:
      snps,indels,mnps,ref,bnd,other,overlap (#2567)

1.23.2

Toggle 1.23.2's commit message

Verified

This tag was signed with the committer’s verified signature.
bcftools release 1.23.2:

This release bundles HTSlib 1.23.2, which includes many importantbug
fixes.  There are no changes to BCFtools.  Please see htslib/NEWS
for details.

1.22.2

Toggle 1.22.2's commit message

Verified

This tag was signed with the committer’s verified signature.
bcftools release 1.22.2:

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

Toggle 1.21.2's commit message

Verified

This tag was signed with the committer’s verified signature.
bcftools release 1.21.2:

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

Toggle 1.23.1's commit message

Verified

This tag was signed with the committer’s verified signature.
bcftools release 1.23.1:

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, query and stats commands;
  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)

1.22.1

Toggle 1.22.1's commit message

Verified

This tag was signed with the committer’s verified signature.
bcftools release 1.22.1:

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, query and stats commands;
  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 `--absent` miss some absent positions

* bcftools +fill-tags

    - Fix header formatting error for INFO/F_MISSING which must be
      Number=1 (#2442)

    - Make `-t 'F_MISSING'` work with `-S groups.txt` (#2447)

* bcftools gtcheck

    - Fix an error in parsing -i/-e command line options where the
      `qry:` and `gt:` prefix was not stripped (#2432)

* bcftools +split-vep

    - Fix the option `-A, --all-fields`, it was not working properly
      and could lead to a segfault (#2473)

1.21.1

Toggle 1.21.1's commit message

Verified

This tag was signed with the committer’s verified signature.
bcftools release 1.21.1:

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, query and stats commands;
  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 `--absent` miss some absent positions

* bcftools +fill-tags

    - Fix header formatting error for INFO/F_MISSING which must be
      Number=1 (#2442)

    - Make `-t 'F_MISSING'` work with `-S groups.txt` (#2447)

* bcftools gtcheck

    - Fix an error in parsing -i/-e command line options where the
      `qry:` and `gt:` prefix was not stripped (#2432)

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

1.23

Toggle 1.23's commit message

Verified

This tag was signed with the committer’s verified signature.
bcftools release 1.23:

Changes affecting the whole of bcftools, or multiple commands:

* The `-i/-e` filtering expressions and `-f` formatting in `query`

    - Add a new function `smpl_COUNT()/sCOUNT()` which returns the
      number of elements (#2423)

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

* bcftools consensus

    - Fix a bug which prevented reading fasta files containing empty
      lines in their entirety (#2424)

    - Fix a bug which causes `--absent` miss some absent positions

* bcftools csq

    - Add support for complex substitutions, such as AC>TAA

* bcftools +fill-tags

    - Fix header formatting error for INFO/F_MISSING which must be
      Number=1 (#2442)

    - Make `-t 'F_MISSING'` work with `-S groups.txt` (#2447)

* 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-refs allows to always include monoallelic sites.

    - Fix an error in parsing -i/-e command line options where the
      `qry:` and `gt:` prefix was not stripped (#2432)

* bcftools mpileup

    - Make `-d, --max-depth 0` set the depth to unlimited (#2435)

* bcftools norm

    - Make the -i/-e filtering option work for all options, such as
      line merging and duplication removal (#2415)

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

* bcftools reheader

    - Add options `--samples-list` and `--samples-file` to allow
      renaming samples from a list of samples on command line,
      rather than from a file of sample names (#2383)

* bcftools +split-vep

    - Fix the option `-A, --all-fields`, it was not working properly
      and could lead to a segfault (#2473)

1.22

Toggle 1.22's commit message

Verified

This tag was signed with the committer’s verified signature.
bcftools release 1.22:

Changes affecting the whole of bcftools, or multiple commands:

* Add support for matching lines by ID via the --pair-logic and
  --collapse options (#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 INT` to 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, --samples` option was not working properly, now also
      supporting sample negation as advertised in the manual page,
      e.g. `-s ^sample1,sample2` to include all samples but sample1
      and sample2 (#2380)

* bcftools consensus

    - Preserve entire missing gVCF blocks with --missing (#2350)

    - Fixed a bug, the `-S, --samples-file` option is no longer
      ignored (#2398)

* bcftools convert

    - The command `convert --gvcf2vcf` was not filling the REF allele
      when BCF was output (#243)

* 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-names` option, 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 none` is expected to create no new
      multiallelic sites, but it should allow to merge, say, A>C
      with A>C,AT (#2333)

    - Make `--merge both` work with indel-only records; for example,
      the multiallelic site G>GT,T should be merged with G>GT (#2339)

    - Do not merge symbolic alleles unless they have not just the
      same type, eg. <DEL>, but also length, i.e the INFO/END
      coordinate (#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/-R option newly merge overlapping regions, preventing
      the output of duplicate sites

* bcftools norm

    - Print the number of removed duplicate sites in the final
      statistics (#2346)

    - Preserve the original alleles in `--old-rec-tag` when
      `--check-ref s` requested (#2357)

    - Print a warning when INFO/SVLEN is not defined as Number=A
      (#2371)

* plot-vcfstats

    - Make the option `-s, --sample-names` functional again (#2353)

* bcftools +prune

    - New option to remove or annotate clusters of sites within a
      window

* bcftools query

    - The functions used in -i/-e filtering expressions (such as SUM,
      MEDIAN, etc) can be now used in formatting expressions (#2271).
      If the VCF contains INFO/AD and FORMAT/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]'

* bcftools roh

    - New visualization tool misc/roh-viz, see below

* bcftools +setGT

    - Support for setting missing genotypes with arbitrary ploidy
      via `-n c:./.` (#2303)

* bcftools +split-vep

    - The `-s, --select` option 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

* bcftools +trio-dnm2

    - Fix a problem with --strictly-novel option 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

1.21

Toggle 1.21's commit message

Verified

This tag was signed with the committer’s verified signature.
bcftools release 1.21:

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