NAME
MS::Peptide - A class representing peptide species for proteomic analysis
SYNOPSIS
use MS::Peptide;
my $pep = MS::Peptide->new('AAPLSYAMK');
$pep->add_mod( 5 => 21 ); # phosphorylate S5
my $mz = $pep->mz( charge => 2); # [MH2]2+
DESCRIPTION
MS::Peptide
is a class representing peptide species for use in proteomics analysis. It provides methods for building specific isoforms and querying common information.
METHODS
new
my $pep = MS::Peptide->new(
'AAPLSYAMK',
prev => 'K',
next => 'L',
start => 23,
end => 31,
);
Takes an amino acid sequence (required) and optional argument hash and returns an MS::Peptide
object. Available options include:
prev — the previous residue in protein context, or an empty string if at the protein N-terminus. Should be left undefined if not known.
next — the next residue in protein context, or an empty string if at the protein C-terminus. Should be left undefined if not known.
start — the 1-based start position within the protein context. Should be left undefined if not known.
end — the 1-based end position within the protein context. Should be left undefined if not known.
seq
my $seq = $pep->seq;
Returns the original sequence string used during initialization, preserving case. This attribute cannot be changed after initialization.
length
my $len = $pep->length;
Returns the length of the peptide in residues.
prev
next
start
end
$pep->prev( 'K' );
$pep->next( 'L' );
$pep->start( 23 );
$pep->end( 31 );
If an argument is provided, sets the relevant attribute to that value. Returns the current value.
copy
my $pep2 = $pep->copy;
Makes a deep copy of the object, usually to change the modification state.
make_heavy
$pep->make_heavy( 3 => [qw/C N O/] );
Takes two required arguments (residue position(s) and element(s) to apply) and replaces the relevant atoms on those residue(s) with stable heavy isotopes. Both arguments can be either single scalar values or array references - the change will be applied to the matrix of the arguments.
neutral_mass
$pep->neutral_mass(%args);
Returns the neutral mass [M] of the current peptide state based on parameters provided. Possible parameters include:
type — 'mono' (default) or 'average'
mz
$pep->mz(%args);
Returns the m/z value of the current peptide state based on parameters provided. Possible parameters include:
type — 'mono' (default) or 'average'
charge — charge state to use (default: 1)
as_string
say $pep->as_string( fmt => 'original' ); # 'AAPLSYAMK'
say $pep->as_string( fmt => 'case' ); # 'AAPLsYAMK'
say $pep->as_string( fmt => 'deltas' ); # 'AAPLS[80]YAMK'
say $pep->as_string( fmt => 'case', # 'K.AAPLsYAMK.L'
adjacent => 1 );
Returns a stringification of the peptide sequence in a format based on the parameters specified. Possible arguments include: provided. Possible parameters include:
fmt — format of string
original — as originally provided (typically all upper-case)
case — modified residues as lower-case (default)
deltas — delta masses in brackets
adjacent — include adjacent residues (will throw exception if adjacent residues are not defined)
range
my $piece = $pep->range(5, 10);
Takes two arguments (start coordinate and end coordinate) and returns a new MS::Peptide object using the specified subset of amino acids. This will automatically populate the start, end, prev, and next attributes of the object.
add_mod
$pep->add_mod(7, 'Phospho');
$pep->add_mod([2,4], 'Carbamidomethyl');
Takes two arguments (coordinate and modification name) and adds the modification to the Peptide object in-place. The coordinate argument can be either a single integer value or a reference to an array of coordinates, in which case the modification will be added to each position. The modification string should be a Unimod name.
get_mods
my @mod_names = $pep->get_mods(7);
Takes a single argument (the index of the residue to query) and returns an array of Unimod modification names.
has_mod
if ($pep->has_mod(7, 'Phospho')) {
say "Yes, it is phosphorylated there!";
}
my $n = $pep->has_mod( [2,3], ['Phospho','Oxidation'] );
Takes two arguments (location and modification string) and returns the number of residues matching those criteria. If the location and modification are simple scalars, this acts as a boolean to test for that modification at that location. If one or both values are array references, all combinations are tested and the number of positive results are returned.
residue_positions
my @pos = $pep->residue_positions('Q','P');
A convenience function that takes a list of residues and returns the coordinates at which those residues occur in the peptide. Returns an empty list if none of the residues are found.
mod_array
my @deltas = $pep->mod_array();
Returns an array of delta masses for the termini and each residue in the peptide. The first delta is for the N-terminus and the last is for the C-terminus. Each delta mass represents the net effect of all modifications present on that residue. For a fully unmodified peptide, this method returns an array of zero values of length equal to length($pep)+2.
OTHER
Other methods are available but not yet documented (to be completed shortly).
CAVEATS AND BUGS
The API is in alpha stage and is not guaranteed to be stable.
Please reports bugs or feature requests through the issue tracker at https://github.com/jvolkening/p5-MS/issues.
SEE ALSO
AUTHOR
Jeremy Volkening <jdv@base2bio.com>
COPYRIGHT AND LICENSE
Copyright 2015-2016 Jeremy Volkening
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.