I thought that one simplistic approach could be to just create a custom isotopeMatrix with the mass differences for another type of isotope e.g. Sulphur 34. Then run the findIsotopes( method with the C12/C13 filter option as FALSE. However, this give quite strange results (see below)
mz isotopes pcgroup 102.0915787 [1][M]2+ 196 103.0949139 [1][M+1]2+ 196 Difference: 1.003335129 (I think for the double charges this should be half as well.... which confuses me even more...)
For the parent feature mentioned (centWave determined peak 1): The mass is 376.8766 with rtmed 25 sec, rtmax 11 sec and rtmax 57.
Quote from: "sneumann"
at which RT (and scan number) do you see the MS2 ?
The RT for the MS2 data are all greater than 1205.59 sec. The scan numbers are 7319, 7850, 8329, 8573, 9115, 9181, 9312 and 9551. See bottom of this post for summary table, I have also included the relevant precursor scan information.
# get the MS2 data with MSnParentPeak 1 sub <- xfragpeaks[xfragpeaks$MSnParentPeakID==1,]
# Parse through the file with mzR mr <- openMSfile(file) mrdf <- header(mr) mrdf$precursorRT <- NA
# get the precursor scan RT mrdf[mrdf$msLevel==2,]$precursorRT <- mrdf[mrdf$precursorScanNum,]$retentionTime scans <-mrdf[mrdf$retentionTime %in% sub$rt,]
# Get a summary of the MS2 data with relavent scan numbers and precursor info colnames(scans)[7] <- "rt" keeps <- c("precursorScanNum","precursorMZ","precursorRT","rt","seqNum") scans <- scans[keeps] summary_table <- merge(x = scans, y =sub, by = "rt", all.x=TRUE)
Thank you very much for having a look at the data I sent. The figure for the precursor distribution was very useful, thank you.
It is also interesting to hear that there may be some debugging required when using Orbitrap data. I was wondering though if you would know the reason I would get the following results:
Using the centWave method and the xcmsFragments method, a parent peak of rtmed 25 sec, rtmax 11 sec and rtmax 57 sec has been assigned to fragmentation data with retention times all greater than 1206 sec. To me it looks like MS2 precursor m/z is matching the feature m/z but the retention time is not being taken into account correctly.
# Get all the fragmentation peaks witht the parent peak 1 sub <- xfragpeaks[xfragpeaks$MSnParentPeakID==1,]
# Plot the extracted ion chromatogram of the parent scan ion charge for the whole run xeic <- getEIC(xs, rtrange= matrix(c(1,1800),nrow=1), mzrange= matrix(c(376.87,376.88),nrow=1)) plot(xeic)
# Draw a line where the fragmentation occurs abline(v = sub$rt, col = "red")
# Draw a line where the rtmedian of the feature is p1 <- data.frame(xs@peaks[1,]) abline(v = xs@peaks[1,][1], col = "blue")
This is strange as the RT is quite different between peaks that have the same MSnParentPeakID. The other reason this seems odd is that they have the same m/z as well.
I don't see this occuring with the option 'method = 'MS1'"
Other details:
traceback() No traceback available
sessionInfo() R version 3.1.2 (2014-10-31) Platform: x86_64-pc-linux-gnu (64-bit)
I am doing analysis on some LC-MS/MS data where both the MS1 and MS2 are in the same mzML file. I have followed the tutorial [1] where the option 'method = "MS1' is used for the xcmsSet object but I was wondering whether it was possible to use centWave feature detection?
I have tried the following, where mzdatafiles contains the location of 3 mzML files:
Should the the centWave method work be performing as normal in this situation? When I perform this on my data the xcmsFragments peak table seems to have incorrectly called the corresponding parent peaks, where the retention times seem to be drastically different between parent and fragment peaks (I can provide more information if needed)
It seems that the centWave method has been used sucessfully with XCMS online for LC-MS/MS in the paper [2], so hopefully it is possible. Any help would be greatly appreciated.