# Isotope Labelling Feature Interpretation

> Use when after basepeak_finder has identified base peaks from isotope-labelled feature clusters with fold-change and intensity thresholds met.

- Skill: `holobiomicslab/isotope-labelling-feature-interpretation` (Agent Skill)
- Install (CLI): `npx skillmds@latest add holobiomicslab/isotope-labelling-feature-interpretation`
- Raw SKILL.md: https://api.skillmd.com/api/skills/holobiomicslab/isotope-labelling-feature-interpretation/raw
- Safety review: PASS (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: CC-BY-4.0
- Author: HolobiomicsLab (https://skillmd.com/u/holobiomicslab)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/holobiomicslab/isotope-labelling-feature-interpretation

---


# isotope-labelling-feature-interpretation

## Summary

Reconstruct metabolite annotations from stable isotope-labelled LC/MS features by matching observed m/z values against a reference database using adduct-specific mass shifts and ppm tolerance windows. This skill bridges putative incorporation detection and candidate metabolite identification in untargeted metabolomics workflows.

## When to use

After basepeak_finder has identified base peaks from isotope-labelled feature clusters with fold-change and intensity thresholds met. Use this skill when you have m/z and intensity data from labelled features and need to assign metabolite identities by cross-referencing a compound database accounting for ionization adducts (e.g., negative-mode [M−H]⁻, [M+Cl]⁻). Essential when the analysis goal includes stable isotope incorporation tracking and metabolite annotation.

## When NOT to use

- Input is already a manually curated feature-to-metabolite annotation table; this skill is for *de novo* database matching.
- No reference database is available or the database lacks ionization adduct specifications.
- The basepeak_finder step has not been completed; raw peak picking output is insufficient for this annotation step.

## Inputs

- basepeak_finder output object (s2)
- negative-mode adducts list (text file with ionization forms and mass shifts)
- metabolite reference database (CSV with compound m/z and identities)

## Outputs

- hits table (matched metabolite candidates with m/z, metabolite name, adduct form, match quality metrics)

## How to apply

Execute the database_query function in geoRge with three inputs: (1) basepeak_finder output (s2 object) containing observed m/z values and intensities from putatively labelled features, (2) a list of negative-mode adducts specifying ionization forms and their mass shifts (e.g., adducts_negative.txt), and (3) a metabolite reference database (e.g., ExampleDatabase.csv) with known compound m/z and identities. The function matches observed m/z values against theoretical adduct masses of each database compound within a 6.5 ppm tolerance window. Return hits are ranked by match quality and include m/z, metabolite name, adduct form, and metrics. Inspect the hits table for high-confidence matches; filter by mass accuracy and adduct plausibility to assign candidate annotations to labelled features.

## Related tools

- **geoRge** (Executes database_query function to match observed m/z values against theoretical adduct masses within specified ppm tolerance) — https://github.com/jcapelladesto/geoRge
- **R** (Runtime environment for geoRge library and database_query execution)
- **XCMS** (Upstream peak picking, alignment, and grouping to prepare data for basepeak_finder and database_query) — https://bioconductor.org/packages/release/bioc/html/xcms.html

## Examples

```
hits <- database_query(geoRgeR = s2, adducts = negative, db = db)
```

## Evaluation signals

- Hits table is returned with non-empty rows; each row contains metabolite name, m/z, adduct form, and numeric match quality metrics.
- All matched m/z values fall within ±6.5 ppm of theoretical adduct masses; no hits exceed the tolerance window.
- Adduct forms in hits table are present in the input adducts list; no spurious or unspecified ionization forms appear.
- Number and distribution of hits per feature are reasonable (typically 0–5 high-confidence candidates per observed m/z); extreme numbers (>10) suggest database contamination or parameter miscalibration.
- Hits are sorted or ranked by match quality metric; practitioner can prioritize candidates by mass accuracy and intensity coherence.

## Limitations

- Mass accuracy tolerance (6.5 ppm) is fixed in the geoRge implementation; may not be optimal for all instrument types or mass ranges.
- Database completeness and quality directly determine annotation recall; incomplete or mis-annotated reference databases yield false negatives or false positives.
- Multiple adducts for the same compound can generate multiple hits per feature, requiring manual or algorithmic disambiguation.
- The function does not account for in-source fragmentation, neutral loss, or multiply charged ions; simple [M±adduct]⁻ matching only.
- No changelog is available in the repository; version history and parameter changes are undocumented.

## Evidence

- [methods] database_query function takes basepeak_finder output, adducts, and database as inputs: "Execute database_query function in geoRge with s2, negative adducts, and the database to match observed m/z values"
- [intro] matching operates within 6.5 ppm tolerance window: "match observed m/z values against theoretical adduct masses within the 6.5 ppm tolerance window"
- [methods] return hits table with metabolite identities and match metrics: "Return and save the hits table containing matched metabolite candidates with m/z, metabolite name, adduct form, and match quality metrics"
- [intro] basepeak_finder output structure and role: "s2 <- basepeak_finder(PuIncR = s1, XCMSet = mtbls213, UL.atomM=12.0,L.atomM=13.003355, ppm.s=6.5,Basepeak.minInt=2000)"
- [readme] installation and library invocation: "install_github("jcapelladesto/geoRge")
library(geoRge)"

