metabolite-identifier-conversion
Summary
Convert metabolite identifiers in heterogeneous formats (names, KEGG IDs, HMDB IDs, PubChem IDs) into a unified metabolite-pathway mapping table using Lilikoi's MetaTOpathway function. This skill is essential when ingesting metabolomics datasets with mixed or non-canonical metabolite naming schemes before pathway analysis.
When to use
Your metabolomics dataset contains metabolite identifiers in multiple formats (e.g., metabolite names, KEGG IDs, HMDB IDs, PubChem IDs) and you need to map them to canonical identifiers and their associated KEGG/pathway annotations for downstream pathway analysis, classification, or visualization. This is the first transformation step after loading raw metabolite data.
When NOT to use
- Your metabolite identifiers are already in a standardized canonical format (e.g., all HMDB IDs) and pre-mapped to pathways; conversion would be redundant.
- Your analysis does not require pathway annotation or KEGG membership; you only need metabolite identity standardization for statistical analysis.
- The metabolite names in your dataset are non-standard abbreviations or custom codes not resolvable against the 100k reference database.
Inputs
- metabolomics dataset with metabolite identifiers (CSV format)
- metabolite identifier format specification (string: 'name', 'KEGG_ID', 'HMDB_ID', or 'PubChem_ID')
Outputs
- Metabolite_pathway_table (data frame with metabolite ID and KEGG pathway assignment columns)
How to apply
Load your metabolomics data (e.g., plasma_breast_cancer.csv with metabolite IDs and identifiers) into R. Call lilikoi.MetaTOpathway() with the identifier format as a parameter (e.g., 'name' for metabolite names). The function matches metabolite standard names against a 100k reference database using exact matching; when no direct hit is found, it applies fuzzy matching to identify the closest matching canonical metabolite name. The output is a Metabolite_pathway_table with columns for metabolite ID and assigned KEGG pathway annotations. Inspect the resulting table for the proportion of successfully converted metabolites and any unmatched entries, which should be reviewed for data quality or manual curation.
Related tools
- Lilikoi v2.0 (Performs metabolite identifier conversion via MetaTOpathway function using fuzzy matching against 100k reference database) — https://github.com/lanagarmire/lilikoi2
- R (Programming environment for loading data, executing lilikoi functions, and exporting Metabolite_pathway_table)
Examples
convertResults=lilikoi.MetaTOpathway('name'); Metabolite_pathway_table = convertResults$table; head(Metabolite_pathway_table)
Evaluation signals
- Conversion success rate: proportion of input metabolites matched to canonical identifiers (target: >90% for well-characterized datasets like plasma metabolomics)
- No duplicate entries in Metabolite_pathway_table; each metabolite ID maps to exactly one pathway or a consistent set of pathways
- Spot-check: verify that known metabolites (e.g., glucose, lactate, pyruvate) are correctly assigned to expected pathways
- Presence of NA or unmapped values should be documented and reviewed; if >10%, investigate data quality or format specification mismatch
- Output table schema invariant: contains at minimum 'Metabolite_ID' and 'Pathway' columns with no structural nulls in key fields
Limitations
- Fuzzy matching relies on string similarity; highly abbreviated or proprietary metabolite names may not resolve correctly.
- The reference database contains ~100k metabolites; rare or recently discovered metabolites may not be present, resulting in unmapped entries.
- Metabolites with multiple biochemical roles may be assigned to a single dominant pathway; pathway ambiguity is not flagged.
- No changelog available to track updates to the reference database or fuzzy matching algorithm across Lilikoi versions.
Evidence
- [other] The MetaTOpathway function performs ID conversion by matching metabolite standard names against a 100k database, and applies fuzzy matching to find closest matches when no direct hits are found: "The MetaTOpathway function performs ID conversion by matching metabolite standard names against a 100k database, and applies fuzzy matching to find closest matches when no direct hits are found,"
- [readme] convertResults=lilikoi.MetaTOpathway('name'); Metabolite_pathway_table = convertResults$table: "# Transform the metabolite names to the HMDB ids using Lilikoi MetaTOpathway function
convertResults=lilikoi.MetaTOpathway('name')
Metabolite_pathway_table = convertResults$table"
- [intro] Lilikoi v2 supports data preprocessing, exploratory analysis, pathway visualization and metabolite-pathway regression: "Lilikoi v2.0 supports data preprocessing, exploratory analysis, pathway visualization and metabolite-pathway regression."
- [readme] dt <- lilikoi.Loaddata(file=system.file("extdata", "plasma_breast_cancer.csv", package = "lilikoi")): "dt <- lilikoi.Loaddata(file=system.file("extdata", "plasma_breast_cancer.csv", package = "lilikoi"))"
1---2name: metabolite-identifier-conversion3description: Use when your metabolomics dataset contains metabolite identifiers in multiple formats (e.4license: CC-BY-4.05---67# metabolite-identifier-conversion89## Summary1011Convert metabolite identifiers in heterogeneous formats (names, KEGG IDs, HMDB IDs, PubChem IDs) into a unified metabolite-pathway mapping table using Lilikoi's MetaTOpathway function. This skill is essential when ingesting metabolomics datasets with mixed or non-canonical metabolite naming schemes before pathway analysis.1213## When to use1415Your metabolomics dataset contains metabolite identifiers in multiple formats (e.g., metabolite names, KEGG IDs, HMDB IDs, PubChem IDs) and you need to map them to canonical identifiers and their associated KEGG/pathway annotations for downstream pathway analysis, classification, or visualization. This is the first transformation step after loading raw metabolite data.1617## When NOT to use1819- Your metabolite identifiers are already in a standardized canonical format (e.g., all HMDB IDs) and pre-mapped to pathways; conversion would be redundant.20- Your analysis does not require pathway annotation or KEGG membership; you only need metabolite identity standardization for statistical analysis.21- The metabolite names in your dataset are non-standard abbreviations or custom codes not resolvable against the 100k reference database.2223## Inputs2425- metabolomics dataset with metabolite identifiers (CSV format)26- metabolite identifier format specification (string: 'name', 'KEGG_ID', 'HMDB_ID', or 'PubChem_ID')2728## Outputs2930- Metabolite_pathway_table (data frame with metabolite ID and KEGG pathway assignment columns)3132## How to apply3334Load your metabolomics data (e.g., plasma_breast_cancer.csv with metabolite IDs and identifiers) into R. Call lilikoi.MetaTOpathway() with the identifier format as a parameter (e.g., 'name' for metabolite names). The function matches metabolite standard names against a 100k reference database using exact matching; when no direct hit is found, it applies fuzzy matching to identify the closest matching canonical metabolite name. The output is a Metabolite_pathway_table with columns for metabolite ID and assigned KEGG pathway annotations. Inspect the resulting table for the proportion of successfully converted metabolites and any unmatched entries, which should be reviewed for data quality or manual curation.3536## Related tools3738- **Lilikoi v2.0** (Performs metabolite identifier conversion via MetaTOpathway function using fuzzy matching against 100k reference database) — https://github.com/lanagarmire/lilikoi239- **R** (Programming environment for loading data, executing lilikoi functions, and exporting Metabolite_pathway_table)4041## Examples4243```44convertResults=lilikoi.MetaTOpathway('name'); Metabolite_pathway_table = convertResults$table; head(Metabolite_pathway_table)45```4647## Evaluation signals4849- Conversion success rate: proportion of input metabolites matched to canonical identifiers (target: >90% for well-characterized datasets like plasma metabolomics)50- No duplicate entries in Metabolite_pathway_table; each metabolite ID maps to exactly one pathway or a consistent set of pathways51- Spot-check: verify that known metabolites (e.g., glucose, lactate, pyruvate) are correctly assigned to expected pathways52- Presence of NA or unmapped values should be documented and reviewed; if >10%, investigate data quality or format specification mismatch53- Output table schema invariant: contains at minimum 'Metabolite_ID' and 'Pathway' columns with no structural nulls in key fields5455## Limitations5657- Fuzzy matching relies on string similarity; highly abbreviated or proprietary metabolite names may not resolve correctly.58- The reference database contains ~100k metabolites; rare or recently discovered metabolites may not be present, resulting in unmapped entries.59- Metabolites with multiple biochemical roles may be assigned to a single dominant pathway; pathway ambiguity is not flagged.60- No changelog available to track updates to the reference database or fuzzy matching algorithm across Lilikoi versions.6162## Evidence6364- [other] The MetaTOpathway function performs ID conversion by matching metabolite standard names against a 100k database, and applies fuzzy matching to find closest matches when no direct hits are found: "The MetaTOpathway function performs ID conversion by matching metabolite standard names against a 100k database, and applies fuzzy matching to find closest matches when no direct hits are found,"65- [readme] convertResults=lilikoi.MetaTOpathway('name'); Metabolite_pathway_table = convertResults$table: "# Transform the metabolite names to the HMDB ids using Lilikoi MetaTOpathway function66convertResults=lilikoi.MetaTOpathway('name')67Metabolite_pathway_table = convertResults$table"68- [intro] Lilikoi v2 supports data preprocessing, exploratory analysis, pathway visualization and metabolite-pathway regression: "Lilikoi v2.0 supports data preprocessing, exploratory analysis, pathway visualization and metabolite-pathway regression."69- [readme] dt <- lilikoi.Loaddata(file=system.file("extdata", "plasma_breast_cancer.csv", package = "lilikoi")): "dt <- lilikoi.Loaddata(file=system.file("extdata", "plasma_breast_cancer.csv", package = "lilikoi"))"