cobrapy

📁 tondevrel/scientific-agent-skills 📅 5 days ago
4
总安装量
1
周安装量
#48596
全站排名
安装命令
npx skills add https://github.com/tondevrel/scientific-agent-skills --skill cobrapy

Agent 安装分布

mcpjam 1
claude-code 1
replit 1
junie 1
windsurf 1
zencoder 1

Skill 文档

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

# 1. Load model (e.g., E. coli)
model = cobra.io.load_model("iJO1366")
# Or: model = cobra.io.read_sbml_model("model.xml")

# 2. Run Flux Balance Analysis (FBA)
solution = model.optimize()
print(f"Growth rate: {solution.objective_value:.4f}")
print(f"Status: {solution.status}")

# 3. Knockout simulation (Gene essentiality)
with model:
    model.genes.get_by_id("b0002").knock_out()
    print(f"Growth after knockout: {model.optimize().objective_value:.4f}")

# 4. Change medium (nutrient availability)
model.medium = {
    'EX_glc__D_e': 10.0,  # Glucose uptake
    'EX_o2_e': 1000.0     # Oxygen
}
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

# Find range of possible fluxes for each reaction
fva_result = flux_variability_analysis(model, model.reactions)

Gene Essentiality Analysis

# Test which genes are essential for growth
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

# Add a new reaction to the model
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.