## 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