Skip to content

Faster quantify functions #130

@lgatto

Description

@lgatto

Quantification needs to be reimplemented at the C-level or using on disk access and using basic data types to make full use of the OnDiskMSnExp data structure.

Quantitation involves peak integration, which will be useful for MS1 and MS2 quantitation. The way this is done will depend if data is centroided (only really relevant for MS2 data) or profile mode. When in profile mode, the peak is a curve; in centroided mode, the peak is a sticky peak.

What follows is a crude description of the needs. I will refine later.

quantify

  • To quantify a peak, first find it
  • The peak is defined by on mz value and a tolerance, defining an mz
    range
  • findPeak(mz, tolerance)

quantify(method = "max")

  • default for centroided data, but also applicable to profile data
  • return the max of the peak

quantify(method = "trapezoidation")

  • calculate the area below the peak/curve
  • here, we need to know where the curve starts and ends (mz range)
  • here, we can be strict or not

findPeak(mz, tolerance)

  • define the mz range
  • To find the peak, look in the mz range and find the highest value. SeeMALDIquant:::.localMaxima, with appropriate halfWindowSize.
  • If centroided, return the corresonding intensity and done.
  • If profile, it's not a sticky peak, but a curve, and we still might
    want to to find the lower/left and upper/right ends of the curve to integrate.

Summary of quantify methods:

method centroided profile
trapezoidation Not relevant, should use max [1]
max fastquant_max [1]
sum [1]
SI SI same
SIgi SI same
SIn SI same
SAF SAF same
NSAF SAF same
count count_MSnSet same
tic [2] tic_MSnSet same

Some functions are the same (after minor modifications) than for the MSnExp: count_MSnSet, tic_MSnSet, SI and SAF.

[1] this one could actually climb up outide of mz+/- wd to detect to maximum.
[2] actually not directly available as a method, used by SI, SIgi and SIn.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions