Metabolomics Society Forum

Software => R => XCMS => Topic started by: benjie on May 05, 2014, 12:17:21 PM

Title: Targeted (and consistent) peak detection with XCMS
Post by: benjie on May 05, 2014, 12:17:21 PM
Hello,

We have been using XCMS to automate our high throughput analysis pipeline. We use multiple columns in various settings in the lab, and consistent peak detection using centWave has proved to be very challenging. Most of our datasets contain real peaks with very different widths, and centWave often finds partial or co-joined peaks. Furthermore, when signals are weak, centWave throws away perfectly good peaks.  Peak quantification using standard curves is impossible to achieve w/o consistent, reliable peaks.

We have therefore made some changes to XCMS centWave, to enable targeted peak detection. With these changes, we can now define targets manually, where a target is a Mz range, a Rt range, and a peak width range. Targets are translated to ROIs, and we run slightly modified centWave algorithm on these manually constructed ROIs. In practice, this has produced peak sets matching targeted peak detection results from vendor software. However, unlike XCMS, vendor software cannot be automated and is hard to configure when number of targets becomes very large.

Our updates to XCMS, along with more detailed descriptions of what changed, are now in this github repository: https://github.com/benjiec/xcms (https://github.com/benjiec/xcms)

We welcome feedback, hope these changes may prove to be useful to some of you, and are willing to help incorporating appropriate changes to the main XCMS source tree.

Thanks,

Benjie
Title: Re: Targeted (and consistent) peak detection with XCMS
Post by: Jan Stanstrup on May 05, 2014, 12:47:17 PM
Sounds cool!

However, I don't know if you saw but xcms was recently set up on github: https://github.com/sneumann/xcms (https://github.com/sneumann/xcms)
Your best bet to get your changes in the official XCMS is to submit them as a pull request based on the official github version.
Title: Re: Targeted (and consistent) peak detection with XCMS
Post by: benjie on May 05, 2014, 01:23:20 PM
Thanks for the pointer. I didn't know about the recent github move. That's awesome. Will make a fork and a pull request.
Title: Re: Targeted (and consistent) peak detection with XCMS
Post by: Jan Stanstrup on August 05, 2016, 05:16:21 AM
Any chance to get this into XCMS? XCMS is currently being overhauled so perhaps now is the right time...

EDIT: I wonder if benjie still reads this? Seems it is a few years since he logged in.
EDIT2: Anyone else has a good idea of how to use XCMS for targeted peak picking? Right now there doesn't seem to be any straight forward method apart for picking all peaks and filtering afterwards. Eventually findmzROI can be used and ROI.list supplied directly but that seems rather convoluted...
Title: Re: Targeted (and consistent) peak detection with XCMS
Post by: Jan Stanstrup on August 16, 2016, 03:58:43 AM
I wrote some code to make XCMS do targeted peak picking in a fast way: https://cdn.rawgit.com/stanstrup/QC4Metabolomics/master/MetabolomiQCsR/inst/doc/standard_stats.html

Doesn't deal with any of the issues addressed by @benjie though.
Title: Re: Targeted (and consistent) peak detection with XCMS
Post by: DWalker on February 10, 2017, 09:21:11 AM
Hi,
Just curious if there has been any updates on this. We are using XCMS with GC-Orbitrap data, and are trying to overcome poor detection of low abundance, targeted peaks. They are sufficient for quantification using the vendor software, but are not present in the XCMS feature table. We are now trying to incorporate Benjie's excellent modifications into our workflow, but just wanted to check and see if it has been added to the official XCMS package. Thanks in advance.