binPeaks | R Documentation |
This function looks for similar peaks (mass) across
MassPeaks
objects and equalizes their mass.
binPeaks(l, method=c("strict", "relaxed", "reference"), tolerance=0.002)
l |
|
method |
bin creation rule. |
tolerance |
|
The algorithm is based on the following workflow:
Put all mass in a sorted vector.
Calculate differences between each neighbor.
Divide the mass vector at the largest gap (largest difference) and form a left and a right bin.
Rerun step 3 for the left and/or the right bin if they don't fulfill the following criteria:
All peaks in a bin are near to the mean (method == "strict"
or method == "relaxed"
)
(abs(mass-meanMass)/meanMass < tolerance
) or the
reference mass (method == "reference"
;
abs(mass-reference)/reference < tolerance
).
method == "strict"
: The bin doesn't contain two or more
peaks of the same sample.
method == "strict"
: The new peak positions (mass value) are the
mean mass of a bin.
method == "relaxed"
: The new peak positions for the highest peaks of each
sample in a bin are generated by the mean mass of this peaks. The lower
peaks are not changed.
method == "reference"
: The new peak positions for the highest peaks of
each sample in a bin are generated by the mass of peaks of the first
MassPeaks
object. Lower peaks are not changed.
Returns a list
of mass adjusted
MassPeaks
objects.
Sebastian Gibb mail@sebastiangibb.de
intensityMatrix
,
MassPeaks
Website: https://strimmerlab.github.io/software/maldiquant/
## load package
library("MALDIquant")
## create two MassPeaks objects
p <- list(createMassPeaks(mass=seq(100, 500, 100), intensity=1:5),
createMassPeaks(mass=c(seq(100.2, 300.2, 100), 395), intensity=1:4))
binnedPeaks <- binPeaks(p, tolerance=0.002)
## compare result
iM1 <- intensityMatrix(p)
iM2 <- intensityMatrix(binnedPeaks)
all(dim(iM1) == c(2, 9)) # TRUE
all(dim(iM2) == c(2, 6)) # TRUE
show(iM2)
## increase tolerance
binnedPeaks <- binPeaks(p, tolerance=0.1)
iM3 <- intensityMatrix(binnedPeaks)
all(dim(iM3) == c(2, 5)) # TRUE
show(iM3)
## differences between "strict" and "relaxed"
p <- c(createMassPeaks(mass=c(1, 1.01, 3), intensity=c(2, 1, 1)),
createMassPeaks(mass=c(0.99, 3), intensity=rep(1, 2)),
createMassPeaks(mass=c(1.02, 3), intensity=rep(1, 2)))
intensityMatrix(binPeaks(p, method="strict", tolerance=0.05))
intensityMatrix(binPeaks(p, method="relaxed", tolerance=0.05))
## use a reference
ref <- createMassPeaks(mass=c(1, 3), intensity=rep(1, 2))
## include the reference
intensityMatrix(binPeaks(c(ref, p), method="reference", tolerance=0.05))
## drop the reference
intensityMatrix(binPeaks(c(ref, p), method="reference", tolerance=0.05)[-1])
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.