8 print STDERR
"$t\tStart!\n";
11 my (@indiv, @stat_time, %nSNP, %iSNP);
15 my @line = split /\t/;
16 next if $line[7] =~ /^INDEL/;
17 next if $line[5] < 20;
18 $line[7] =~ /;FQ=([0-9\-.]+)/;
23 my @sample = split /:/, $line[$_];
24 if ($sample[4] >= 20 and $sample[2] >= 1) {
33 next if (!grep {$_ ne $a[0]} @a);
36 $nSNP{$line[0]}{$line[1]} = $a;
37 $iSNP{$line[0]}{$line[1]} = 0;
40 $iSNP{$line[0]}{$line[1]} |= (1 << (26-$_));
44 print STDERR
"$t\tRead file completed!\n";
47 open OSNP
, ">", "SNPcoverage.lst";
48 print OSNP
"#SCAFFOLD\tCOORDINATE\tINVID.\tNO.\n";
49 foreach my $c (sort keys %nSNP) {
50 foreach my $d (sort {$a <=> $b} keys %{$nSNP{$c}}) {
51 printf OSNP
"%s\t%d\t%018b\t%d\n", $c, $d, $iSNP{$c}{$d}, $nSNP{$c}{$d};
56 print STDERR
"$t\tPrint to SNPCoverage.lst completed!\n";
59 my @id = qw
/01_JHH001 02_GZXJ03 03_GZXJ05 04_GZXJ26 05_GZXJ27 06_GZXJ28 07_GZXJ29 08_GZXJ30 09_GZXJ33 10_BHX011 11_BHX019 12_GZXJ04 13_GZXJ06 14_GZXJ31 15_GZXJ32 16_GZXJ36 17_GZXJ37 18_GZXJ38/;
60 open Oindiv
, ">", "SNPindivCoverage.lst";
61 print Oindiv
"#INDIV.\tNO.\n";
63 print Oindiv
"$id[$_-9]\t$indiv[$_]\n";
65 print Oindiv
"#TIME\tNO.\tTIME\tNO.\n";
67 foreach my $e (6..18) {
69 $accum[$e] += $stat_time[$_];
71 printf Oindiv
"%s\t%d\t%s\t%d\n", ">=$e", $accum[$e], "=$e", $stat_time[$e];
75 print STDERR
"$t\tPrint to SNPindivCoverage.lst completed!\n";
79 print STDERR
"$t\tDone!\n";