Linux下是否有工具/脚本可将phased VCF拆分为两个单倍体VCF文件
拆分分相VCF为两个单倍体文件的实现方法
现有VCF标准工具集中有开箱即可完成该需求的工具,常用的两款分别是bcftools和whatshap,完全适配Longshot输出的带PS相位标记的分相VCF格式。
方法1:Whatshap拆分(最简便,专门针对分相数据优化)
Whatshap的split子命令就是为该场景设计的,一行命令即可完成拆分:
whatshap split 你的输入文件.vcf --output-h1 单倍型1.vcf --output-h2 单倍型2.vcf
说明:如果输入是bgzip压缩的vcf.gz文件也可以直接传入,工具会自动识别。对于纯合位点(如你示例中161502368位点的1/1基因型),两个输出文件会保留相同的等位基因,不会丢失变异位点。
方法2:BCFtools拆分(适用范围更广)
如果已经安装了BCFtools,使用内置的+haplotype插件也可完成拆分,两条命令分别提取两个单倍型:
# 提取单倍型1 bcftools +haplotype 你的输入文件.vcf -p 1 -o 单倍型1.vcf # 提取单倍型2 bcftools +haplotype 你的输入文件.vcf -p 2 -o 单倍型2.vcf
按你给出的示例变异,拆分后的结果完全符合预期:
- 161499264位点基因型为0|1:单倍型1保留REF等位基因G,单倍型2保留ALT等位基因C
- 161502368位点基因型为1/1:两个单倍型均保留ALT等位基因G
- 161504083位点基因型为1|0:单倍型1保留ALT等位基因C,单倍型2保留REF等位基因A
内容的提问来源于stack exchange,提问作者rusalkaguy
相关产品推荐
相关产品推荐

