6 # Convert nucleotide FASTQ input to colorspace CSFASTQ output.
7 # Colorspace versions of nucleotide sequnences are 1 character shorter.
8 # Names are unchanged. No primer base is given.
12 # Given a string in nucleotide space, convert to colorspace.
18 "AA" => "0", "CC" => "0", "GG" => "0", "TT" => "0",
19 "AC" => "1", "CA" => "1", "GT" => "1", "TG" => "1",
20 "AG" => "2", "GA" => "2", "CT" => "2", "TC" => "2",
21 "AT" => "3", "TA" => "3", "CG" => "3", "GC" => "3",
22 "NA" => ".", "NC" => ".", "NG" => ".", "NT" => ".",
23 "AN" => ".", "CN" => ".", "GN" => ".", "TN" => ".",
26 my %nmap = ("0" => "A", "1" => "C", "2" => "G", "3" => "T", "." => "N");
28 for(my $i = 0; $i < length($s)-1; $i++) {
29 my $di = uc substr($s, $i, 2);
30 $di =~ tr/-NnMmRrWwSsYyKkVvHhDdBbXx/N/;
31 defined($cmap{$di}) || die "Bad dinuc: $di\n";
32 $ret .= ($nucs ? $nmap{$cmap{$di}} : $cmap{$di});
44 print $name.colorize($seq, 0)."\n$name2$qual";