summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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;