precusor charge for each features
13479776 opened this issue · comments
Hi, All
I would like to request about the method used in xcms for precusor charge detection for each features. I can open the @featureData@data[["precursorCharge"]] in XCMSnExp object. There are many 0 or NA. My question is how to get more precursorCharge and got the precursorCharge for each feature?
Thanks very much
Hees
The information of the precursor charge is extracted from the mzML files. If the mzML file(s) provide this information it can be extracted with the precursorCharge()
functions (.e.g. precursorCharge(xdata)
where xdata
is a xcms result object) - but this then returns one value for every spectrum in the data set.
If with features you mean the LC-MS features that get defined through the xcms preprocessing (i.e. as a result from the correspondence analysis with the groupChromPeaks()
function): for these there is no precursor charge defined/available, because these represent quantified signal in MS1 - the precursor charge will only be available for MS2 spectra (that define the precursor m/z, precursor intensity and precursor charge). If you have LC-MS/MS data, you can get the fragment (MS2) spectra for each feature using the featureSpectra()
function. This should return a Spectra
object with the MS2 spectra, and on these you can use the precursorMz()
, precursorCharge()
and precursorIntensity()
function to extract the relevant information.
Hi jorainer
Very well explained. Thanks. I know that the precusor charge can be obtained only when the MS/MS spectra is available. My question is, is it possible to obtain a precusor charge when there is no MS/MS spectra available? we can set in the orbitrap instrument to filter out certain ions depending on the number of precusor charges, which means the precusor charge can be obtained without MS/MS spectra?
Best wishes,
Hees
that's a good question - I guess it depends whether the Thermo software stores that information also in the raw data files and whether this is then also available in the mzML file. Maybe have a look at all columns that are available in your (XCMSnExp
) object's fData()
(i.e. calling fData(object) |> head()
. maybe some information is stored in another mzML field/column of this data.frame
other than "precursorCharge"
? this data frame contains all information we (can) retrieve from the mzML files.
Also, if you can't find any information, maybe re-evaluate the conversion from raw to mzML files - maybe some of this information got lost during that conversion? but I'm not familiar with Thermo data, so I can't be of any help there.