120

Boltz-1 技术报告精读:开放结构预测模型的能力边界

Boltz-1 是首个完全开源的 AF3 级复合物预测模型。这篇讲清它的能力、许可优势与使用方式。

Boltz-1(MIT 团队,2024)是第一个在 MIT 许可下完全开放(代码 + 权重 + 训练细节)的 AlphaFold3 级模型。它的技术意义重要,但真正改变局面的是许可——它让产业界第一次能合法地把 AF3 级能力用于商业药物发现

为什么许可是关键

模型 代码 权重 商用
AlphaFold3 开放(有条件) 需申请 禁止
Chai-1 开放 开放 有条件(见 122《Chai-1 技术报告精读》
Boltz-1 / Boltz-2 开放 开放 MIT,无限制
RFAA 开放 开放 允许(见 115《RoseTTAFold All-Atom》

对工业界用户,「能不能商用」是先于「准确度高多少」的问题。一个准确度略低但可商用的模型,实际价值高于一个更准但不能用的模型。

能力范围

  • 蛋白(含多链复合物)
  • 小分子配体:通过 SMILES 或 CCD 编码指定;
  • DNA / RNA
  • 修饰残基:磷酸化、糖基化等;
  • 共价连接:可指定共价键(对共价抑制剂建模有用,见 379《共价抑制剂设计》);
  • 口袋约束可以指定配体应该结合在哪些残基附近——这是很实用的功能,能把已知的生物学信息注入预测。

安装与使用

pip install boltz

# 输入用 YAML 描述(比 FASTA 灵活得多)
# input.yaml:
#   version: 1
#   sequences:
#     - protein:
#         id: A
#         sequence: MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQ
#     - ligand:
#         id: B
#         smiles: "CC(=O)Nc1ccc(O)cc1"
#
#   # 可选:口袋约束
#   constraints:
#     - pocket:
#         binder: B
#         contacts: [[A, 45], [A, 78], [A, 123]]

boltz predict input.yaml --use_msa_server --out_dir results/

# 常用参数:
boltz predict input.yaml \
  --use_msa_server \
  --recycling_steps 5 \
  --diffusion_samples 5 \
  --sampling_steps 200 \
  --output_format mmcif \
  --out_dir results/

# --use_msa_server  用远程 MMseqs2 搜 MSA(敏感序列勿用)
# --diffusion_samples  采样多少个结构(多采样看一致性)
# --recycling_steps    循环回收次数

# 输出:
#   predictions/<name>/<name>_model_0.cif   预测结构
#   confidence_<name>_model_0.json          置信度指标
#   pae_<name>_model_0.npz                  PAE 矩阵
#   plddt_<name>_model_0.npz                pLDDT

共价与修饰的建模

# 共价抑制剂(见 379)
# input.yaml:
#   version: 1
#   sequences:
#     - protein:
#         id: A
#         sequence: MKT...C...QRQ
#     - ligand:
#         id: L
#         smiles: "C=CC(=O)N1CCC(CC1)Nc1ncnc2[nH]ccc12"
#   constraints:
#     - bond:
#         atom1: [A, 797, SG]        # Cys797 的硫
#         atom2: [L, 1, C2]          # 配体的迈克尔受体碳
#
# → 模型会在该约束下建模共价复合物

# 修饰残基
#   sequences:
#     - protein:
#         id: A
#         sequence: MKTAYSAKQRQ
#         modifications:
#           - position: 6
#             ccd: SEP               # 磷酸丝氨酸
#
# 这类能力对以下场景很重要:
#   - 共价抑制剂的结合模式
#   - 磷酸化依赖的相互作用
#   - 糖基化对抗体结构的影响

置信度指标

import json

with open("results/predictions/x/confidence_x_model_0.json") as f:
    conf = json.load(f)

print("confidence_score:", conf["confidence_score"])   # 综合分
print("ptm:", conf["ptm"])                             # 整体 TM 预测
print("iptm:", conf["iptm"])                           # 界面 TM 预测
print("ligand_iptm:", conf.get("ligand_iptm"))         # 配体界面
print("complex_plddt:", conf["complex_plddt"])
print("chains_ptm:", conf["chains_ptm"])

# 判读要点:
#   ligand_iptm 是判断配体姿势可信度的核心指标
#   但【高 ligand_iptm 不保证姿势物理合理】
#   → 仍需 PoseBusters 检查(见 096)
#
# 多次采样的一致性检验(最实用的判据):
#   --diffusion_samples 5
#   然后比较 5 个结构中配体位置的 RMSD
#   一致 → 可信;分散 → 不可信

实际表现

  • 接近但通常不及 AF3:在 PoseBusters 等公开基准上,Boltz-1 的表现与 AF3 有差距但不大;
  • 相对传统对接:在给定口袋约束的情况下,与 Vina/GNINA 各有胜负,不是碾压性的优势
  • 物理有效性:与所有此类模型一样,需要 PoseBusters 检查——通过率不是 100%;
  • 不预测亲和力:Boltz-1 只给结构。这正是 Boltz-2 要解决的问题(见 121《Boltz-2 技术报告精读》);
  • 速度:GPU 上单个中等大小复合物数分钟,比传统对接慢但可接受。

实用建议

  • 用口袋约束:如果已知结合位点,务必用 pocket 约束——这显著提高姿势预测质量,且符合真实场景(口袋通常已知);
  • 多次采样看一致性--diffusion_samples 5 或更多,比较结果的分散程度;
  • 敏感序列不要用 --use_msa_server:序列会发到外部服务器。可预先用本地 MMseqs2 生成 MSA 并通过 YAML 指定;
  • 与传统对接交叉验证:两类方法原理不同,一致的结果更可信(见 346《比较 DiffDock、Vina、GNINA》);
  • 做物理检查:PoseBusters + smina 局部优化。

关键要点

  • MIT 许可是它最重要的属性——让 AF3 级能力首次可合法用于商业药物发现;
  • 支持共价连接与修饰残基的显式建模,这对共价抑制剂等场景很实用;
  • 已知口袋时务必用 pocket 约束,能显著提高姿势质量;
  • 不预测亲和力;仍需 PoseBusters 检查与多次采样的一致性验证。

延伸资源