用途
该技能用于搭建 ToolUniverse 的 ProteinMPNN / SolubleMPNN 远程工具:在固定骨架上做反向折叠(inverse folding),即给定主链结构,生成能够折叠回该结构的氨基酸序列。典型工作流是:先用骨架生成器(如 RFdiffusion、Genie)产出主链,再用 ProteinMPNN 设计序列,最后用结构预测器(如 Boltz、OpenFold3、ColabFold)验证设计能否折回。
资料区分了几个相邻工具:esm_if1 同样为骨架设计序列,但使用 142M 参数的 GVP-Transformer 解码;ef2inv 通过折叠模型梯度下降设计结合体序列,属于不同任务且需要 GPU。
主要能力与特点
- 运行原生 ProteinMPNN 的循环逻辑,验收套件在五个案例上逐字节比对输出,结果一致。
- 纯 CPU 运行,[gpu] policy = "none",不使用 GPU;资料说明在不声明显存预算的情况下,该提供方可与机器上的折叠模型并存。
- 权重随克隆附带(vanilla 与 soluble 各 6,681,301 字节),无需下载,也无需接受条款。
- 提供模型独立环境与 MCP 服务器环境两套隔离环境,二者不能互相导入。
- 支持一次性登录后以单条命令私密共享:tu remote share proteinmpnn。
前提条件
- 在 Linux 上从 ToolUniverse 仓库根目录运行,主环境 Python 3.12.3。
- 不需要 GPU,也不会使用 GPU。
- 模型环境必须恰好是 Python 3.11(工具包自身要求,锁文件为 cp311)。
- MPNN_DIR 指向原生克隆目录。
- 提供方数据、权重、缓存和凭据不要放入 Git。
- 绑定回环地址;非回环绑定需要 TOOLUNIVERSE_API_TOKEN,且不得写入参数或结果。
使用方式
先运行标准库契约检查:
python scripts/remote_validation/setup_skill_preflight.py --implementation proteinmpnn
导出提供方资源后加 --check-provider-env;服务器启动后加 --live 验证 MCP 工具集;共享前加 --check-connect-prereqs(只报告密钥是否设置,不打印值)。
创建模型环境:
uv venv --seed --managed-python --python 3.11.5 ~/proteinmpnn-venv export TOOLUNIVERSE_PROTEINMPNN_PYTHON="$HOME/proteinmpnn-venv/bin/python" export TOOLUNIVERSE_PROTEINMPNN_WEIGHTS="$HOME/ProteinMPNN"
逐项执行五步安装,便于定位失败:
for step in preflight environment kit weights smoke; do python -m tooluniverse.cli remote setup proteinmpnn --only "$step" || break done
各步骤预期:preflight 返回 OK;environment 安装 17 个固定版本发行包;kit 扩展稀疏检出并克隆或校验原生仓库,输出 "WEIGHTS OK: 2/2 pinned files match stock/PINS.json";weights 复核两个检查点;smoke 对 40 残基骨架做 4 个设计并返回序列。
启动服务器:
python -m tooluniverse.remote.proteinmpnn.proteinmpnn_tool
worker 在首个请求时启动,空闲 900 秒后退出。调用示例参数包括 structure(PDB 文本)、num_sequences、temperature、weight_set、seed;返回 sequences、native_sequence、native_score 以及 designs(每条含 temperature、sample number、score、global_score、seq_recovery)。
参数边界:num_sequences 为 1–128;batch_size 为 1 到 num_sequences 且必须整除;temperature 在 (0, 1];seed ≥ 1;残基数 ≤ 3000;结构 ≤ 8 MB。工具层以 {"error": ...} 返回错误而不抛异常。
等价性验证
对 worker 做任何改动后应重跑该检查:用 run.sh design --mode off 对单个结构运行原生流程,再将相同结构、seed、数量与温度发给提供方,逐字段比对输出。注意原生流程在整个数据集上共用一条 RNG 流,多结构示例中后一个结构的序列受前一个结构抽取影响,因此比对时应使用单结构基线。
适用场景与限制
适用于在 CPU 主机上以等价输出为目标的反向折叠任务,以及需要与折叠模型并存的私有部署。资料明确说明:公开发布、跨用户隔离、并发和恢复均未测试,应保持私有部署;该实现未经过 Platform 矩阵验证;证据为单卡、回环端点上的本地结果。资源与 kit 自身检查可能显示 gpu=NVIDIA GB10,但那只是通过 NVML 读取,torch 无法使用该卡。