---
title: Metabolomics FAQ
description: Why annotation reports only putative_match confidence, why differential analysis takes one two-group contrast and no ANOVA, and what impact_score measures.
tags:
  - metabolomics
  - faq
---

These answers cover the choices that shape a [metabolomics](/docs/metabolomics) analysis: which mass spectrometry platforms and input formats are supported, what preprocessing and mass tolerance to use, how annotation confidence works, what differential analysis and pathway enrichment do and don't support, and how to handle lipidomics data.

## Metabolomics FAQ

## What mass spectrometry platforms are supported?

The toolkit accepts raw LC-MS data (mzML/mzXML) for preprocessing, or an already-processed peak table for the later stages. Other raw vendor formats (.raw) need to be converted to mzML first, using tools like ProteoWizard's msconvert.

## Does preprocessing normalize my data for me?

Yes, but there's no method choice. When `metabolomics_preprocess` runs against a peak table, it applies TIC (total ion current) normalization followed by a log2 transform automatically. Point it at a raw mzML file instead to run peak detection and alignment via XCMS, MZmine, or OpenMS (`method`).

## How does metabolite annotation confidence work?

`metabolomics_annotate` matches feature m/z values against HMDB (optionally LipidMaps or KEGG) within a configurable ppm tolerance. A match is reported as `"putative_match"` (confidence 0.5) or `"unknown"` (confidence 0) — there's no multi-level (MSI-style) confidence scale and no MS/MS spectral matching.

## What mass tolerance should I use?

The `mass_tolerance_ppm` parameter defaults to 5 ppm for annotation and `ppm_tolerance` defaults to 10 ppm for preprocessing. For high-resolution instruments (Orbitrap, QTOF), 5-10 ppm is typical. Tighter tolerances reduce false positive matches but may miss true matches due to calibration drift.

## Can I run differential analysis with more than two groups?

No. `metabolomics_differential` tests a single two-group `contrast` (e.g., `"treated_vs_control"`) with your choice of `method` — Welch's t-test, limma, or Wilcoxon — and Benjamini-Hochberg FDR correction. There's no multi-group (ANOVA/Kruskal-Wallis) or paired-design option; for more than two groups, run separate pairwise contrasts.

## What does the pathway impact score mean?

`impact_score` is `coverage * (1 - p_value)`, where `coverage` is the fraction of a pathway's reference metabolites matched in your data. It is not a network-centrality measure — matched metabolites are not weighted by their position (hub vs. periphery) within the pathway.

## What's the difference between "enrichment" and "topology" analysis?

`metabolomics_pathway`'s `analysis_type` parameter takes `"enrichment"` (over-representation, the default) or `"topology"`. Both are tested against the same curated set of KEGG metabolic pathways via Fisher's exact test — there's no rank-based (GSEA-style) enrichment method.

## How many metabolites do I need for pathway enrichment?

A handful of mapped metabolites is enough to get a result, but with very few hits most pathways won't reach significance after FDR correction. Check `total_features_with_mass` in the output against `total_pathways_tested` to see how many of your inputs could be matched at all.

## Can I use metabolomics tools with lipidomics data?

Yes. Set `databases` to `"lipidmaps"` or `"all"` in `metabolomics_annotate` to include LipidMaps in the mass matching. Pathway enrichment can then map lipid-related features to the lipid metabolism pathways in the curated KEGG reference set (e.g., sphingolipid metabolism).

## Read next
