bcftools学习笔记(一)
欢迎关注"生信修炼手册"!
本篇主要介绍index
, view
, query
, sort
, reheader
这五个命令。
1. index
index
命令用于对VCF文件建立索引,要求输入的VCF文件必须是使用bgzip
压缩之后的文件,支持.csi
和.tbi
两种索引,默认情况下建立的索引是.csi
格式, 用法如下
bgzip view.vcf
bcftools index view.vcf.gz
运行成功后,会生成索引文件view.vcf.gz.csi
。如果需要建立.tbi
格式的索引,用法如下
bcftools index -t view.vcf.gz
tbi索引文件为view.vcf.gz.tbi
。
2. view
view
命令可以用于VCF和BCF格式的转换,用法如下
bcftools view view.vcf.gz -O u -o view.bcf
-O
参数指定输出文件的类型,b
代表压缩后的BCF文件,u
代表未经压缩的BCF文件,z
代表压缩后的VCF文件,v
代表未经压缩的VCF文件;-o
参数指定输出文件的名字。
还可以根据样本筛选VCF文件,用法如下
bcftools view view.vcf.gz -s NA00001,NA00002 -o subset.vcf
-s
参数指定想要保留的样本信息,多个样本用逗号分隔。
如果样本名称添加了^
前缀,代表去除这些样本,比如-s ^NA00001,NA00002
,这个写法表示从VCF文件中去除NA00001,NA00002
这两个样本的信息。
还可以过滤突变位点,过滤的条件非常多,可以根据突变位点的类型,基因型类型等等条件进行过滤,详细的参数可以参考软件的帮助文档,这里只做一个基本示例
bcftools view view.vcf.gz -k -o known.vcf
-k
参数表示筛选已知的突变位点,即ID
那一列值不是.
的突变位点。
3. query
query
命令也是用于格式转换,和view
命令不同,query
通过表达式来指定输出格式,可定制化程度更高。用法如下
bcftools query -f '%CHROM\t%POS\t%REF\t%ALT[\t%SAMPLE=%GT]\n' view.vcf.gz
-f
参数通过一个表达式来指定输出格式,其中变量的写法如下
-
%CHROM
代表VCF文件中染色体那一列,其他的列,比如POS
,ID
,REF
,ALT
,QUAL
,FILTER
也是类似的写法 -
[]
对于FORMAT字段的信息,必须要中括号括起来 -
%SAMPLE
代表样本名称 -
%GT
代表FORMAT字段中genotype的信息 -
\t
代表制表符分隔 -
\n
代表新的一行
输出文件如下
11 2343543 A . NA00001=0/0 NA00002=0/0 NA00003=0/0
11 5464562 C T NA00001=./. NA00002=./. NA00003=./.
20 76962 T C NA00001=0/1 NA00002=1/1 NA00003=1/1
更多变量的写法请参考官方文档。
4. sort
sort
命令用于对VCF文件排序, 按照染色体位置进行排序,用法如下
bcftools sort view.vcf.gz -o sort.view.vcf
5. reheader
reheader
命令有两个用途,第一用途用于编辑VCF文件的头部,第二个用途用于替换VCF文件中的样本名。
替换样本的用法如下
bcftools reheader -s sample.file view.vcf -o new.sample.vcf
-s
参数指定需要替换的样本名,内容如下
NA00001 NA1
NA00002 NA2
NA00003 NA3
第一列代表VCF文件中原始的样本名称,第二列代表替换后的样本名称,两类之间用空格分隔,需要注意的是,样本名不允许有空格。
编辑VCF文件的头部的用法如下
bcftools reheader -h header.file view.vcf -o new.header.vcf
-h
参数指定新的header文件,内容如下
##fileformat=VCFv4.3
##reference=file:///seq/references/1000Genomes-NCBI37.fasta
##contig=<ID=11,length=135006516>
##contig=<ID=20,length=63025520>
....
扫描关注微信号,更多精彩内容等着你!