Skip to main content

Messages

This section allows you to view all Messages made by this member. Note that you can only see Messages made in areas you currently have access to.

Messages - Jan Stanstrup

211
XCMS / Re: QQQ MRM data
Now I also have MRM data from AB-Sciex QQQ... Neither mzMine nor XCMS can read the file generated by msconvert, but seeMS shows the data as Ricca said. I do get another error from XCMS though:
Quote
Error in validObject(.Object) :
  invalid class “rampSource” object: Could not open mzML/mzXML/mzData file:
Any ideas of how to read this data?

Each scan looks like this:
Code: [Select]
<chromatogram index="1" id="SRM SIC Q1=86.01 Q3=69 sample=1 period=1 experiment=1 transition=0" defaultArrayLength="380">
  <cvParam cvRef="MS" accession="MS:1001473" name="selected reaction monitoring chromatogram" value=""/>
  <userParam name="MS_dwell_time" value="0.029999999999999999" type="xs:float"/>
  <precursor>
    <isolationWindow>
      <cvParam cvRef="MS" accession="MS:1000827" name="isolation window target m/z" value="86.01" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
    </isolationWindow>
    <activation>
      <cvParam cvRef="MS" accession="MS:1000133" name="collision-induced dissociation" value=""/>
      <cvParam cvRef="MS" accession="MS:1000045" name="collision energy" value="0.0" unitCvRef="UO" unitAccession="UO:0000266" unitName="electronvolt"/>
      <userParam name="MS_declustering_potential" value="0" type="xs:float"/>
    </activation>
  </precursor>
  <product>
    <isolationWindow>
      <cvParam cvRef="MS" accession="MS:1000827" name="isolation window target m/z" value="69.0" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
    </isolationWindow>
  </product>
  <binaryDataArrayList count="2">
    <binaryDataArray encodedLength="3236"><cvParam cvRef="MS" accession="MS:1000523" name="64-bit float" value=""/>
      <cvParam cvRef="MS" accession="MS:1000574" name="zlib compression" value=""/>
      <cvParam cvRef="MS" accession="MS:1000595" name="time array" value="" unitCvRef="UO" unitAccession="UO:0000031" unitName="minute"/>
      <binary>..............................</binary>
  </binaryDataArray><binaryDataArray encodedLength="1156">
    <cvParam cvRef="MS" accession="MS:1000523" name="64-bit float" value=""/>
    <cvParam cvRef="MS" accession="MS:1000574" name="zlib compression" value=""/>
    <cvParam cvRef="MS" accession="MS:1000515" name="intensity array" value="" unitCvRef="MS" unitAccession="MS:1000131" unitName="number of detector counts"/>
    <binary>......
    </binary>
  </binaryDataArray>
  </binaryDataArrayList>
...
...
</chromatogram>
212
XCMS / Re: Sample without detected peak has high intensity
The ppm depends on your instrument. What instrument do you have? I have been using 15 ppm on a waters synapt q-tof. With an older generation waters q-tof I was using 30. Remember that this is inter-scan accuracy and also need to encompass the tails of your peak, so it has to be several times higher than the accuracy you expect at the top scan of your peaks. If 10 -> 15 made a difference I would consider using 30 ppm. I really doubt this will give you more "false positives" but it might give you better peak picking. You can compare the number of zeros before fillpeaks to get an idea of what is needed.
214
XCMS / Re: Sample without detected peak has high intensity
You probably need to supply a reproducible example to get an answer for this. My guess would be that your peaks got separated in the grouping step. Does the sample with missing data have an equivalent peak with same approx. m/z and retention time? Another problem could be the peak-picking. The peak might be big... but ugly. If you have few scans per peak peak-picking can be very random. Especially with centwave.

The first thing I would do is look at the raw data. Is the gapfilling correct about a larger peak being there or not?
216
XCMS / Re: XCMS error: memory not mapped
What code did you run? It looks like you are running out of memory. How much memory do you have? 1.8G is one file? or the whole dataset? Try following your memory usage to confirm.
217
XCMS / Re: EIC errors
You probably just need to set the "step" argument in getEIC instead of the profstep in xcmsRaw. From what I can figure profstep from the xcmsRaw object is ignored. You can even set profstep=0 to not waste time generating profiles that are recalculated by getEIC anyway.


edit: It might be a good idea for you to set the step value several times lower than the window you want to extract to make sure that the m/z slices that are combined based on your mz range doesn't extend too much outside your mz range.
218
CAMERA / Re: slot neutraladdition can not be empty to use generateRul
Quote from: "kleensang"
        name nmol charge  massdiff oidscore quasi  ips
1    [M+H]+    1      1  1.007276        1    1 1.00
5    [M+Na]+    1      1  22.989218        5    1 1.00
6 [M+2Na-H]+    1      1  44.971160        6    0 0.25
7 [M+H-H20]+    1      1 -17.008024        7    0 0.25

Well I guess 6 is very very unlikely.
6 is not that unlikely at all. It is relatively common at least in some instruments. Plot from my thesis:
[attachment=0:12m8jyhl]adducts_combined2.png[/attachment:12m8jyhl]

You can get the rules I used or load them with load.camera.rules from my package if they would be useful to you.

[attachment deleted by admin]
219
XCMS / Re: XCMS for UPLC-Waters G2-S Q-TOF
No. The profparam has nothing to do with profile data.

The step size passed in profparam is used during fillPeaks. fillPeaks passes the parameter to getPeaks internally. getPeaks is responsible for integrating the peaks during fillPeaks. It does so by generating extracted ion chromatograms (EIC) with the width of the step argument. This means that closely eluting peaks with a mass difference of less than the "step" size could both fall into the same EIC and therefore be integrated together. Therefore it is preferable to lower the step size. What happens when the step size is set to something low is that the EICs are simply combined to correspond to the expected variation in the m/z that was observed in the initial peak picking.

To make life more complicated this can have some problematic consequences when your instrument is very accurate. Sometimes the observed deviation in the m/z in the initial peak picking is extremely low. This means that when you then look in other samples in this very narrow m/z range it might not be found even if it is clearly there.
Had we not altered the step size the range we would look for the peak in would have been a window of 0.1 Da and thus the observed deviation would be irrelevant. But that would have left the problem described above of not discriminating close masses.
For this reason I have suggested changes to fillPeaks, but they are not yet in the official xcms. You can read about that here: https://github.com/sneumann/xcms/pull/3 ... t-41792003
What my modification does is allow you to set a minimum width for the m/z range in which fillPeaks will look for the peak in the other samples. You can thus control yourself how close the m/z of peaks need to be to be considered the same.


Sorry for this long and complicated explanation but I thought it was better to fully explain how things work so you can better decide on your parameters.
220
XCMS / Re: XCMS for UPLC-Waters G2-S Q-TOF
Some impressions:
  • peakwidth depends on your chromatopgraphy. Inspect your chromatogram carefully and see what the most narrow and widest peak you can find is. Then add some wiggle room. I suspect you would have peaks, especially at the end of your run, that might be longer than what you set.
  • You prefilter seems very aggressive to me. I have been using c(3,10) which is granted very greedy but it doesn't seem to have bad effects apart from longer processing time. This is on the previous Synapt though.
  • An overlooked parameter is the step size. It can be set with profparam = list(step=0.005). The default of 0.1 (!?) is way too high. See http://metabolomics-forum.com/viewtopic.php?f=8&t=576 for a brief explanation.
  • Don't forget nSlaves if you have multiple processors!


edit: default step size is 0.1 not 1.
221
XCMS / Re: At which steps are the sample classes used?
If I understand correctly you want to make sure that the data is treated as one large "class". I believe you can use  phenoData(xset) to makes sure all samples are assigned to the same class.
222
XCMS / Re: xcmsSet centWave
What exactly is the content of mzdatafiles?
What does traceback() say?
224
Other / Re: Tandem MS/MS .d files and Proteowizard
The diffreport contained picked peaks. I don't see how the number of mass spectra should relate to that.

I would at least set:
method =  'centWave'
profparam= list(step=0.005)

and prefilter to c(3,X) where X is something appropriate for your system (it should correspond to the lowest intensity you want to be considered for a peak). Also set peakwidth to something appropriate. See ?findPeaks.centWave. You can perhaps lower the ppm from the default of 25 Da but I doubt it will have a big effect. You should always set it well above your machines theoretical accuracy as this is always far on the optimistic side compared to real world experiments.

Often if peaks are missing, however, it is a problem in your "group" step. Be aware that minsamp and minfrac are counted in each sample class separately. mzwid in "group" can probably be lowered significantly from the default of 0.25. 0.05 or even lower might be appropriate for you. You need to play with the settings here too.
Also if you didn't you need to use fillPeaks.

I still don't think using msn2xcmsRaw is right for you. If your files contain an MS1 trace you need to use that in my opinion. If you really only have a data dependent MS2 trace I don't see how you could sensibly compare samples using that.
225
Other / Re: Tandem MS/MS .d files and Proteowizard
In that case it doesn't really make much sense to do the profiling on the MS2 data. Sometimes ions will be selected for MS2, sometimes they won't. I guess the number of ions picked might also be different so the intensities probably can't be compared either. I am sure there are also many other reasons you won't get a useful comparison.

What you should probably do is use the MS1 trace to do the profiling. Then you can use the MS2 in your vendor software to help identification.
To get a file with only MS1 data you should be able to do as described here: viewtopic.php?f=8&t=572#p1781