13CFLUX
A third‑generation, high‑performance simulator for isotopically stationary and non‑stationary ¹³C metabolic flux analysis
Open, extensible, fast, and accurate: enabling robust design, fitting, and statistical analysis for modern, scalable 13C-MFA workflows.
Why 13CFLUX?
Universal: Simulates any desired labeling state for isotopically stationary and non‑stationary (INST) experiments, supporting multi‑isotope tracers (e.g. 13C-15N) and any measurement configuration, with shortcuts to MS, tandem MS, 1H and 13C-NMR.
High performance: Clean C++17 core with Eigen-based linear algebra and advanced ODE solvers with tunable precision; Python API for workflow automation.
Flexible workflows: Compose experimental design, multi‑start fitting, and uncertainty quantification (incl. Frequentist and Bayesian) with minimal coding; easy integration with NumPy/SciPy, Jupyter notebooks, and orchestration tools, e.g Apache Airflow.
Reproducible & portable: Ship and run via pip or Docker from laptop to HPC.
Quick install
PyPI
conda install cyipoptpip install x3cfluxNote: conda is used for a working ipopt/cyipopt (see installation page)
Docker
docker pull jugit-registry.fz-juelich.de/ibg-1/modsim/fluxomics/13cfluxRecommended for HPC
Alternatively, manual installation is also possible.
1 minute quick start
import hopsy
import matplotlib.pyplot as plt
import numpy as np
import x3cflux
# Load FluxML file with data from INST experiment
sim = simulator_inst = x3cflux.create_simulator_from_fml("spiralus.fml", "ms_INST")
# Configure simulation: solver + accuracy (optional)
sim.builder.set_solver("bdf")
sim.builder.solver.relative_tolerance = 1e-6
sim.builder.solver.absolute_tolerance = 1e-9
# Forward simulation of a specific parameter set at specific time points
params = [0.5, 1.2, 3.0, 1.1] # p.n # u.n # G # B
results = sim.compute_measurements(params=params, time_stamps=[0.0, 5.0, 10.0, 60])
# Multi-start fit (using external optimizer IPOPT)
optima, obj_vals = x3cflux.run_multi_optimization(
sim, starting_points=x3cflux.run_uniform_sampling(sim, num_samples=100), num_procs=4
)
best = np.argsort(obj_vals)[0]
print(f"Optimum at {optima[:, best]}; Residual {obj_vals[best]}")
# Bayesian uncertainty analysis (using external sampler hopsy)
samples = x3cflux.run_non_uniform_sampling(
sim,
num_samples=5_000,
proposal=hopsy.CSmMALAProposal,
starting_point=np.array([0.5, 1.1, 5, 0.9]),
progress_bar=True,
)
plt.hist(samples[0, 1, :])
plt.show()
📥 one_minute_quick_start.py 📥 spiralus.fml
A more detailed version can be found at Quickstart: the Spiralus Model.
Key features at a glance
State space: Dual labeling state-space representations: automatic selection between EMU and cumomer systems with optimal? dimension reduction.
Solver suite: eigen sparseLU solver for isotopic stationary systems; tuned BDF (SUNDIALS CVODE) and SDIRK both with with adaptive step control for isotopically non stationary systems .
Sensitivities & Jacobians: analytically derived systems, numerically solved using OpenMP parallelization.
Workflow API: high‑level Python facades for experimental design, multi‑start fitting, and statistics with easy Apache Airflow integration.
Errors & diagnostics: clear, propagated exceptions from C++ to Python; comprehensive semantic, syntactic, logic, and numeric checks.
Containers: Docker image for reproducibility and scale.
Performance benchmark
Due to its improved codebase and by exploiting the structure of the underlying mathematical system 13CFLUX(v3) is up to 40 times faster compared to its predecessor 13CFLUX2.
License & contributing
13CFLUX is open-source software, distributed under the terms of the GNU AGPL v3.
Issues & bug reports: Please report via our Gitlab.
How to cite
If you use 13CFLUX, please cite:
Stratmann, A., Beyß, M., Jadebeck, J. F., Wiechert, W., & Nöh, K. (2025). 13CFLUX –- Third-generation high-performance engine for isotopically (non)stationary 13C metabolic flux analysis. Bioinformatics, btaf630, https://doi.org/10.1093/bioinformatics/btaf630
@article{Stratmann2025,
author = {Stratmann, Anton and Beyß, Martin and Jadebeck, Johann F and Wiechert, Wolfgang and Nöh, Katharina},
title = {13CFLUX — Third-generation high-performance engine for isotopically (non)stationary 13C metabolic flux analysis},
journal = {Bioinformatics},
pages = {btaf630},
year = {2025},
issn = {1367-4811},
doi = {10.1093/bioinformatics/btaf630},
url = {https://doi.org/10.1093/bioinformatics/btaf630},
}