cobrapy について
cobrapy は、COBRApy を使って細胞代謝を線形最適化問題としてモデル化するスキルです。微生物の増殖、代謝フラックス、代謝工学戦略を分析する研究者向けです。
主な機能
- 01フラックスバランス解析
- 02フラックス変動解析
- 03遺伝子必須性の検証
- 04反応・遺伝子ノックアウトのモデル化
活用シーン
- 01栄養条件ごとの増殖予測
- 02代謝フラックス分布の比較
- 03増殖に必須な遺伝子の特定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ tondevrel/ scientific-agent-skills --skill cobrapyインストール後、Claude Code で/cobrapyを入力して読み込まれたか確認します。
詳細
COBRApy - 代謝モデリング
細胞の「代謝」を線形最適化問題としてモデル化します。さまざまな条件下での細菌の増殖を予測したり、GMO 株を設計したりするために使用します。
使用する場面
- 栄養条件の違いによる微生物の増殖速度の予測。
- 代謝工学戦略(ノックアウト、追加)の設計。
- 代謝フラックス分布の把握。
- 生物間での代謝能力の比較。
- 必須遺伝子と必須反応の特定。
基本原則
フラックスバランス解析(FBA)
化学量論的制約のもとで、バイオマス生産(またはほかの目的関数)を最大化するように代謝フラックスを最適化します。
遺伝子・タンパク質・反応(GPR)
遺伝子は、反応を触媒するタンパク質(酵素)をコードします。ノックアウトによって、反応の利用可能性が変わります。
制約
反応の上下限は、酵素の能力や栄養素の利用可能性を表します。
クイックリファレンス
標準インポート
import cobra
from cobra.io import load_model, save_model
基本パターン
# 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()
重要なルール
✅ 推奨事項
- 解のステータスを確認する - 結果を使用する前に、ステータスが「optimal」であることを確認します。
- コンテキストマネージャーを使用する - 変更が永続化しないよう、変更を
with model:で囲みます。 - 適切な上下限を設定する - 反応の上下限は、生物学的な実態を反映する必要があります。
- モデルを検証する -
model.validate()を使用して、よくある問題を確認します。
❌ 禁止事項
- 実行不可能な解を無視しない - 最適化に失敗した場合は、制約と上下限を確認します。
- モデルを直接変更しない - コンテキストマネージャーを使用するか、先にモデルをコピーします。
- すべての反応が活性化していると思い込まない - 最適解では、多くの反応のフラックスはゼロです。
高度なパターン
フラックス変動解析(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)
遺伝子必須性解析
# 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]
カスタム反応の追加
# 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 は代謝ネットワークを計算可能なモデルに変換し、研究者がシステムレベルで細胞の挙動を予測し、工学的に改変できるようにします。
コメント
Markdown 対応