i maybe wrong, but there is no peak left- and right retention times in each processed after the peak list export. There is only retention time (RT averaged) for each peak and each sample given, but I cannot see any peak start/peak end.
There is unfortunately no column in the export files from MSDIAL about the retention time (RT) from the peak begin and the peak end, just RT is given. Would it be possible to have that included?
Writing 1 mzml file. Saving file xyz.mzML...Error: fun(object@intensity, halfWindowSize = halfWindowSize, ...) : ‘halfWindowSize’ is too large! In addition: There were 50 or more warnings (use warnings() to see the first 50) > warnings() 1: In smooth_Spectrum(x, method = match.arg(method), halfWindowSize = halfWindowSize, ... : Negative intensities generated. Replaced by zeros. 2: In smooth_Spectrum(x, method = match.arg(method), halfWindowSize = halfWindowSize, ... : Negative intensities generated. Replaced by zeros. 3: In smooth_Spectrum(x, method = match.arg(method), halfWindowSize = halfWindowSize, ... :
It seems that the alternative to restrict to msLevel. = 1 is yet (so far) unfortunately not a solution to centroid the DDA runs on MS1 with disregarded MS2. The instrument is a ABSciex Triple ToF 5600.
Thanks again for the work done on this so far and maybe suggestions/workarounds on how to cope with this DDA runs in the future.
to have the arguments: peakCol = "#00000060", peakBg = "#00000020" (maybe also peakPch = 1) to be able to take vectorized colors like in the argument col?
Writing 1 mzml file. Saving file xz.mzML...Error: fun(object@intensity, halfWindowSize = halfWindowSize, ...) : ‘halfWindowSize’ is too large!
If I further even lower to halfWindowSize = 1, I get: Writing 1 mzml file. Saving file xyz.mzML...Error in solve.default(t(X) %*% X) : system is computationally singular: reciprocal condition number = 1.19379e-18
Not an expert: May it be meaningful to do the smoothing only, if the number of scans/data points in m/z is sufficiently large with regards to halfWindowSize? In case there are no sufficient points available, just simply skip the centroiding (leave it as it is) and work only with those MS2 data, which are really amenable to centroiding?
While this code snippet works well for all MS1-runs with no errors, all the DDA-runs stop with the following error:
Writing 1 mzml file. Saving file xyzDDA.mzML...Error: fun(object@intensity, halfWindowSize = halfWindowSize, ...) : ‘halfWindowSize’ is too large! In addition: There were 50 or more warnings (use warnings() to see the first 50) 1: In smooth_Spectrum(x, method = match.arg(method), halfWindowSize = halfWindowSize, ... : Negative intensities generated. Replaced by zeros.
Peak widths are on average 6 seconds, when playing around with other halfWindowSize, than it is either too large or either too small (going from 2,3,4,5,6). Reading only MS1-level via readMSData(msLevel.=1, ...) would loose the entire MS2-level data completely after serialisation ...
Would there be a way for DDA-runs to centroid only the MS1-level and disregad the MS2-level? Could this be a workaround?
I would like to hear your advice on how to treat DDA (Data Dependent Aquisition) experiments, which were quired in profile-mode. It is clear from the very nice vignette (https://github.com/jorainer/metabolomics2018) on how to do this for MS1-level, but the question is on how to proceed the MS2-level. Should the MS2-level be centroided also and how can this be achieved including serialisation via MSnbase/xcms?
This is simply needed to calculate how many scans each chromatographic peak has in order to set the cycle time and mass range approriately (at least on average).
we are conducting metabolomic experiments using a AB Sciex 5600 TripleToF with DDA (Data Dependendent Aquisition) unsing R 3.6.0 under MSnbase (2.9.5) and xcms (3.5.5). So we have MS1-scans and MS2-scans intrinsically in the raw data files.
The question here refers, on how to obtain the correct number of scans per peak in one file. The raw data was read with: readMSData(files = files, pdata = new("NAnnotatedDataFrame", pd), msLevel. = 1)
Given the information from the function chromPeaks(object, bySample = FALSE, rt = numeric(), mz = numeric(), ppm = 0, type = "any"), this results in the following table.
mz mzmin mzmax rt rtmin rtmax into intb maxo sn egauss mu sigma h f dppm scale scpos scmin scmax lmin lmax sample is_filled CP000001 185.0415 185.0409 185.0423 46.568 40.745 53.293 1623.3019 1605.9049 193.8009 25 NA NA NA NA 6 1 9 169 160 178 148 185 1 0 CP000002 185.0419 185.0409 185.0429 3.887 0.724 6.577 763.4537 755.4926 170.2468 21 NA NA NA NA 6 4 7 15 8 22 3 25 1 0 CP000003 512.8859 512.8845 512.8887 51.321 49.069 52.634 322.0898 319.1189 175.0130 174 NA NA NA NA 7 8 7 182 175 189 87 93 1 0 CP000004 271.9464 271.9443 271.9484 51.321 48.780 53.293 303.1867 299.2378 142.4416 141 NA NA NA NA 8 8 7 182 175 189 87 95 1 0 CP000005 385.9267 385.9250 385.9298 51.321 48.780 53.293 275.9011 271.9522 131.7186 131 NA NA NA NA 9 5 7 182 175 189 87 95 1 0 CP000006 498.9059 498.9042 498.9077 50.666 49.069 53.293 256.1620 252.5414 133.5325 133 NA NA NA NA 10 7 7 181 174 188 87 94 1 0
Is it okay to use the colums "scmin" "scmax", i.e. to compute scmax - scmin to get the correct number of scans for each peak, or is there a need to take into account, that several scans need to be omitted for MS2-scans?
Basically the question (for DDA-experiments) simply condenses on how the scan numbering works: How are the MS1-scans are numbered intrinsically? How are the MS2-scans are numbered intrinsically?
By the way, what is the meaning of the columns lmin lmax? I could not find the meaning in the documentation of chromPeaks() ...
prefilter numeric(2): c(k, I) specifying the prefilter step for the first analysis step (ROI detection). Mass traces are only retained if they contain at least k peaks with intensity >= I.
For this documentation/explanation, is the term "peak" right here, or is rather "scans" the more adequate word. From my understanding of the documentation of the prefilter, a peak (consisting of several(10-20) scan points) has to have more than k scans of intensity I.