require POSIX; open(FILE, ">ighv-refdir-aligned.phy"); open(REFDIR, "ighv-refdir-aligned.txt"); my($i) = 0; my(@names) = (); my(@sequences) = (); while () { my(@regions) = split(/\s+/); $names[$i] = $regions[0]; $sequences[$i] = $regions[1]; $sequences[$i] .= $regions[3]; $sequences[$i] .= $regions[5]; print $names[$i]; if (length($names[$i]) > 15) { print "\t"; } else { print "\t\t"; } print $sequences[$i] . "\n"; $i++; } my($cnt) = 0; #for ($cnt=0; $cnt<50; $cnt++) #length($sequences[0])) { #for ($j=0; $j<=$#names; $j++) { printf FILE "\t" . scalar @names . "\t" . length($sequences[0]) . "\n"; for ($i=0; $i<@names; $i++) { print FILE substr($names[$i], 0, 6); print FILE " "; for ($cnt=0; $cnt<50; $cnt++) { print FILE substr($sequences[$i], $cnt, 1); if ((($cnt+1) % 10) == 0) { print FILE " "; } } print FILE "\n"; } printf FILE "\n"; $kmax = length($sequences[0]) / 50; $kmax = POSIX::floor($kmax); $k = 1; $mult = 50; $multx = 0; while ($k <= $kmax) { if ($k == $kmax) { $multx = length($sequences[0]) - $kmax * 50; } else { $multx = 50; } for ($i=0; $i<@sequences; $i++) { printf FILE " "; for ($j=$k * $mult; $j<($k * $mult + $multx); $j++) { printf FILE substr($sequences[$i], $j, 1); if ((($j+1) % 10) == 0) { printf FILE " "; } } printf FILE "\n"; } printf FILE "\n"; $k++; }