name: boltzgen description: > 使用BoltzGen扩散模型进行全原子蛋白质设计。在以下情况下使用此技能: (1) 从一开始就需要考虑侧链的设计, (2) 围绕小分子或配体进行设计, (3) 需要全原子扩散(不仅仅是主链), (4) 要求精确的结合几何结构, (5) 使用基于YAML的配置。
对于仅生成主链,请使用rfdiffusion。 对于仅序列设计,请使用proteinmpnn。 对于结构验证,请使用boltz。 license: MIT category: design-tools tags: [structure-design, sequence-design, diffusion, all-atom, binder] proteinbase_slug: boltzgen proteinbase_url: https://proteinbase.com/design-methods/boltzgen biomodals_script: modal_boltzgen.py
BoltzGen 全原子设计
先决条件
| 要求 | 最低 | 推荐 |
|---|---|---|
| Python | 3.10+ | 3.11 |
| CUDA | 12.0+ | 12.1+ |
| GPU VRAM | 24GB | 48GB (L40S) |
| RAM | 32GB | 64GB |
如何运行
第一次使用? 请参阅安装指南来设置Modal和biomodals。
选项1:Modal(推荐)
# 克隆biomodals
git clone https://github.com/hgbrian/biomodals && cd biomodals
# 运行BoltzGen(需要YAML配置文件)
modal run modal_boltzgen.py \
--input-yaml binder_config.yaml \
--protocol protein-anything \
--num-designs 50
# 使用自定义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 -e .
python sample.py config=config.yaml
选项3:Python API
from boltzgen import BoltzGen
model = BoltzGen.load_pretrained()
designs = model.sample(
target_pdb="target.pdb",
num_samples=50,
binder_length=80
)
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:
# 设计的蛋白质(可变长度80-140个残基)
- protein:
id: B
sequence: 80..140
# 来自结构文件的目标
- file:
path: target.cif
include:
- chain:
id: A
# 指定结合位点残基(可选但推荐)
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 # 带有用于二硫键的半胱氨酸
- file:
path: target.cif
include:
- chain:
id: A
constraints:
- bond:
atom1: [S, 11, SG]
atom2: [S, 18, SG] # 二硫键
设计协议
| 协议 | 使用场景 |
|---|---|
protein-anything |
设计蛋白质以结合蛋白质或肽 |
peptide-anything |
设计环状肽以结合蛋白质 |
protein-small_molecule |
设计蛋白质以结合小分子 |
nanobody-anything |
设计纳米抗体CDR区 |
antibody-anything |
设计抗体CDR区 |
输出格式
output/
├── sample_0/
│ ├── design.cif # 全原子结构(CIF格式)
│ ├── metrics.json # 置信度分数
│ └── sequence.fasta # 序列
├── 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
结果保存至: ./out/boltzgen/2501161234/
输出目录结构:
out/boltzgen/2501161234/
├── intermediate_designs/ # 原始扩散输出
│ ├── design_0.cif
│ └── design_0.npz
├── intermediate_designs_inverse_folded/
│ ├── refold_cif/ # 重新折叠的复合物
│ └── aggregate_metrics_analyze.csv
└── final_ranked_designs/
├── final_10_designs/ # 顶级设计
└── results_overview.pdf # 摘要图表
良好输出的表现:
- 重新折叠RMSD < 2.0A(设计按预测折叠)
- ipTM > 0.5(界面置信度高)
- 所有设计均完成流水线且无错误
决策树
我应该使用BoltzGen吗?
│
├─ 需要什么类型的设计?
│ ├─ 需要全原子精度 → BoltzGen ✓
│ ├─ 配体结合口袋 → BoltzGen ✓
│ └─ 标准迷你蛋白 → RFdiffusion(更快)
│
├─ 什么最重要?
│ ├─ 侧链堆积 → BoltzGen ✓
│ ├─ 速度/多样性 → RFdiffusion
│ ├─ 最高成功率 → BindCraft
│ └─ AF2优化 → ColabDesign
│
└─ 计算资源如何?
├─ 拥有L40S/A100 (48GB+) → BoltzGen ✓
└─ 只有A10G (24GB) → 考虑RFdiffusion
典型性能
| 活动规模 | 时间 (L40S) | 成本 (Modal) | 备注 |
|---|---|---|---|
| 50个设计 | 30-45 分钟 | ~$8 | 快速探索 |
| 100个设计 | 1-1.5小时 | ~$15 | 标准活动 |
| 500个设计 | 5-8小时 | ~$70 | 大型活动 |
每个设计: 典型结合剂约30-60秒。
验证
find output -name "*.cif" | wc -l # 应匹配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 进行筛选。