Skip to main content
Topic: How does centWave compute area under curve? (Read 2283 times) previous topic - next topic

How does centWave compute area under curve?

Good evening,

I would like to evaluate how much area under the curve centWave actually obtains on a manually curated set. I have the raw data points corresponding to each feature detected, but when I sum the intensity values of the centroids it generally underestimates the intensity that is reported in the "into" and "intb" columns of the matrix returned by findPeaks.centWave().  Why are the intensities different? I read the following part of the documentation for findPeaks.centWave():

integrate: Integration method. If ‘=1’ peak limits are found through
          descent on the mexican hat filtered data, if ‘=2’ the descent
          is done on the real data. Method 2 is very accurate but prone
          to noise, while method 1 is more robust to noise but less

I suppose that the mexican hat operation or the real descent alter the way centWave quantitates.
 I could not find an answer in the published paper.
In other words, why doesn't it operate like this?

area under feature = int(1) + int(2) + ... + int(n)

Thanks for your time,


Re: How does centWave compute area under curve?

Reply #2
Got busy with other things :)

When you say it is normalized by the scan rate, then I would guess you are doing something like the following to adjust for variability in scan rate of any given feature.
>scan_rate_avg = difference of all adjacent scans and divide  by n scans.
>scale_factor = (scan(i) - scan(i - 1)) / scan_rate_avg;
>new_spectrum_intensity = spectrum_intensity(i)  / scale_factor; #inverse relation


Suppose the average scan rate is 1 scan per second. Then if the current scan time minus previous scan time (t(i) - t(i - 1)) is 0.5 or 2 scans per second, the normalization might scale the intensity by a factor of 2 because its time to accumulate packet ions from the Orbitrap was reduced by half.

>scale_factor = (1/2) / 1 
>new_spectrum_intensity = spectrum_intensity(i) / scale_factor; # equal to spectrum_intensity * 2

We recently queried THERMO's tech support for the LTQ-Orbitrap platform (have not heard back yet) to know how they report intensity. Do you have any insider edge on this?

Appreciate the expertise ;)