5 die "This program makes PED file using gzipped fasta files.\nAuther: Woody
6 Usage: $0 <list (column1: sample, column2: file, column3: 1=male|2=female, column4: population)> <output prefix>\n" if @ARGV < 2;
8 open LIST
, "<", "$ARGV[0]";
9 open GT
, ">", "$ARGV[1].ped";
10 open SNP
, ">", "$ARGV[1].pedsnp";
11 open IND
, ">", "$ARGV[1].pedind";
23 open $file{$a[0]}, "-|", "zcat $a[1]";
32 while (readline $file{$id[0]}) {
37 my $seq0 = readline $file{$id[0]};
39 my $len = length $seq0;
44 my $chr1 = readline $file{$_};
46 warn if $chr1 ne ">chr$chr0";
47 my $seq1 = readline $file{$_};
50 for my $coo (0 .. $len-1) {
54 my $b = substr($_, $coo, 1);
62 # next if $base{N} > 10;
67 $chr_gt{$chr0}[$_] .= $base[$_];
69 push @
{$chr_coo{$chr0}}, $coo;
73 my %base_gt = ("A","A A", "C","C C", "G","G G", "T","T T", "R","A G", "Y","C T", "M","A C", "K","G T", "S","G C", "W","A T", "N","0 0");
74 for my $i (0 .. @id-1) {
76 print IND
"0\t$id[$i]\t0\t0\t$sex{$id[$i]}\t$pop{$id[$i]}\n";
77 print GT
"0\t$id[$i]\t0\t0\t$sex{$id[$i]}\t$pop{$id[$i]}";
78 for my $c (sort keys %chr_gt) {
79 my $len = length $chr_gt{$c}[$i];
81 my $b = substr $chr_gt{$c}[$i], $_, 1;
82 print GT
"\t$base_gt{$b}";
89 my %chr_num = qw
/ A1 1 A2 2 A3 3 B1 4 B2 5 B3 6 B4 7 C1 8 C2 9 D1 10 D2 11 D3 12 D4 13 E1 14 E2 15 E3 16 F1 17 F2 18 /;
90 for my $c (sort keys %chr_coo) {
91 for (0 .. @
{$chr_coo{$c}}-1) {
92 print SNP
"$chr_num{$c}\tchr${c}snp";
93 printf SNP
"%08d", 1+$_;
94 print SNP
"\t0\t$chr_coo{$c}[$_]\n";