peakDetectionCWT: The main function of peak detection by CWT based pattern...

View source: R/peakDetectionCWT.R

peakDetectionCWTR Documentation

The main function of peak detection by CWT based pattern matching

Description

This function is a wrapper of cwt(), getLocalMaximumCWT(), getRidge(), identifyMajorPeaks()

Usage

peakDetectionCWT(
  ms,
  scales = c(1, seq(2, 30, 2), seq(32, 64, 4)),
  SNR.Th = 3,
  nearbyPeak = TRUE,
  peakScaleRange = 5,
  amp.Th = 0.01,
  minNoiseLevel = amp.Th/SNR.Th,
  ridgeLength = 24,
  peakThr = NULL,
  tuneIn = FALSE,
  ...,
  exclude0scaleAmpThresh = FALSE,
  getRidgeParams = list(gapTh = 3, skip = 2)
)

Arguments

ms

the mass spectrometry spectrum

scales

Scales of CWT. See cwt() for details. Additionally, a prepared_wavelets object is also accepted (see prepareWavelets()).

SNR.Th

SNR (Signal to Noise Ratio) threshold

nearbyPeak

Determine whether to include the nearby small peaks of major peaks. TRUE by default

peakScaleRange

the scale range of the peak. larger than 5 by default.

amp.Th

the minimum required relative amplitude of the peak (ratio to the maximum of CWT coefficients)

minNoiseLevel

the minimum noise level used in computing the SNR

ridgeLength

the minimum highest scale of the peak in 2-D CWT coefficient matrix

peakThr

Minimal absolute intensity (above the baseline) of peaks to be picked. If this value is provided, then the smoothing function signal::sgolayfilt() will be called to estimate the local intensity.(added based on the suggestion and code of Steffen Neumann)

tuneIn

determine whether to tune in the parameter estimation of the detected peaks. If TRUE, peak detection is run again on a segment of the spectrum with more detailed scales. This tuning happens with the default wavelet and settings so it may not be that useful to you if you are using custom wavelets or thresholds.

...

other parameters used by identifyMajorPeaks(). Additionally, fl (filter length, with a default value of 1001) and forder (filter order, with a default value of 2) are set and passed to signal::sgolayfilt() when peakThr is given.

exclude0scaleAmpThresh

When computing the relative amp.Th, if this is set to TRUE, the amp.Th will exclude the zero-th scale from the max(wCoefs). The zero-th scale corresponds to the original signal, that may have a much larger baseline than the wavelet coefficients and can distort the threshold calculation. The default is FALSE to preserve backwards compatibility.

getRidgeParams

A list with parameters for getRidge().

Value

majorPeakInfo

return of identifyMajorPeaks()

ridgeList

return of getRidge()

localMax

return of getLocalMaximumCWT()

wCoefs

2-D CWT coefficient matrix, see cwt() for details.

Author(s)

Pan Du, Simon Lin

References

Du, P., Kibbe, W.A. and Lin, S.M. (2006) Improved peak detection in mass spectrum by incorporating continuous wavelet transform-based pattern matching, Bioinformatics, 22, 2059-2065.

See Also

cwt(), getLocalMaximumCWT(), getRidge(), identifyMajorPeaks()

Examples


data(exampleMS)

# Detect peaks with prepared wavelets:
prep_wav <- prepareWavelets(length(exampleMS))
SNR.Th <- 3
peakInfo <- peakDetectionCWT(exampleMS, prep_wav, SNR.Th = SNR.Th, exclude0scaleAmpThresh=TRUE)
peakIndex <- peakInfo$majorPeakInfo$peakIndex
plotPeak(exampleMS, peakIndex, main = paste("Identified peaks with SNR >", SNR.Th))

SNR.Th <- 3
peakInfo <- peakDetectionCWT(exampleMS, SNR.Th = SNR.Th)
majorPeakInfo <- peakInfo$majorPeakInfo
peakIndex <- majorPeakInfo$peakIndex
plotPeak(exampleMS, peakIndex, main = paste("Identified peaks with SNR >", SNR.Th))

## In some cases, users may want to add peak filtering based on the absolute peak amplitude
peakInfo <- peakDetectionCWT(exampleMS, SNR.Th = SNR.Th, peakThr = 500)
majorPeakInfo <- peakInfo$majorPeakInfo
peakIndex <- majorPeakInfo$peakIndex
plotPeak(exampleMS, peakIndex, main = paste("Identified peaks with SNR >", SNR.Th))


zeehio/MassSpecWavelet documentation built on May 6, 2023, 1:32 a.m.