msPeakMRD: Peak Detection via Multiresolution Decomposition

Description Usage Arguments Value References See Also Examples

Description

A multiresolution decomposition (MRD) of the input time is formed using the maximal overlap discrete wavelet transform (MODWT). The sum of the MRD details (D) over the user-specified decomposition level(s) is formed.

If the number of specified decomposition levels is unity, first and second derivative approximations of D are approximated via (approximate) zero phase shifted versions of the MODWT(D) using the Haar and D4 (Daubechies extremal phase 4-tap) wavelet filter, respectively. The index locations of the original series are "marked" where the the first derivative is approximately zero and the second derivative exceeds a user defined threshold, providing an estimate of the local extrema locations in D. Here, we note that a positive convavity threshold is used (as opposed to a negative value) due to a natural negation of the second derivative approximation using the wavelet scheme described above.

If the number of decomposition levels is greater than one, a simple peak detection scheme (msExtrema) is used to return the locations of the local maxima in D.

Usage

1
2
msPeakMRD(x, y, n.level=floor(log2(length(y))),
    concavity.threshold=0, snr.thresh=0, process="msPeakMRD")

Arguments

x

A numeric vector representing the m/z values of a spectrum.

y

A numeric vector representing the intensity values of the spectrum.

concavity.threshold

A non-negative concavity threshold. All points in the second derivative approximation to the calculated detail series that do no exceed this threshold are removed a potential local extrema candidates. Only used if length(levels) == 1. Default: 0.

n.level

The decomposition level in which the analysis is to be carried out. limited to floor(log2(length(y))). Default: floor(log2(length(y))).

process

A character string denoting the name of the process to register with the (embedded) event history object of the input after processing the input data. Default: "msPeakMRD".

snr.thresh

A numeric value representing the signal intensity threshold. Only the local maxima whose signal intensity is above this value will be recorded as peaks. Default: 0.

Value

A data.frame with 10 columns: peak class location, left bound, right bound and peak span in both clock tick ("tick.loc", "tick.left", "tick.right", "tick.span") and mass measure ("mass.loc", "mass.left", "mass.right", "mass.span"), and peak signal-to-noise ratio and intensity ("snr", "intensity"). Since noise.local is NULL, "snr" is the same as ("intensity").

References

T. W. Randolph and Y. Yasui, Multiscale Processing of Mass Spectrometry Data, Biometrics, 62, pp. 589–597, 2006.

D. B. Percival and A. T. Walden, Wavelet Methods for Time Series Analysis, Cambridge University Press, 2000.

See Also

wavMODWT, wavDaubechies, wavIndex, msPeak.

Examples

 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
if (!exists("qcset")) data("qcset", package="msProcess")

## extract a subset of a single spectrum
mz  <- qcset$mz
imz <- mz > 3000 & mz < 5000
z   <- as.vector(qcset[imz, 1]$intensity)
mz  <- mz[imz]

## specify the decomposition levels of interest
level <- 6

## calculate the MRD detail
D <- wavMRDSum(z, wavelet="haar",
    levels=level, xform="modwt",
    keep.smooth=FALSE, keep.details=TRUE,
    reflect=TRUE)

## locate MODWT MRD detail features via
## wavelet-based first and second derivative
## approximations
ipeak1 <- msPeakMRD(mz, D, n.level=level)[["tick.loc"]]

## plot the results
plot(D, cex=0.5, ylab=paste("D",level,sep=""), type="b")
abline(v=ipeak1, col="blue", lty="dashed")

zeehio/msProcess documentation built on May 4, 2019, 10:15 p.m.