Boltz-2 下一代生物分子基础模型在昇腾NPU上的部署(推理&训练)实践
作者:昇腾实战派
知识地图:https://blog.csdn.net/Lumos_Lovegood/article/details/161601003


一、Boltz-2 介绍
1.1 背景与动机
在药物研发领域,准确预测蛋白质-配体结合亲和力是小分子药物发现的核心瓶颈。传统的基于物理的自由能微扰(FEP)方法虽然准确,但计算成本高昂、耗时较长(通常需要数小时至数天),严重制约了虚拟筛选的规模和效率。与此同时,以 AlphaFold3 为代表的深度学习模型虽然在结构预测领域取得了突破性进展,但其在结合亲和力预测方面的表现仍不尽如人意。
Boltz-2 由麻省理工学院计算机科学与人工智能实验室(MIT CSAIL)联合 Recursion 公司于 2025 年 6 月发布,是首个将结构预测与结合亲和力预测统一建模的生物分子基础模型。该模型在标准 FEP+ 基准测试中实现了平均 0.62 的 Pearson 相关系数,接近物理方法的精度,同时预测速度提升 1000 倍(约 20 秒即可完成一次预测)。
1.2 核心创新点
| 特性 | 说明 |
|---|---|
| 联合建模 | 首次将 3D 结构预测与结合亲和力预测整合到同一模型中 |
| 双输出架构 | 同时输出结合概率(用于筛选)和亲和力数值(用于优化) |
| 物理合理性 | 引入 Steering 机制与推理时势能,显著提升预测结构的物理真实感 |
| 速度优势 | 比传统 FEP 方法快约 1000 倍 |
| 完全开源 | 代码与权重均以 MIT 许可证发布,可自由用于学术和商业 |
1.3 适用场景
- 虚拟筛选(Hit Discovery):从大规模化合物库中快速识别潜在活性分子
- 先导化合物优化(Hit-to-Lead / Lead Optimization):量化评估分子修饰对结合亲和力的影响
- 蛋白质-蛋白质/RNA/DNA 复合物结构预测:预测多种生物分子间的 3D 相互作用
- 分子设计工作流集成:可与 AI 分子生成模型联用,实现端到端药物设计
二、整体架构
Boltz-2 的模型架构由四个核心组件构成:
输入序列/结构 → [Trunk (PairFormer)] → [Denoising Module (with Steering)] → 3D 结构输出
→ [Confidence Module] → 置信度评分
→ [Affinity Module] → 结合亲和力预测
下图展示了 Boltz-2 在结构预测任务上各指标的表现(与 AlphaFold3、Chai-1 等模型的对比):

2.1 Trunk(主干网络)
Trunk 是模型的核心表征学习模块,采用 PairFormer 架构:
- 处理经过 token 化的生物分子序列(蛋白质、DNA、RNA、配体)
- 通过**三角注意力机制(Triangle Attention)**高效建模原子间的空间关系
- 生成 token 级别和 pair 级别的表征,供下游模块使用
- Trunk 仅运行一次,输出作为后续所有模块的条件输入
2.2 Denoising Module(去噪模块 + Steering)
扩散去噪模块负责生成 3D 原子坐标:
- 接收带噪声的 3D 原子坐标作为输入
- 采用标准 Transformer 架构,在原子层级和 token 层级共同运行
- 通过逐步去噪的方式从随机初态生成稳定构象
- Steering 机制:新引入的集成引导策略,提升预测结构的物理合理性
- 支持多轮迭代(recycling),默认 3 步
2.3 Confidence Module(置信度模块)
置信度模块评估预测结构的可靠性:
- 输出 pLDDT(per-residue 置信度)、pTM(预测 TM 分数)、ipTM(界面 TM 分数)等
- PDE(Predicted Distance Error):以埃为单位的距离误差估计
- 综合评分公式:
confidence_score = 0.8 × complex_plddt + 0.2 × iptm
2.4 Affinity Module(亲和力模块)
这是 Boltz-2 相对于 Boltz-1 的关键新增模块:
- 结合概率预测:输出 0-1 之间的概率值,表示配体是否为活性结合分子
- 亲和力数值预测:输出
log10(IC50)值,值越低表示结合力越强- IC50 = 10⁻⁹ M → 模型输出 -3(强结合)
- IC50 = 10⁻⁶ M → 模型输出 0(中等结合)
- IC50 = 10⁻⁴ M → 模型输出 2(弱结合/假阳性)
下图展示了 Boltz-2 在多个亲和力预测基准上与物理方法及其他 ML 方法的 Pearson 相关系数对比:

2.5 训练数据
Boltz-2 在大规模异构数据集上训练:
- 500 万+ 结合亲和力测量值
- 分子动力学模拟数据
- 蒸馏数据(提升结构物理真实感)
- PDB 实验结构 + OpenFold 蒸馏结构
三、昇腾 NPU 适配安装教程
以下为在华为昇腾 NPU 环境下部署 Boltz-2 的完整流程。
3.1 组件版本要求
hdk: 25.5.0
cann: 8.3.RC1
python: 3.11
torch: 2.5.1
torch-npu: 2.5.1
3.2 拉取模型代码
git clone https://atomgit.com/AI4Science/boltz-2.git
cd boltz-2
3.3 创建 Conda 环境
conda create --name boltz-2 python=3.11 -y
conda activate boltz-2
3.4 安装依赖
# 临时使用华为镜像源安装 PyPI 包
export PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple
export PIP_TRUSTED_HOST=repo.huaweicloud.com
# 安装项目基础依赖包
pip install torch_npu==2.5.1 pyyaml numpy==1.26.4 decorator attrs psutil absl-py cloudpickle ml-dtypes scipy tornado
3.5 验证 PyTorch 与 torch_npu 安装
python3 -c "import torch;import torch_npu; a = torch.randn(3, 4).npu(); print(a + a);"
若输出类似以下内容,说明安装成功:
tensor([[-0.6066, 6.3385, 0.0379, 3.3356],
[ 2.9243, 3.3134, -1.5465, 0.1916],
[-2.1807, 0.2008, -1.1431, 2.1523]], device='npu:0')
常见问题排查:
set_env.sh是否已 source- decorator 等运行时依赖是否安装
- CANN 与 torch_npu 版本是否匹配
3.6 权重准备
mkdir ~/.boltz
# 下载 HuggingFace 上的所有模型文件,放到 ~/.boltz/ 下
# 地址:https://huggingface.co/boltz-community/boltz-2/tree/main
3.7 NPU 运行环境配置
# 指定可见 NPU 卡(可选 0,1,2,3)
export ASCEND_RT_VISIBLE_DEVICES=0
# NPU 性能优化
export CPU_AFFINITY_CONF=1
export TASK_QUEUE_ENABLE=2
3.8 安装 Boltz-2
pip install -e .
3.9 Docker 镜像(可选)
如不希望手动配置环境,可直接使用预构建的 Docker 镜像:
sudo docker pull swr.cn-north-4.myhuaweicloud.com/ascend_ai4s/boltz-2:v1
# 镜像内代码位于 /root 目录,已包含 conda 环境和模型权重
四、使用教程
4.1 基本预测命令
boltz predict <INPUT_PATH> [OPTIONS]
昇腾 NPU 上的最简运行示例:
boltz predict examples/prot_no_msa.yaml --devices 1 --out_dir ./boltz_output_e2e --num_workers 0 --accelerator=npu
4.2 输入格式(YAML)
Boltz-2 推荐使用 YAML 格式定义输入,支持蛋白质、DNA、RNA、配体等多种分子类型。
蛋白质-配体复合物示例:
version: 1
sequences:
- protein:
id: A
sequence: MVTPEGNVSLVDESLLVGVTDEDRAVRSAHQFYERLIGLWAPAVMEAA...
msa: ./examples/msa/seq1.a3m
- ligand:
id: B
smiles: 'N[C@@H](Cc1ccc(O)cc1)C(=O)O'
亲和力预测示例:
version: 1
sequences:
- protein:
id: A
sequence: MVTPEGNVSLVDESLLVGVTDEDRAVRSAHQFYERLIGLWAPAVMEAA...
- ligand:
id: B
smiles: 'N[C@@H](Cc1ccc(O)cc1)C(=O)O'
properties:
- affinity:
binder: B
多链蛋白质复合物 + 配体示例:
version: 1
sequences:
- protein:
id: [A, B]
sequence: MVTPEGNVSLVDESLLVGVTDEDRA...
msa: ./examples/msa/seq1.a3m
- ligand:
id: [C, D]
ccd: SAH
- ligand:
id: [E, F]
smiles: 'N[C@@H](Cc1ccc(O)cc1)C(=O)O'
4.3 支持的输入类型
| 实体类型 | 关键字 | 序列/标识方式 |
|---|---|---|
| 蛋白质 | protein |
氨基酸序列 + MSA |
| DNA | dna |
核苷酸序列 |
| RNA | rna |
核苷酸序列 |
| 配体 | ligand |
SMILES 字符串 或 CCD 代码 |
4.4 约束条件(Constraints)
Boltz-2 支持多种约束条件来引导预测:
- 共价键约束(bond):指定两个原子之间的共价键
- 口袋约束(pocket):指定结合口袋的残基列表
- 接触约束(contact):指定两个残基/原子之间的接触距离
constraints:
- pocket:
binder: B
contacts: [[A, 45], [A, 67], [A, 89]]
max_distance: 6.0
4.5 模板引导(Templates)
可提供实验结构作为模板,引导预测结果:
templates:
- cif: ./template_structure.cif
force: true
threshold: 2.0
4.6 常用命令行参数
| 参数 | 默认值 | 说明 |
|---|---|---|
--out_dir |
./ |
输出目录 |
--accelerator |
gpu |
加速器类型(gpu/cpu/tpu/npu) |
--devices |
1 |
使用的设备数量 |
--recycling_steps |
3 |
循环推理步数 |
--sampling_steps |
200 |
扩散采样步数 |
--diffusion_samples |
1 |
扩散采样数量 |
--step_scale |
1.5 |
扩散温度参数(1-2之间) |
--output_format |
mmcif |
输出格式(pdb/mmcif) |
--use_msa_server |
False |
自动生成 MSA |
--use_potentials |
False |
使用推理时势能优化 |
--diffusion_samples_affinity |
5 |
亲和力预测扩散采样数 |
--sampling_steps_affinity |
200 |
亲和力预测采样步数 |
--affinity_mw_correction |
False |
分子量校正 |
高精度预测示例(对标 AlphaFold3 参数):
boltz predict input.yaml --recycling_steps 10 --diffusion_samples 25
五、输出结果解读
5.1 输出目录结构
out_dir/
├── predictions/
│ ├── [input_file]/
│ │ ├── [input_file]_model_0.cif # 预测的 3D 结构(含 pLDDT)
│ │ ├── confidence_[input_file]_model_0.json # 置信度评分
│ │ ├── affinity_[input_file].json # 亲和力预测结果
│ │ ├── pae_[input_file]_model_0.npz # PAE 矩阵
│ │ ├── pde_[input_file]_model_0.npz # PDE 矩阵
│ │ └── plddt_[input_file]_model_0.npz # pLDDT 分数
│ └── ...
└── processed/ # 预处理缓存
5.2 置信度评分说明
{
"confidence_score": 0.8367, // 综合评分 = 0.8×pLDDT + 0.2×ipTM
"ptm": 0.8425, // 预测 TM 分数
"iptm": 0.8225, // 界面 TM 分数
"ligand_iptm": 0.75, // 蛋白-配体界面 ipTM
"protein_iptm": 0.8225, // 蛋白-蛋白界面 ipTM
"complex_plddt": 0.8402, // 复合物平均 pLDDT
"complex_pde": 0.8912 // 复合物平均 PDE(埃)
}
- pLDDT / pTM / ipTM:范围 [0, 1],越高越好
- PDE:单位为埃,越低越好
- pLDDT < 50 的区域:通常为无序区或预测不可靠区域
5.3 亲和力预测结果
{
"affinity_pred_value": -2.5, // log10(IC50) 亲和力数值
"affinity_probability_binary": 0.92, // 结合概率(0-1)
"affinity_pred_value1": -2.3, // 集成模型 1 的预测
"affinity_probability_binary1": 0.90,
"affinity_pred_value2": -2.7, // 集成模型 2 的预测
"affinity_probability_binary2": 0.94
}
两种预测的使用场景:
affinity_probability_binary:用于虚拟筛选阶段,从化合物库中快速识别候选分子affinity_pred_value:用于先导优化阶段,比较活性分子间亲和力差异(仅用于活性分子之间的比较)
单位转换:
将模型输出转换为 pIC50(kcal/mol):pIC50 = (6 - y) × 1.364,其中 y 为模型输出值。
六、进阶使用
6.1 MSA 服务器认证
当使用需要认证的 MSA 服务器时:
# Basic 认证
export BOLTZ_MSA_USERNAME=myuser
export BOLTZ_MSA_PASSWORD=mypassword
boltz predict input.yaml --use_msa_server
# API Key 认证
export MSA_API_KEY_VALUE=<your-api-key>
boltz predict input.yaml --use_msa_server --api_key_header X-API-Key
6.2 推理时势能优化
使用 --use_potentials 参数可显著提升预测结构的物理合理性,特别适用于对结构质量要求较高的场景:
boltz predict input.yaml --use_potentials
6.3 批量预测
将多个 YAML 文件放入同一目录,即可批量处理:
boltz predict ./input_dir/ --out_dir ./output/ --devices 1
七、模型训练(高级)
Boltz-2 支持在自定义数据上进行微调训练,需要约 250GB 存储空间。
7.1 训练数据准备
# 下载预处理的 PDB 结构和 MSA
wget https://boltz1.s3.us-east-2.amazonaws.com/rcsb_processed_targets.tar
wget https://boltz1.s3.us-east-2.amazonaws.com/rcsb_processed_msa.tar
7.2 训练命令
# 调试模式(单卡、单进程)
python scripts/train/train.py scripts/train/configs/structure.yaml debug=1
# 正式训练
python scripts/train/train.py scripts/train/configs/structure.yaml
# 训练置信度模型
python scripts/train/train.py scripts/train/configs/confidence.yaml
八、总结与展望
Boltz-2 作为首个将结构预测与结合亲和力预测统一建模的开源深度学习模型,在以下方面具有里程碑意义:
- 打破速度-精度权衡:以接近物理方法(FEP)的精度实现 1000 倍加速
- 端到端药物设计:可直接集成到 AI 分子生成流水线中
- 完全开源:MIT 许可证,降低学术和工业界的使用门槛
- 多模态支持:统一处理蛋白质、DNA、RNA、小分子等多种生物分子
- 昇腾 NPU 适配:支持在华为昇腾 AI 处理器上高效运行
随着 Boltz 系列模型的持续迭代,以及与 BoltzGen 等分子生成模型的联用,AI 驱动的药物发现正在从"预测结构"迈向"设计分子"的新阶段。
参考资料
- Boltz-2 论文:Passaro et al., “Boltz-2: Towards Accurate and Efficient Binding Affinity Prediction”, bioRxiv, 2025. DOI: 10.1101/2025.06.14.659707
- 昇腾适配仓库:https://atomgit.com/AI4Science/boltz-2
- HuggingFace 模型权重:https://huggingface.co/boltz-community/boltz-2
更多推荐

所有评论(0)