#!/usr/bin/perl use warnings; $data = "testline"; open(FILE,$data); $odata = ; $GGA = 0; $GGC = 0; $GGG = 0; $GGT = 0; $Gly = 0; $p = 0; while($p < length($odata)-3){ $codon = substr($odata, $p, 3); if($codon =~ /GGA/){ ++$GGA; ++$Gly; $q = $p + 1; print $codon,"($q)\n"; }elsif($codon =~ /GGC/){ ++$GGC; ++$Gly; $q = $p + 1; print $codon,"($q)\n"; }elsif($codon =~ /GGG/){ ++$GGG; ++$Gly; $q = $p + 1; print $codon,"($q)\n"; }elsif($codon =~ /GGT/){ ++$GGT; ++$Gly; $q = $p + 1; print $codon,"($q)\n"; } $p = $p+3; } $pGGA = 100*$GGA/$Gly; $pGGC = 100*$GGC/$Gly; $pGGG = 100*$GGG/$Gly; $pGGT = 100*$GGT/$Gly; print "There are $Gly glycine codons.\n"; print "There are $GGA GGA codons ($pGGA%);\n"; print "There are $GGC GGC codons ($pGGC%);\n"; print "There are $GGG GGG codons ($pGGG%);\n"; print "There are $GGT GGT codons ($pGGT%).\n"; close FILE; exit;