adduct-mass-offset-parameterization
Summary
Define and implement mass offset parameters for common ionization adducts ([M+NH4]+, [M+K]+, [M+H2O+H]+, [M-H2O+H]+) to enable accurate adduct detection and labeling in LC-MS metabolomics feature tables. This skill ensures that observed m/z values are correctly annotated with their ionization form, critical for downstream metabolite identification and abundance quantification.
When to use
When processing LC-MS metabolomics feature tables where adduct annotation is absent or incomplete, and you need to identify which ionization adducts are present in your mass spectrometry data. This is particularly important when integrating multiple samples or datasets where different ionization modes may produce the same molecular species in different adduct forms.
When NOT to use
- Input feature table already contains reliable adduct annotations from the mass spectrometer or upstream processing.
- Your LC-MS instrument uses non-standard ionization adducts not covered by the four defined offsets (e.g., [M+Na]+, [M+Cl]−, or exotic multiply-charged species).
- Mass tolerance window is too tight relative to your instrument's mass accuracy, risking missed assignments and false negatives.
Inputs
- LC-MS feature table (CSV format with m/z and intensity columns)
- Mass tolerance threshold (ppm or Da)
- Reference feature set with known adducts (for validation)
Outputs
- Adduct-labeled feature table with assigned ionization forms
- Verification report listing assigned adduct labels and accuracy metrics
- Unit test results (pytest log) confirming correct identification with no false positives
How to apply
First, define the exact mass offset (Δm/z in Da) for each target adduct: [M+NH4]+ = +17.0266 Da, [M+K]+ = +38.9815 Da, [M+H2O+H]+ = +19.0184 Da, and [M-H2O+H]+ = +1.0078 Da. Implement mass-matching logic in your feature detection module that scans the input feature table and assigns adduct labels by comparing each observed m/z value against theoretical adduct masses within a specified mass tolerance window (typically ±5–10 ppm depending on instrument resolution). Execute unit tests using pytest or equivalent to validate that each adduct type is correctly identified on a reference feature set with no false positives. Generate a labeled feature table with adduct annotations and produce a verification report documenting assigned labels and their assignment accuracy.
Related tools
Evaluation signals
- All reference features with known adducts are correctly identified (100% recall on validation set).
- No false positive adduct assignments are reported (zero or negligible false positives on negative control features).
- Adduct labels in output feature table match expected ionization forms within the specified mass tolerance.
- Unit test suite passes all pytest assertions without errors or warnings.
- Verification report documents assignment accuracy and mass error distribution (mean and std dev) for each adduct type.
Limitations
- Only detects the four explicitly parameterized adduct ions; additional or instrument-specific adducts require definition of new mass offsets.
- Accuracy depends critically on mass tolerance window setting: too-tight windows cause false negatives; too-loose windows increase false positives, especially for high-complexity samples.
- Does not account for isotope patterns or multiply-charged adducts, which may co-elute and complicate assignment.
- Performance on low-resolution or degraded mass spectrometry data may be poor if mass accuracy exceeds the tolerance threshold.
Evidence
- [other] FERMO implements adduct detection to recognize [M+NH4]+, [M+K]+, [M+H2O+H]+, and [M-H2O+H]+ as ionization adducts for feature mass labeling.: "FERMO implements adduct detection to recognize [M+NH4]+, [M+K]+, [M+H2O+H]+, and [M-H2O+H]+ as ionization adducts for feature mass labeling."
- [other] Define adduct mass offsets for [M+NH4]+ (+17.0266 Da), [M+K]+ (+38.9815 Da), [M+H2O+H]+ (+19.0184 Da), and [M-H2O+H]+ (+1.0078 Da) in the adduct detection module.: "Define adduct mass offsets for [M+NH4]+ (+17.0266 Da), [M+K]+ (+38.9815 Da), [M+H2O+H]+ (+19.0184 Da), and [M-H2O+H]+ (+1.0078 Da)"
- [other] Implement mass-matching logic to scan an input feature table and assign adduct labels by comparing observed m/z values against theoretical adduct masses within a specified mass tolerance window.: "Implement mass-matching logic to scan an input feature table and assign adduct labels by comparing observed m/z values against theoretical adduct masses within a specified mass tolerance window."
- [other] Run pytest unit tests to validate that the adduct detection correctly identifies each adduct type on a reference feature set and reports no false positives.: "Run pytest unit tests to validate that the adduct detection correctly identifies each adduct type on a reference feature set and reports no false positives."
- [readme] FERMO integrates metabolomics data with orthogonal data such as phenotype information for rapid, biochemometric, hypothesis-driven prioritization.: "FERMO integrates metabolomics data with orthogonal data such as phenotype information for rapid, biochemometric, hypothesis-driven prioritization."
1---2name: adduct-mass-offset-parameterization-23description: Use when when processing LC-MS metabolomics feature tables where adduct4 annotation is absent or incomplete, and you need to identify which ionization adducts5 are present in your mass spectrometry data.6license: CC-BY-4.07metadata:8 edam_operation: http://edamontology.org/operation_36329 edam_topics:10 - http://edamontology.org/topic_012111 - http://edamontology.org/topic_317212 tools:13 - pytest14 - FERMO15 - fermo_core16 techniques:17 - LC-MS18 license_tier: open19 provenance_tier: literature20derived_from:21- doi: 10.1038/s41467-024-50111-822 title: FERMO23evidence_spans:24- No discussion section present in document25- See our organization-level document on [CONTRIBUTING]26claims: []27provenance:28 collection: https://w3id.org/holobiomicslab/asb-skill/collection/metabolomics/v229 assembled_by: scripts/collect_metabolomics_collection.py30 sources:31 - build: coll_fermo_2_cq32 doi: 10.1038/s41467-024-50111-833 title: FERMO34 dedup_kept_from: coll_fermo_2_cq35schema_version: 0.2.036attribution:37 generator: AgenticScienceBuilder38 original_doi: 10.1038/s41467-024-50111-839 all_source_dois:40 - 10.1038/s41467-024-50111-841 zenodo_doi: 10.5281/zenodo.2079402742 curators: []43 promoter: Louis-Félix Nothias44 sponsor: CNRS & Université Côte d'Azur45---4647# adduct-mass-offset-parameterization4849## Summary5051Define and implement mass offset parameters for common ionization adducts ([M+NH4]+, [M+K]+, [M+H2O+H]+, [M-H2O+H]+) to enable accurate adduct detection and labeling in LC-MS metabolomics feature tables. This skill ensures that observed m/z values are correctly annotated with their ionization form, critical for downstream metabolite identification and abundance quantification.5253## When to use5455When processing LC-MS metabolomics feature tables where adduct annotation is absent or incomplete, and you need to identify which ionization adducts are present in your mass spectrometry data. This is particularly important when integrating multiple samples or datasets where different ionization modes may produce the same molecular species in different adduct forms.5657## When NOT to use5859- Input feature table already contains reliable adduct annotations from the mass spectrometer or upstream processing.60- Your LC-MS instrument uses non-standard ionization adducts not covered by the four defined offsets (e.g., [M+Na]+, [M+Cl]−, or exotic multiply-charged species).61- Mass tolerance window is too tight relative to your instrument's mass accuracy, risking missed assignments and false negatives.6263## Inputs6465- LC-MS feature table (CSV format with m/z and intensity columns)66- Mass tolerance threshold (ppm or Da)67- Reference feature set with known adducts (for validation)6869## Outputs7071- Adduct-labeled feature table with assigned ionization forms72- Verification report listing assigned adduct labels and accuracy metrics73- Unit test results (pytest log) confirming correct identification with no false positives7475## How to apply7677First, define the exact mass offset (Δm/z in Da) for each target adduct: [M+NH4]+ = +17.0266 Da, [M+K]+ = +38.9815 Da, [M+H2O+H]+ = +19.0184 Da, and [M-H2O+H]+ = +1.0078 Da. Implement mass-matching logic in your feature detection module that scans the input feature table and assigns adduct labels by comparing each observed m/z value against theoretical adduct masses within a specified mass tolerance window (typically ±5–10 ppm depending on instrument resolution). Execute unit tests using pytest or equivalent to validate that each adduct type is correctly identified on a reference feature set with no false positives. Generate a labeled feature table with adduct annotations and produce a verification report documenting assigned labels and their assignment accuracy.7879## Related tools8081- **pytest** (Unit testing framework for validating adduct detection correctness and reporting false positive/negative rates)82- **FERMO** (Metabolomics dashboard integrating adduct detection module for feature mass labeling and annotation) — https://github.com/fermo-metabolomics/FERMO83- **fermo_core** (Core library providing adduct detection and feature table processing logic) — https://github.com/fermo-metabolomics/fermo_core8485## Evaluation signals8687- All reference features with known adducts are correctly identified (100% recall on validation set).88- No false positive adduct assignments are reported (zero or negligible false positives on negative control features).89- Adduct labels in output feature table match expected ionization forms within the specified mass tolerance.90- Unit test suite passes all pytest assertions without errors or warnings.91- Verification report documents assignment accuracy and mass error distribution (mean and std dev) for each adduct type.9293## Limitations9495- Only detects the four explicitly parameterized adduct ions; additional or instrument-specific adducts require definition of new mass offsets.96- Accuracy depends critically on mass tolerance window setting: too-tight windows cause false negatives; too-loose windows increase false positives, especially for high-complexity samples.97- Does not account for isotope patterns or multiply-charged adducts, which may co-elute and complicate assignment.98- Performance on low-resolution or degraded mass spectrometry data may be poor if mass accuracy exceeds the tolerance threshold.99100## Evidence101102- [other] FERMO implements adduct detection to recognize [M+NH4]+, [M+K]+, [M+H2O+H]+, and [M-H2O+H]+ as ionization adducts for feature mass labeling.: "FERMO implements adduct detection to recognize [M+NH4]+, [M+K]+, [M+H2O+H]+, and [M-H2O+H]+ as ionization adducts for feature mass labeling."103- [other] Define adduct mass offsets for [M+NH4]+ (+17.0266 Da), [M+K]+ (+38.9815 Da), [M+H2O+H]+ (+19.0184 Da), and [M-H2O+H]+ (+1.0078 Da) in the adduct detection module.: "Define adduct mass offsets for [M+NH4]+ (+17.0266 Da), [M+K]+ (+38.9815 Da), [M+H2O+H]+ (+19.0184 Da), and [M-H2O+H]+ (+1.0078 Da)"104- [other] Implement mass-matching logic to scan an input feature table and assign adduct labels by comparing observed m/z values against theoretical adduct masses within a specified mass tolerance window.: "Implement mass-matching logic to scan an input feature table and assign adduct labels by comparing observed m/z values against theoretical adduct masses within a specified mass tolerance window."105- [other] Run pytest unit tests to validate that the adduct detection correctly identifies each adduct type on a reference feature set and reports no false positives.: "Run pytest unit tests to validate that the adduct detection correctly identifies each adduct type on a reference feature set and reports no false positives."106- [readme] FERMO integrates metabolomics data with orthogonal data such as phenotype information for rapid, biochemometric, hypothesis-driven prioritization.: "FERMO integrates metabolomics data with orthogonal data such as phenotype information for rapid, biochemometric, hypothesis-driven prioritization."