是否有工具或脚本将分阶段VCF分成两个单独的单倍体VCF,每个单倍体一个?(linux)



我有一个由二倍体人类DNA的MinION测序运行的长镜头生成的阶段性.vcf文件。我希望能够将文件拆分为两个单倍体文件,一个为单倍型1,一个为单倍型2。

是否有任何VCF工具包提供开箱即用的功能?

3个变量从我的文件:

##fileformat=VCFv4.2
##source=Longshot v0.4.0
##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth of reads passing MAPQ filter">
##INFO=<ID=AC,Number=R,Type=Integer,Description="Number of Observations of Each Allele">
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
##FORMAT=<ID=GQ,Number=1,Type=Float,Description="Genotype Quality">
##FORMAT=<ID=PS,Number=1,Type=Integer,Description="Phase Set">
##FORMAT=<ID=UG,Number=1,Type=String,Description="Unphased Genotype (pre-haplotype-assembly)">
##FORMAT=<ID=UQ,Number=1,Type=Float,Description="Unphased Genotype Quality (pre-haplotype-assembly)">
CHROM   POS ID  REF ALT QUAL    FILTER  INFO    FORMAT  SAMPLE
chr1    161499264   .   G   C   500.00  PASS    DP=55;AC=27,27  GT:GQ:PS:UG:UQ  0|1:500.00:161499264:0/1:147.24
chr1    161502368   .   A   G   500.00  PASS    DP=43;AC=4,38   GT:GQ:PS:UG:UQ  1/1:342.00:.:1/1:44.91
chr1    161504083   .   A   C   346.17  PASS    DP=39;AC=19,17  GT:GQ:PS:UG:UQ  1|0:346.17:161499264:0/1:147.24

要从阶段性vcf文件中提取单倍型,可以使用RTGtools中的samplereplay生成单倍型SDF文件;然后sdf2sam, sdf2fasta, sdf2fastq,得到相对应的单体型文件。

编辑:我没有注意到你需要一个单倍体VCF文件。如果您先将其转换为sam,然后再次转换为VCF,则上述方法应该有效。

我没有找到一个工具,所以我写了一些东西(不漂亮,但工作)

awk '{if ($1 ~ /^##/) print; 
else if ($1=="#CHROM") { ORS="t";for (i=1;i<10;i++) print $i;
for (i=10;i<NF;i++) {print $i"_At"$i"_B"}; ORS="n"; print $NF"_At"$NF"_B"}
else {ORS="t";for (i=1;i<10;i++) print $i;
for (i=10;i<NF;i++) print substr($i,0,1)"t"substr($i,3,1); 
ORS="n"; print substr($NF,0,1)"t"substr($NF,3,1)"n"} }' VCF_FILE

第一行打印页眉。

在第三行,我复制了个人的名字(使用NAME_A和NAME_B,但您可以更改它。

第五行,我只保留了带有substr()的GT。如果你想保留其他信息,你也可以使用substr()。例如:substr($i,0,1)substr($i,4,100)将保留第一个GT和其他字段的信息。

相关内容

  • 没有找到相关文章

最新更新