summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2012-10-20 06:02:54 -0500
committerJesse Luehrs <doy@tozt.net>2012-10-20 06:02:54 -0500
commit123da2fe665707a22e01c60a11277f9e8a873e20 (patch)
tree635db5d211556a4fd9ddc303494377a03522ac6f
parent848db9d74f8540c13ce136761aaac5bd54ae2f32 (diff)
downloadrosalind-123da2fe665707a22e01c60a11277f9e8a873e20.tar.gz
rosalind-123da2fe665707a22e01c60a11277f9e8a873e20.zip
another solution
-rw-r--r--MRNA.pl34
1 files changed, 34 insertions, 0 deletions
diff --git a/MRNA.pl b/MRNA.pl
new file mode 100644
index 0000000..f44a27b
--- /dev/null
+++ b/MRNA.pl
@@ -0,0 +1,34 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use 5.016;
+
+use List::Util 'reduce';
+our ($a, $b);
+
+my %map = qw(
+ UUU F CUU L AUU I GUU V
+ UUC F CUC L AUC I GUC V
+ UUA L CUA L AUA I GUA V
+ UUG L CUG L AUG M GUG V
+ UCU S CCU P ACU T GCU A
+ UCC S CCC P ACC T GCC A
+ UCA S CCA P ACA T GCA A
+ UCG S CCG P ACG T GCG A
+ UAU Y CAU H AAU N GAU D
+ UAC Y CAC H AAC N GAC D
+ UAA Stop CAA Q AAA K GAA E
+ UAG Stop CAG Q AAG K GAG E
+ UGU C CGU R AGU S GGU G
+ UGC C CGC R AGC S GGC G
+ UGA Stop CGA R AGA R GGA G
+ UGG W CGG R AGG R GGG G
+);
+
+my %freq;
+for my $codon (keys %map) {
+ $freq{$map{$codon}}++;
+}
+
+chomp(my $input = <>);
+say $freq{Stop} * reduce { $a * $b } map { $freq{$_} } split '', $input;