compareSpectra | R Documentation |
compareSpectra()
compares each spectrum in x
with each spectrum in y
using the function provided with FUN
(defaults to
MsCoreUtils::ndotproduct()
). If y
is missing, each spectrum in x
is
compared with each other spectrum in x
.
The matching/mapping of peaks between the compared spectra is done with the
MAPFUN
function. The default joinPeaks()
matches peaks of both spectra
and allows to keep all peaks from the first spectrum (type = "left"
),
from the second (type = "right"
), from both (type = "outer"
) and to
keep only matching peaks (type = "inner"
); see joinPeaks()
for more
information and examples). The MAPFUN
function should have parameters
x
, y
, xPrecursorMz
and yPrecursorMz
as these values are passed to
the function.
In addition to joinPeaks()
also joinPeaksGnps()
is supported for
GNPS-like similarity score calculations. Note that joinPeaksGnps()
should
only be used in combination with FUN = MsCoreUtils::gnps
(see joinPeaksGnps()
for more information and details). Use
MAPFUN = joinPeaksNone
to disable internal peak matching/mapping if a
similarity scoring function is used that performs the matching internally.
FUN
is supposed to be a function to compare intensities of (matched)
peaks of the two spectra that are compared. The function needs to take two
matrices with columns "mz"
and "intensity"
as input and is supposed
to return a single numeric as result. In addition to the two peak matrices
the spectra's precursor m/z values are passed to the function as parameters
xPrecursorMz
(precursor m/z of the x
peak matrix) and yPrecursorMz
(precursor m/z of the y
peak matrix). Additional parameters to functions
FUN
and MAPFUN
can be passed with ...
. Parameters ppm
and
tolerance
are passed to both MAPFUN
and FUN
.
The function returns a matrix
with the results of FUN
for each
comparison, number of rows equal to length(x)
and number of columns
equal length(y)
(i.e. element in row 2 and column 3 is the result from
the comparison of x[2]
with y[3]
). If SIMPLIFY = TRUE
the matrix
is simplified to a numeric
if length of x
or y
is one. See also
the vignette for additional examples, such as using spectral entropy
similarity in the scoring.
## S4 method for signature 'Spectra,Spectra'
compareSpectra(
x,
y,
MAPFUN = joinPeaks,
tolerance = 0,
ppm = 20,
FUN = ndotproduct,
...,
SIMPLIFY = TRUE
)
## S4 method for signature 'Spectra,missing'
compareSpectra(
x,
y = NULL,
MAPFUN = joinPeaks,
tolerance = 0,
ppm = 20,
FUN = ndotproduct,
...,
SIMPLIFY = TRUE
)
x |
A |
y |
A |
MAPFUN |
For |
tolerance |
|
ppm |
|
FUN |
function to compare intensities of peaks between two spectra.
Defaults to |
... |
Additional arguments passed to the internal functions. |
SIMPLIFY |
|
Sebastian Gibb, Johannes Rainer, Laurent Gatto
## Load a `Spectra` object with LC-MS/MS data.
fl <- system.file("TripleTOF-SWATH", "PestMix1_DDA.mzML",
package = "msdata")
sps_dda <- Spectra(fl)
sps_dda
## Restrict to MS2 (fragment) spectra:
sps_ms2 <- filterMsLevel(sps_dda, msLevel = 2L)
## Compare spectra: comparing spectra 2 and 3 against spectra 10:20 using
## the normalized dotproduct method.
res <- compareSpectra(sps_ms2[2:3], sps_ms2[10:20])
## first row contains comparisons of spectrum 2 with spectra 10 to 20 and
## the second row comparisons of spectrum 3 with spectra 10 to 20
res
## We next calculate the pairwise similarity for the first 10 spectra
compareSpectra(sps_ms2[1:10])
## Use compareSpectra to determine the number of common (matching) peaks
## with a ppm of 10:
## type = "inner" uses a *inner join* to match peaks, i.e. keeps only
## peaks that can be mapped betwen both spectra. The provided FUN returns
## simply the number of matching peaks.
compareSpectra(sps_ms2[2:3], sps_ms2[10:20], ppm = 10, type = "inner",
FUN = function(x, y, ...) nrow(x))
## We repeat this calculation between all pairwise combinations
## of the first 20 spectra
compareSpectra(sps_ms2[1:20], ppm = 10, type = "inner",
FUN = function(x, y, ...) nrow(x))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.