diff options
author | Jesse Luehrs <doy@tozt.net> | 2012-10-20 06:02:54 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2012-10-20 06:02:54 -0500 |
commit | 123da2fe665707a22e01c60a11277f9e8a873e20 (patch) | |
tree | 635db5d211556a4fd9ddc303494377a03522ac6f | |
parent | 848db9d74f8540c13ce136761aaac5bd54ae2f32 (diff) | |
download | rosalind-123da2fe665707a22e01c60a11277f9e8a873e20.tar.gz rosalind-123da2fe665707a22e01c60a11277f9e8a873e20.zip |
another solution
-rw-r--r-- | MRNA.pl | 34 |
1 files changed, 34 insertions, 0 deletions
@@ -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; |