BoltzGen全原子蛋白质设计工具 boltzgen

BoltzGen是一款基于扩散模型的全原子蛋白质设计工具,专门用于生成具有精确侧链构象和结合几何结构的蛋白质。它支持蛋白质-蛋白质、蛋白质-小分子、抗体/纳米抗体CDR区以及环状肽的设计,适用于药物发现、酶工程和生物制剂开发等领域。关键词:蛋白质设计,全原子扩散,侧链建模,结合剂设计,AI生物计算,药物研发,结构预测,YAML配置,BoltzGen教程。

生物制药 0 次安装 0 次浏览 更新于 2/27/2026

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

下一步: 使用 boltzchai 验证 → protein-qc 进行筛选。