把vcf文件转换为genetype

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

while (<>)
{
next if /##/;
chomp;
@a=split/\s+/;
@b=split/:/,$a[9];#获取0/1,1/1,1/3这样的格式的基因型
@allel=split/,/,$a[4];
	$hash{0}=$a[3];
	$i=1;
	foreach (@allel)
	{
	$hash{$i}=$_;
	$i++;
	}#把基因型对应到0,1,2,3,4的hash表里面
#print "$hash{$_}\t" foreach keys %hash;
#print "\n";

@b=split/:/,$a[9];
$GT=$b[0];
$b[0]=~s:(\d).*(\d):$hash{$1}/$hash{$2}:; #根据hash表里面的内容选择性输出基因型对应的碱基
print "$a[0]\t$a[1]\t$a[3]\t$a[4]\t$GT\t$b[0]\n";
undef %hash;
}