From 3fc0ef8d9e271ebc5e34e28972d4ed646833623a Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Fri, 16 Nov 2012 20:58:59 -0600 Subject: another solution --- SPEC.pl | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 SPEC.pl 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) } -- cgit v1.2.3