生信软件14 - bcftools提取和注释VCF文件关键信息

bcftools可用于变异信息的描述性统计,计算,过滤和格式转换。

1. 显示VCF文件的头信息

bcftools view -h sample.vcf

##fileformat=VCFv4.2
##FILTER=<ID=PASS,Description="All filters passed">
##bcftoolsVersion=1.5+htslib-1.5
##bcftoolsCommand=mpileup -f /public/analysis/ucsc.hg19.fasta -Ou /public/analysis/result/sample.bam
##reference=file:///public/analysis/ucsc.hg19.fasta
##contig=<ID=chr1,length=249250621>
##contig=<ID=chr2,length=243199373>
##contig=<ID=chr3,length=198022430>
....

1. 构建VCF文件索引

# 对于分析依赖与vcf索引文件,进行以下操作生成.idx索引
bcftools index sample.vcf

bcftools index sample.vcf.gz

2. 压缩VCF为gz压缩文件

# 2线程输出.vcf.gz压缩文件
bcftools view sample.vcf -Oz -o sample.vcf.gz --threads 2 	

-Oz 表示输出格式为压缩文件gz格式;
-o 后边跟压缩文件名字;
–threads 2 表示2个线程并行压缩vcf文件

3. 压缩VCF为gz压缩文件

# 不压缩vcf
 bcftools sort sample.vcf -o sample.vcf.gz -O v

 bcftools sort sample.vcf -o sample.vcf.gz -O z

# -O 参数
# z: compressed VCF
#  v: uncompressed VCF

3. 提取VCF的等位基因和基因型信息

# 生成A/G的基因型
bcftools query -f '%CHROM %ID %POS %REF %ALT [ %TGT]\n' sample.vcf -o sample.extract.txt
%CHROM 染色体列
%ID 变异位点名称
%POS 变异位点位置
%REF 参考等位基因
%ALT 变异等位基因
%TGT 字符格式如A/G的基因型;%GT为0/1格式的基因型

A/G的基因型结果

# 生成0/1格式的基因型
bcftools query -f '%CHROM %ID %POS %REF %ALT [ %GT]\n' sample.vcf -o sample.extract.txt

0/1格式的基因型结果

4. 变异位点的统计

统计VCF文件的基本信息,比如突变位点的总数,不同类型突变位点的个数等。

# 统计命令
bcftools stats sample.vcf > sample.stas

# 安装plot-vcfstats 依赖库
# pip install matplotlib
# 生成pdf文件还需要pdf-latex, ubuntu使用下列命令安装
# sudo apt-get install texlive-full 

# 统计可视化,输出值statistics文件夹
plot-vcfstats sample.stas -p statistics

statistics信息

5. 替换染色体名称

在这里插入图片描述

# 输出.gz格式
bcftools annotate --rename-chrs chrom_name.txt old.vcf -Oz -o new.vcf.gz --threads 4

6. 使用数据库注释VCF文件

# 注释指定字段
## INFO/TAG可以写TAG
## FORMAT/TAG可以写FMT/TAG

# 注释前需创建.vcf.gz文件索引, annoteate.vcf.gz 为注释压缩结果文件
bcftools index dbsnp.vcf.gz
bcftools annotate -a dbsnp.vcf.gz -c ID annoteate.vcf.gz
# gzip -d annoteate.vcf.gz

bcftools index 1000g.vcf.gz 
bcftools annotate -a 1000g.vcf.gz -c AF annoteate.vcf.gz
bcftools annotate -a 1000g.vcf.gz -c INFO/AF annoteate.vcf.gz

# 使用INFO列的所有字段
bcftools annotate -a 1000g.vcf.gz -c INFO annoteate.vcf.gz
# 使用INFO列除了指定TAG的所有字段
bcftools annotate -a 1000g.vcf.gz -c ^INFO/TAG annoteate.vcf.gz
# 重命名注释
bcftools annotate -a 1000g.vcf.gz -c 1000G_AF:=AF annoteate.vcf.gz
bcftools annotate -a 1000g.vcf.gz -c FMT/AD:=FMT/DV annoteate.vcf.gz

-c 指定使用注释文件中的列

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生信与基因组学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值