summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--SPEC.pl43
1 files changed, 43 insertions, 0 deletions
diff --git a/SPEC.pl b/SPEC.pl
new file mode 100644
index 0000000..99ae1b9
--- /dev/null
+++ b/SPEC.pl
@@ -0,0 +1,43 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use 5.016;
+
+my %mass = qw(
+ 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
+);
+
+my %protein = map {
+ val($mass{$_}) - 1 => $_,
+ val($mass{$_}) => $_,
+ val($mass{$_}) + 1 => $_,
+} keys %mass;
+
+chomp(my $prev = <>);
+while (<>) {
+ chomp;
+ my $diff = val($_) - val($prev);
+ print $protein{$diff};
+ $prev = $_;
+}
+
+sub val { int($_[0] * 10000 + 0.5) }