diff options
Diffstat (limited to 'SPEC.pl')
-rw-r--r-- | SPEC.pl | 43 |
1 files changed, 43 insertions, 0 deletions
@@ -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) } |