# Untargeted Lcmsms Annotation Workflow

> Use when you have untargeted LC-MS/MS data (mzML) and want an annotated feature table — preprocessing, blank/QC filtering, feature-based molecular networking, spectral library matching, SIRIUS de novo annotation, optional taxonomy-aware re-weighting, and a fused master table. This is the canonical metabopipe-style annotation pipeline.

- Skill: `holobiomicslab/untargeted-lcmsms-annotation-workflow` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add holobiomicslab/untargeted-lcmsms-annotation-workflow`
- Raw SKILL.md: https://api.skillmd.com/api/skills/holobiomicslab/untargeted-lcmsms-annotation-workflow/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- License: CC-BY-4.0
- Author: HolobiomicsLab (https://skillmd.com/u/holobiomicslab)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/holobiomicslab/untargeted-lcmsms-annotation-workflow

---


# Untargeted LC-MS/MS Metabolomite Annotation (FBMN + SIRIUS)

## Summary

End-to-end untargeted LC-MS/MS annotation: raw mzML in, an evidence-grounded master feature table out, combining molecular networking, library matching and SIRIUS.


## When to use

Use when you have untargeted LC-MS/MS data (mzML) and want an annotated feature table — preprocessing, blank/QC filtering, feature-based molecular networking, spectral library matching, SIRIUS de novo annotation, optional taxonomy-aware re-weighting, and a fused master table. This is the canonical metabopipe-style annotation pipeline.


## When NOT to use

- The data is not LC-MS.
- You need a single atomic step, not the full pipeline (use the leaf skill directly via the router).

## Stages

### Stage 1 — preprocess

**Goal:** raw mzML -> aligned feature table + MS2 exports (GNPS-FBMN mgf + SIRIUS mgf)

**EDAM operation:** operation_3215

**Inputs:** mzML · **Outputs:** feature-table, mgf/gnps-fbmn, mgf/sirius

**Candidate leaf skills:** `peak-detection-and-mass-alignment` (primary), `mass-spectrometry-feature-detection-validation`, `lcms-peak-detection-and-alignment`, `spectral-feature-table-generation`, `cross-sample-feature-alignment`

**Tools (primary):** MZmine2, Optimus, OpenMS

**Other candidate tools:** mzRAPP, MZmine 2, R, XCMS, enviPat, Skyline, R (with mzRAPP library), ISFrag, CAMERA, JPA, MS-Convert

**Grounding:** 4 KB(s); DOIs: 10.1021/acs.analchem.1c01644, 10.1021/acs.jnatprod.7b00737, 10.1093/bioinformatics/btab231/6214530, 10.3390/metabo12030212

### Stage 2 — qc_filter  [OPTIONAL]

**Goal:** (optional) remove blank / background / low-quality features before annotation

**EDAM operation:** operation_3695

**Inputs:** feature-table · **Outputs:** feature-table

**Candidate leaf skills:** `blank-sample-feature-filtering` (primary), `feature-table-blank-intensity-detection`, `background-ion-contaminant-removal`, `feature-table-quality-control`, `background-ion-blank-comparison`

**Tools (primary):** R, MZmine3, Jupyter Notebook, FBMN-STATS

**Other candidate tools:** ThermoRawFileParser, Python, PCPFM (Python-Centric Pipeline for Metabolomics), Asari, GetFeatistics, XCMS, MS-Dial, metDataModel

**Grounding:** 3 KB(s); DOIs: 10.1038/s41596-024-01046-3, 10.1371/journal.pcbi.1011912, 10.1515/jib-2025-0047

### Stage 3 — network

**Goal:** MS2 spectra -> molecular family graph (modified cosine; GNPS-style components)

**EDAM operation:** operation_3214

**Inputs:** mgf/gnps-fbmn · **Outputs:** graphml, tsv

**Candidate leaf skills:** `molecular-networking-construction` (primary), `molecular-family-graph-construction`, `spectral-similarity-network-generation`, `spectral-library-molecular-networking`, `gnps-molecular-network-integration`, `graph-based-metabolite-similarity-assessment`

**Tools (primary):** ENPKG, MZmine, MEMO

**Other candidate tools:** nplinker, Python, pytest, GNPS, MZmine2, Optimus, Cytoscape, MSHub, mineMS2, igraph, R, MSnbase

**Grounding:** 5 KB(s); DOIs: 10.1021/acs.jnatprod.7b00737, 10.1021/acscentsci.3c00800, 10.1038/s41587-020-0700-3, 10.1186/s13321-025-01051-y …

### Stage 4 — library_match

**Goal:** MS2 spectra -> spectral library annotations (cosine match to reference libraries)

**EDAM operation:** operation_3631

**Inputs:** mgf/gnps-fbmn · **Outputs:** tsv

**Candidate leaf skills:** `spectral-library-matching-annotation` (primary), `spectral-library-matching`, `spectral-library-matching-with-cosine-similarity`, `mass-spectrometry-library-ranking`, `spectral-library-annotation-matching`

**Tools (primary):** MSThunder, Windows, GNPS, MSConvert

**Other candidate tools:** microbeMASST, metadataMASST, plantMASST, tissueMASST, microbiomeMASST, foodMASST, GNPS_MASST, GNPS libraries, Fast Search API, MZmine, MASSBANK, DrugBANK, meRgeION2, RChemMass, MS2Compound, CFM-id, mssearchr, R, NIST API, ANN-SoLo, Python, Anaconda, Git, MSBERT, PyTorch, matchms, Spec2Vec, nplinker, pytest

**Grounding:** 8 KB(s); DOIs: 10.1016/j.enceco.2025.07.022, 10.1021/acs.analchem.2c04343, 10.1021/acs.analchem.4c02426, 10.1021/acs.jproteome.8b00359 …

### Stage 5 — sirius

**Goal:** MS2 spectra -> formula + structure + class (SIRIUS / CSI:FingerID / CANOPUS)

**EDAM operation:** operation_3860

**Inputs:** mgf/sirius · **Outputs:** tsv

**Candidate leaf skills:** `sirius-spectral-request-construction` (primary), `web-service-api-integration`, `spectrum-query-formatting`, `spectral-fingerprint-web-service-query`, `molecular-fingerprint-parsing`

**Tools (primary):** CSI:FingerID, SIRIUS, CANOPUS

**Other candidate tools:** MSNovelist, ClassyFire

**Grounding:** 1 KB(s); DOIs: 10.1038/s41587-021-01045-9

### Stage 6 — taxonomy_propagate  [OPTIONAL]

**Goal:** (optional) taxonomy-aware re-weighting / propagation of annotations

**EDAM operation:** —

**Inputs:** tsv, tsv, metadata · **Outputs:** tsv

**Candidate leaf skills:** `taxonomic-weighting-in-annotation` (primary), `metabolite-annotation-taxonomic-integration`, `metabolite-annotation-scoring`, `metabolite-annotation-network-architecture`

**Tools (primary):** R, Docker, tima (Taxonomically Informed Metabolite Annotation), LOTUS, SIRIUS, GNPS-FBMN

**Other candidate tools:** tima (R package), GNPS, Spectra (R package), MrnAnnoAlgo3 (MetDNA3), MrnAnnoAlgo3, MetDNA3

**Grounding:** 4 KB(s); DOIs: 10.1038/nbt.3597, 10.1038/s41467-025-63536-6, 10.1038/s41592-019-0344-8, 10.3389/fpls.2019.01329

### Stage 7 — fusion

**Goal:** consolidate networking + library + SIRIUS (+ taxonomy) into one master table

**EDAM operation:** operation_3434

**Inputs:** feature-table, graphml, tsv · **Outputs:** tsv

**Candidate leaf skills:** `feature-metadata-annotation` (primary), `feature-network-construction-from-mass-spectrometry`, `sample-centric-metabolite-annotation`, `feature-table-consensus-aggregation`, `unannotated-feature-characterization`, `feature-table-integration-and-normalization`

**Tools (primary):** msFeaST, jupyter-notebook, msFeaST Dashboard bundle

**Other candidate tools:** networkx, treelib, mass2chem, metDataModel, Python 3, asari, khipu, ENPKG, MZmine, enpkg_mn_isdb_taxo, enpkg_sirius_canopus, enpkg_meta_analysis, SIRIUS, Open Tree of Life, Wikidata, NPClassifier, ChEMBL, Python, DEIMoS, numpy, ProteoWizard msconvert, MZmine2, MZmine3, timaR, Ion Identity, Inventa, ISFrag, R, XCMS

**Grounding:** 7 KB(s); DOIs: 10.1021/acs.analchem.1c01644, 10.1021/acs.analchem.1c05017, 10.1021/acs.analchem.2c05810, 10.1021/acscentsci.3c00800 …

## Grounding

Each stage carries the `kb_slugs`/`dois` of the leaves it draws on. Ground any stage against its source paper with the collection's `/ground` command or `bin/perspicacite_kb_bind.py` (Perspicacité KB; serverless local-clone fallback).

## Verification contract

`workflow.yaml` is gradable by `asb solve-workflow` (checkpoint mode). Each stage declares typed outputs; the final stage emits the master deliverable.

## Provenance

Generated by `compose_workflows.py` (semantic binding + EDAM-aware primary selection). `derived_from_workflows` lists ASB per-paper workflows whose structure corroborated this pipeline — the eval-ablation set (SPEC §8). Staging only; promote via `release_gate.py`.

