GATK4 检测的SNP标记,有些位点会在检测过程中完成 phasing,在后续做基因型填充的时候有坑。
GATK4 phasing 结果的缺失位点不是 ./. 也不是 .|. 而是直接变成一个单独的点;下图黄线标记出来的部分,上面是原始结果,下面是修改后结果。
基于此后续做 phasing 才能顺利进行。
最后附上处理脚本:
1 use strict; 2 open A,"gzip -dc $ARGV[0]|"; 3 open U,"| gzip > $ARGV[1].gz"; 4 while(<A>){ 5 chomp; 6 if(/^#/){ 7 print U "$_ "; 8 } 9 else{ 10 my @line=split; 11 for(my $i=9;$i<@line;$i++){ 12 my ($geno,$tail)=(split /:/,$line[$i],2)[0,1]; 13 if($geno eq "."){ 14 $line[$i]="./.:".$tail; 15 } 16 } 17 my $o1=join " ",@line[0..8]; 18 my $o2=join " ",@line[9..$#line]; 19 print U "$o1 $o2 "; 20 } 21 } 22 close A; 23 close U;