| psm {protViz} | R Documentation |
Compute a matching between a peptide sequence and a MS2 spectrum
Description
The function computes a matching between a given peptide sequence and a given tandem mass spectrum (MS2).
psm determines for each fragment ion mass peak the smallest mass error to a peak in the theretical spectrum from the peptide sequence.
If the mass error is below the given fragmentIonError the match is considered a hit.
psm returns a list of computed fragment ions and a vector of the mass error (Da and ppm).
psm uses a generic ANSI-C function to determines the nearest mass peak of array of double
values.
If the plot is set to TRUE an error plot is drawn.
The function psm reqires the arguments sequence and spec. All other arguments are optional.
Usage
psm(sequence,
spec,
FUN=defaultIon,
plot=TRUE,
fi=fragmentIon(sequence, FUN=FUN)[[1]],
fragmentIonError)
Arguments
sequence |
peptide sequence encoded as character sequence using the 20 amino acid letters. |
spec |
MS2 which is a R list having a sorted mZ vector and an intensity vector of the same size. |
FUN |
this function is passed to the |
plot |
boolean if the error plot function is to be called. |
fi |
fragment ion table, if not specified |
fragmentIonError |
fragment ion error cut-off. default is 0.6 Da. |
Details
This function can be very useful to make assignements to spectra. Moreover it is used for validation or clairifying ambiguities between different sequences assigned to the same spectrum. Additinally it can be used to generate spectral libraries.
Value
returns a psm match.
Author(s)
Christian Panse 2007, 2008, 2009, 2010, 2012, 2017
See Also
peakplot and fragmentIon
Examples
spec <- list(scans=1138,
title="178: (rt=22.3807) [20080816_23_fetuin_160.RAW]",
rtinseconds=1342.8402,
charge=2,
mZ=c(195.139940, 221.211970, 239.251780, 290.221750,
316.300770, 333.300050, 352.258420, 448.384360, 466.348830,
496.207570, 509.565910, 538.458310, 547.253380, 556.173940,
560.358050, 569.122080, 594.435500, 689.536940, 707.624790,
803.509240, 804.528220, 822.528020, 891.631250, 909.544400,
916.631600, 973.702160, 990.594520, 999.430580, 1008.583600,
1017.692500, 1027.605900),
intensity=c(931.8, 322.5, 5045, 733.9, 588.8, 9186, 604.6,
1593, 531.8, 520.4, 976.4, 410.5, 2756, 2279, 5819, 2.679e+05,
1267, 1542, 979.2, 9577, 3283, 9441, 1520, 1310, 1.8e+04,
587.5, 2685, 671.7, 3734, 8266, 3309)
)
m <- psm('HTLNQIDSVK', spec,plot=TRUE)
hist(m$mZ.Da.error)
hist(m$mZ.ppm.error)