estimateBaseline-methods function

Estimates the baseline of a MassSpectrum object.

Estimates the baseline of a MassSpectrum object.

This method estimates the baseline of mass spectrometry data (represented by a MassSpectrum object). methods

## S4 method for signature 'MassSpectrum' estimateBaseline(object, method=c("SNIP", "TopHat", "ConvexHull", "median"), ...)

Arguments

  • object: MassSpectrum object
  • method: used baseline estimation method, one of "SNIP", "TopHat", "ConvexHull" or "median".
  • ...: arguments to be passed to method

Details

  • "SNIP":: This baseline estimation is based on the Statistics-sensitive Non-linear Iterative Peak-clipping algorithm (SNIP) described in Ryan et al 1988.

     The algorithm based on the following equation: 
    
yi(k)=min{yi,(yik+yi+k)2}yi(k)=minyi,(yik+yi+k)/2 y_i(k) = \min \{ y_i, \frac{(y_{i-k}+y_{i+k})}{2} \}y_i(k) = min { y_i, (y_{i-k}+y_{i+k})/2 }
   It has two additional arguments namely `iterations` and `decreasing`. `iterations` controls the window size (**k**; similar to `halfWindowSize` in `"TopHat"`, `"Median"`) of the algorithm. The resulting window reaches from `mass[cur_index-iterations]` to `mass[cur_index+iterations]`.
   
    `decreasing`: In Morhac 2009 a decreasing clipping window is suggested to get a smoother baseline. For `decreasing = TRUE`
   
   (`decreasing = FALSE`) **k**=`iterations` is decreased (increased) by one until zero (`iterations`) is reached. The default setting is `decreasing = TRUE`.
  • "TopHat":: This algorithm applies a moving minimum (erosion filter) and subsequently a moving maximum (dilation filter) filter on the intensity values. The implementation is based on van Herk 1996. It has an additional halfWindowSize argument determining the half size of the moving window for the TopHat filter. The resulting window reaches from mass[cur_index-halfWindowSize] to mass[cur_index+halfWindowSize].

  • "ConvexHull":: The baseline estimation is based on a convex hull constructed below the spectrum.

  • "median":: This baseline estimation uses a moving median. It is based on runmed. The additional argument halfWindowSize

     corresponds to the `k` argument in `runmed`
     
     (`k = 2 * halfWindowSize + 1`) and controls the half size of the moving window. The resulting window reaches from `mass[cur_index-halfWindowSize]` to `mass[cur_index+halfWindowSize]`.
    

Returns

Returns a two column matrix (first column: mass, second column: intensity) of the estimated baseline.

Author(s)

Sebastian Gibb mail@sebastiangibb.de

References

"SNIP":

C.G. Ryan, E. Clayton, W.L. Griffin, S.H. Sie, and D.R. Cousens. 1988. Snip, a statistics-sensitive background treatment for the quantitative analysis of pixe spectra in geoscience applications. Nuclear Instruments and Methods in Physics Research Section B: Beam Interactions with Materials and Atoms, 34(3): 396-402.

M. Morhac. 2009. An algorithm for determination of peak regions and baseline elimination in spectroscopic data. Nuclear Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and Associated Equipment, 600(2), 478-487.

"TopHat":

M. van Herk. 1992. A Fast Algorithm for Local Minimum and Maximum Filters on Rectangular and Octagonal Kernels. Pattern Recognition Letters 13.7: 517-521.

J. Y. Gil and M. Werman. 1996. Computing 2-Dimensional Min, Median and Max Filters. IEEE Transactions: 504-507.

"ConvexHull":

Andrew, A. M. 1979. Another efficient algorithm for convex hulls in two dimensions. Information Processing Letters, 9(5), 216-219.

See Also

MassSpectrum, removeBaseline,MassSpectrum-method

demo("baseline")

Website: https://strimmerlab.github.io/software/maldiquant/

Examples

## load package library("MALDIquant") ## load example data data("fiedler2009subset", package="MALDIquant") ## choose only the first mass spectrum s <- fiedler2009subset[[1]] ## SNIP plot(s) ## estimate baseline b <- estimateBaseline(s, method="SNIP", iterations=100) ## draw baseline on the plot lines(b, col="red") ## TopHat plot(s) ## estimate baseline (try different parameters) b1 <- estimateBaseline(s, method="TopHat", halfWindowSize=75) b2 <- estimateBaseline(s, method="TopHat", halfWindowSize=150) ## draw baselines on the plot lines(b1, col=2) lines(b2, col=3) ## draw legend legend(x="topright", lwd=1, legend=paste0("halfWindowSize=", c(75, 150)), col=c(2, 3)) ## ConvexHull plot(s) ## estimate baseline b <- estimateBaseline(s, method="ConvexHull") ## draw baseline on the plot lines(b, col="red") ## Median plot(s) ## estimate baseline b <- estimateBaseline(s, method="median") ## draw baseline on the plot lines(b, col="red")