Fluxomics: Use Cases and ChEMROF Extensions
This document surveys fluxomics — the quantitative study of metabolic reaction rates (fluxes) in a biological system — and analyzes how the ChEMROF schema can be used as-is and where it could be extended to serve as a chemical-entity backbone for fluxomics data and models.
It began as a scoping/explanation document. Most of it still describes
potential directions, but the kinetic-modeling thread has since been partly
implemented: ChEMROF gained reaction-mechanism, enzyme-regulation, and
related slots, and a chemrof convert-maud command maps Maud kinetic models
into ChEMROF (see Appendix A). Sections describing the isotope/atom-mapping
and flux/experiment layers remain proposals.
1. What is fluxomics?
Fluxomics is the "-omics" layer concerned with flux — the rate at which metabolites are interconverted through a metabolic network, conventionally expressed in units such as mmol·gDW⁻¹·h⁻¹ (millimoles per gram dry weight per hour) for cellular systems. Unlike concentrations (metabolomics) or expression levels (transcriptomics/proteomics), a flux is not a pool size but a throughput through a reaction. Fluxes are not measured directly; they are inferred by combining:
- a reaction network (stoichiometry + reversibility/directionality),
- constraints (thermodynamic, capacity, uptake/secretion bounds), and
- experimental data (extracellular rates and/or stable-isotope labeling patterns).
The two dominant methodological families are constraint-based modeling (Flux Balance Analysis and relatives) and isotope-based Metabolic Flux Analysis (¹³C-MFA and its non-stationary variant). They impose quite different data requirements, and ChEMROF is differentially ready for each.
2. Core use cases and their data requirements
2.1 Constraint-based modeling / Flux Balance Analysis (FBA)
FBA operates on a genome-scale metabolic model (GEM/GSMM). The network is
encoded as a stoichiometric matrix S (rows = metabolites, columns =
reactions, entries = stoichiometric coefficients). Assuming metabolic
steady state (S·v = 0), linear programming finds a flux vector v that
optimizes an objective function (commonly biomass production) subject to
flux bounds (lb ≤ v ≤ ub).
Data requirements:
- Metabolites with compartment assignment (e.g. cytosol
c, mitochondrionm, extracellulare) and database cross-references. - Reactions with signed, possibly non-integer stoichiometric coefficients, reversibility/bounds, gene–protein–reaction (GPR) associations, and a classification (internal / transport / exchange / biomass pseudo-reaction).
- An objective (which reaction(s) to maximize/minimize, and weights).
The de-facto standard is SBML Level 3 with the Flux Balance Constraints
(fbc) package (objective functions, flux bounds, charge/formula for
balancing). Models are richly cross-referenced via MIRIAM identifiers and
annotated with Systems Biology Ontology (SBO) terms (e.g. distinguishing
biomass pseudo-reactions, transport reactions, exchange reactions). Reference
resources include BiGG Models, MetaNetX, KEGG, MetaCyc/BioCyc,
and Rhea. The FROG report (Flux variability, Reaction deletion,
Objective, Gene deletion) is an emerging reproducibility standard for curated
GEMs.
2.2 Stable-isotope ¹³C Metabolic Flux Analysis (¹³C-MFA)
¹³C-MFA is considered the "gold standard" for intracellular flux quantification under metabolic (quasi-)steady state. Cells are fed a ¹³C-labeled substrate (e.g. [1-¹³C] or [U-¹³C] glucose); the label propagates through the network, and the resulting labeling patterns of downstream metabolites (measured by MS or NMR) are fit to a model to estimate fluxes.
The distinguishing data requirement beyond FBA is the atom mapping (a.k.a. atom transition network): for each reaction, a one-to-one correspondence between each substrate atom and the product atom it becomes. Carbon atom mappings are what let a model predict how label flows. Key concepts:
- Atom mapping / atom transition — substrate-atom → product-atom correspondence per reaction (e.g. encoded as mapped reaction SMILES/SMIRKS, RXN files, or RInChI). Curated mappings are available from MetaCyc and the open MetAMDB (~43,000 reactions).
- Isotopomer — a specific labeling configuration of a molecule (which positions carry the heavy isotope); for n carbons there are 2ⁿ isotopomers.
- Isotopologue / mass isotopomer — molecules that differ only in number of heavy atoms (M+0, M+1, M+2, …), without regard to position; what a mass spectrometer typically resolves.
- Mass Isotopomer Distribution (MID) / Mass Distribution Vector (MDV) — the fractional abundances of M+0, M+1, … normalized to sum 1; the primary measurement input.
- Elementary Metabolite Unit (EMU) framework — a decomposition that reduces the isotopomer balance equations (1000s) to a much smaller EMU set (100s), the computational backbone of modern simulators (INCA, 13CFLUX2, OpenFLUX, mfapy, etc.).
The dominant exchange format is FluxML — an XML language semantically similar to SBML but extended with atom mappings, parameter constraints (net/exchange fluxes), and measurement configurations.
2.3 Isotopically non-stationary MFA (INST-MFA)
For systems where isotopic steady state is impractical (e.g. autotrophs, photosynthesis), INST-MFA fits the time course of label incorporation. This adds a temporal dimension (time-series MIDs) and requires metabolite pool sizes (concentrations) as additional parameters, coupling fluxomics to metabolomics.
2.4 Kinetic / mechanistic modeling
Beyond steady-state flux estimation, kinetic models express each reaction rate
v as an explicit function of metabolite concentrations and kinetic
parameters (e.g. kcat, Km, Vmax, rate constants). These are the bridge
from fluxomics to dynamic simulation and parameter-estimation tools.
2.5 A typology of fluxomics experiments
"Fluxomics" is not one experiment but a family, and the experiment type dictates which data (and therefore which schema constructs) are needed. It is useful to type an experiment along four orthogonal axes:
Axis A — inference paradigm
| Type | Tracer? | Steady state | Primary inputs |
|---|---|---|---|
| Constraint-based (FBA, and pFBA/FVA/MOMA/dFBA variants) | no | metabolic | stoichiometry, bounds, objective |
| Stoichiometric MFA / metabolite balancing | no | metabolic | stoichiometry + measured uptake/secretion rates |
| Stationary ¹³C-MFA (SS-MFA) | yes | metabolic and isotopic | atom mappings + MIDs at steady state |
| Isotopically non-stationary MFA (INST-MFA) | yes | metabolic only | time-series MIDs + pool sizes |
| Dynamic MFA (DMFA) | optional | none | time-series rates/labeling |
| ¹³C flux-ratio analysis (METAFoR) | yes | isotopic | local labeling patterns → flux ratios |
Axis B — labeling design
- Single-tracer vs parallel labeling experiments (PLE) — two or more tracer cultures fit jointly to one model. Using complementary parallel tracers is the COMPLETE-MFA approach, now regarded as the gold standard for flux precision/observability.
- Tracer positional design: positional (e.g.
[1-¹³C],[1,2-¹³C],[1,6-¹³C]glucose) vs uniform ([U-¹³C₆]).
Axis C — tracer isotope — ¹³C dominates, but ²H, ¹⁵N, ¹⁷O/¹⁸O are used, and combined designs exist (e.g. one-shot ¹³C/¹⁵N for simultaneous carbon and nitrogen flux).
Axis D — measurement platform — GC-MS, LC-MS/MS, tandem MS (MS/MS), and
NMR (¹H/¹³C/¹⁵N HSQC). The platform determines whether positional
isotopomers (NMR, MS/MS) or only mass isotopologues / MIDs (single-stage
MS) are observed — a distinction ChEMROF can already express via
isotopomer_of vs isotopologue_of.
These axes combine: a typical study is e.g. stationary ¹³C-MFA, parallel
[1,2-¹³C] + [U-¹³C₆] glucose, GC-MS, central-carbon model. A fluxomics
schema should therefore treat "experiment type" as a small set of controlled
vocabularies (one per axis) rather than a single flat enum, and let a
FluxomicsExperiment carry one or more Tracer specifications plus its
measurement platform and timepoints (sketched in §7.4).
3. Standards landscape (for alignment)
| Concern | Standard / resource |
|---|---|
| Constraint-based model exchange | SBML L3 + fbc package |
| Isotope-labeling model exchange | FluxML; OpenFLUX/INCA/13CFLUX2 formats |
| Kinetic / Bayesian model exchange | SBML (kinetics); Maud (TOML) |
| Semantic typing of model parts | Systems Biology Ontology (SBO) |
| Reaction identity & balancing | Rhea, RInChI, reaction SMILES/SMIRKS |
| Atom mappings | MetaCyc, MetAMDB (RXN/SMILES with atom maps) |
| Metabolite/reaction identifiers | BiGG, MetaNetX, KEGG, ChEBI, HMDB |
| Reproducibility report | FROG |
ChEMROF already lists RHEA, KEGG.REACTION, MetaCyc, EC,
MetaNetX.reaction, SEED, RetroRules, RXNO, bigg.metabolite,
MetaNetX.chemical etc. among its id_prefixes, so it is well-positioned to
cross-reference these resources.
3.1 Do we have FluxML mappings? (a crosswalk)
Short answer: no — there are currently no FluxML (or SBML/fbc/SBO)
mappings in the schema, and FluxML is not the kind of artifact you map to
directly. Two clarifications:
-
FluxML is an exchange format (an XML schema), not a controlled vocabulary with stable term IRIs. So there is nothing to put in a LinkML
exact_mappings/SSSOM table for FluxML the way there is for, say,RXNO:orCHEBI:. What you can map are (a) the entity identifiers that FluxML documents reference (Rhea/KEGG/BiGG/MetaNetX metabolite and reaction IDs) and (b) the structural elements of a FluxML document onto ChEMROF classes/slots (an element-level crosswalk). -
At the identifier level we are already aligned: ChEMROF's
id_prefixesfor metabolites (CHEBI,bigg.metabolite,KEGG,MetaNetX.chemical,HMDB, …) and reactions (RHEA,KEGG.REACTION,MetaCyc,EC,MetaNetX.reaction,bigg.metabolite/MetaNetX.reaction) cover the namespaces FluxML/SBML models use, so ChEMROF can serve as the chemical-identity hub for the metabolites and reactions a FluxML model names.
What is missing is the structural crosswalk. A proposed element-level mapping (to be implemented in a companion schema that imports ChEMROF):
| FluxML element / concept | ChEMROF equivalent | Status |
|---|---|---|
<metabolitepool> (id, atoms) |
ChemicalEntity (+ has_atom_occurrences) |
identifiers ✅, atom count via occurrences ✅ |
<reaction> |
Reaction |
✅ |
<reduct> / <rproduct> (educt/product, with carbon labels) |
ReactionParticipant (left/right_participants) |
partial — see atom mapping |
atom-transition string (e.g. A#abc + B#de -> C#abcde) |
AtomTransition over AtomOccurrence (proposed §7.2) |
❌ not yet |
net / exchange (forward/back) flux, <constraint>/<flux> |
MetabolicFlux + bounds (proposed §7.4) |
❌ not yet |
| isotopomer / cumomer / EMU labeling state | isotopomer_of / isotopologue_of; MassIsotopomerDistribution (proposed §7.3) |
relations ✅, distribution object ❌ |
<measurement> (MS/MS/NMR config + data) |
FluxomicsExperiment measurement (proposed §7.4) |
❌ not yet |
<configuration> / tracer input (<input> labeling) |
Tracer (proposed §7.4) |
❌ not yet |
So: identifier-level mappings exist today; the structural FluxML↔ChEMROF crosswalk, and especially atom transitions and labeling-data objects, are the concrete pieces to add. Building a small FluxML↔ChEMROF round-trip converter (validating on one published model) would be the most direct way to prove the crosswalk and surface remaining gaps.
4. What ChEMROF already provides
ChEMROF is primarily a chemical-entity ontology/schema, but it already contains the chemistry that fluxomics models hang their data on:
Reaction(RXNO:0000000) withleft_participants/right_participants(each aReactionParticipant),direction,is_balanced,is_transport,is_fully_characterized,reaction_center, and reaction-level cross-refs to RHEA/KEGG/MetaCyc/EC/MetaNetX/SEED/BiGG.ReactionParticipantlinking aReactionto aChemicalEntitywith astoichiometryslot.- Kinetic slots already on
Reaction/elsewhere:reaction_rate(v, units mol·m⁻³·s⁻¹),reaction_rate_coefficient, pluskcat(turnover number) andmichaelis_constant(Km). - Reaction-structure representations:
has_reaction_smiles_representation,has_reaction_smarts_representation,has_rinchi_representation,has_smirks_representation,has_reaction_representation— directly relevant to encoding atom-mapped reactions. - Isotope machinery:
Isotope/Nuclideclasses, and the relationsisotopologue_ofandisotopomer_of(alongside related nuclear-family relations such asisobar_of,isotone_of,isotope_of), plus anisomeric_smiles_stringwhose description already cites[13C]. This is the conceptual vocabulary that ¹³C-MFA needs. - Per-atom individuation:
AtomOccurrence("one of two occurrences of oxygen in nitrate") withoccurrence_of → Atom,valence,oxidation_number, etc., reached viahas_atom_occurrences. This is the natural anchor for atom mapping, because atom transitions are relations between individuated substrate and product atom occurrences. - Concentration (
Concentrationclass +concentrationslot +ConcentrationUnitEnum) — supports the pool-size / metabolomics coupling needed by INST-MFA. ReactionGroupingClassandReactionTypeEnumfor classifying reactions (currently organic-synthesis flavored: oxidation, hydrolysis, isomerization, …).
In short: ChEMROF already models reactions, participants, stoichiometry, isotopes/isotopologues/isotopomers, per-atom occurrences, reaction-structure linear notations, concentrations, and basic enzyme kinetics. That is a surprisingly large fraction of the chemistry underlying fluxomics.
5. Gaps relative to fluxomics use cases
The gaps are mostly about quantitative network modeling rather than
chemistry per se — i.e. the parts that SBML-fbc/FluxML add on top of a
chemical reaction network:
-
Stoichiometry is integer-only and unsigned.
ReactionParticipant.stoichiometryhasrange: integer. GEMs routinely use fractional coefficients (biomass reactions, lumped reactions, cofactor ratios). Left/right is captured by participant lists, but a single signedfloatcoefficient is the modeling convention. -
No flux quantity.
reaction_rateexists as an intrinsic kinetic rate, but there is no notion of an estimated/observed network flux with its units (mmol·gDW⁻¹·h⁻¹), confidence interval, and the experiment/condition it pertains to. Flux is condition-specific data, not an intrinsic property of a reaction. -
No flux bounds / objective / FBA scaffolding. No
lower_bound,upper_bound,reversibleflag, or objective-function representation. -
No compartment / cellular-location model. Metabolites and reactions in GEMs are compartmentalized; transport reactions move species between compartments. ChEMROF has
is_transport: booleanbut no compartment entity or per-participant compartment. -
No first-class atom-mapping / atom-transition construct.
AtomOccurrenceexists, but there is no relation asserting "substrate atom occurrence X becomes product atom occurrence Y in reaction R." Atom-mapped reaction SMILES could carry this implicitly, but a structured construct is what MFA tooling consumes. -
No measurement/distribution model for labeling. No
MassIsotopomerDistribution(MID/MDV vector), no per-position labeling state, no EMU construct, and no way to attach measured labeling data to a metabolite in an experiment. -
No experiment / dataset context, and no notion of experiment type. Fluxes and MIDs are only meaningful relative to an organism, strain, growth condition, tracer, timepoint, measurement platform, and the kind of experiment (FBA vs stationary ¹³C-MFA vs INST-MFA vs parallel/COMPLETE-MFA; see the typology in §2.5). ChEMROF has no such context or experiment-type construct (appropriately — it is a chemistry schema), so a fluxomics extension must decide what lives here vs. in a companion schema (§7.4).
-
GPR associations (gene/enzyme → reaction) are out of scope for a chemistry schema and would belong in a companion model that references ChEMROF reactions.
The worked example in Appendix A (a Bayesian kinetic model) surfaces three further gaps that matter for the kinetic/dynamic experiment type:
-
No reaction rate-law / mechanism typing. Kinetic models tag each reaction with a rate law (e.g. reversible vs irreversible Michaelis–Menten, mass-action, a "drain"/boundary flux). ChEMROF has the parameters (
kcat,michaelis_constant) but no controlled vocabulary for the mechanism they parameterize, and no inhibition constant (Ki). -
No enzyme-regulation relationships. Allosteric activation/inhibition and competitive inhibition (metabolite → enzyme effects) are central to kinetic models. ChEMROF has
ChemicalRole/has_chemical_rolebut nothing for metabolite-on-enzyme regulatory interactions (these may belong in a companion enzyme/kinetics schema). -
No reaction thermodynamics. Standard Gibbs free energy of formation (ΔGf°, the
dgfpriors in the example), temperature, transported charge, and membrane potential drive reversibility/direction. ChEMROF has assortedthermophysical_propertyslots but no ΔGf°/ΔGr° for reactions or a thermodynamics-based directionality model.
6. Two strategic options
Option A — ChEMROF as the chemistry substrate, fluxomics in a companion
schema (recommended). Keep ChEMROF focused on chemical entities and
reactions, and build a thin fluxomics LinkML module that imports ChEMROF and
adds the modeling/experiment layer (fluxes, bounds, objectives, compartments,
MIDs, experiments). This mirrors how SBML-fbc and FluxML sit on top of a
reaction network, and keeps ChEMROF from absorbing systems-biology scope. The
companion would reuse ChEMROF Reaction, ReactionParticipant,
ChemicalEntity, Concentration, Isotope, and AtomOccurrence.
Option B — Extend ChEMROF in place. Add the minimal chemistry-adjacent pieces that clearly belong here (atom transitions, signed/float stoichiometry, isotopologue/MID vocabulary) and leave the network-modeling layer to consumers.
A pragmatic split: do the chemistry-adjacent items (Sections 7.1–7.3) in ChEMROF, and the modeling/experiment items (7.4–7.5) in a companion schema.
7. Concrete extension sketches
These are illustrative LinkML fragments for discussion, not finished schema.
7.1 Allow signed, fractional stoichiometry (small, in-place)
slots:
stoichiometry:
range: float # was: integer
description: >-
Signed stoichiometric coefficient of the participant in the reaction
(negative for consumed, positive for produced, by convention), allowing
fractional values as used in genome-scale biomass and lumped reactions.
(If integer semantics are still wanted for elementary reactions, keep
stoichiometry: integer and add a separate stoichiometric_coefficient: float
for network modeling.)
7.2 Atom transitions (atom mapping) using existing AtomOccurrence
classes:
AtomTransition:
is_a: ChemicalRelationship
description: >-
Asserts that a substrate atom occurrence corresponds to (becomes) a
product atom occurrence within a specific reaction — the unit of an atom
mapping / atom transition network used in 13C-MFA.
attributes:
reactant_atom:
range: AtomOccurrence
required: true
product_atom:
range: AtomOccurrence
required: true
slots:
has_atom_transitions:
range: AtomTransition
multivalued: true
inlined: true
domain: Reaction
This lets ChEMROF represent the same information as MetAMDB / mapped reaction
SMILES, but in a queryable structured form, while reusing AtomOccurrence.
7.3 Isotope-labeling vocabulary (chemistry-adjacent)
classes:
MassIsotopomerDistribution:
description: >-
The fractional abundances (summing to 1) of the mass isotopologues
(M+0, M+1, M+2, …) of a chemical entity or molecular fragment; the
primary measurement in 13C-MFA (a.k.a. mass distribution vector, MDV).
attributes:
fragment_of:
range: ChemicalEntity
fractions: # ordered M+0, M+1, ...
range: float
multivalued: true
tracer:
description: e.g. "[U-13C6] glucose"
Isotopologue/isotopomer relations already exist; this adds the
distribution object that fluxomics measures. (EMU could be added later as a
fragment construct if structured isotope simulation is in scope.)
7.4 Network-modeling layer (companion schema, sketch)
classes:
Compartment:
description: A bounded cellular space (e.g. cytosol, mitochondrion).
MetabolicFlux:
description: >-
An estimated or observed throughput through a reaction under a specific
condition, with units and uncertainty.
attributes:
reaction: {range: Reaction}
value: {range: float}
unit: {description: e.g. mmol/gDW/h}
lower_bound: {range: float}
upper_bound: {range: float}
confidence_low: {range: float}
confidence_high: {range: float}
condition: {range: GrowthCondition}
Objective:
description: FBA objective (reaction coefficients to maximize/minimize).
Tracer:
description: >-
A labeled substrate used in an isotope-labeling experiment, specifying
which isotope sits at which atom position(s).
attributes:
substrate: {range: ChemicalEntity}
isotope: {range: Isotope} # e.g. carbon-13
labeled_positions: # e.g. [1, 2] for [1,2-13C]
range: integer
multivalued: true
purity: {range: float} # fractional isotopic purity
FluxomicsExperiment:
description: >-
A single fluxomics experiment, typed along the axes in section 2.5.
attributes:
inference_paradigm: {range: FluxInferenceParadigmEnum}
tracers: {range: Tracer, multivalued: true} # >1 ⇒ parallel/COMPLETE-MFA
measurement_platform: {range: FluxMeasurementPlatformEnum}
isotopic_steady_state: {range: boolean}
timepoints: {range: float, multivalued: true} # for INST/dynamic
condition: {range: GrowthCondition}
enums:
FluxInferenceParadigmEnum: # Axis A
permissible_values:
flux_balance_analysis: {}
stoichiometric_mfa: {}
stationary_13C_mfa: {}
nonstationary_mfa: {} # INST-MFA
dynamic_mfa: {}
flux_ratio_analysis: {}
FluxMeasurementPlatformEnum: # Axis D
permissible_values:
GC_MS: {}
LC_MS: {}
tandem_MS: {}
NMR: {}
A multivalued tracers slot naturally captures parallel labeling /
COMPLETE-MFA (more than one tracer for the same model), and isotope +
labeled_positions on Tracer covers Axes B and C (positional vs uniform,
¹³C vs ¹⁵N/²H/¹⁸O). This keeps "experiment type" as a few small controlled
vocabularies rather than one flat enum.
7.5 SBO/SBML alignment
Tag reaction subtypes (transport, exchange, biomass pseudo-reaction) so models
round-trip with SBML-fbc. ChEMROF already has is_transport; an enum or SBO
cross-reference for exchange / biomass / demand/sink reactions would
complete the picture.
8. Recommendation
- Adopt Option A as the overall architecture: a fluxomics LinkML module that imports ChEMROF, keeping systems-biology scope out of the chemistry schema.
- In ChEMROF itself, make the small chemistry-adjacent additions that are independently useful and clearly in-scope:
- signed/float stoichiometry (or a parallel
stoichiometric_coefficient), - an
AtomTransitionconstruct reusingAtomOccurrence, - a
MassIsotopomerDistributionclass to complement the existing isotopologue/isotopomer relations. - Validate against real examples: (a) for the isotope path, encode one well-characterized pathway (e.g. glycolysis/TCA) with atom mappings and a [U-¹³C]glucose tracer and round-trip a small FBA model from BiGG; (b) for the kinetic path, reuse the methionine-cycle Maud model dissected in Appendix A — its metabolites already carry InChIKeys and BiGG IDs, so it is a ready-made test of ChEMROF as the metabolite/reaction identity provider.
- Engage standards: align reaction typing with SBO, and ensure reaction and metabolite identifiers map cleanly to BiGG/MetaNetX/Rhea so ChEMROF can act as the chemical-identity hub for fluxomics datasets.
Appendix A. Worked example: the biosustain methionine-cycle (Maud) model
To ground the analysis, this appendix dissects a real public model —
biosustain/Methionine_model
(data/methionine). It is a Maud model: Bayesian inference of a kinetic
metabolic model with thermodynamic constraints (Stan/HMC under the hood). It is
the kinetic / dynamic experiment type from §2.5 — not ¹³C-MFA — which makes
it a useful contrast: it stresses ChEMROF's kinetics and identity features and
needs none of the isotope/atom-mapping machinery.
The methionine cycle is modeled in one compartment (c) with 10 reactions
(METAT, METH, GNMT, AHC, MS, BHMT, CBS, MTHFR, PROT, plus a
met-L-source drain) over 19 metabolites (methionine, ATP, S-adenosylmethionine,
S-adenosylhomocysteine, homocysteine, 5-methyl-THF, …).
What maps cleanly onto ChEMROF today
- Metabolites →
ChemicalEntity. Every metabolite is given by InChIKey and a BiGG source URL, e.g.met-L → FFEARJCKVFRZRR-BYPYZUCNSA-N(biggmet__L). ChEMROF already hasinchi_key_stringand thebigg.metaboliteprefix — this is exactly the identity-hub role ChEMROF is built for, and is its clearest immediate value to such a project. - Reactions →
Reaction+ReactionParticipant. Each reaction has a signed stoichiometry table; e.g.METAT:met-L −1, atp −1, pi +1, ppi +1, amet +1. - Kinetic parameters → existing slots. Priors are specified for
kcat(per enzyme/reaction) andkm(per metabolite/enzyme/reaction) — directly the ChEMROFkcatandmichaelis_constantslots.
What the example proves ChEMROF is missing (cross-referencing §5)
| Maud construct (this model) | ChEMROF status |
|---|---|
stoichiometry = -1.0 / 1.0 (signed float) |
gap #1 — ChEMROF stoichiometry is integer |
target_type = "flux" measurements with error |
gap #2 — no measured/estimated flux quantity |
compartment + metabolite_in_compartment (balanced = internal/boundary) |
gap #4 — no compartment model |
mechanism = irreversible_michaelis_menten / reversible_michaelis_menten / drain |
gap #9 — no rate-law/mechanism vocabulary |
ki priors; allostery (activation/inhibition); competitive_inhibition |
gaps #9/#10 — no Ki, no enzyme-regulation relations |
dgf (ΔGf°), temperature, transported_charge, psi |
gap #11 — no reaction thermodynamics |
experiment blocks with is_train/is_test, enzyme_knockouts |
gap #7 — no experiment/condition context |
enzyme / enzyme_reaction / subunits |
gap #8 — GPR; out of ChEMROF scope |
Two things worth emphasizing
- No atom mappings, isotopomers, or MIDs appear anywhere in this model. That is not a deficiency — it confirms §2.5's claim that the experiment type selects which extensions matter. A kinetic model needs mechanism/Ki/ΔGf° and measured flux+concentration; the §7.2–7.3 isotope constructs are simply irrelevant here.
- ChEMROF already does the part that is hardest to get right — unambiguous
chemical identity (InChIKey, formula, charge, and the cross-refs needed to
later attach ΔGf° and pKa). The missing pieces are the systems-biology
modeling layer, which (per Option A) belongs in a companion schema that
imports ChEMROF and reuses
ChemicalEntity/Reaction/Concentration.
Implemented proof of concept. This converter now exists:
chemrof convert-maud <model.toml> (module
chemrof.converter.maud) ingests a Maud kinetic model and emits a ChEMROF
Collection of SmallMolecule records (keyed by InChIKey) plus
Reaction/ReactionParticipant records, including the reaction mechanism and
regulation. To support it, ChEMROF gained (in-place, per the agreed scope):
- a
reaction_mechanismslot +ReactionMechanismEnum(reversible/irreversible Michaelis-Menten, mass action, drain); AllostericRegulationandCompetitiveInhibitionclasses (with anEnzymeModificationTypeEnum), attached toReactionviahas_allosteric_regulation/has_competitive_inhibition;- an
inhibition_constant(Ki) slot alongsidekcat/michaelis_constant; - float
stoichiometryonReactionParticipant(and the participant/ stoichiometry slots are now properly attached to that class); inchi_key_stringadded toChemicalEntity.
The full methionine_cycle.toml round-trips and validates against the schema
(29 entities). Bayesian priors, measured fluxes/concentrations, compartments,
and thermodynamics (ΔGf°) remain future work for a companion modelling layer.
9. Sources
- Weitzel et al., The Design of FluxML: A Universal Modeling Language for ¹³C Metabolic Flux Analysis, Front. Microbiol. 2019 — https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6543931/
- Weitzel et al., 13CFLUX2 — high-performance software suite for ¹³C-MFA, Bioinformatics 2013 — https://academic.oup.com/bioinformatics/article/29/1/143/273014
- Antoniewicz et al., Elementary Metabolite Units (EMU): a novel framework for modeling isotopic distributions, Metab. Eng. 2007 — https://www.sciencedirect.com/science/article/abs/pii/S109671760600084X
- EMUlator: an EMU-based isotope simulator — https://pmc.ncbi.nlm.nih.gov/articles/PMC6503117/
- MetAMDB: Metabolic Atom Mapping Database — https://pmc.ncbi.nlm.nih.gov/articles/PMC8878866/
- Comparative evaluation of atom mapping algorithms for balanced metabolic reactions (Recon 3D), J. Cheminform. 2017 — https://jcheminf.biomedcentral.com/articles/10.1186/s13321-017-0223-1
- Olivier & Bergmann, SBML Level 3 Package: Flux Balance Constraints (fbc) — https://pubmed.ncbi.nlm.nih.gov/26528567/
- SBOannotator: automated assignment of Systems Biology Ontology terms, Bioinformatics 2023 — https://academic.oup.com/bioinformatics/article/39/7/btad437/7224245
- Achieving Metabolic Flux Analysis for S. cerevisiae at a Genome-Scale — https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4588810/
- Crown & Antoniewicz, Integrated ¹³C-MFA of 14 parallel labeling experiments in E. coli (COMPLETE-MFA), Metab. Eng. 2015 — https://pubmed.ncbi.nlm.nih.gov/25596508/
- Optimal tracers for parallel labeling experiments and ¹³C-MFA: a precision and synergy scoring system, Metab. Eng. 2016 — https://pubmed.ncbi.nlm.nih.gov/27267409/
- One-shot ¹³C¹⁵N-MFA for simultaneous quantification of carbon and nitrogen flux — https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9996240/
- An analytic framework for estimating metabolic flux ratios from ¹³C tracer experiments (METAFoR) — https://pmc.ncbi.nlm.nih.gov/articles/PMC2430715/
- OpenFLUX2: ¹³C-MFA software for single and parallel labeling experiments — https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4263107/
- biosustain/Methionine_model (worked example, Appendix A) — https://github.com/biosustain/Methionine_model
- Maud — Bayesian inference of kinetic models of metabolism (biosustain) — https://github.com/biosustain/Maud