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).
`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.6.3 Index]