Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Whether the mzabs parameter of findAddct() can be adjusted by the user? #78

Open
Suyun11 opened this issue Mar 25, 2023 · 1 comment

Comments

@Suyun11
Copy link

Suyun11 commented Mar 25, 2023

Hello,Dr. Neumann
I am using the CAMERA package to annotate the metabolite standards data and the adducts of these standards are not being annotated correctly. I think there may be a problem with findAdduct() and I hope you can give me some advice to solve this problem. Because even the adducts like [M+H] cannot be annotated.
I made the following attempts: I tried to improve the accuracy of annotation by adjusting the mzabs parameter in findAdduct(), but after the mzabs parameter is modified, the findAdduct function cannot annotate some adducts, no matter it is raised or lowered.
Here is the R script I used (from Bioconductor's Description)
library(CAMERA)
an<- xsAnnotate(xset4) #after group and fillPeaks()
an<- xsAnnotate(xs)
an <- groupFWHM(an)
an<- findIsotopes(an)
an<- groupCorr(an, cor_eic_th =0.8)
file<- system.file('rules/01extended_adducts_pos.csv', package = "CAMERA")#Delete follow adducts[M+Na+CF3COOH]+,[M+K+CF3COOH]+,[M+NH4+CF3COOH]+,[M+H+CF3COOH]+
rules<- read.csv(file)
an<- findAdducts(an, polarity="positive", rules=rules)a<- getPeaklist(an, intval="sumgauss")
Have a nice day,
Suyun

@sneumann
Copy link
Owner

Hi Suyun, thanks for reporting.
The groupFWHM and groupCorr first group features that might come from the same metabolite, groupFWHM does it solely on the retention time, groupCorr tries to make that more specific using correlation within and across samples.
The findAdduct annotation can only annotate things within such a group (termed pseudospectrum, because it is not really a measured spectrum, but the collection of features in the group).
And, findAdduct needs the exact mass differences between features to deduce the adduct/ion type, and uses the sum of mzabs+mzppm (especially for low masses, you might need a quite high ppm for a 0.00X Da rounding error, hence we suggest a moderate mzabs as "base error" plus a normal mzppm of e.g. 5, depending on your instrument).

So for you to debug, your approach could be:

  1. please select a few pSpec groups with incorrect/missing annotations
  2. check that e.g. both your known M+H and M+Na are present. If they are not, there is nothing CAMERA can do. In that case you need to tweak the groupFWHN and groupCorr parameters. Or, it could be that in your MS setup you don't get many different adducts in MS1, again CAMERA can't do anything then.
  3. I saw that you already tweak the rules to match your local setup with Trifluoroacetic Acid, so that's good. Note that the ruleSets and be read as a fixed set as apparently you do, but also as in https://rdrr.io/bioc/CAMERA/man/ruleSet-class.html by reading individual lists for ions, losses and additions, which are then combined with generateRules() to give all combinations.
  4. Calculate the mass error for typical M+H and M+Na to set the mzabs & mzppm parameters in findAdducts.

As you see, sometimes we need a lot of insights into our data to see what's going on and where to fix things.
Hope that will help a bit,
yours,
Steffen

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants