install
source · Clone the upstream repo
git clone https://github.com/FreedomIntelligence/OpenClaw-Medical-Skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/FreedomIntelligence/OpenClaw-Medical-Skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/bio-systems-biology-flux-balance-analysis" ~/.claude/skills/freedomintelligence-openclaw-medical-skills-bio-systems-biology-flux-balance-ana && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/FreedomIntelligence/OpenClaw-Medical-Skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/bio-systems-biology-flux-balance-analysis" ~/.openclaw/skills/freedomintelligence-openclaw-medical-skills-bio-systems-biology-flux-balance-ana && rm -rf "$T"
manifest:
skills/bio-systems-biology-flux-balance-analysis/SKILL.mdsource content
<!--
# COPYRIGHT NOTICE
# This file is part of the "Universal Biomedical Skills" project.
# Copyright (c) 2026 MD BABU MIA, PhD <md.babu.mia@mssm.edu>
# All Rights Reserved.
#
# This code is proprietary and confidential.
# Unauthorized copying of this file, via any medium is strictly prohibited.
#
# Provenance: Authenticated by MD BABU MIA
-->
name: bio-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 measurable_outcome: Execute skill workflow successfully with valid output within 15 minutes. allowed-tools:
- read_file
- run_shell_command
Flux Balance Analysis
Load Models
import cobra # Load built-in test models model = cobra.io.load_model('textbook') # E. coli core (95 reactions) model = cobra.io.load_model('iJO1366') # Full E. coli (2583 reactions) # Load from file model = cobra.io.read_sbml_model('model.xml') model = cobra.io.load_json_model('model.json') # BiGG models available at: http://bigg.ucsd.edu/models
Basic FBA
import cobra model = cobra.io.load_model('textbook') # Run FBA (maximizes objective function, usually biomass) solution = model.optimize() # Growth rate interpretation: # >0.8 h^-1: Fast growth (rich media) # 0.3-0.8 h^-1: Moderate growth # <0.3 h^-1: Slow growth or stress # 0: No growth (lethal condition or missing nutrients) print(f'Growth rate: {solution.objective_value:.4f} h^-1') print(f'Status: {solution.status}') # Access flux values 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 ''' # Close all exchange reactions for rxn in model.exchanges: rxn.lower_bound = 0 # No uptake # Open essential exchanges 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 # Set carbon source if carbon_source in model.reactions: model.reactions.get_by_id(carbon_source).lower_bound = -carbon_uptake return model # Example: Compare growth on different carbon sources 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 finds the range of flux values for each reaction # while maintaining optimal (or near-optimal) growth # Standard FVA (at 100% optimum) fva = flux_variability_analysis(model) # FVA at 90% of optimal growth # fraction_of_optimum=0.9: allows 10% suboptimal solutions # This reveals alternative optimal flux distributions fva = flux_variability_analysis(model, fraction_of_optimum=0.9) # FVA for specific reactions rxns_of_interest = ['PFK', 'PGI', 'GAPD'] fva = flux_variability_analysis(model, reaction_list=rxns_of_interest) # Identify essential vs flexible reactions 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 # Analyze tradeoff between growth and product secretion # Useful for metabolic engineering to find optimal conditions prod_env = production_envelope( model, reactions=['EX_ac_e'], # Product (acetate) objective='Biomass_Ecoli_core', points=20 ) # prod_env is a DataFrame with: # - EX_ac_e: acetate production rate # - Biomass_Ecoli_core: growth rate at that production level print(prod_env)
Phenotype Phase Plane
from cobra.flux_analysis import phenotype_phase_plane # Analyze growth across two varying conditions # Typically oxygen and carbon uptake ppp = phenotype_phase_plane( model, variables=['EX_glc__D_e', 'EX_o2_e'], # X and Y axes points=10 ) # Returns growth rate as function of both uptake rates # Useful for identifying metabolic modes (aerobic vs anaerobic)
Parsimonious FBA (pFBA)
from cobra.flux_analysis import pfba # pFBA minimizes total flux while achieving optimal growth # Produces more biologically realistic flux distributions pfba_solution = pfba(model) # Compare total flux 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 # Remove thermodynamically infeasible loops # Important for realistic flux predictions 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