使用bcftools合并VCF文件后,如何重新计算更新INFO/FORMAT字段?
解决bcftools merge后INFO/FORMAT字段未更新的问题
bcftools merge仅负责合并位点和样本信息,默认不会重新计算位点级的INFO统计字段(如NS、DP),也不会修改样本级的FORMAT字段(每个样本的DP、RO、AO是个体数据,无需汇总)。要更新INFO字段的统计值,需通过以下步骤处理:
1. 确保输入VCF已索引(可选但推荐)
如果输入的VCF文件未建立索引,先执行:
bcftools index vcf1.gz bcftools index vcf2.gz
2. 合并VCF文件
执行合并命令,生成包含所有4个样本的合并文件:
bcftools merge vcf1.gz vcf2.gz -O z -o merged.vcf.gz
-O z指定输出为压缩格式,-o指定输出文件名,可添加--index自动生成索引。
3. 重新计算INFO字段统计值
使用bcftools +fill-tags工具重新计算位点级的INFO字段,比如NS(有数据的样本数)、DP(总深度)等:
bcftools +fill-tags merged.vcf.gz -O z -o updated_final.vcf.gz -- -t NS,DP,AC,AN
-- -t NS,DP,AC,AN指定需要重新计算的INFO标签,可根据需求添加或删除;- 若不指定
-t参数,会默认计算所有支持的INFO统计字段。
注意事项
- FORMAT字段中的DP、RO、AO属于单个样本的测序数据统计,合并后会保留每个样本的原始值,无需重新计算(这些值不是位点级的汇总统计);
- 如果合并时存在位点基因型冲突(如同一位置不同文件的基因型不一致),可通过
-m参数指定处理方式,例如-m all保留所有基因型,-m idempotent仅合并无冲突的位点。
内容的提问来源于stack exchange,提问作者Prachi
相关产品推荐
相关产品推荐

