diff --git a/variants/unionvcf.pl b/variants/unionvcf.pl index 6329433bad9c6ffd046e6b3ee1266487eed0b111..277855f9c8fc186faee1c7a14f5b0fa687cca338 100755 --- a/variants/unionvcf.pl +++ b/variants/unionvcf.pl @@ -24,12 +24,16 @@ foreach $vcf (@vcffiles) { if ($line =~ m/#CHROM/) { ($chromhd, $posd,$idhd,$refhd,$althd,$scorehd, $filterhd,$annothd,$formathd,@sampleids) = split(/\t/, $line); + foreach $j (0..$#sampleids) { + $sampleids[$j] =~ s/\.final//g; + } unless (@sampleorder) { @sampleorder = @sampleids; print OUT $line,"\n"; } next; } + next; } my ($chrom, $pos,$id,$ref,$alt,$score, $filter,$annot,$format,@gts) = split(/\t/, $line); @@ -55,7 +59,7 @@ foreach $vcf (@vcffiles) { foreach my $i (0..$#deschead) { $gtdata{$deschead[$i]} = $gtinfo[$i]; } - if ($gtdata{DP} == 0 || $gtdata{GT} eq './.') { + if ($gtdata{GT} eq './.') { $newgts{$sid} = '.:.:.:.:.'; $missingGT ++; next FG; @@ -71,6 +75,7 @@ foreach $vcf (@vcffiles) { $gtdata{DP} = $gtdata{NR}; $gtdata{AO} = $gtdata{NV}; $gtdata{RO} = $gtdata{DP} - $gtdata{AO}; + $gtdata{AD} = join(",",$gtdata{RO},$gtdata{AO}) } elsif (exists $gtdata{AO} && exists $gtdata{RO}) { $gtdata{AD} = join(',',$gtdata{RO},$gtdata{AO}); $gtdata{DP} = $gtdata{RO};