我有一个由二倍体人类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和其他字段的信息。