## load library
library("MALDIquant")
## create a reference MassPeaks object
r <- createMassPeaks(mass=1:5, intensity=1:5)
## create test samples
p <- list(createMassPeaks(mass=((1:5)*1.01), intensity=1:5),
createMassPeaks(mass=((1:5)*0.99), intensity=1:5))
## create a simple (in other cases useless ) warping function
simpleWarp <- function(x, d, ...) { return(function(x){return(d)}) }
## create an interactive device with 2 rows
par(mfrow=c(2, 1))
## calculate warping function (using simpleWarp as basic warping function)
## and show warping plot
w <- determineWarpingFunctions(p, tolerance=0.02, warpingFunction=simpleWarp,
plot=TRUE, plotInteractive=TRUE)
par(mfrow=c(1, 1))
## w contains the individual warping functions
warpedPeaks <- warpMassPeaks(p, w)
## compare results
all(mass(r) == mass(warpedPeaks[[1]])) # TRUE
all(mass(r) == mass(warpedPeaks[[2]])) # TRUE
## realistic example
## load example data
data("fiedler2009subset", package="MALDIquant")
## running typical workflow
## transform intensities
t<- transformIntensity(fiedler2009subset, fun=sqrt)
## smoothing function
movingAvg <- function(y) {
return(filter(y, rep(1, 5)/5, sides=2))
}
## smooth spectra
s <- transformIntensity(t, fun=movingAvg)
## baseline correction
b <- removeBaseline(s)
## detect peaks
peaks <- detectPeaks(b)
## create an interactive device with 2 rows
par(mfrow=c(2, 1))
## calculate warping functions (using lowess based basic function [default])
w <- determineWarpingFunctions(peaks, plot=TRUE, plotInteractive=TRUE)
par(mfrow=c(1, 1))Run the code above in your browser using DataLab