| name | cobrapy |
| description | Constraints-Based Reconstruction and Analysis for Python. Used for modeling large-scale metabolic networks in microorganisms. |
| version | 0.29 |
| license | LGPL-2.1 |
COBRApy - Metabolic Modeling
Models the "metabolism" of a cell as a linear optimization problem. Used to predict bacterial growth under different conditions or design GMO strains.
When to Use
- Predicting microbial growth rates under different nutrient conditions.
- Designing metabolic engineering strategies (knockouts, additions).
- Understanding metabolic flux distributions.
- Comparing metabolic capabilities across organisms.
- Identifying essential genes and reactions.
Core Principles
Flux Balance Analysis (FBA)
Optimizes metabolic fluxes to maximize biomass production (or other objectives) subject to stoichiometric constraints.
Gene-Protein-Reaction (GPR)
Genes encode proteins (enzymes) that catalyze reactions. Knockouts affect reaction availability.
Constraints
Reaction bounds (lower/upper limits) represent enzyme capacity or nutrient availability.
Quick Reference
Standard Imports
import cobra
from cobra.io import load_model, save_model
Basic Patterns
model = cobra.io.load_model("iJO1366")
solution = model.optimize()
print(f"Growth rate: {solution.objective_value:.4f}")
print(f"Status: {solution.status}")
with model:
model.genes.get_by_id("b0002").knock_out()
print(f"Growth after knockout: {model.optimize().objective_value:.4f}")
model.medium = {
'EX_glc__D_e': 10.0,
'EX_o2_e': 1000.0
}
solution = model.optimize()
Critical Rules
✅ DO
- Check solution status - Ensure status is 'optimal' before using results.
- Use context managers - Wrap modifications in
with model: to avoid permanent changes.
- Set appropriate bounds - Reaction bounds should reflect biological reality.
- Validate model - Use
model.validate() to check for common issues.
❌ DON'T
- Don't ignore infeasible solutions - If optimization fails, check constraints and bounds.
- Don't modify model in place - Use context managers or copy the model first.
- Don't assume all reactions are active - Many reactions have zero flux in optimal solution.
Advanced Patterns
Flux Variability Analysis (FVA)
from cobra.flux_analysis import flux_variability_analysis
fva_result = flux_variability_analysis(model, model.reactions)
Gene Essentiality Analysis
from cobra.flux_analysis import single_gene_deletion
deletion_results = single_gene_deletion(model)
essential_genes = deletion_results[deletion_results['growth'] < 0.01]
Adding Custom Reactions
new_reaction = cobra.Reaction("NEW_RXN")
new_reaction.add_metabolites({
model.metabolites.get_by_id("glc__D_c"): -1,
model.metabolites.get_by_id("atp_c"): -1,
model.metabolites.get_by_id("adp_c"): 1,
})
new_reaction.lower_bound = 0
new_reaction.upper_bound = 1000
model.add_reactions([new_reaction])
COBRApy transforms metabolic networks into computable models, enabling researchers to predict and engineer cellular behavior at the systems level.