bcftools是一组用于变异获取和操作VCF和BCF的实用工具集合。参数众多,功能也十分强大。

官方文档http://samtools.github.io/bcftools/bcftools.html

1、安装

下载地址 https://github.com/samtools/bcftools/releases/download/1.10.2/bcftools-1.10.2.tar.bz2

单独安装bcftools会要求安装各种环境,还比较容易报错,建议先安装htslib,然后再安装bcftools。

安装方法:

#方法一
cd samtools-1.x    # and similarly for bcftools and htslib
./configure --prefix=/where/to/install
make
make install
#方法二(推荐)
git clone git://github.com/samtools/htslib.git
git clone git://github.com/samtools/bcftools.git
cd bcftools
# The following is optional:
autoheader && autoconf && ./configure --enable-libgsl --enable-perl-filters
make

2、应用实例

1、将vcf文件压缩转换为vcf.gz

bcftools view your_file.vcf -Oz -o your_file.vcf.gz

2、为vcf构建索引

bcftools index your_file.vcf

3、去除vcf文件中所有的注释信息,只保留GT基因型数据

bcftools annotate -x INFO,FORMAT,QUAL,FILTER -o your_file_output.vcf your_file.vcf

4、注释vcf中ID列,即rsid

#首先要做的是下载包含目标基因组rs信息的vcf注释文件,比如1000GENOMES-phase_3.vcf等,该文件必须先转化为vcf.gz格式。要注意的是vcf chrom 列 1 和chr1是对应不上的,要提前转换好
bcftools annotate -c ID -a 1000GENOMES-phase_3.vcf.gz -o your_file_output.vcf your_file.vcf

5、对vcf文件进行排序

bcftools sort -o your_file_output.vcf your_file.vcf

6、对vcf文件进行筛选

#以下代码对vcf文件中FILTER列等于PASS和样本DP值大于等于20进行筛选
bcftools filter -i ' FILTER=="PASS" && FORMAT/DP>=20' -o your_file_output.vcf your_file.vcf

7、 对根据染色体分隔开的不同vcf文件进行合并

#假设所有文件放在merge文件夹下
cd merge
ls | xargs bcftools concat -o merge.vcf

8、将vcf文件按照测序的样本分隔开

for sample in 'bcftools query -l your_file.vcf';
do
bcftools view -c1 -Oz -s $sample -o $sample.vcf.gz your_file.vcf;
done

9、选取VCF中”CHROM、POS、ID、REF、ALT 、AC、AF 、GT”信息

bcftools query -f '%CHROM %POS %ID %REF %ALT %AC %AF [\t%GT]\n' your_file.vcf -o filter.vcf

10、根据”CHROM、POS”列表提取VCF文件对应位置信息

bcftools view GRCh38_latest_dbSNP_all.vcf.gz -R bed.txt
# bed文件可以两列也可以三列,三列时需bed后缀

注意:每个子模块有各自的具体参数设置,按照自己需求进行调整。

Categories: 生物信息

0 Comments

Leave a Reply

Your email address will not be published.