在 Claude Science 中运行 NVIDIA BioNeMo NIM 微服务进行蛋白质结构预测
智能体 AI 正在改变科研方式。AI 科学家可以阅读论文、提出假设、调用模型,并决定下一步优先开展哪些实验。编码智能体最先在软件工程中证明了自身价值,如今已经能够编写、测试并交付生产代码。科学研究往往更复杂,也更具迭代性:研究人员需要不断评估证据、完善假设,并开展实验,为后续决策提供依据。即使实验失败,也可能带来意想不到的新发现。
科学问题通常还需要专门的领域工具,例如用于蛋白质折叠或分子表征。如何编排和运行这些工具并不容易:功能相近的软件包可能有完全不同的环境要求或 API。通用智能体或许能判断某项任务需要进行蛋白质折叠或分子对接,却未必知道该运行哪个模型、如何组织请求格式,或哪些参数最为关键。
NVIDIA BioNeMo Agent Toolkit 填补了这一空白。该工具包将 NVIDIA BioNeMo 十多年来积累的生命科学模型、库和工作流,封装成可由智能体调用的技能,覆盖生物学、化学、基因组学和药物发现等领域。
它支持与任意智能体框架配合运行,借助专业领域知识完成复杂的科学工作流。在内部基准测试中,BioNeMo 技能将任务正确率从 60% 提升至 100%,Token 使用效率也大约翻了一倍。
本文将 Claude Science(Anthropic 面向科学研究的 AI 工作台)与 NVIDIA BioNeMo Agent Toolkit 和 NVIDIA NIM 结合,通过多序列比对(MSA)使用多个折叠模型进行蛋白质结构预测,并比较预测结果。
环境设置
NVIDIA 与 Anthropic 合作,将 BioNeMo Agent Toolkit 集成到 Claude Science 中,让智能体能够直接发现、启动并调用 BioNeMo NIM 微服务。
Claude Science 可根据 GPU 所在位置和安全要求采用不同的运行配置。本教程聚焦于在配备 GPU 的机器上运行该平台。有关 GPU 兼容性信息,请参阅产品文档。你也可以在笔记本电脑上运行 Claude Science,然后通过 SSH、HPC 或 Modal 云计算连接远程 GPU。本教程要求你能够访问配备 NVIDIA L40S 或 NVIDIA H100 GPU 的工作站或云端机器,并已安装 Claude Science。整个流程大约需要 700 GB 存储空间:msa-search NIM 的 UniRef30 数据库约占 490 GB(使用仅包含 UniRef30 的配置,而不是完整的 1.4 TB 数据集),Boltz-2 和 OpenFold3 容器合计占用 30–40 GB。
默认情况下,Claude Science 会在沙箱中运行。要运行 BioNeMo NIM 微服务,需要使用能够提供本地或远程 GPU 资源的计算端点。在 Claude Science 中,选择 Customize > Compute > NVIDIA BioNeMo NIM > Connect。接着,从 GitHub 导入 BioNeMo Agent Toolkit skills,添加 NVIDIA API key,并连接到本地端点——这些端点实际上是使用主机 GPU 的 Docker 容器。
导入 skills、保存 API key 并配置本地连接后,创建一个新项目和会话。然后提示 Claude 创建所需的 NIM 微服务端点。
下载并启动 msa-search、openfold3 和 boltz2 微服务对应的本地 BioNeMo NIM 容器。对于 msa-search,只下载 UniRef30 数据库,这样下载量约为 490 GB,而不是完整的 1.4 TB。分别对每个微服务运行 smoke test,确认它们运行正常。
出现提示时,为两个模型选择 Approve endpoint。配置这些端点需要为每个微服务下载对应的容器。
步骤
三个 NIM 端点启动后,Claude Science 会负责编排整个结构预测流程。为了具体展示这一流程,本教程以 Seh1 蛋白,以及来自会导致副球孢子菌病的真菌 Paracoccidioides lutzii 的一个预测 Mio 家族互作蛋白为例。这个示例的灵感来自 Han、Tsenkov、Venanzi 等人的图 4e,论文题为 “AlphaFold Database expands to proteome-scale quaternary structures”(bioRxiv,DOI:10.64898/2026.03.27.714458)。
Seh1 和 Mio 家族蛋白参与保守的营养感知机制。其他生物的结构研究表明,Mio 能补全 Seh1 原本未闭合的 β-propeller,因此这对蛋白很适合用来检验 MSA 支持的复合物结构预测能力。
本教程使用 Paracoccidioides lutzii 中的一对蛋白:核孔蛋白 Seh1(C1GY11)和一个尚未表征、推测为其配体的蛋白(C1HCX1)。示例所探讨的结构问题是:与单独建模相比,在加入该候选配体后,Seh1 的预测结构会发生怎样的变化?
为回答这一问题,Claude Science 首先使用 MSA 为目标序列构建进化背景,然后将这些比对结果分别交给两个独立的折叠模型,同时保留输入和输出,便于在每个模型中比较单链和双链预测结果。
整个流程分为三个阶段:
- 使用 GPU 加速的 MSA Search NIM,为单链序列和物种配对序列生成 MSA。
- 使用 OpenFold3 NIM,分别预测单链结构和双链复合物结构。
- 使用 Boltz-2 NIM 重复预测,并独立评估每个模型。
阶段 1:生成 MSA
该智能体从 UniProt 获取两条蛋白质序列,并创建两种比对结果。首先,它会分别为两种蛋白创建非配对比对,为模型提供每条链的结构信息;然后,通过匹配同一物种中这两种蛋白的相关版本,创建配对比对。如果一种蛋白的变化始终与另一种蛋白的变化相对应,这种模式就能帮助模型预测两者可能发生相互作用的位置。
本次运行中,搜索为每种蛋白各返回了 202 条序列。智能体记录了 Seh1(384 个残基)和 C1HCX1(976 个残基)的来源与序列,并附上校验和以便验证。它没有截短任何序列,也没有提供结构模板、配体或其他约束条件。
使用以下提示词:
我正在比较单独存在的 Seh1 蛋白 C1GY11,以及它与 C1HCX1 形成的复合物。加载 msa-search-nim skill,并从 UniProt 下载当前的两条 FASTA 序列。记录每条序列的来源、下载时间、accession、长度、校验和及链 ID:C1GY11 使用 A,C1HCX1 使用 B。 使用 MSA Search NIM 为每种蛋白分别创建 A3M 比对。仅使用 Uniref30_2302,搜索类型设为 ColabFold,E-value 设为 0.0001,最多返回 500 条序列。然后按 A 在前、B 在后的顺序,使用 greedy pairing 为两种蛋白创建配对 A3M。 保存请求、响应、A3M 文件、端点、指标以及所有错误。如果无法创建配对比对,请停止并告知我;不要悄悄将其替换为其他类型的比对。
阶段 2:使用 OpenFold3 预测结构
OpenFold3 接收一个分子列表,其中每条链都可以包含对应的 msa(非配对比对);对于复合物,还可以包含 paired_msa(配对比对)。智能体会在相同的 Seh1 序列上运行两种条件:单体条件(链 A 及其 MSA)和异源复合物条件(链 A、B 及其各自的 MSA,再加上配对 MSA)。使用 mmCIF 作为输出格式,不使用模板,并保存服务实际返回的每个样本及其置信度字段。
使用以下提示词:
加载 openfold3-nim skill。使用已保存的比对结果生成两次 OpenFold3 预测: 1. 仅预测 C1GY11,作为 A 链。 2. 预测 C1GY11(A 链)与 C1HCX1(B 链)的复合物。 双蛋白预测使用配对比对结果。返回 mmCIF 文件。不要使用模板、配体、口袋或其他约束条件。 保存请求、响应、结构、运行时详情,以及服务返回的每一项置信度分数。这些分数仅反映模型的置信度;不要据此断言两种蛋白质发生了相互作用。如果无法提供配对 MSA 输入,请保存错误信息并停止,不要继续使用未配对的预测。
| 条件 | confidence_score | complex_plddt_score | complex_pde_score | ptm_score | iptm_score |
|---|---|---|---|---|---|
| Seh1 单体 | 0.25 | 82.3 | 0.58 | 0.82 | — (0) |
| Seh1 + C1HCX1 | 0.87 | 78.2 | 1.07 | 0.79 | 0.86 |
响应中包含 confidence_score, complex_plddt_score, complex_pde_score, ptm_score, iptm_score(以及 format, name, source);runtime_metrics 字段存在,但内容为空。
单体的 iptm_score 按设计固定为 0;而 OpenFold3 的综合 confidence_score 对界面质量赋予了较高权重。因此,即使单体折叠良好(pTM 0.82、pLDDT 82),综合分数仍可能偏低。应在 OpenFold3 内部解读 confidence_score,不要将其用于不同模型之间的横向比较。
阶段 3:使用 Boltz-2 重复预测
将相同的两个条件输入 Boltz-2 运行,并使用相同的链 ID 和无模板策略。这里有一个重要的架构差异:Boltz-2 没有单独的 paired_msa 字段。它为每条链接收一个 MSA,并在内部完成配对(顶层的 concatenate_msas 参数可选),因此每条 Boltz-2 链都使用了对应链的 A3M。
使用以下提示词:
加载 boltz2-nim skill,并使用 Boltz-2 重复进行相同的两次预测:先仅将 C1GY11 作为 A 链,再将 C1GY11 和 C1HCX1 分别作为 A 链和 B 链。使用已保存、且符合该 skill 支持格式的逐链比对结果。 不要启用亲和力预测,也不要使用模板、配体、口袋或接触约束。 保存请求、响应、结构、运行时详情、可用的 PAE,以及 Boltz-2 返回的置信度数值。如果服务未返回某个值,请如实记录,不要自行估算。使用 OpenFold3 和 Boltz-2,在不使用 MSA 的情况下重复上述预测。检查并分析全部结果,然后给出总结。
Boltz-2 生成了完整的 PAE 输出(write_full_pae=true)。
| 条件 | confidence | complex_plddt(0–1) | complex_pde | ptm | iptm | protein_iptm |
|---|---|---|---|---|---|---|
| Seh1 单体 | 0.79 | 0.79 | 1.11 | 0.82 | —(0) | — |
| Seh1 + C1HCX1 | 0.77 | 0.75 | 1.33 | 0.76 | 0.82 | 0.82 |
Boltz-2 返回了更丰富的置信度数据,包括 confidence_scores, ptm_scores, iptm_scores, protein_iptm_scores, complex_plddt_scores, complex_iplddt_scores, complex_pde_scores, complex_ipde_scores,以及逐链和成对数组、完整的 pae/pde 矩阵(复合物矩阵最大可达 1360×1360)。
服务唯一未返回的请求字段是运行时元数据(metrics: {})。
MSA 是决定结果的关键输入
由于该流程还运行了单序列(不使用 MSA)预测,因此可以直接评估第 1 阶段的价值。对于异源复合物而言,界面 pTM(iPTM)用于反映两条链之间预测接触情况;在两种模型中,不使用 MSA 都会导致这一指标大幅下降:
提供 MSA 输入时,OpenFold3 和 Boltz-2 的 iPTM 分别达到 0.85 和 0.82;不提供 MSA 输入时,则分别降至 0.14 和 0.19。五个样本的结果高度集中(SD ≤ 0.006),说明这一差异在不同样本中都很稳定。
| 异源复合物 iPTM | 有 MSA | 无 MSA | 降幅 |
|---|---|---|---|
| OpenFold3 | 0.85 | 0.14 | 0.72 |
| Boltz-2 | 0.82 | 0.19 | 0.63 |
两项稳健性检查进一步支持这一结果。首先,我们提高采样预算后分别运行两种条件:OpenFold3 使用 diffusion_samples=5,Boltz-2 使用五个样本、六个 recycling steps 和 200 个 sampling steps。结果依然没有变化:有 MSA 时界面置信度仍然很高,无 MSA 时界面置信度仍然崩溃(与单样本结果相比,iPTM 差异在 0.01 以内)。增加采样次数无法替代进化信息输入。
其次,向两个模型系列提供序列比对后,它们的结果相差不超过 0.03 iPTM。尽管两者采用不同架构,且 Boltz-2 使用了不同的 MSA 配对机制,但仍取得了相近结果,这说明跨模型的一致性较好。
单体结果揭示了两种模型各自对 MSA 的依赖程度。OpenFold3 即使折叠单链也需要比对信息(有 MSA 时 pLDDT 为 82,去掉后降至 36);Boltz-2 仅凭序列也能较好地折叠单体(0.79 → 0.73),但没有 MSA 仍无法确定界面位置。无论哪种情况,Stage 1 都不只是可选的预处理步骤,更是界面假设的基础。
检查工作流生成的结构
随后,智能体会检查加入候选互作伙伴后,预测的 Seh1 结构是否发生变化。对于每个模型,它会将单体和异源复合物中的 Seh1 链进行叠合,并检查 WD40 β-螺旋桨区域。
[
单体和异源复合物视图在对齐 Seh1 核心后采用相同的视角,从而显示出互作伙伴的链段如何占据螺旋桨边缘的开放位置。
两种彼此独立的模型都重现了原论文图 4e 中的结构观察:
- Seh1 的折叠结构得到补全,而不是发生重塑。将单体与异源复合物中的 Seh1 叠合后,核心 Cα-RMSD 在 OpenFold3 中为 0.68 Å(313/384 个残基),在 Boltz-2 中为 0.65 Å(307/384 个残基)。互作伙伴是在现有螺旋桨结构上进行补全;较大的全链 RMSD 仅来自靠近该叶片的约 70 个残基,它们会随结构闭合而发生位移。
- 两个模型放置的配对链段相同。OpenFold3 和 Boltz-2 分别独立地将一簇来自约 305–391 位残基的 C1HCX1 β 链定位到 Seh1 旁边,这与论文所说的“三条 β 链”一致。
- 该插入位于 WD40 的“魔术贴式”闭合位置。配对链段与 Seh1 的 N 端链(1–29 位残基)和 C 端链(约 331–384 位残基)接触,正好位于 WD40 螺旋桨闭合最后一个叶片的边缘。
需要注意的是,这些模型预测了 C1GY11–C1HCX1 之间存在相互作用,但这一点尚未通过实验验证,不能确认其确实构成生物学关联。在本例中,两个独立模型得出了相同的局部几何结构,因此形成了一个颇具说服力的假设,但还不能视为结合证据。这套工作流的真正价值,在于提供了一种可复现、以证据为基础的方法,用于提出和检查这类结构假设——最终结论仍需交由实验验证。
开始使用
BioNeMo Agent Toolkit 可帮助 Claude Science agents 生成 MSA、运行基于 NIM 的结构预测,并保存相关产物供后续审查。你可以在 GitHub 上探索这一工具包,将这套工作流应用于其他单体和复合物。