determineWarpingFunctions | R Documentation |
This function determines a warping function for a list of
AbstractMassObject
objects
(warping is also known as phase correction/spectra alignment).
determineWarpingFunctions(l, reference, tolerance=0.002,
method=c("lowess", "linear", "quadratic", "cubic"),
allowNoMatches=FALSE,
plot=FALSE, plotInteractive=FALSE, ...)
l |
|
reference |
|
tolerance |
|
method |
used basic warping function. |
allowNoMatches |
|
plot |
|
plotInteractive |
|
... |
arguments to be passed to |
warpingFunction
: determineWarpingFunctions
estimates a warping
function to overcome the difference between mass in reference
and in
the current sample. To calculate the differences each reference peak would
match with the highest sample peak in the nearer neighborhood
(defined by mass of reference peak*tolerance
).
allowNoMatches
: If allowNoMatches
is TRUE
a warning instead
of an error is thrown if an MassPeaks
object could not match to the reference
. The returned list of warping
functions will contain NA
for this object (same index in the list).
plotInteractive
: If plot
is TRUE
a lot of output is
created (each sample in l
gets its own plot).
That's why an non-interactive devices is recommended:
## create a device pdf() ## calculate warping functions w <- determineWarpingFunctions(p, plot=TRUE) ## close device dev.off()
Returns a list
of individual warping functions. The attribute
nmatch
contains the number of matches of each
MassPeaks
element in l
against reference
.
Sebastian Gibb mail@sebastiangibb.de
referencePeaks
,
warpMassPeaks
,
warpMassSpectra
,
MassPeaks
demo("warping")
Website: https://strimmerlab.github.io/software/maldiquant/
## load package
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 an interactive device with 2 rows
par(mfrow=c(2, 1))
## calculate warping function
## (using a linear function as basic warping function)
## and show warping plot
w <- determineWarpingFunctions(p, tolerance=0.02, method="linear",
plot=TRUE, plotInteractive=TRUE)
par(mfrow=c(1, 1))
## access number of matches
attr(w, "nmatch")
## 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
## use only four spectra of the subset
spectra <- fiedler2009subset[1:4]
## transform intensities
spectra <- transformIntensity(spectra, method="sqrt")
## smooth spectra
spectra <- smoothIntensity(spectra, method="MovingAverage")
## baseline correction
spectra <- removeBaseline(spectra)
## detect peaks
peaks <- detectPeaks(spectra)
## create an interactive device with 2 rows
par(mfrow=c(4, 1))
## calculate warping functions (using LOWESS based basic function [default])
w <- determineWarpingFunctions(peaks, plot=TRUE, plotInteractive=TRUE)
par(mfrow=c(1, 1))
## realistic example with user defined reference/calibration peaks
## use the workflow above for fiedler2009subset
## create reference peaks
refPeaks <- createMassPeaks(mass=c(1207, 1264, 1351, 1466, 1616, 2769, 2932,
3191, 3262, 4091, 4209, 5904, 7762, 9285),
intensity=rep(1, 14))
## create an interactive device with 2 rows
par(mfrow=c(4, 1))
## calculate warping functions (using a quadratic function as basic function)
w <- determineWarpingFunctions(peaks, reference=refPeaks, method="quadratic",
plot=TRUE, plotInteractive=TRUE)
par(mfrow=c(1, 1))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.