Skip to main content
Topic: peak lists m/z value difference generated by different software  (Read 5603 times) previous topic - next topic

peak lists m/z value difference generated by different software

Dear all,

I just started metabolic analysis. Recently, I need to comparing peak lists generated by different softwares from same raw file  include XCMS, MZmine2, QI. And I found the m/z value of XCMS has no overlap from the other two softwares peak lists m/z value, while MZmine2 and QI peaklist have some overlap.
I wonder if the different m/z value from different software is abnormal and affect downstream analysis? Could it be caused by the XCMS parameters I used, or other data processing problems, such as during the raw data converting?

Here is the detailed for processing using XCMS and MZmine2:
First I use msconvert to convert raw data into centroid mzXMl file.
For XCMS, I use the following parameters: xset <- xcmsSet(my_file, ppm=0.5,  method= "centWave", peakwidth=c(5, 20), prefilter=c(2, 1000));  xset1 <- group(xset1, bw = 2, mzwid=0.015).
For MZmine2, I use noise level = 1E3 for mass detecter(centroid); min time span = 0.01, min height = 1.0E3, m/z tolerance = 1.0E-12 or 2.5 ppm. 
And XCMS thinks it’s a profile data, and gave me a warning, while for MZmine2 thinks it’s a centroid file. So I use a second converter named RawConverter, and didn't get warning from XCMS, but the m/z value still has no overlap with the other two software.

Thanks for your answer!

Lucy

Re: peak lists m/z value difference generated by different software

Reply #1
Here is the head of the converted file using the two converter below.

Convert by first converter(and get warning from XCMS:It looks like this file is in profile mode. centWave can process only centroid)
 fileType="RAWData"
                fileSha1="7032ba5ef72330305d75ccf8c994001d2b9ab7ab"/>
    <msInstrument msInstrumentID="1">
      <msManufacturer category="msManufacturer" value="Thermo Scientific"/>
      <msModel category="msModel" value="LTQ Orbitrap XL"/>
      <msIonisation category="msIonisation" value="electrospray ionization"/>
      <msMassAnalyzer category="msMassAnalyzer" value="orbitrap"/>
      <msDetector category="msDetector" value="inductive detector"/>
      <software type="acquisition" name="Xcalibur" version="2.5.5 SP1"/>
    </msInstrument>
    <msInstrument msInstrumentID="2">
      <msManufacturer category="msManufacturer" value="Thermo Scientific"/>
      <msModel category="msModel" value="LTQ Orbitrap XL"/>
      <msIonisation category="msIonisation" value="electrospray ionization"/>
      <msMassAnalyzer category="msMassAnalyzer" value="radial ejection linear ion trap"/>
      <msDetector category="msDetector" value="electron multiplier"/>
      <software type="acquisition" name="Xcalibur" version="2.5.5 SP1"/>
    </msInstrument>
    <dataProcessing centroided="1">
<software type="conversion" name="ProteoWizard software" version="3.0.10358"/>
      <processingOperation name="Conversion to mzML"/>
      <software type="processing" name="ProteoWizard software" version="3.0.10358"/>
    </dataProcessing>
    <scan num="1"
          scanType="Full"
          centroided="1"
          msLevel="1"
          peaksCount="3053"
          polarity="-"
          retentionTime="PT7.7973S"
          lowMz="200.000879850911"
          highMz="2016.98075704076"
          basePeakMz="232.977447509766"
          basePeakIntensity="50665.06640625"
          totIonCurrent="9.009436875e05"
          msInstrumentID="1">
      <peaks compressionType="zlib"
             compressedLen="23707"
             precision="64"
             byteOrder="network"

Second converter(didn't get warning from XCMS):
<?xml version="1.0" encoding="ISO-8859-1"?>
<mzXML xmlns = "http://sashimi.sourceforge.net/schema_revision/mzXML_2.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://sashimi.sourceforge.net/schema_revision/mzXML_2.0 http://sashimi.sourceforge.net/schema_revision/mzXML_2.0/mzXML_idx_2.0.xsd">
   <msRun scanCount="1770" startTime="PT0.9609S" endTime="PT1199.9055S">
   <parentFile fileName="C:\Users\\myfile.raw" fileType="RAWData" fileSha1="20FD2225AEA29D234BCF9A7D48CD2B1129DE735A"/>
   <msInstrument>
      <msManufacturer category="msManufacturer" value="Thermo Scientific"/>
      <msModel category="msModel" value="LTQ Orbitrap XL"/>
      <msIonisation category="msIonisation" value="nanoelectrospray"/>
      <msMassAnalyzer category="msMassAnalyzer" value="LTQ Orbitrap XL"/>
      <msDetector category="msDetector" value="LTQ Orbitrap XL"/>
      <software type="acquisition" name="Xcalibur" version="2.5.5 SP1"/>
   </msInstrument>
   <dataProcessing>
      <software type="conversion" name="RawConverter" version="1.0.0.x"/>
   </dataProcessing>
   <scan num="1" msLevel="1" peaksCount="427" polarity="+" scanType="CID" filterLine="FTMS + p ESI Full ms [200.00-2000.00]" retentionTime="PT0.9609S" lowMz="200.022415161133" highMz="1990.18310546875" basePeakMz="537.877563476563" basePeakIntensity="329870.875" totIonCurrent="2672570.25">
      <peaks precision="32" byteOrder="network" pairOrder="mz-int">


Re: peak lists m/z value difference generated by different software

Reply #2
I assume these examples are not from the same file?

Also how did you compare the masses? Which tolerance? Surely there must be some overlap.

The warning about profile mode might be due to too low ppm setting or orbitrap shoulder peaks: http://www.metabolomics-forum.com/index.php?topic=1044.msg3019#msg3019
You are getting the inserting error thing? If just few you can ignore.
Blog: stanstrup.github.io

Re: peak lists m/z value difference generated by different software

Reply #3
Sorry for the late reply!
 I checked the first suggestion under m/z tollerance = 0.0005. And then XCMS detected 16238 peaks on positive mode and has 935 overlap peaks with QI's list, while XCMS has 16009 overlap peaks with MZmine's list. But under tollerance = 0.0025, XCMS has 3183 overlap m/z with QI's list. Would it be the too low ppm setting in XCMS cause the problem?( I paste the parameters below)
And for the second suggestion, I try to set the ppm higher and higher, till at ppm=15 got a peak merge warning, but there is still profile mode warning. So it might be orbitrap shoulder peaks problems? I paste some screenshot of one sample as follow, would it be help for expressing the question!
Thank you for your precious time!  Any comments will be much appreciated!

Parameters and Samples I used:
machine : Acquity UPLC(Waters) / LTQ Orbitrap XL from Thermo
samples: all pool samples(15 in total), on positive mode
XCMS parameters : ppm = 2.5,  peakwidth = c(5, 20),  prefilter = c(2, 1000), bw = 2, mzwid=0.015. 
Mzmine parameters: noise level : 1000, m/z tollerance : 0.0005 or 2.5ppm.

Pictures:
picture1 : intensity-retention time plot from one m/z

picture2 : intensity-retention time plot from one m/z( In a step called chromatograms deconvolution in mzmine, this m/z has been recognized as many separate peaks, and produce many peaks with same m/z value but different RT in mzmine, I don't know why but in xcms and qi there is few or no peaks with same m/z.)

picture 3 : some peaks have m/z difference less than 0.005:

a 2-D view of one pool sample:

Re: peak lists m/z value difference generated by different software

Reply #4
pic3 looks like shoulder peaks. But difficult to see when I only have that zoom level.
What you need to do is take one of the largest peaks, look at the spectra, zoom in around the mass peak at low intensity. If you see a lot of small peaks (1-5%) around the real peak --> that is shoulder peaks and you need to filter them before an analysis.

0.0005 sounds too narrow to be to compare peak tables. 0.0025 seems more reasonable. The tools might choose the mass differently (at apex, mean/median across the peak, mean/median across samples).

16238 seems like a lot of features. Suggests to me something is up. Could be if there are many shoulder peaks, if you detect a lot of noise, or chop up peaks like mzmine did.

I am not familiar enough mzmine to tell you what to tweak but it makes sense if the other tools give you 1 or 2 peaks for that noisy peak.
Blog: stanstrup.github.io

Re: peak lists m/z value difference generated by different software

Reply #5
Thanks a lot Jan! Your suggestions really help!
I modified the parameter according to your suggestion, and a package called IPO which can find best parameters of xcmsSet, and the result looks better now. Now xcms, qi, and mzmine detect similar peaks, and each of them have around 2000 to 4000 overlap peaks under 5 ppm.

Re: peak lists m/z value difference generated by different software

Reply #6
What are your MSconvert settings? Make sure to use peakPicking with "prefer vendor" activated.