isPeak {PROcess} | R Documentation

## Locate Peaks in a Spectrum

### Description

Find local maxima of a spectrum.

### Usage

    isPeak(f,SoN = 2,span = 81,sm.span=11,plot=FALSE,add = FALSE,
    zerothrsh=2,area.w = 0.003, ratio = 0.2, ...)

### Arguments

`f` | a matrix of two columns representing a spectrum, with the first column the m/z value and second the intensity
`SoN` | signal to noise ratio criterion for peak detection
`span` | parameter for estimating local variance before peak detection; default is 81 points, that is, 40 points to the left and right of a point of which the variance is being estimated.
`sm.span` | parameter for smoothing the spectrum before peak detection; default is 11 points, that is, 5 points to the left and right of a point being smoothed
`plot` | logical, plot the smoothed spectrum and peaks?
`add` | add to the existing raw and baseline-substracted plot?
`zerothrsh` | ignore peaks whose intensity values are below zerothrsh.
`area.w` | the neighbourhood of a peak m/z, mz*(1-area.w, 1+area.w).

to calculate area of the peak,

`ratio` | if area/max(area) > ratio, the peak is retained.
`...` | further arguments that get passed on to `plot`.

### Details

A spectrum is smoothed first using the nearest ‘span’ neighbours. A larger span ‘sm.span’ is needed to estimate the local variation so that it is not overestimated due to the peaks nearby. Then potential peaks are identified using Ripley's ‘peaks’ function with ‘span’ points.

Peaks that satify the conditions that the (smoothed) signal to noise ratio is greater than ‘SoN’ and that the smoothed signal is greater than 1.64 * mad(sm) are returned.

### Value

A data frame with five components, ‘peak’,‘smooth’,‘mz’ and ‘sigmas’, each of length the number of rows in ‘f’. ‘peak’ is logical indicating whethere there is a peak or not (Y/N), ‘smooth’ the smooth of the spectrum, ‘mz’ the same as ‘f[,1]’, ‘sigmas’ the estimates of local variation and ‘area’ the area associated with each peak after the first pass.

### Author(s)

Xiaochun Li

### Examples

    example(bslnoff)
    pkobj <- isPeak(bseoff,span=81,sm.span=11,plot=TRUE)

[Package PROcess version 1.70.0 Index]