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后缀
0 Comments