Chromatogram deconvolution

Wavelets (XCMS)

This method uses wavelets to detect peaks within a chromatogram. A series of wavelets of different scales is convolved with the chromatogram. Local maxima in the convolution results determine the locations of possible peaks. When these candidate peak locations co-occur at multiple scales then the scale with the strongest response indicates peak width. Given the candidate peak locations and scales, peaks can then be reconstructed from the original chromatogram. Full details of the algorithm are published in Tatenhahn et al. [1].

Method parameters

S/N Threshold
Peaks with a signal-to-noise ratio less than the threshold will be rejected. The S:N ratio is defined as (max - baseline) / sd, where max is the maximum peak intensity, baseline is the estimated baseline value, and sd is the standard deviation of local chromatographic noise.
Peak scales
The range of peak scales to search for. Scales are expressed as RT values (minutes) and correspond to the range of wavelet scales that will be applied to the chromatogram. If the minimum scale is too small then noise may be detected as peaks. If the maximum scale is to low then broad peaks may be ignored.
Peak duration range
The acceptable range of peak widths. Peaks with widths outside this range will be rejected.
Integration method
When reconstructing a peak from the chromatogram, gradient descent is used. This can be performed on the raw peak data or a smoothed version of it. The former is more accurate but can be susceptible to noise. The latter is less exact but more robust in the presence of noise.

Requirements

The Wavelets detector relies on Bioconductor's XCMS package for R [2]. Therefore, you must have R v2.15 or later installed. To install the XCMS package, run R and issue the following commands:

source("http://bioconductor.org/biocLite.R")
biocLite("xcms")

To run R from MZmine the rJava package [3] must be installed in R, so also run the following R command:

install.packages("rJava")

You will also need to correctly configure several environment variables in your MZmine start-up script (startMZmine_Windows.bat, startMZmine_Linux.sh or startMZmine_MacOSX.command):

R_HOME
This is the directory where R is installed, e.g. for Windows it will be something like C:\Program Files\R\R-2.15.0.
R_LIBS_USER
This is the directory in which R installs third-party packages. It's usually a sub-directory of your personal directory, e.g. for Windows it will be something like %USERPROFILE%\Documents\R\win-library\2.15.
PATH
Append the directory that contains R's libraries. It will be a sub-directory of %R_HOME%, e.g. for 32-bit Windows it will be something like %R_HOME%\bin\i386 or for 64-bit Windows %R_HOME%\bin\x64.
JRI_LIB_PATH
This is the directory where rJava has installed its JRI libraries. It will be a sub-directory of %R_LIBS_USER%, e.g. for 32-bit Windows it will be something like %R_LIBS_USER%\rJava\jri\i386 or for 64-bit Windows %R_LIBS_USER%\rJava\jri\x64.

References

[1] Ralf Tautenhahn, Christoph Böttcher, and Steffen Neumann "Highly sensitive feature detection for high resolution LC/MS" BMC Bioinformatics 2008, 9:504

[2] Bioconductor XCMS "LC/MS and GC/MS Data Analysis" http://www.bioconductor.org/packages/release/bioc/html/xcms.html.

[3] rJava "Low-level R to Java interface" http://www.rforge.net/rJava/.