
Fba Simulator
Run Flux Balance Analysis (FBA) and related constraint-based simulations using COBRApy.
Install
npx skills add aiming-lab/AutoResearchClaw --skill fba-simulator -g -a claude-code -y- Repository
- aiming-lab/AutoResearchClaw14.8k
- Category
- Engineering
- Updated
- 3mo ago
- License
- MIT
- Context cost
- Mediumabout 1,931 tokens
- Runs scripts
- No, instructions only
What it does
Run Flux Balance Analysis (FBA) and related constraint-based simulations using COBRApy. Covers standard FBA, parsimonious FBA (pFBA), Flux Variability Analysis (FVA), loopless FBA, gene/reaction knockouts, and carbon source swapping. Outputs flux distributions and CSV files.
Overview
The fba-simulator skill executes constraint-based metabolic simulations on
a validated COBRApy model. FBA solves a linear program to find the flux
distribution that maximizes (or minimizes) the objective function subject to
stoichiometric and thermodynamic constraints.
This skill sits between model construction (gsmm-builder) and biological
interpretation (flux-analyzer). All simulations are non-destructive: COBRApy
context managers restore model state after each perturbation.
Workflow
Step 1, Load Validated Model
import cobra
import cobra.io
import cobra.flux_analysis
import pandas as pd
model = cobra.io.load_json_model("my_model.json")
print(f"Model: {model.id} Solver: {model.solver}")
Step 2, Standard FBA
FBA maximizes the objective (typically biomass) subject to stoichiometric
steady-state constraints: S·v = 0, lb ≤ v ≤ ub.
# Run FBA
solution = model.optimize()
print(f"Status : {solution.status}")
print(f"Growth rate : {solution.objective_value:.4f} h^-1")
print(f"Glucose uptake : "
f"{solution.fluxes['EX_glc__D_e']:.4f} mmol/gDW/h")
print(f"O2 uptake : "
f"{solution.fluxes.get('EX_o2_e', 0):.4f} mmol/gDW/h")
print(f"Acetate sec. : "
f"{solution.fluxes.get('EX_ac_e', 0):.4f} mmol/gDW/h")
# Save full flux distribution
solution.fluxes.to_csv("fba_fluxes.csv", header=["flux_mmol_gDW_h"])
Step 3, Parsimonious FBA (pFBA)
pFBA first maximizes growth, then minimizes total absolute flux, producing the most "economical" solution consistent with maximum growth. This avoids biologically unrealistic high-flux split cycles.
pfba_solution = cobra.flux_analysis.pfba(model)
print(f"pFBA growth rate : {pfba_solution.objective_value:.4f} h^-1")
print(f"Total flux norm : {pfba_solution.fluxes.abs().sum():.2f}")
pfba_solution.fluxes.to_csv("pfba_fluxes.csv", header=["flux_mmol_gDW_h"])
