Nothing
## This is a MALDIquant example file. It is released into public domain with the
## right to use it for any purpose but without any warranty.
## peaks demo
## load necessary packages
## requires MALDIquant >= 1.9
library("MALDIquant")
## load example spectra
data("fiedler2009subset", package="MALDIquant")
## choose only spectrum 1
s1 <- fiedler2009subset[[1]]
## preprocessing
## sqrt transform (for variance stabilization)
s2 <- transformIntensity(s1, method="sqrt")
## 21 point Savitzky-Golay-Filter for smoothing spectra
## (maybe you have to adjust the halfWindowSize;
## you could use a simple moving average instead)
## see ?smoothIntensity
s3 <- smoothIntensity(s2, method="SavitzkyGolay", halfWindowSize=10)
## remove baseline
## (maybe you have to adjust iterations to your spectra; high resolution
## spectra need a much lower iteration number (halfWindowSize, for some other
## baseline estimation algorithms)
## see ?removeBaseline, ?estimateBaseline
s4 <- removeBaseline(s3, method="SNIP", iterations=100)
## run peak detection
## (maybe you need to adjust halfWindowSize [decreasing it for high resolution
## spectra] and SNR [a higher value increase the True-Positive-Rate but decrease
## sensitivity])
## see ?detectPeaks, ?estimateNoise
p <- detectPeaks(s4, method="MAD", halfWindowSize=20, SNR=2)
## produce some plots
par(mfrow=c(2,3))
xlim <- range(mass(s1)) # use same xlim on all plots for better comparison
plot(s1, main="1: raw", sub="", xlim=xlim)
plot(s2, main="2: variance stabilization", sub="", xlim=xlim)
plot(s3, main="3: smoothing", sub="", xlim=xlim)
plot(s4, main="4: baseline correction", sub="", xlim=xlim)
plot(s4, main="5: peak detection", sub="", xlim=xlim)
points(p)
## label top 20 peaks
top20 <- intensity(p) %in% sort(intensity(p), decreasing=TRUE)[1:20]
labelPeaks(p, index=top20, underline=TRUE)
plot(p, main="6: peak plot", sub="", xlim=xlim)
labelPeaks(p, index=top20, underline=TRUE)
par(mfrow=c(1,1))
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.