| name | systems-biology-flux-balance-analysis |
| description | Perform flux balance analysis (FBA) and flux variability analysis (FVA) on genome-scale metabolic models using COBRApy. Predict growth rates, metabolic fluxes, and optimal resource utilization. Use when predicting metabolic phenotypes or optimizing flux distributions. |
| tool_type | python |
| primary_tool | cobrapy |
Version Compatibility
Reference examples tested with: COBRApy 0.29+
Before using code patterns, verify installed versions match. If versions differ:
- Python:
pip show <package> then help(module.function) to check signatures
If code throws ImportError, AttributeError, or TypeError, introspect the installed
package and adapt the example to match the actual API rather than retrying.
Flux Balance Analysis
"Predict growth rate and metabolic fluxes for my organism" -> Solve a linear program over a genome-scale metabolic model to find the optimal flux distribution that maximizes biomass (or a custom objective), and assess flux ranges with FVA.
- Python:
model.optimize(), cobra.flux_analysis.flux_variability_analysis() (COBRApy)
Load Models
import cobra
model = cobra.io.load_model('textbook')
model = cobra.io.load_model('iJO1366')
model = cobra.io.read_sbml_model('model.xml')
model = cobra.io.load_json_model('model.json')
Basic FBA
Goal: Predict optimal metabolic flux distributions and growth rates for an organism under defined conditions.
Approach: Load a genome-scale metabolic model, solve the linear program to maximize the biomass objective function, then inspect flux values and solver status to interpret metabolic phenotype.
import cobra
model = cobra.io.load_model('textbook')
solution = model.optimize()
print(f'Growth rate: {solution.objective_value:.4f} h^-1')
print(f'Status: {solution.status}')
for rxn in model.reactions[:5]:
print(f'{rxn.id}: {solution.fluxes[rxn.id]:.4f}')
Set Media Conditions
def set_minimal_media(model, carbon_source='EX_glc__D_e', carbon_uptake=10):
'''Configure minimal media conditions
Args:
carbon_source: Exchange reaction ID for carbon source
carbon_uptake: Maximum uptake rate (mmol/gDW/h)
Typical glucose uptake: 10-20 mmol/gDW/h
'''
for rxn in model.exchanges:
rxn.lower_bound = 0
essential = ['EX_o2_e', 'EX_h2o_e', 'EX_h_e', 'EX_nh4_e',
'EX_pi_e', 'EX_so4_e', 'EX_k_e', 'EX_mg2_e']
for ex_id in essential:
if ex_id in model.reactions:
model.reactions.get_by_id(ex_id).lower_bound = -1000
if carbon_source in model.reactions:
model.reactions.get_by_id(carbon_source).lower_bound = -carbon_uptake
return model
carbon_sources = ['EX_glc__D_e', 'EX_ac_e', 'EX_succ_e']
for cs in carbon_sources:
with model:
set_minimal_media(model, carbon_source=cs)
sol = model.optimize()
print(f'{cs}: Growth = {sol.objective_value:.4f}')
Flux Variability Analysis (FVA)
from cobra.flux_analysis import flux_variability_analysis
fva = flux_variability_analysis(model)
fva = flux_variability_analysis(model, fraction_of_optimum=0.9)
rxns_of_interest = ['PFK', 'PGI', 'GAPD']
fva = flux_variability_analysis(model, reaction_list=rxns_of_interest)
fva['essential'] = (fva['minimum'] > 0) | (fva['maximum'] < 0)
fva['flexible'] = fva['maximum'] - fva['minimum'] > 0.01
print(fva[['minimum', 'maximum', 'essential', 'flexible']])
Production Envelope
from cobra.flux_analysis import production_envelope
prod_env = production_envelope(
model,
reactions=['EX_ac_e'],
objective='Biomass_Ecoli_core',
points=20
)
print(prod_env)
Phenotype Phase Plane
from cobra.flux_analysis import phenotype_phase_plane
ppp = phenotype_phase_plane(
model,
variables=['EX_glc__D_e', 'EX_o2_e'],
points=10
)
Parsimonious FBA (pFBA)
from cobra.flux_analysis import pfba
pfba_solution = pfba(model)
fba_total = sum(abs(model.optimize().fluxes))
pfba_total = sum(abs(pfba_solution.fluxes))
print(f'FBA total flux: {fba_total:.1f}')
print(f'pFBA total flux: {pfba_total:.1f}')
Loopless FBA
from cobra.flux_analysis import loopless_solution
solution = loopless_solution(model)
Related Skills
- systems-biology/gene-essentiality - In silico gene knockouts
- systems-biology/context-specific-models - Tissue-specific FBA
- metabolomics/pathway-mapping - Integrate metabolomics data