---
title: Interpreting metabolomics outputs
description: >-
  Preprocessed feature tables, annotated metabolites, differential results, and
  pathway enrichment scores.
tags:
  - metabolomics
  - outputs
---

Each stage returns a structured result — a preprocessed feature table summary, putative metabolite annotations, differential test results, or KEGG pathway enrichment scores. These let you carry a feature table into annotation, identify which metabolites change, and see which metabolic pathways they implicate.

## Interpreting metabolomics outputs

## Metabolomics Preprocess output

| Field | Type | Description |
|-------|------|-------------|
| `features_detected` | number | Number of features in the input table |
| `samples_processed` | number | Number of samples processed |
| `normalization` | string | Normalization applied (`"TIC"` for a peak table, `"none"` for raw mzML) |
| `transformation` | string | Transformation applied (`"log2"` or `"none"`) |
| `ion_mode` | string | Ionization polarity used |
| `tic_median` | number | Median total ion current across samples |
| `tic_range` | number[] | `[min, max]` total ion current across samples |
| `missing_value_rate` | number | Fraction of zero/missing values in the table |
| `mean_cv` | number | Mean coefficient of variation across features |
| `top_features_by_intensity` | array | The 10 highest-intensity features, each `{feature_id, mean_intensity}` |

A run against a raw `mzml_key` (rather than a preprocessed peak table) returns `features_detected: 0` with a note that full mzML processing requires uploading a peak table.

## Metabolomics Annotate output

| Field | Type | Description |
|-------|------|-------------|
| `annotations` | array | Per-feature annotation results (capped at the first 50 features) |
| `total_features` | number | Number of input features |
| `total_queried` | number | Number of features queried against the database |
| `total_annotated` | number | Features with a putative match |
| `mass_accuracy_ppm` | number | ppm tolerance used for matching |
| `ion_mode` | string | Ionization polarity used |
| `database` | string | Database queried (currently `"HMDB"`) |

### Annotation fields

| Field | Type | Description |
|-------|------|-------------|
| `feature_id` | string | Input feature identifier |
| `annotation` | string | `"putative_match"` or `"unknown"` |
| `confidence` | number | `0.5` for a putative match, `0` otherwise — there is no multi-level confidence scale |
| `hmdb_id` | string | Matched HMDB identifier, when available |
| `formula` | string | Molecular formula, when available |
| `adduct` | string | Matched adduct, when available |
| `query_mass` | number | The m/z value queried, present only for matched features |

## Metabolomics Differential output

| Field | Type | Description |
|-------|------|-------------|
| `significant_metabolites` | array | Features reaching FDR &lt; 0.05, sorted by p-value (capped at 50) |
| `total_tested` | number | Features tested |
| `total_significant` | number | Features reaching significance |
| `method` | string | Statistical method used (e.g., `"Welch_t-test"`) |
| `correction` | string | Multiple testing correction method (`"Benjamini-Hochberg"`) |
| `group1` | object | `{name, n_samples}` for the first group |
| `group2` | object | `{name, n_samples}` for the second group |

### Result fields

| Field | Type | Description |
|-------|------|-------------|
| `feature_id` | string | Feature identifier |
| `t_statistic` | number | Test statistic |
| `p_value` | number | Raw p-value |
| `p_adjusted` | number | Benjamini-Hochberg-adjusted p-value |
| `log2_fold_change` | number | Difference in mean log-intensity between group 2 and group 1 |
| `mean_group1` | number | Mean intensity in group 1 |
| `mean_group2` | number | Mean intensity in group 2 |

## Metabolomics Pathway output

| Field | Type | Description |
|-------|------|-------------|
| `enriched_pathways` | array | Pathway enrichment results, sorted by p-value |
| `significant_pathways` | number | Pathways reaching FDR &lt; 0.05 |
| `total_pathways_tested` | number | Number of KEGG pathways tested against the curated reference set |
| `total_features_with_mass` | number | Input metabolites whose mass could be parsed |
| `mass_accuracy_ppm` | number | ppm tolerance used for matching against reference metabolite masses |
| `database` | string | `"KEGG"` |
| `correction` | string | Multiple testing correction method (`"Benjamini-Hochberg"`) |

### Pathway fields

| Field | Type | Description |
|-------|------|-------------|
| `pathway` | string | Pathway name |
| `pathway_id` | string | KEGG pathway identifier |
| `p_value` | number | Raw enrichment p-value (Fisher's exact test) |
| `p_adjusted` | number | FDR-adjusted p-value |
| `matched_metabolites` | number | Reference metabolites in this pathway with a mass match in your data |
| `pathway_size` | number | Number of reference metabolites in this pathway |
| `coverage` | number | `matched_metabolites / pathway_size` |
| `impact_score` | number | `coverage * (1 - p_value)` |
| `metabolite_names` | string[] | Names of the matched reference metabolites |

## Read next
