HTS (NGS) 関連のインフォマティクス情報についてまとめています。

haplotype-awareなVCFのアノテーションを行う BCFtools/csq


 シーケンシングされたエクソームおよび全ゲノムサンプルの数が急速に増加しており、最も関心のあるバリアントの膨大な量のデータを迅速に選別できることが重要になっている。このプロセスの重要なステップは、シーケンスバリアントを取得し、機能効果のアノテーションを提供することである。臨床、進化、および遺伝子型と表現型の研究では、機能的結果の正確な予測は、下流の解釈にとって重要である。 Ensembl Variant Effect Predictor(VEP)(McLaren et al、2016)、SnpEff(Cingolani et al、2012)またはANNOVAR(Wang et al。、2010)など、バリアントの効果を予測するためのいくつかの一般的な既存のプログラムがある。 1つの重要な制限は、単一レコードベースであり、論文図1に示すように、周囲の同じ位相(phase)のバリアントが考慮されると、これが誤ったアノテーションにつながる可能性がある。
 最近の実験的および計算上の進歩による長距離シーケンシングテクノロジーのコスト削減(Zheng et al、2016)および統計的フェージングアルゴリズムの精度の向上(Loh et al、2016)により、数十キロベースを超えるフェーズハプロタイプが日常的に利用可能になっている; Sharp et al、2016)サンプルコホートサイズの増加による(McCarthy et al、2016)。この情報を活用できるBCFtools / csqに実装された新しいvariant consequence predictorを紹介する。



Three types of compound variants that lead to incorrect consequence prediction when handled in a localized manner each separately rather than jointly.  

bcftoolsのConsequence callingのHPより転載。





本体 Github


tar xf bcftools-1.9.tar.bz2
./configure --prefix=/usr/local/bin
make -j 8
make install

> ./bcftools

$ ./bcftools 


Program: bcftools (Tools for variant calling and manipulating VCFs and BCFs)

Version: 1.9 (using htslib 1.9)


Usage:   bcftools [--version|--version-only] [--help] <command> <argument>




 -- Indexing

    index        index VCF/BCF files


 -- VCF/BCF manipulation

    annotate     annotate and edit VCF/BCF files

    concat       concatenate VCF/BCF files from the same set of samples

    convert      convert VCF/BCF files to different formats and back

    isec         intersections of VCF/BCF files

    merge        merge VCF/BCF files files from non-overlapping sample sets

    norm         left-align and normalize indels

    plugin       user-defined plugins

    query        transform VCF/BCF into user-defined formats

    reheader     modify VCF/BCF header, change sample names

    sort         sort VCF/BCF file

    view         VCF/BCF conversion, view, subset and filter VCF/BCF files


 -- VCF/BCF analysis

    call         SNP/indel calling

    consensus    create consensus sequence by applying VCF variants

    cnv          HMM CNV calling

    csq          call variation consequences

    filter       filter VCF/BCF files using fixed thresholds

    gtcheck      check sample concordance, detect sample swaps and contamination

    mpileup      multi-way pileup producing genotype likelihoods

    roh          identify runs of autozygosity (HMM)

    stats        produce VCF/BCF stats


 Most commands accept VCF, bgzipped VCF, and BCF with the file type detected

 automatically even when streaming from a pipe. Indexed VCF and BCF will work

 in all situations. Un-indexed VCF and BCF and streams will work in most but

 not all situations.


bcftools csq

# bcftools csq


About: Haplotype-aware consequence caller.

Usage: bcftools csq [options] in.vcf


Required options:

   -f, --fasta-ref <file>          reference file in fasta format

   -g, --gff-annot <file>          gff3 annotation file


CSQ options:

   -c, --custom-tag <string>       use this tag instead of the default BCSQ

   -l, --local-csq                 localized predictions, consider only one VCF record at a time

   -n, --ncsq <int>                maximum number of consequences to consider per site [16]

   -p, --phase <a|m|r|R|s>         how to handle unphased heterozygous genotypes: [r]

                                     a: take GTs as is, create haplotypes regardless of phase (0/1 -> 0|1)

                                     m: merge *all* GTs into a single haplotype (0/1 -> 1, 1/2 -> 1)

                                     r: require phased GTs, throw an error on unphased het GTs

                                     R: create non-reference haplotypes if possible (0/1 -> 1|1, 1/2 -> 1|2)

                                     s: skip unphased hets


   -e, --exclude <expr>            exclude sites for which the expression is true

       --force                     run even if some sanity checks fail

   -i, --include <expr>            select sites for which the expression is true

   -o, --output <file>             write output to a file [standard output]

   -O, --output-type <b|u|z|v|t>   b: compressed BCF, u: uncompressed BCF, z: compressed VCF

                                   v: uncompressed VCF, t: plain tab-delimited text output [v]

   -q, --quiet                     suppress warning messages. Can be given two times for even less messages

   -r, --regions <region>          restrict to comma-separated list of regions

   -R, --regions-file <file>       restrict to regions listed in a file

   -s, --samples <-|list>          samples to include or "-" to apply all variants and ignore samples

   -S, --samples-file <file>       samples to include

   -t, --targets <region>          similar to -r but streams rather than index-jumps

   -T, --targets-file <file>       similar to -R but streams rather than index-jumps



   bcftools csq -f hs37d5.fa -g Homo_sapiens.GRCh37.82.gff3.gz in.vcf


   # GFF3 annotation files can be downloaded from Ensembl. e.g. for human:




 ランにはリファレンスのFASTA、遺伝子のGFF3アノテーション、VCFファイルが必要。GFF3(GFFのversion3)はEnsembl formatのGFF3のみに対応している。

#compressed BCF出力
bcftools csq -f hs37d5.fa -g Homo_sapiens.GRCh37.82.gff3.gz in.vcf -Ob -o out.bcf 

#uncompressed VCF出力
bcftools csq -f hs37d5.fa -g Homo_sapiens.GRCh37.82.gff3.gz in.vcf -Ov -o out.vcf 
  • -O, --output-type <b|u|z|v|t> b: compressed BCF, u: uncompressed BCF, z: compressed VCF
    v: uncompressed VCF, t: plain tab-delimited text output [v]



BCFtools/csq: haplotype-aware variant consequences

Danecek P, McCarthy SA

Bioinformatics. 2017 Jul 1;33(13):2037-2039