boltzgen について
BoltzGen は、全原子タンパク質設計のためのツールで、タンパク質、ペプチド、ナノボディ、抗体の結合体設計を行う研究向けです。YAML 仕様と複数の設計プロトコルから構造、配列、評価指標を生成し、ローカルまたは Modal で実行できます。
主な機能
- 01YAML で設計仕様を定義
- 02タンパク質と結合体の5種類のプロトコル
- 03構造、配列、信頼度指標を出力
- 04実行前に設定ファイルを検証
- 05ローカルまたは Modal で実行
活用シーン
- 01タンパク質やペプチドの結合体を設計
- 02小分子に結合するタンパク質を生成
- 03ナノボディや抗体の CDR を設計
- 04構造候補をまとめて生成・順位付け
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ adaptyvbio/ protein-design-skills --skill boltzgenインストール後、Claude Code で/boltzgenを入力して読み込まれたか確認します。
同梱ファイルreferences/yaml-spec.md
詳細
BoltzGen 全原子設計
前提条件
| 要件 | 最低要件 | 推奨 |
|---|---|---|
| Python | 3.11+ | 3.12 |
| CUDA | 12.0+ | 12.1+ |
| GPU VRAM | 24GB | 48GB(L40S) |
| RAM | 32GB | 64GB |
実行方法
初めてですか? Modal と biomodals のセットアップについては、はじめにをご覧ください。
オプション 1:Modal(推奨)
# Clone biomodals
git clone https://github.com/hgbrian/biomodals && cd biomodals
# Run BoltzGen (requires YAML config file)
modal run modal_boltzgen.py \
--input-yaml binder_config.yaml \
--protocol protein-anything \
--num-designs 50
# With custom GPU
GPU=L40S modal run modal_boltzgen.py \
--input-yaml binder_config.yaml \
--protocol protein-anything \
--num-designs 100
GPU:L40S(48GB)を推奨 | タイムアウト:デフォルトで120分
利用可能なプロトコル:protein-anything、peptide-anything、protein-small_molecule、nanobody-anything、antibody-anything
オプション 2:ローカルインストール
git clone https://github.com/HannesStark/boltzgen.git
cd boltzgen
pip install boltzgen # or: pip install -e .
# Driven by the boltzgen CLI with a YAML design spec
boltzgen run binder_config.yaml \
--output out/ \
--protocol protein-anything \
--num_designs 50
初回実行時にモデルの重み(約6GB)が ~/.cache にダウンロードされます。フル実行の前に、
boltzgen check binder_config.yaml で仕様を検証してください。
GPU:L40S(48GB) | 所要時間:設計あたり約30~60秒
主要なパラメーター(CLI)
| パラメーター | デフォルト | 説明 |
|---|---|---|
--input-yaml | 必須 | YAML 設計仕様へのパス |
--protocol | protein-anything | 設計プロトコル |
--num-designs | 10 | 生成する設計の数 |
--steps | all | 実行するパイプラインのステップ(例:design inverse_folding) |
YAML 設定
BoltzGen は、設計するタンパク質と標的構造をエンティティとして指定する、エンティティベースの YAML 形式を使用します。
重要な注意事項:
- 残基インデックスには、著者が付与した残基番号ではなく
label_seq_id(1始まり)を使用します - ファイルパスは YAML ファイルの場所からの相対パスです
- 標的ファイルは CIF 形式を使用してください(PDB も動作しますが、CIF を推奨します)
- 実行前に
boltzgen check config.yamlを実行して、仕様を検証してください
基本的なバインダー設定
entities:
# Designed protein (variable length 80-140 residues)
- protein:
id: B
sequence: 80..140
# Target from structure file
- file:
path: target.cif
include:
- chain:
id: A
# Specify binding site residues (optional but recommended)
binding_types:
- chain:
id: A
binding: 45,67,89
特定の結合部位を持つバインダー
entities:
- protein:
id: G
sequence: 60..100
- file:
path: 5cqg.cif
include:
- chain:
id: A
binding_types:
- chain:
id: A
binding: 343,344,251
structure_groups: "all"
ペプチド設計(環状)
entities:
- protein:
id: S
sequence: 10..14C6C3 # With cysteines for disulfide
- file:
path: target.cif
include:
- chain:
id: A
constraints:
- bond:
atom1: [S, 11, SG]
atom2: [S, 18, SG] # Disulfide bond
設計プロトコル
| プロトコル | 用途 |
|---|---|
protein-anything | タンパク質またはペプチドに結合するタンパク質を設計 |
peptide-anything | タンパク質に結合する環状ペプチドを設計 |
protein-small_molecule | 小分子に結合するタンパク質を設計 |
nanobody-anything | ナノボディの CDR を設計 |
antibody-anything | 抗体の CDR を設計 |
出力形式
output/
├── sample_0/
│ ├── design.cif # All-atom structure (CIF format)
│ ├── metrics.json # Confidence scores
│ └── sequence.fasta # Sequence
├── sample_1/
│ └── ...
└── summary.csv
注:BoltzGen は CIF 形式で出力します。必要に応じて PDB に変換してください:
from Bio.PDB import MMCIFParser, PDBIO
parser = MMCIFParser()
structure = parser.get_structure("design", "design.cif")
io = PDBIO()
io.set_structure(structure)
io.save("design.pdb")
出力例
実行成功時
$ modal run modal_boltzgen.py --input-yaml binder.yaml --protocol protein-anything --num-designs 10
Running: boltzgen run binder.yaml --output /tmp/out --protocol protein-anything --num_designs 10
[INFO] Loading BoltzGen model...
[INFO] Generating designs...
[INFO] Running inverse folding...
[INFO] Running structure prediction...
[INFO] Filtering and ranking...
[INFO] Pipeline complete
Results saved to: ./out/boltzgen/2501161234/
出力ディレクトリ構造:
out/boltzgen/2501161234/
├── intermediate_designs/ # Raw diffusion outputs
│ ├── design_0.cif
│ └── design_0.npz
├── intermediate_designs_inverse_folded/
│ ├── refold_cif/ # Refolded complexes
│ └── aggregate_metrics_analyze.csv
└── final_ranked_designs/
├── final_10_designs/ # Top designs
└── results_overview.pdf # Summary plots
良好な出力の目安:
- リフォールディング RMSD < 2.0A(設計が予測どおりにフォールドする)
- ipTM > 0.5(信頼性の高いインターフェース)
- すべての設計でエラーなくパイプラインが完了する
判断ツリー
Should I use BoltzGen?
│
├─ What type of design?
│ ├─ All-atom precision needed → BoltzGen ✓
│ ├─ Ligand binding pocket → BoltzGen ✓
│ └─ Standard miniprotein → RFdiffusion (faster)
│
├─ What matters most?
│ ├─ Side-chain packing → BoltzGen ✓
│ ├─ Speed / diversity → RFdiffusion
│ ├─ Highest success rate → BindCraft
│ └─ AF2 optimization → ColabDesign
│
└─ Compute resources?
├─ Have L40S/A100 (48GB+) → BoltzGen ✓
└─ Only A10G (24GB) → Consider RFdiffusion
標準的なパフォーマンス
| キャンペーン規模 | 所要時間(L40S) | コスト(Modal) | 備考 |
|---|---|---|---|
| 50件の設計 | 30~45分 | 約$8 | 手早い探索 |
| 100件の設計 | 1~1.5時間 | 約$15 | 標準的なキャンペーン |
| 500件の設計 | 5~8時間 | 約$70 | 大規模キャンペーン |
設計あたり:一般的なバインダーで約30~60秒です。
Adaptyv がこれらのモデルを独自にテストした結果、7つの標的で平均すると、BoltzGen の採用設計あたりのコストは約$1.80でした(上記の生成時間の見積もりには、採用可能な設計に到達するために必要な追加のサンプリングとリフォールディングは含まれていません)。
検証
find output -name "*.cif" | wc -l # Should match num_samples
トラブルシューティング
まず設定を検証する:フルパイプラインの実行前に、必ず boltzgen check config.yaml を実行してください
生成が遅い:初期テストでは設計数を減らし、その後規模を拡大してください
OOM エラー:A100-80GB を使用するか、--num-designs を減らしてください
結合部位が違う:残基インデックスには label_seq_id(1始まり)を使用します。Molstar ビューアーで確認してください
エラーの解釈
| エラー | 原因 | 対処方法 |
|---|---|---|
RuntimeError: CUDA out of memory | 設計が大きい、またはタンパク質が長い | A100-80GB を使用するか、設計数を減らす |
FileNotFoundError: *.cif | 標的ファイルが見つからない | ファイルパスは YAML の場所からの相対パスです |
ValueError: invalid chain | 標的にチェーンが存在しない | Molstar または PyMOL でチェーン ID を確認する |
modal: command not found | Modal CLI がインストールされていない | pip install modal && modal setup を実行する |
次へ:boltz または chai で検証し、フィルタリングには protein-qc を使用してください。