
专栏全集《开源蛋白结构推理》你遇到的情况是想看一个蛋白的平衡态构象集合——局部展开、隐式口袋、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 开源MIT2026-07 时 839 stars、144 forks论文已发Science(DOI: 10.1126/science.adv9817)。怎么做到的模型主体是DiGDenoising Graph-based可参考Nat Mach Intell2024-08-12 s42256-024-00837-3训练分两阶段预训练在 AFDBAlphaFold Database的 16.1 万条结构上做 denoising score matching学习蛋白结构流形。微调在 216 ms MD 模拟数据上继续 denoising同时用 Property Prediction Fine-TuningPPFT对齐实验测得的折叠自由能19k dG 数据。核心四点采样 模拟平衡态分布不是给一个最可能的结构而是给一组服从玻尔兹曼分布的构象能看到局部展开、隐式口袋形成、域运动等功能相关变化。配 steering 系统在扩散过程中引入物理势能Cα–Cα 距离避免断链、PairwiseClash 避免重叠用 SMCSequential Monte Carlo或 FKCFeynman–Kac Corrector算法纠偏。输出 backbone 坐标侧链靠后处理HPacker 短 MD 平衡重建。3 个版本权重v1.0论文 preprint 版、v1.1Science 发表版默认、v1.2额外 1.3M dG 数据。输入是单条氨基酸序列输出是一堆 PDB / XTC 构象 拓扑。仅 Linux NVIDIA GPUv1.0 内置 ColabFold 做 MSA所以首次运行要联网下 MSA模型权重从 HuggingFace 自动下。二、特点跟现有方案比有什么不一样维度BioEmuAlphaFold 2/3传统 MDGROMACS / AMBERAlphaFlow目标采样平衡态构象集合预测一个最可能结构真实物理模拟采样构象集合更小规模速度1000 样本/100 残基 ≈ 4 分钟A100秒级几天到几个月几分钟自由能误差~0.9 kcal/molvs MD 实验—ground truth~2 kcal/mol是否给隐式口袋 / 局部展开✅ 能采到❌ 单点结构✅理论上能部分LicenseMITApache-2.0开源MIT硬件NVIDIA GPUGPUCPUGPUGPU多链❌单体限定✅✅✅最值得关注的四点首个对标 MD 自由能精度的深度学习采样器相对自由能误差 ~0.9 kcal/molvs 实验、~0.9 kcal/molvs MD 模拟Spearman 相关系数 0.6。比传统 MD 快几个数量级100 残基采 1000 个样本只要 4 分钟A100 80GB传统 MD 同样的工作要几天。覆盖功能相关构象变化domain motion 覆盖 83%、cryptic pockets holo 状态 88%、local unfolding 70-82%。配套 steering 物理纠偏3-10 个 steering 粒子能显著减少不物理样本clash、断链可作为自定义 CV 的靶向工具。三、零基础手把手教程3.1 在动手之前先确认你能满足这些条件条件怎么检查不满足怎么办Linux 系统仅 Linuxpip 包明确写uname -aWindows 走 WSL2macOS 不支持Python ≥3.10python3 --version—NVIDIA GPU≥16 GB 显存推荐 ≥24 GBnvidia-smi无 CPU 路径走 Azure AI Foundry 在线推理CUDA 12.x 兼容驱动nvidia-smi装 NVIDIA 驱动 CUDA 12能访问huggingface.co下模型权重 ~3.5 GBcurl -I https://huggingface.co用hf-mirror.com镜像能访问api.colabfold.com首次跑自动下 MSAcurl -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.35nvidia-cuda-nvcc-cu1212.8.93。第一次跑会下载 AlphaFold2 权重 ~3.5 GB 到~/.cache/colabfold/。3.3 第一次采样Chignolin10 残基超快蛋白最小可工作例子python -m bioemu.sample \ --sequence GYDPETGTWG \ --num_samples 10 \ --output_dir ~/test-chignolin预期输出samples.xtc # 10 帧构象轨迹 sequence.fasta # 输入序列 topology.pdb # 蛋白拓扑第一次跑会出现下载 AF2 权重到~/.cache/colabfold/~3.5 GB通过 ColabFold 服务器查 MSA要联网下载 BioEmu 权重到~/.cache/huggingface/从microsoft/bioemu3.4 Python API 同样简洁from bioemu.sample import main as sample sample( sequenceGYDPETGTWG, num_samples10, output_dir~/test_chignolin )3.5 用 FASTA 文件做输入多序列批量sample( sequencepath/to/protein.fasta, # 单序列 FASTA num_samples100, output_dir~/batch_samples )3.6 用 steering 提升物理真实性默认采样会有不物理样本clash、断链开 steeringpython -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 启用了两个势能势能作用CaCaDistanceUmbrellaPotential防止 backbone 断链限制相邻 Cα–Cα 距离PairwiseClashUmbrellaPotential防止非相邻残基 clash避免空间重叠Steering 关键参数在 YAML 文件中参数含义推荐值num_particles每个输出样本对应的粒子数越大越准、越慢3-10ess_threshold重采样阈值有效样本量占名义样本量比例0.0-1.0start启动 steering 的扩散时间1→0 反向0.1默认end停止 steering 的扩散时间0.0默认fk_potentials势能列表默认physical_steering.yaml已配好3.7 用自己的 MSA不走 ColabFold 服务器如果你已经通过本地 MMseqs2 / ColabFold 跑好了 MSA直接传 A3Msample( sequencepath/to/query.a3m, # query 必须在第一行 num_samples100, output_dir~/local_msa_samples )或者覆盖 MSA 查询服务器sample( sequenceGYDPETGTWG, num_samples100, output_dir~/samples, msa_host_urlhttp://your-local-mmseqs-server:8000 )3.8 用特定 checkpoint 版本默认用bioemu-v1.1Science 发表版。其他版本sample( sequenceGYDPETGTWG, num_samples10, output_dir~/v1_0_samples, model_namebioemu-v1.0 # preprint 版 )可用版本Checkpoint用途参数量训练数据bioemu-v1.0preprint 版31.4MAFDB 161k 结构 MD 216ms dG 19kbioemu-v1.1默认Science 版31.4M同 v1.0dG 升级到 502kbioemu-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_samplesFalse3.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. 装 bioemuCUDA 版 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_10020配置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. 跑论文里的 benchmarkgit clone https://github.com/microsoft/bioemu-benchmarks # 详细见 bioemu-benchmarks 仓库3. 自定义 steering CV参考src/bioemu/config/steering/cv_steer.yamlFKC 模式下 RMSD 靶向 steering写自己的 YAML。4. 训练数据下载训练用的 MD 数据已在 Zenodo 公开数据集大小链接CATH—https://doi.org/10.5281/zenodo.15629740Octapeptides—https://doi.org/10.5281/zenodo.15641199MegaSim—https://doi.org/10.5281/zenodo.156411845. Web 工具 / 衍生项目AI Foundry Labs BioEmu-Protein3DWeb UI 包装GitHub - LazaUK/AIFoundryLabs-BioEmu-Protein3D: Web-UI wrapper for the Microsoft Researchs Biomolecular Emulator (BioEmu) AI model to predict 3D protein structures. · GitHubGPCR 动力学分析https://github.com/adi1bioinfo/bioEmu_GPCRChimeraX 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 直接喂显存爆OOMbatch_size × 序列长度太大减小 batchbatch_size_1005或换 mini 模型输出样本数远少于--num_samples默认过滤了 clash/断链加--filter_samplesFalse或开 steeringhpacker装不上conda不在 PATH 或驱动问题手动装 hpacker设HPACKER_PYTHONBIN或跳过 sidechain 重建多链蛋白输出不对BioEmu 不支持多链单链分开采样或试 linker trickREADME 提到效果有限模型权重下不下来HuggingFace 不可达用HF_ENDPOINThttps://hf-mirror.com环境变量2026-09-12 实测有效JAX version conflict系统有别的 jax用 venv 隔离python -m venv bioemu_env source bioemu_env/bin/activateSteering 跑得巨慢num_particles设太大减到 3-5RuntimeError: 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药物设计开源小分子生成和设计实践开源药代动力学软件教程