gsmm-builder

GitHub

用于构建或加载基于COBRApy的基因组规模代谢模型(GSMM)。支持从BIGG数据库加载现有模型,或从零构建最小模型,配置约束条件与目标函数,并导出验证后的JSON文件以供通量分析。

external/agents/Biology-Agent/skills/gsmm-builder/SKILL.md aiming-lab/AutoResearchClaw

Trigger Scenarios

需要构建或加载基因组规模代谢模型 使用COBRApy进行代谢通量分析前的数据准备 从BIGG数据库获取特定生物体的代谢网络

Install

npx skills add aiming-lab/AutoResearchClaw --skill gsmm-builder -g -y
More Options

Non-standard path

npx skills add https://github.com/aiming-lab/AutoResearchClaw/tree/main/external/agents/Biology-Agent/skills/gsmm-builder -g -y

Use without installing

npx skills use aiming-lab/AutoResearchClaw@gsmm-builder

指定 Agent (Claude Code)

npx skills add aiming-lab/AutoResearchClaw --skill gsmm-builder -a claude-code -g -y

安装 repo 全部 skill

npx skills add aiming-lab/AutoResearchClaw --all -g -y

预览 repo 内 skill

npx skills add aiming-lab/AutoResearchClaw --list

SKILL.md

Frontmatter
{
    "name": "gsmm-builder",
    "metadata": {
        "category": "domain",
        "priority": "2",
        "trigger-keywords": "metabolic,metabolism,GSMM,COBRApy,COBRA,BIGG,genome-scale model,stoichiometric model,model loading,medium constraints",
        "applicable-stages": "9,10,11,12,13"
    },
    "description": "Build or load a genome-scale metabolic model (GSMM) using COBRApy. Covers loading from BIGG, constructing minimal models from scratch, setting medium constraints, and exporting validated .json model files.\n"
}

Overview

The gsmm-builder skill constructs or loads genome-scale metabolic models (GSMMs) in the COBRApy framework. It is the entry point for every metabolic flux analysis pipeline. Output is a validated COBRApy Model object serialized to a JSON file ready for downstream FBA and flux analysis.

GSMMs encode every known metabolic reaction in an organism as a stoichiometric matrix. Constraints (reaction bounds, medium composition, objective function) turn the model into a solvable linear program.


Workflow

Step 1 — Decide: Load Existing or Build from Scratch

Option A: Load a curated BIGG model

import cobra
import cobra.io

# Load E. coli iJO1366 from a local SBML file
model = cobra.io.read_sbml_model("iJO1366.xml")

# Or load from a pre-downloaded JSON file
model = cobra.io.load_json_model("iJO1366.json")

print(f"Loaded {model.id}: {len(model.reactions)} reactions, "
      f"{len(model.metabolites)} metabolites, {len(model.genes)} genes")

Key BIGG model IDs:

  • iJO1366E. coli K-12 MG1655 (2583 reactions)
  • Recon3DHomo sapiens (13543 reactions)
  • iMM904S. cerevisiae (1577 reactions)
  • iNJ661M. tuberculosis (1049 reactions)

Option B: Build a minimal model from scratch

from cobra import Model, Metabolite, Reaction

model = Model("toy_glycolysis")

# Define metabolites with compartments and formula
glc_e = Metabolite("glc__D_e", formula="C6H12O6", name="D-Glucose",
                   compartment="e")
glc_c = Metabolite("glc__D_c", formula="C6H12O6", name="D-Glucose",
                   compartment="c")
atp_c = Metabolite("atp_c",  formula="C10H12N5O13P3", name="ATP",
                   compartment="c")
biomass = Metabolite("biomass", formula="", name="Biomass", compartment="c")

# Build reactions
ex_glc = Reaction("EX_glc__D_e")
ex_glc.lower_bound = -10.0  # uptake (negative = import)
ex_glc.upper_bound = 0.0
ex_glc.add_metabolites({glc_e: 1.0})

transport = Reaction("GLCt")
transport.lower_bound = -1000.0
transport.upper_bound = 1000.0
transport.add_metabolites({glc_e: -1.0, glc_c: 1.0})

# Stoichiometry: 1 glucose + ADP -> 2 ATP (simplified glycolysis)
glycolysis = Reaction("GLYCOLYSIS")
glycolysis.lower_bound = 0.0
glycolysis.upper_bound = 1000.0
glycolysis.add_metabolites({glc_c: -1.0, atp_c: 2.0})

biomass_rxn = Reaction("BIOMASS")
biomass_rxn.lower_bound = 0.0
biomass_rxn.upper_bound = 1000.0
biomass_rxn.add_metabolites({atp_c: -10.0, biomass: 1.0})

model.add_reactions([ex_glc, transport, glycolysis, biomass_rxn])

Step 2 — Set the Objective Function

# Set biomass as the optimization target
model.objective = "BIOMASS_Ec_iJO1366_core_53p95M"  # reaction ID string

# Verify objective is set
print(model.objective.to_json())

Step 3 — Define the Growth Medium

# M9 minimal medium with glucose (aerobic)
M9_MEDIUM = {
    "EX_glc__D_e": -10.0,   # glucose uptake, mmol/gDW/h
    "EX_o2_e":    -20.0,    # oxygen (aerobic)
    "EX_nh4_e":  -1000.0,   # ammonium (unlimited)
    "EX_pi_e":   -1000.0,   # phosphate (unlimited)
    "EX_so4_e":  -1000.0,   # sulfate (unlimited)
    "EX_h2o_e":  -1000.0,   # water (unlimited)
    "EX_h_e":    -1000.0,   # protons (unlimited)
}

# Apply medium: close all exchange reactions first, then open selected
medium = model.medium  # returns dict of current open exchange lb magnitudes
for rxn_id, lb in M9_MEDIUM.items():
    if rxn_id in model.reactions:
        model.reactions.get_by_id(rxn_id).lower_bound = lb

# Anaerobic: set O2 uptake to zero
# model.reactions.get_by_id("EX_o2_e").lower_bound = 0.0

Step 4 — Export Model

import cobra.io

cobra.io.save_json_model(model, "output/my_model.json")
cobra.io.write_sbml_model(model, "output/my_model.xml")
print("Model saved.")

Key Conventions

Convention Detail
Metabolite ID format <bigg_id>_<compartment> e.g. glc__D_c, atp_m
Compartment codes c cytosol, e extracellular, m mitochondria, n nucleus
Exchange reaction prefix EX_ e.g. EX_glc__D_e
Transport reaction prefix t or species-specific e.g. GLCt, PGI
Uptake bound sign Negative lower bound = import (e.g. lb = -10)
Secretion bound sign Positive upper bound = export (e.g. ub = 1000)
Biomass objective Reaction with ID containing BIOMASS or Growth
Aerobic medium EX_o2_e lb = -20 (mmol/gDW/h)
Anaerobic medium EX_o2_e lb = 0
Default irreversible rxn lb = 0, ub = 1000
Default reversible rxn lb = -1000, ub = 1000

BIGG Database Downloads

# Download model directly from BIGG REST API
curl -O "http://bigg.ucsd.edu/static/models/iJO1366.json"
curl -O "http://bigg.ucsd.edu/static/models/Recon3D.json"

Common Failure Modes

  • Infeasible model: missing exchange reaction or closed medium — run model.optimize() and check solution.status == "infeasible".
  • Negative growth: objective reaction direction inverted — ensure biomass_rxn.lower_bound = 0.
  • Dead-end metabolites: metabolite produced but never consumed — run gsmm-validator before FBA.

Version History

  • e2e23c9 Current 2026-07-25 07:47

Same Skill Collection

.claude/skills/a-evolve/SKILL.md
.claude/skills/biology-biopython/SKILL.md
.claude/skills/chemistry-rdkit/SKILL.md
.claude/skills/hypothesis-formulation/SKILL.md
.claude/skills/literature-search/SKILL.md
.claude/skills/researchclaw/SKILL.md
.claude/skills/scientific-visualization/SKILL.md
.claude/skills/scientific-writing/SKILL.md
.claude/skills/statistical-reporting/SKILL.md
external/agents/Biology-Agent/skills/fba-simulator/SKILL.md
external/agents/Biology-Agent/skills/flux-analyzer/SKILL.md
external/agents/Biology-Agent/skills/gsmm-validator/SKILL.md
external/agents/Biology-Agent/skills/metabolic-study-planner/SKILL.md
external/agents/Biology-Agent/skills/mfa-pipeline-orchestrator/SKILL.md
external/agents/stat_research_agent/skills/stat-research-orchestrator/SKILL.md
external/agents/stat_research_agent/skills/stat-result-validator/SKILL.md
external/agents/stat_research_agent/skills/statistical-experimental-evaluation/SKILL.md
external/agents/stat_research_agent/skills/statistical-method-design/SKILL.md
external/agents/stat_research_agent/skills/statistical-problem-formulation/SKILL.md
external/agents/stat_research_agent/skills/statistical-theory-analysis/SKILL.md
researchclaw/skills/builtin/domain/biology-biopython/SKILL.md
researchclaw/skills/builtin/domain/chemistry-rdkit/SKILL.md
researchclaw/skills/builtin/domain/cv-classification/SKILL.md
researchclaw/skills/builtin/domain/cv-detection/SKILL.md
researchclaw/skills/builtin/domain/nlp-alignment/SKILL.md
researchclaw/skills/builtin/domain/nlp-pretraining/SKILL.md
researchclaw/skills/builtin/domain/quantum-qiskit/SKILL.md
researchclaw/skills/builtin/domain/rl-policy-optimization/SKILL.md
researchclaw/skills/builtin/experiment/experimental-design/SKILL.md
researchclaw/skills/builtin/experiment/hypothesis-formulation/SKILL.md
researchclaw/skills/builtin/experiment/literature-search/SKILL.md
researchclaw/skills/builtin/experiment/meta-analysis/SKILL.md
researchclaw/skills/builtin/experiment/scientific-visualization/SKILL.md
researchclaw/skills/builtin/experiment/scientific-writing/SKILL.md
researchclaw/skills/builtin/experiment/statistical-reporting/SKILL.md
researchclaw/skills/builtin/experiment/systematic-review/SKILL.md
researchclaw/skills/builtin/tooling/data-loading/SKILL.md
researchclaw/skills/builtin/tooling/distributed-training/SKILL.md
researchclaw/skills/builtin/tooling/mixed-precision/SKILL.md
researchclaw/skills/builtin/tooling/pytorch-training/SKILL.md

Metadata

Files
0
Version
be4ba47
Hash
348062ae
Indexed
2026-07-25 07:47

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-20 05:28
浙ICP备14020137号-1 $mapa de visitantes$