binPeaks-functions function

Align Peaks into discrete bins.

Align Peaks into discrete bins.

This function looks for similar peaks (mass) across MassPeaks objects and equalizes their mass.

binPeaks(l, method=c("strict", "relaxed", "reference"), tolerance=0.002)

Arguments

  • l: list, list of MassPeaks objects.
  • method: bin creation rule. "strict" creates bins never containing two or more peaks of the same sample. "relaxed" allows multiple peaks of the same sample in one bin. "reference" generates bins around the mass values from the first MassPeaks object in l.
  • tolerance: double, maximal relative deviation of a peak position (mass) to be considered as identical. Must be multiplied by 10^-6 for ppm, e.g. use tolerance=5e-6 for 5 ppm.

Details

The algorithm is based on the following workflow:

  1. Put all mass in a sorted vector.

  2. Calculate differences between each neighbor.

  3. Divide the mass vector at the largest gap (largest difference) and form a left and a right bin.

  4. 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

Returns a list of mass adjusted MassPeaks objects.

Author(s)

Sebastian Gibb mail@sebastiangibb.de

See Also

intensityMatrix, MassPeaks

Website: https://strimmerlab.github.io/software/maldiquant/

Examples

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