Skip to main content
Topic: Find peaks Orbitrap (Read 6181 times) previous topic - next topic

Find peaks Orbitrap

First time trying to use feature detection in XCMS so please forgive me if I am doing something silly.

LCMS data recoded on Orbitrap Elite with MS1 recorded in FTMS and then Top10 MS2 in the ITMS

I convert my Raw file to mzxml with msconvert

I then import into XCMS as follows
xrmsn <- xcmsRaw(filename="myfile.mzXML", includeMSn=TRUE)
xr <- msn2xcmsRaw(xrmsn)

I then try to find peaks with centwave

p <-findPeaks.centWave(xr, ppm=25, peakwidth=c(2,70), snthresh=10, prefilter=c(3,1000), mzCenterFun="wMean", integrate=1, mzdiff=-0.001, fitgauss=FALSE, scanrange= numeric(),  sleep=0, verbose.columns=FALSE, ROI.list=list())

And I get the following
 Detecting mass traces at 25 ppm ...
 % finished: 0 10 20 30 40 50 60 70 80 90 100
 0 m/z ROI's.
No ROIs found !

If i increase the eror to 500ppm
Detecting mass traces at 500 ppm ...
 % finished: 0 10 20 30 40 50 60 70 80 90 100
 2801 m/z ROI's.

 Detecting chromatographic peaks ...
 % finished: 0 10 20 30 40 50 60 70 80 90 100
 624  Peaks.

But the raw data itself is fine and certainly not drifting around by 500ppm!

If I pull up one of the peaks it looks like ....
p[1,]
        mz      mzmin      mzmax        rt      rtmin      rtmax
  133.0115  132.9754  133.0240    14.1267    12.7792    14.7760
      into      intb      maxo        sn
 9091.3612  8931.8760 13151.5371    35.0000

which is ridiculous as my MS1 is acquired over 160-2000 - i.e. I don't even start at 133Da

So i presume it is trying to do peak finding on the MS2 data?

How do I extract features from the MS1?

ta

Chris

Re: Find peaks Orbitrap

Reply #1
Did you try looking at your mzXML file in for example mzmine to understand what is in your scans? Do your scans only contain the MS1 data? I would guess that they might alternative between the MS1 and MS2 making the data a bit none-sense. The fact that you need msn2xcmsRaw indicate this.

As far as I remember the solution is to add --filter "msLevel 1" in msconvert. Then you shouldn't need msn2xcmsRaw and you can use xcmsSet normally instead of xcmsRaw + findPeaks.

Also I would be a bit concerned about the number of scans over each peak in your MS1 when you do this many MS2's at the same time. It might not be easy to quantify or even finds the peaks if there are very few scans over each peak.
If the data is in fact with very few scans per peak you might have better luck with matchedFilter than with centWave.
Blog: stanstrup.github.io

 

Re: Find peaks Orbitrap

Reply #2
Quote
If the data is in fact with very few scans per peak you might have better luck with matchedFilter than with centWave.

Hi, does it mean I can use matchedFilter for centroid mode?