Description Usage Arguments Details Value Author(s) Examples

The `mzmatch`

function enables matching of M/Z values allowing
also small differences between the values, which can be set with the
`mzdev`

and `ppm`

arguments.

1 2 3 4 5 |

(in alphabetic order)

`mz` |
A numeric vector of M/Z values. |

`mzdev` |
A (single) numeric value specifying an allowed maximal shift/deviation of the M/Z values. See description of the return value for more details. |

`ppm` |
A (single) numeric value specifying the parts per million deviation of the M/Z value. See description of the return value for more details. |

`x` |
A numeric vector or matrix with the M/Z values that should be
matched against |

The method returns a match, if the distance between the masses is
smaller than specified with the arguments `mzdev`

and `ppm`

,
i.e. if the distance `abs(x - mz)`

is smaller or equal to
`(mzdev + (x / 1000000) * ppm))`

. Note that, if `x`

is a
`matrix`

specifying an M/Z value range in each row, the midpoint
of this range (i.e. the mean value) is matched against `mz`

with
the difference between that midpoint to the lower bound being added to
the `mzdev`

argument.

The method always returns a `list`

of length
`length(x)`

. Each list element is a two-column `matrix`

with
as many rows as there are matches of `x`

in `mz`

. If no
match was found for an element in `x`

the matrix will still have
1 row, but contain only `NA`

values. The columns of the
`matrix`

are `"idx"`

, the index of the match in `mz`

,
and `"deltaMz"`

, the distance of the element in `x`

to the
matching `mz`

value (i.e. the difference of the mass to the M/Z
value of the compound).

Johannes Rainer

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | ```
## Simple example; matching numeric values.
gotMz <- c(2.23, 2.53)
## Define the mz argument
matchWith <- seq(1, 5, by=0.1)
matchWith
## Matching 'as.is' does not return any match
mzmatch(gotMz, matchWith)
## For this simple example we have increase the 'mzdev'; by setting
## mzdev=0.03 we get a match with the element 2.2 and 2.5
res <- mzmatch(gotMz, matchWith, mzdev=0.03)
res
res <- do.call(rbind, res)
matchWith[res[, "idx"]]
## If we increase the mzdev to 0.07 we get in addition a match to 2.3 and 2.6
res <- mzmatch(gotMz, matchWith, mzdev=0.07)
res
matchWith[res[[1]][, "idx"]]
## Alternatively, specify a M/Z range.
gotMz <- rbind(c(2.23, 2.25),
c(2.53, 2.57))
## In this case, the midpoint of each range is matched against the mz values
## and the difference midpoint to min of range is added to the mzdev. In our
## example this means, we're matching 2.24 and 2.55 and adding 0.01 to the mzdev
## argument for the first, and 0.02 to the second. That way we get already two
## matches for the second mass.
res <- mzmatch(gotMz, matchWith, mzdev=0.03)
res
####
## Real life example: find a peak group matching a certain mass.
## We load the test data from the xcms package and perform the /default/ analysis
## as provided by the xcms vignette
library(faahKO)
xset <- group(faahko)
xset <- retcor(xset, family="symmetric")
xset <- group(xset, bw=10)
xset <- fillPeaks(xset)
## The groups method extracts the definition of the identified, and matched
## peaks
head(groups(xset))
## We can now use the matchmz method to find peak groups matching the peaks
## shown in Figure 3 of the xcms vignette.
gotMz <- rbind(c(300.1, 300.2),
c(298.1, 298.2),
c(491.1, 491.3))
idx <- mzmatch(gotMz, groups(xset)[, "mzmed"])
idx
groups(xset)[idx[[1]][, 1], ]
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.