Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

Created March 30, 2013 14:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/5276828 to your computer and use it in GitHub Desktop.
Save anonymous/5276828 to your computer and use it in GitHub Desktop.
matching a spectrum to a protein (rosalind problem)
use v6;
constant MASS-TABLE = <
A 71.03711
C 103.00919
D 115.02694
E 129.04259
F 147.06841
G 57.02146
H 137.05891
I 113.08406
K 128.09496
L 113.08406
M 131.04049
N 114.04293
P 97.05276
Q 128.05858
R 156.10111
S 87.03203
T 101.04768
V 99.06841
W 186.07931
Y 163.06333
>.hash;
my $n = get;
my @protein = get() xx $n;
my @R = lines;
sub complete-spectrum($str) {
.bag given
map { [\+] MASS-TABLE{.comb} }, $str, $str.flip
}
say .value, "\n", .key
given max :by(*.value), gather for @protein {
take $_ => (@R X- my @ = .&complete-spectrum.keys).bag.values.max
}
# vim: ft=perl6
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment