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 检查与多次采样的一致性验证。
延伸资源
- Boltz-2:121《Boltz-2 技术报告精读》;Chai-1:122《Chai-1 技术报告精读》;AlphaFold3:113《AlphaFold3 论文精读》;
- 方法对比:346《比较 DiffDock、Vina、GNINA》;姿势验证:096《Binding Pose》。