Guide · Agent skill
How to use the 13C Metabolic Flux Inference agent skill
Updated · written with AI from the project's own documentation and checked against our catalogue data
The 13c-metabolic-flux skill teaches an AI agent to estimate how fast each reaction runs in a cell, using steady-state carbon-13 labeling data. It is for researchers preparing or reviewing a 13C-MFA experiment, students learning how isotope labeling constrains fluxes, and developers building analysis pipelines. After this guide you will know how to install the skill, what inputs it needs, how to phrase requests so the agent uses it, and how to read what its results do and do not establish.
Quick start
- 1Download the skill. Download the skill ZIP from the page where you found this guide.
- 2Unzip into a skills folder. Unzip into ~/.claude/skills/ for personal use, or into a project's .claude/skills/ folder. Alternatively, upload the ZIP under Settings → Capabilities → Skills in the Claude apps.
- 3Install the solver. In your analysis directory, create a Python environment with uv and install the pinned requirements from assets/requirements.txt.
- 4Prepare reviewed inputs. Copy a bundled model and replace its contents only with evidence from your own experiment, including atom maps, corrected labeling data and uncertainties.
- 5Run the input check. Ask the agent to check the contract and mass-balance feasibility before any fitting.
- 6Fit and profile. Run the fit with multistarts and profile the reactions relevant to your question, then rerun if a profile finds a better optimum.
- 7Review the evidence. Inspect residuals, active bounds, profile brackets and unresolved fluxes, and keep the JSON output with your analysis record.
What the skill makes the agent do
Carbon-13 metabolic flux analysis (13C-MFA) feeds cells a carbon-13 labeled nutrient and measures how the label spreads into metabolites. The pattern of labeled carbons depends on how fast each pathway runs, so the pattern can be used to infer fluxes. The skill tells the agent to use a bundled solver rather than writing its own isotope balances.
The solver uses mfapy's EMU forward simulator and fits fluxes inside the mass-balanced feasible space with SciPy. It does not use a flux balance analysis (FBA) objective. The skill also checks whether your data actually constrain the fluxes you care about, and it reports which fluxes are not resolved.
- Checks carbon atom maps, tracer mixtures and measurement files for consistency
- Runs a feasibility check and a forward simulation against your model
- Fits fluxes with multistart optimisation and profiles selected reactions
- Reports residuals, active bounds, and unresolved flux combinations
- Flags experiments that need a different method, such as nonstationary MFA
Install the skill in Claude
Download the skill ZIP from the page where you found this guide, then choose one of two routes. For a personal install, unzip it into your skills folder at ~/.claude/skills/. For a single project, unzip it into that project's .claude/skills/ folder. You can also upload the ZIP in the Claude apps under Settings → Capabilities → Skills.
After installing, start a new conversation and ask the agent something about 13C-MFA. If the skill is not picked up, confirm the folder name and that SKILL.md sits directly inside the skill folder.
Install the solver environment
The skill needs Python with uv and Git. Create an isolated environment in your analysis directory, not inside the skill folder, then install the pinned requirements from the skill's assets folder. Set SKILL_DIR to the folder the skill was unzipped into.
mfapy is installed from a pinned Git revision because it is not published on PyPI. The requirements also pin NumPy, SciPy and NLopt. Installation runs dependency build code, so install only from a skill you trust. On Windows, the Python executable is under Scripts rather than bin.
- Keep generated results and environments outside the skill folder
- Keep the commit hash and package version in your analysis record
uv venv --python 3.12 .venv-mfa && uv pip install --python .venv-mfa/bin/python -r "$SKILL_DIR/assets/requirements.txt"Prepare your inputs
The solver takes JSON inputs: a carbon network with atom maps, a tracer description, and corrected labeling measurements with uncertainties. Start from a bundled model in assets, such as the TCA or branch examples, and replace its contents only with evidence from your own reviewed experiment. The bundled models are demonstrations and are not validated organism-specific reconstructions.
The skill will not invent atom maps, fragment assignments, isotope corrections or measurement errors. If something is missing, it names the gap and prepares a template. Each dataset should cover one biological condition.
- Atom maps record where labeled carbons go; stoichiometry alone does not
- Positional isotopomer distribution of every carbon input, including tracer impurity
- Natural-abundance correction history and the uncertainty of the reported mean
- Flux units plus an extracellular rate or stated relative-flux reference
- Raw peak intensities or MS/MS transitions need validated preprocessing first
Run the check, simulation and fit
Ask the agent to check your inputs first. The check verifies atom counts, conservation, fragments, tracer sums, uncertainty matrices, bounds and mass-balance feasibility. It cannot confirm that an atom map is biologically correct or that the sample reached isotopic steady state.
Next, simulate one mass-balanced flux vector to confirm the forward model behaves as expected. Then run the fit, naming the reactions whose intervals you want. Each profile point fixes one reaction and re-optimises the others. Replace the example reaction IDs with real ones from your model.
- For nonlinear networks, repeat the fit with a different seed and more starts before trusting a profile
- A small residual alone does not show that a flux is identifiable
- A failed profile point is unknown, not excluded by the data
python scripts/mfa.py fit --model model.json --data measurements.json --starts 12 --seed 2026 --profile v3 --profile v7 --profile-points 31 --profile-starts 6 --output fit.jsonRead the results honestly
A good result includes model and data hashes, package versions, units, a reference flux, fitted predictions, residual diagnostics, and a list of unresolved flux combinations. Each requested profile gives a one-flux interval under the stated error model. Several 95% profiles together are not a simultaneous 95% region for the whole network.
If a profile finds a better solution than the baseline fit, rerun the fit before using the intervals. Separate fluxes the data support from values the optimiser picked along a flat direction. Suggest a new measurement only after checking that its predicted labeling actually changes along that direction.
What people use it for
- Checking whether labeling data from a TCA-cycle tracer experiment can separate two split-pathway fluxes before running wet-lab work
- Reviewing a colleague's 13C-MFA input files for missing atom maps, tracer impurity or uncertainty entries
- Learning how a two-route carbon model turns a labeled fragment into a flux split using the bundled branch example
- Fitting parallel tracer experiments that share one biological flux state and profiling a chosen reaction
- Deciding that a time-course labeling dataset needs INST-MFA instead of this steady-state solver
Frequently asked questions
Is the 13c-metabolic-flux skill free to use?
The skill is released under the MIT licence, as stated in its metadata. The bundled mfapy library is also distributed under an MIT licence, and its license file is included in the assets folder. Check the licence files in the download before redistributing it.
What do I need to run the 13C-MFA skill?
You need Python with uv and Git for the installation step, and internet access only to install the public dependencies. The skill also needs your own reviewed carbon network, atom maps, corrected labeling measurements and uncertainty estimates as JSON. It runs locally without credentials.
Why does the install use a Git commit instead of pip install mfapy?
mfapy is not distributed on PyPI, so the requirements file points to a specific Git commit. Pinning a commit keeps the solver the same across installs. Keep that commit hash in your analysis record.
Can I use this for time-course labeling data?
No. Time-course labeling needs INST-MFA with pool sizes and initial labeling, and the skill says not to average that data into this steady-state solver. Use an INST-MFA tool for those experiments.
How is this different from COBRA flux balance analysis?
The skill infers fluxes from measured isotope labeling and does not use an FBA objective. FBA predicts fluxes from stoichiometry and an assumed objective, so the two answer different questions. The skill states this distinction explicitly.
What should I do if the skill refuses to fit or reports unresolved fluxes?
Read which inputs it flagged as missing or inconsistent, and do not fill them with guessed values. Unresolved fluxes mean the labeling data do not constrain that reaction under your error model. Adding a measurement only helps if its predicted labeling changes along that flux direction.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
Use this skill if you are preparing or reviewing a steady-state 13C-MFA experiment and want an agent to check inputs, run a reproducible fit, and state clearly which fluxes your data constrain. Pick a different tool for time-course labeling, raw mass spectrometer peak data without validated correction, or any clinical or safety-critical decision, since the bundled models are not validated for those uses.
Download the skill