news 2026/9/16 15:00:10

BioEmu: 来自Microsoft 从序列到蛋白构象系踪的生成式模型-原理/特点/本地部署

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
BioEmu: 来自Microsoft 从序列到蛋白构象系踪的生成式模型-原理/特点/本地部署

专栏全集《开源蛋白结构推理》

你遇到的情况是:想看一个蛋白的平衡态构象集合——局部展开、隐式口袋、domain 运动这些功能相关变化——但传统 MD 要跑几天到几个月,等不起。这篇文章给你 Microsoft Research AI4Science 2024-12 开源(MIT)的 BioEmu 完整本地部署路径:DiG 生成式模型两阶段训练(AFDB 16.1 万结构预训练 + 216 ms MD 微调),从单条氨基酸序列直接采样出服从玻尔兹曼分布的构象系综,100 残基采 1000 个样本在 A100 上只要约 4 分钟,相对自由能误差约 0.9 kcal/mol。你能直接拿去做的事:在 Linux + NVIDIA GPU 上pip install bioemu[cuda],用 Chignolin 十残基例子跑通 samples.xtc 输出,按需开 physical_steering 减少断链和 clash 样本,再用 sidechain_relax 补侧链加短 MD 平衡;没有 GPU 时走 Azure AI Foundry 在线推理。


文献

资源链接与本文关系为什么值得先读
BioEmu 官方仓库 READMEGitHub - microsoft/bioemu: Inference code for scalable emulation of protein equilibrium ensembles with generative deep learning · GitHub本文第三节全部安装与采样命令的信源"Linux-only pip-installable" 的硬件前提、三个 checkpoint 版本差异都写在第一屏
Azure AI Foundry 部署指南bioemu/AZURE_AI_FOUNDRY.md at main · microsoft/bioemu · GitHub对应本文第五节"无 GPU 走在线推理"没有 16 GB 以上显存时的替代路径,部署约 30 分钟
bioemu-benchmarks 评测仓库GitHub - microsoft/bioemu-benchmarks: Benchmarking code accompanying the release of `bioemu` · GitHub对应本文第五节"跑论文里的 benchmark"想复现 ~0.9 kcal/mol 自由能精度和覆盖度数字时从这里起步
BioEmu 原始论文(Sciencehttps://www.science.org/doi/10.1126/science.adv9817本文全部性能与精度结论的来源domain motion 83%、cryptic pockets 88% 等覆盖度数字和两阶段训练细节的出处

一、原理

BioEmu 是什么:一个能从氨基酸序列出发,采样出蛋白平衡态构象集合(Boltzmann 分布)的生成式深度学习模型,由 Microsoft Research AI4Science 团队 2024-12 开源(MIT),2026-07 时 839 stars、144 forks,论文已发Science(DOI: 10.1126/science.adv9817)。

怎么做到的:模型主体是DiG(Denoising Graph-based,可参考Nat Mach Intell2024-08-12 s42256-024-00837-3),训练分两阶段:

  1. 预训练:在 AFDB(AlphaFold Database)的 16.1 万条结构上做 denoising score matching,学习蛋白结构流形。
  2. 微调:在 216 ms MD 模拟数据上继续 denoising,同时用 Property Prediction Fine-Tuning(PPFT)对齐实验测得的折叠自由能(19k dG 数据)。

核心四点

  1. 采样 = 模拟平衡态分布:不是给一个"最可能"的结构,而是给一组服从玻尔兹曼分布的构象,能看到局部展开、隐式口袋形成、域运动等功能相关变化。
  2. 配 steering 系统:在扩散过程中引入物理势能(Cα–Cα 距离避免断链、PairwiseClash 避免重叠),用 SMC(Sequential Monte Carlo)或 FKC(Feynman–Kac Corrector)算法纠偏。
  3. 输出 backbone 坐标:侧链靠后处理(HPacker)+ 短 MD 平衡重建。
  4. 3 个版本权重:v1.0(论文 preprint 版)、v1.1(Science 发表版,默认)、v1.2(额外 1.3M dG 数据)。

输入是单条氨基酸序列,输出是一堆 PDB / XTC 构象 + 拓扑。仅 Linux + NVIDIA GPU(v1.0+ 内置 ColabFold 做 MSA,所以首次运行要联网下 MSA;模型权重从 HuggingFace 自动下)。


二、特点(跟现有方案比有什么不一样)

维度BioEmuAlphaFold 2/3传统 MD(GROMACS / AMBER)AlphaFlow
目标采样平衡态构象集合预测一个最可能结构真实物理模拟采样构象集合(更小规模)
速度1000 样本/100 残基 ≈ 4 分钟(A100)秒级几天到几个月几分钟
自由能误差~0.9 kcal/mol(vs MD 实验)ground truth~2 kcal/mol
是否给隐式口袋 / 局部展开✅ 能采到❌ 单点结构✅(理论上能)部分
LicenseMITApache-2.0开源MIT
硬件NVIDIA GPUGPUCPU+GPUGPU
多链❌(单体限定)

最值得关注的四点

  1. 首个"对标 MD 自由能精度"的深度学习采样器:相对自由能误差 ~0.9 kcal/mol(vs 实验)、~0.9 kcal/mol(vs MD 模拟),Spearman 相关系数 0.6。
  2. 比传统 MD 快几个数量级:100 残基采 1000 个样本只要 4 分钟(A100 80GB),传统 MD 同样的工作要几天。
  3. 覆盖功能相关构象变化:domain motion 覆盖 83%、cryptic pockets holo 状态 88%、local unfolding 70-82%。
  4. 配套 steering 物理纠偏:3-10 个 steering 粒子能显著减少不物理样本(clash、断链),可作为自定义 CV 的靶向工具。

三、零基础手把手教程

3.1 在动手之前,先确认你能满足这些条件

条件怎么检查不满足怎么办
Linux 系统(仅 Linux,pip 包明确写)uname -aWindows 走 WSL2;macOS 不支持
Python ≥3.10python3 --version
NVIDIA GPU(≥16 GB 显存推荐 ≥24 GB)nvidia-smi无 CPU 路径;走 Azure AI Foundry 在线推理
CUDA 12.x 兼容驱动nvidia-smi装 NVIDIA 驱动 + CUDA 12
能访问huggingface.co(下模型权重 ~3.5 GB)curl -I https://huggingface.cohf-mirror.com镜像
能访问api.colabfold.com(首次跑自动下 MSA)curl -I https://api.colabfold.com提前用 ColabFold 本地 MSA 或手动备 A3M
≥10 GB 磁盘df -h ~

⚠️最重要的两条Linux + NVIDIA GPU。README 第一行明写 "Linux-only pip-installable"。

3.2 安装 bioemu

# CPU 版(仅采样,不含 GPU 加速) pip install bioemu # CUDA 版(推荐) pip install bioemu[cuda]

💡bioemu[cuda]会自动装jax[cuda12]==0.4.35+nvidia-cuda-nvcc-cu12==12.8.93。第一次跑会下载 AlphaFold2 权重 ~3.5 GB 到~/.cache/colabfold/

3.3 第一次采样:Chignolin(10 残基超快蛋白)

最小可工作例子:

python -m bioemu.sample \ --sequence GYDPETGTWG \ --num_samples 10 \ --output_dir ~/test-chignolin

预期输出

samples.xtc # 10 帧构象轨迹 sequence.fasta # 输入序列 topology.pdb # 蛋白拓扑

第一次跑会出现:

  1. 下载 AF2 权重到~/.cache/colabfold/(~3.5 GB)
  2. 通过 ColabFold 服务器查 MSA(要联网)
  3. 下载 BioEmu 权重到~/.cache/huggingface/(从microsoft/bioemu

3.4 Python API 同样简洁

from bioemu.sample import main as sample sample( sequence='GYDPETGTWG', num_samples=10, output_dir='~/test_chignolin' )

3.5 用 FASTA 文件做输入(多序列批量)

sample( sequence='path/to/protein.fasta', # 单序列 FASTA num_samples=100, output_dir='~/batch_samples' )

3.6 用 steering 提升物理真实性

默认采样会有不物理样本(clash、断链),开 steering:

python -m bioemu.sample \ --sequence GYDPETGTWG \ --num_samples 100 \ --output_dir ~/steered-samples \ --denoiser_config src/bioemu/config/steering/physical_steering.yaml

⚠️实测坑(2026-09-12):上面这条命令抄自官方 README,但src/bioemu/...仓库相对路径,pip 安装的用户没有这个路径,会直接报错。pip 装完后 yaml 实际在 site-packages 里,用下面这条:

# pip 安装用户的正确写法(把 <conda-env> 换成你的环境路径) python -m bioemu.sample \ --sequence GYDPETGTWG \ --num_samples 100 \ --output_dir ~/steered-samples \ --denoiser_config <conda-env>/lib/python3.11/site-packages/bioemu/config/steering/physical_steering.yaml

找路径一行命令:python -c "import bioemu,os;print(os.path.dirname(bioemu.__file__))"

物理 steering YAML 启用了两个势能:

势能作用
CaCaDistance+UmbrellaPotential防止 backbone 断链(限制相邻 Cα–Cα 距离)
PairwiseClash+UmbrellaPotential防止非相邻残基 clash(避免空间重叠)

Steering 关键参数(在 YAML 文件中):

参数含义推荐值
num_particles每个输出样本对应的粒子数(越大越准、越慢)3-10
ess_threshold重采样阈值(有效样本量占名义样本量比例)0.0-1.0
start启动 steering 的扩散时间(1→0 反向)0.1(默认)
end停止 steering 的扩散时间0.0(默认)
fk_potentials势能列表默认physical_steering.yaml已配好

3.7 用自己的 MSA(不走 ColabFold 服务器)

如果你已经通过本地 MMseqs2 / ColabFold 跑好了 MSA,直接传 A3M:

sample( sequence='path/to/query.a3m', # query 必须在第一行 num_samples=100, output_dir='~/local_msa_samples' )

或者覆盖 MSA 查询服务器:

sample( sequence='GYDPETGTWG', num_samples=100, output_dir='~/samples', msa_host_url='http://your-local-mmseqs-server:8000' )

3.8 用特定 checkpoint 版本

默认用bioemu-v1.1(Science 发表版)。其他版本:

sample( sequence='GYDPETGTWG', num_samples=10, output_dir='~/v1_0_samples', model_name='bioemu-v1.0' # preprint 版 )

可用版本:

Checkpoint用途参数量训练数据
bioemu-v1.0preprint 版31.4MAFDB 161k 结构 + MD 216ms + dG 19k
bioemu-v1.1默认,Science 版31.4M同 v1.0,dG 升级到 502k
bioemu-v1.2增强版35.7MAFDB 同 + MD 145.4ms + dG 1.3M(额外残基类型/对嵌入)

3.9 看输出 & 后处理

输出文件:

文件内容
samples.xtc构象轨迹(MDTraj 可读)
sequence.fasta输入序列
topology.pdb拓扑结构

默认行为:会自动过滤不物理样本(clash / 断链),所以实际输出样本数可能少于--num_samples请求数。如果想保留全部原始样本:

python -m bioemu.sample \ --sequence GYDPETGTWG \ --num_samples 100 \ --output_dir ~/all_samples \ --filter_samples=False

3.10 侧链重建 + 短 MD 平衡(可选)

BioEmu 只输出 backbone,侧链要后处理:

# 1. 装可选依赖(要 conda) pip install bioemu[md] # 2. 跑侧链重建 + MD 平衡 python -m bioemu.sidechain_relax \ --pdb-path path/to/topology.pdb \ --xtc-path path/to/samples.xtc

输出文件:

文件内容
samples_sidechain_rec.{pdb,xtc}侧链重建后结构
samples_md_equil.{pdb,xtc}侧链 + MD 平衡后结构

其他选项:

参数作用
--no-md-equil只重建侧链,不做 MD
--md-protocol local_minimization只做局部能量最小化(默认)
--md-protocol md_equil做 0.1 ns NVT 平衡(短)
--outname other_name改输出文件名前缀

⚠️实测坑(2026-09-12):早期文档写的--md-protocol nvt_equil已失效,bioemu 1.4.1实际只接受local_minimization/md_equil两个值,写错直接报参数错误退出。实测 10 残基 9 帧跑默认流程(侧链重建 + 最小化)334 s、峰值内存 0.9 GB;输出samples_sidechain_rec.{pdb,xtc}(77 原子/帧,含侧链)与samples_md_equil.{pdb,xtc}

⚠️ 首次跑sidechain_relax会自动建独立 venv 装hpacker,需要conda在 PATH。如果自动装失败,手动装 hpacker 并设HPACKER_PYTHONBIN环境变量。

3.11 把所有命令串起来(复制即用版)

# === 一键脚本(Ubuntu 22.04 + CUDA 12 + 普通用户)=== # 1. 装 bioemu(CUDA 版) pip install bioemu[cuda] # 2. 跑最简例子(Chignolin) python -m bioemu.sample \ --sequence GYDPETGTWG \ --num_samples 10 \ --output_dir ~/test-chignolin # 3. 看输出 ls ~/test-chignolin/ # samples.xtc sequence.fasta topology.pdb # 4. 跑带 steering 的版本(物理更合理) python -m bioemu.sample \ --sequence GYDPETGTWG \ --num_samples 100 \ --output_dir ~/steered-samples \ --denoiser_config src/bioemu/config/steering/physical_steering.yaml # 5. (可选)侧链重建 pip install bioemu[md] python -m bioemu.sidechain_relax \ --pdb-path ~/test-chignolin/topology.pdb \ --xtc-path ~/test-chignolin/samples.xtc

四、性能参考(A100 80GB 测得)

序列长度1000 样本耗时
100 残基4 分钟
300 残基40 分钟
600 残基150 分钟

💡 用batch_size_100=20配置(src/bioemu/sample.py)。BioEmu 显存占用正比于 batch size × 序列长度,300 残基以上建议 batch 调到 5-10。


五、上手后想进阶?这些是常见下一步

1. 走 Azure AI Foundry 在线推理(无 GPU 也能用)

# 详见 AZURE_AI_FOUNDRY.md # 1. 登录 https://ai.azure.com 注册 # 2. 部署 BioEmu(默认 Standard_NC24ads_A100_v4,约 30 分钟) # 3. 用 endpoint + API key 调用

2. 跑论文里的 benchmark

git clone https://github.com/microsoft/bioemu-benchmarks # 详细见 bioemu-benchmarks 仓库

3. 自定义 steering CV

参考src/bioemu/config/steering/cv_steer.yaml(FKC 模式下 RMSD 靶向 steering)写自己的 YAML。

4. 训练数据下载

训练用的 MD 数据已在 Zenodo 公开:

数据集大小链接
CATHhttps://doi.org/10.5281/zenodo.15629740
Octapeptideshttps://doi.org/10.5281/zenodo.15641199
MegaSimhttps://doi.org/10.5281/zenodo.15641184

5. Web 工具 / 衍生项目

  • AI Foundry Labs BioEmu-Protein3D(Web UI 包装):GitHub - LazaUK/AIFoundryLabs-BioEmu-Protein3D: Web-UI wrapper for the Microsoft Research's Biomolecular Emulator (BioEmu) AI model to predict 3D protein structures. · GitHub
  • GPCR 动力学分析:https://github.com/adi1bioinfo/bioEmu_GPCR
  • ChimeraX + VAMPnet + BioEmu 多源系综分析:https://github.com/m9h/chimerax-vampnet

六、踩坑速查

现象原因解决
pip install bioemu在 macOS 失败Linux-only 包走 Linux / WSL2
第一次跑卡住不动在下 AF2 权重 ~3.5 GB耐心等,进度条可能没显示
MSA retrieval failedColabFold 服务器连不上msa_host_url指向本地 MMseqs2;或提前跑好 A3M 直接喂
显存爆(OOM)batch_size × 序列长度太大减小 batch(batch_size_100=5);或换 mini 模型
输出样本数远少于--num_samples默认过滤了 clash/断链--filter_samples=False;或开 steering
hpacker装不上conda不在 PATH 或驱动问题手动装 hpacker,设HPACKER_PYTHONBIN;或跳过 sidechain 重建
多链蛋白输出不对BioEmu 不支持多链单链分开采样;或试 linker trick(README 提到效果有限)
模型权重下不下来HuggingFace 不可达HF_ENDPOINT=https://hf-mirror.com环境变量(2026-09-12 实测有效)
JAX version conflict系统有别的 jax用 venv 隔离:python -m venv bioemu_env && source bioemu_env/bin/activate
Steering 跑得巨慢num_particles设太大减到 3-5
RuntimeError: CUDA not availablePyTorch 没识别 GPU重装pip install bioemu[cuda];确认nvidia-smi正常
--denoiser_config src/bioemu/...报找不到文件README 命令是仓库相对路径,pip 用户没有改用 site-packages 绝对路径(见 3.6 节实测坑)
--md-protocol nvt_equil报 Invalid value1.4.1 只接受local_minimization/md_equil见 3.10 节实测坑
驱动 CUDA 版本高于 jax wheel 的 cu12无需担心cu12 wheel 自带运行时,驱动向下兼容(本机 CUDA 13.0 驱动 + cu12 插件实测正常)

关键字

BioEmu;构象系综采样;生成式模型;玻尔兹曼分布;隐式口袋;steering;自由能预测;Chignolin

相关专栏链接

蛋白 / 多肽分子模拟 / 动力学分子对接 / CADD / 工具agent / 核酸 / 药物
开源蛋白结构推理分子模拟基础UCSF DOCK系列agent智能体系列
开源蛋白生成实践分子动力学模拟-AmberrDock系列教程化学大模型介绍
蛋白设计原理案例分子动力学模拟-GromacsLeDock系列教程我胡师兄说药
多肽设计模型实践开源結合自由能计算CADD中的机器学习模型siRNA药物设计模型
开源多肽性质预测高效计算基本配置小分子药物设计案例ASO药物设计模型
多肽设计原理案例靶向DNA/RNA药物设计开源小分子生成和设计实践开源药代动力学软件教程
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 14:59:08

Web3.0测试环境安全攻防实战与防御策略

1. Web3.0测试为何成为攻击重灾区&#xff1f;Web3.0测试环境频繁遭受攻击并非偶然&#xff0c;而是由其技术架构特性与测试方法论缺陷共同导致的系统性风险。2024年链上安全事件造成的23.63亿美元损失中&#xff0c;测试环节暴露的问题占比高达37%&#xff0c;这个数字背后是三…

作者头像 李华
网站建设 2026/9/16 14:58:50

DMC1000B与LabVIEW工程级对接:寄存器映射、DLL调用与实时闭环

简介&#xff1a;本资源是一套面向LabVIEW开发者与自动化控制工程师的DMC1000/DMC1000B数据采集模块实战开发包&#xff0c;聚焦于工业测控与实验室系统集成场景&#xff0c;解决设备在LabVIEW平台下的快速接入、参数配置、实时采集与可视化控制等核心问题。压缩包共37个文件&a…

作者头像 李华
网站建设 2026/9/16 14:56:48

3D离散余弦变换图像重构原理与MATLAB实现

简介&#xff1a;本资源是一套面向本科及硕士阶段科研学习者的图像压缩重构实践方案&#xff0c;聚焦基于3D离散余弦变换&#xff08;3D-DCT&#xff09;的彩色图像快速压缩与重建技术&#xff0c;配套完整Matlab实现代码与可视化结果&#xff0c;适用于图像处理、信号压缩、多…

作者头像 李华
网站建设 2026/9/16 14:55:15

Beekeeper Studio 十语言文档:用母语上手数据库客户端

Beekeeper Studio 十语言文档&#xff1a;用母语上手数据库客户端 【免费下载链接】beekeeper-studio Modern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows. 项目地址: https://gitcode.com/GitHub_Trending/b…

作者头像 李华
网站建设 2026/9/16 14:55:03

STM32驱动SSD1322 OLED:显存模型、SPI时序与调试实战

简介&#xff1a;这是一份以STM32微控制器驱动SSD1322控制芯片OLED屏为核心的完整嵌入式工程源码包&#xff0c;适合正在做显示屏驱动、灰度图形显示或SPI/8080并口通信开发的STM32开发者参考。资源压缩包共76个文件&#xff0c;约285KB&#xff0c;主要包含32个h头文件、31个c…

作者头像 李华
网站建设 2026/9/16 14:53:58

Relax算法:强弱信号共存下的DOA高精度估计实战

简介&#xff1a;本资源是一套基于MATLAB实现的RELAX算法完整工程包&#xff0c;面向雷达信号处理方向的研究生、工程师及科研人员&#xff0c;聚焦强弱混合信号下的DOA&#xff08;波达方向&#xff09;估计难题。RELAX算法通过迭代优化有效提升弱信号分辨能力&#xff0c;显著…

作者头像 李华