关于 protein_design_boltzgen
protein_design_boltzgen 是围绕 FastFold BoltzGen 的工作流 Skill,面向蛋白质、肽和纳米抗体设计及结果分析。它通过 API 创建、提交和运行工作流,并提供草稿审阅、候选指标及结构文件下载。
主要功能
- 01准备单项或多项设计 YAML
- 02获取或清理 CIF 输入文件
- 03创建并提交工作流图
- 04审阅草稿并确认后执行
- 05汇总候选指标并下载结果文件
适用场景
- 01构建蛋白质或肽结合体设计流程
- 02准备目标结构和设计规范
- 03查看候选设计指标与结构
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ fastfold-ai/ skills --skill protein_design_boltzgen安装后在 Claude Code 中输入/protein_design_boltzgen确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/.env.exampleapi_endpoints.mdpreset_references.mdmetrics_guide.mdspec_examples.mdreferences/examples/README.mdreferences/examples/binding_disordered_peptides/tpp4.yamlreferences/examples/cyclic_against_hiv_antibody_site/9d3d.yamlreferences/examples/nanobody_against_penguinpox_multi_spec/penguinpox.yaml9bkq-assembly2.cifreferences/examples/nanobody_scaffolds/7eow.yaml7xl0.yamlsonelokimab.yamlgontivimab.yamlisecarosmab.yamlisecarosmab.cifgontivimab.cifsonelokimab.cif7xl0.cifreferences/examples/protein_binding_small_molecule/chorismite.yamlreferences/examples/small_molecule_from_file_and_smiles/4g37.yaml4g37.pdbreferences/examples/vanilla_protein/1g13prot.yamlreferences/examples/vanilla_target_binding_site/README.mdbeetletert.yamlreferences/workflow_specs/protein_binding_small_molecule.workflow.ymlcyclic_against_hiv_antibody_site.workflow.ymlbinding_disordered_peptides.workflow.ymlnanobody_against_penguinpox.workflow.ymlsmall_molecule_from_file_and_smiles.workflow.yml详细介绍
蛋白质设计(BoltzGen)
概述
此技能运行 FastFold BoltzGen 工作流,流程与 Composer 使用的流程相同:
- 准备或生成设计规格 YAML(单个规格或多个规格)。
- 获取/清理 CIF 输入,或复用现有参考文件。
- 创建草稿工作流。
- 上传文件,并在一个事务中写入完整的工作流图(
workflow.yml)。 - 非空工作流图写入后,分享完整的 Composer 链接和草稿审阅摘要(输入 + 参数 + YAML 预览)。
- 请用户验证并确认。
- 执行、等待,并汇总候选项指标和结构链接。
此技能基于:
- BoltzGen 上游仓库和 README:https://github.com/HannesStark/boltzgen
- BoltzGen 论文(bioRxiv DOI
10.1101/2025.11.20.689494):https://www.biorxiv.org/content/10.1101/2025.11.20.689494v1.full
基础 URL
脚本默认值需与其他技能保持一致:
- API 默认值:
https://api.fastfold.ai - 面向用户的链接使用的 UI 默认值:
https://cloud.fastfold.ai
身份验证
首选方式(Sandwalk Agent): Integrations → Fastfold AI Cloud,该集成在聊天 shell 中以
FASTFOLD_API_KEY 的形式提供。此技能会发送 X-API-Key: <FASTFOLD_API_KEY>。
使用 Sandwalk 设置的环境变量——不要硬编码,也不要搜索主目录中的配置路径。
不要要求用户在聊天中粘贴密钥。只有在捆绑脚本明确报错“未配置”或身份验证错误后,才创建 .env 文件或要求用户执行
export。优先使用 printenv FASTFOLD_API_KEY 或运行脚本。
环境变量: FASTFOLD_API_KEY、SANDWALK_SESSION_WORKSPACE(工作区根目录)、
SANDWALK_SKILLS_DIR(设置后为技能根目录)。
其他方式: 工作区 .env(references/.env.example)、shell export,或在 https://cloud.fastfold.ai/api-keys 创建密钥。
如果脚本报告缺少密钥: 引导用户前往 Sandwalk Integrations(或使用 .env/export),然后重试。不要搜索文件系统中的密钥。
适用场景
- 用户请求 BoltzGen 设计(蛋白质、肽、纳米抗体、小分子结合剂)。
- 用户需要编写设计规格方面的帮助(单个或多个 YAML 规格)。
- 用户需要在上传前获取/清理 CIF/PDB 文件。
- 用户希望使用仅通过 API 的工作流,实现与 Composer 等效的功能。
- 用户请求草稿工作流/Composer 链接和运行状态。
- 用户请求解读 BoltzGen 输出指标和候选项。
脚本
此技能在 scripts/ 下附带独立脚本(仅使用标准库)。
Sandwalk Agent——调用方式(按顺序匹配,首个匹配项优先):
- 如果设置了
SANDWALK_SKILLS_DIR:python3 "$SANDWALK_SKILLS_DIR/protein_design_boltzgen/scripts/<name>.py ...". - 否则,使用 Skills System/技能提及上下文中的技能目录。
- 如果设置了
"$SANDWALK_SESSION_WORKSPACE",则将下载文件放在该目录下。
不要将 /protein_design_boltzgen、/skills/... 或 Modal /workspace 视为安装路径。不要硬编码 ~/.sandwalk/...,也不要使用 find/locate 搜索。
主要脚本:
python scripts/workflow_api.py— 创建/构建/上传/执行工作流并获取结果python scripts/fetch_cif.py— 获取输入 CIF 文件
关键执行防护措施(不可妥协)
如果 python scripts/workflow_api.py 或 python scripts/fetch_cif.py 返回错误:
- 报告确切的命令和简明错误信息。
- 如果未设置
FASTFOLD_API_KEY,引导用户前往 Sandwalk Integrations(或使用.env/export;在 https://cloud.fastfold.ai/api-keys 创建密钥)。 - 停止。不要尝试备用方式进行查找(
find、locate、ls包目录树、python -c)。
后台执行协议(必需)
当用户要求在“后台”运行 BoltzGen 时,按以下方式拆分:
- 在前台运行 draft/submit/execute。
- 立即捕获并打印
workflow_id。 - 仅将长时间等待/日志监控步骤放到后台运行。
- 使用同一个已保留的
workflow_id获取结果。
不可违反的规则:
- 绝不要将会生成规范 ID 的 create/submit/execute 步骤放到后台运行。
- 绝不要要求用户为 Agent 发起的运行找回
workflow_id。 - 绝不要通过搜索文件系统找回 ID(
find、locate、ls /tmp、grep shell 历史记录)。 - 如果因命令错误导致未能捕获 ID,请在前台重新运行 submit,并返回新的
workflow_id。
“显示示例”的快捷方式
对于“展示 Boltzgen 蛋白质设计示例”之类的提示词:
- 运行
python scripts/workflow_api.py example-files --list。 - 直接呈现该命令的输出。
- 如果用户要求了解详情,可选运行一个预设解析命令(
--preset ... --json)。 - 除非用户明确要求检查文件,否则不要扫描目录。
- 创建工作流草稿:
- 指定名称:
python scripts/workflow_api.py new --name "API - vanilla target binding site"
- 自动生成简单名称:
python scripts/workflow_api.py new --preset vanilla_target_binding_site
- 指定名称:
- 解析捆绑的示例文件(建议作为示例的第一步):
- 列出可用预设:
python scripts/workflow_api.py example-files --list
- 解析某个预设对应的文件:
python scripts/workflow_api.py example-files --preset vanilla_target_binding_site --json
- 5CQG 的快捷别名:
python scripts/workflow_api.py example-files --preset 5cqg --json
- 列出可用预设:
- 根据官方模板构建工作流规范(上传后):
python scripts/workflow_api.py build-spec --preset vanilla_target_binding_site --out /tmp/boltzgen_workflow.ymlpython scripts/workflow_api.py build-spec --preset 5cqg --json
- 获取并清理 CIF:
python scripts/fetch_cif.py --pdb-id 5cqg --out-dir /tmp/boltzgen_inputs
- 将文件上传到工作流工作区:
python scripts/workflow_api.py upload --file /tmp/boltzgen_inputs/5cqg.cif --file-type proteinpython scripts/workflow_api.py upload --file ./my_design.yaml --file-type yml
- 保存图规范(单次 upsert):
python scripts/workflow_api.py upsert --spec /tmp/workflow.yml
- 供用户验证的草稿审查(upsert 后):
python scripts/workflow_api.py draft-reviewpython scripts/workflow_api.py draft-review --json- 包含:
- upsert 后的
workflow.yml预览 - 每个设计规范的 YAML 预览(运行前可查看结合位点字段)
- upsert 后的
- 打印/分享完整的 Composer 链接(upsert 后):
python scripts/workflow_api.py composer-link
- 执行:
python scripts/workflow_api.py execute
- 等待(状态变为 COMPLETED 时自动下载所有构件):
python scripts/workflow_api.py wait --poll-seconds 30 --timeout-seconds 7200- 选择输出目录:
python scripts/workflow_api.py wait --out-dir ./fastfold-artifacts/protein_design_boltzgen/<workflow_id> - 选择不自动下载:
python scripts/workflow_api.py wait --no-download
- 日志(单次快照和解读):
python scripts/workflow_api.py logspython scripts/workflow_api.py logs --tail-lines 200
- 运行时实时查看日志:
python scripts/workflow_api.py logs --watch --poll-seconds 30 --timeout-seconds 1800
- 日志 JSON 负载:
python scripts/workflow_api.py logs --json
- 获取候选项/指标及链接:
python scripts/workflow_api.py resultspython scripts/workflow_api.py results --json(包含完整的parsed_results_raw、所有指标字段名称以及ranked_table)
- 将所有输出构件(CIF/CSV/PDF)下载到本地目录(写入
INVENTORY.md和inventory.json):python scripts/workflow_api.py downloadpython scripts/workflow_api.py download --out-dir ./fastfold-artifacts/protein_design_boltzgen/<workflow_id>python scripts/workflow_api.py download --json- 默认输出目录:
./fastfold-artifacts/protein_design_boltzgen/<workflow_id>;可通过--max-bytes设置每个文件的大小上限(默认 200 MB)
Agent 应为用户运行这些脚本,而不是只列出命令。
下载结果和制品
结果会以库项目引用(libraryItemId + fileName)的形式返回输出文件,而不是直接 URL。始终使用随附脚本下载——绝不要声称文件只能通过浏览器访问,也不要使用浏览器路由 cloud.fastfold.ai/api/structure(该路由会拒绝 API 密钥)。正确的 API 密钥下载路径是 GET /v1/library/file/{item_id}/{file_name}(注意 library/file/... 的顺序);脚本会解析已签名的 artifacts.fastfold.ai URL,并保存文件内容。
- 运行达到 COMPLETED 时,自动下载所有制品——不要等用户提出要求:
- 达到 COMPLETED 时,
wait会自动下载(只有用户选择不下载时才传入--no-download)。 - 如果运行已完成,自己运行
python scripts/workflow_api.py download。
- 达到 COMPLETED 时,
- 对于非 COMPLETED 的终止状态(FAILED/STOPPED/CANCELLED),不会有制品——请说明状态。
- 每次下载都会在输出目录中写入清单:
INVENTORY.md(易读的表格,包含文件、类型、大小、描述和 CSV 列预览)以及inventory.json(完整列列表)。请引导用户查看INVENTORY.md。
制品类型:rank<k>_<x>.cif(排名第 #k 的设计结构)、all_designs_metrics.csv(所有设计)、final_designs_metrics_<budget>.csv(最终选定集合)、results_overview.pdf(报告)。
下载后,报告本地 out_dir 路径以及 Composer/Mol* 链接。请参阅 references/api_endpoints.md。
引用本地文件:download / wait 自动下载后,逐字复制 local_paths 或 DOWNLOADED_LOCAL_PATHS: 中的每个路径——使用完整绝对路径,每行一个。绝不要截断文件名或工作流 ID。对于远程 URL,请输出 Label: https://…(显示裸 URL),不要使用 Markdown [Label](url)。
示例优先行为(必需)
用户请求示例时(尤其是“帮我设计一个蛋白质”“简单肽结合剂”“我们来做 5CQG”这类自然语言提示),必须严格按以下顺序操作:
- 首先使用
references/examples/中随附的本地预设文件。 - 如果存在匹配的本地预设文件,不要从 PDB/RCSB 获取文件。
- 不要搜索仓库来发现文件(不要探索性地查找路径);直接使用已知的参考路径。
- 通过
example-files解析文件 -> 创建草稿 -> 上传本地参考文件 -> 使用build-spec构建工作流规范 -> 更新图 -> 分享草稿供审阅 -> 等待用户确认。
自然语言请求的默认映射:
- 通用“简单肽结合剂” ->
vanilla_target_binding_site - “5CQG” ->
references/examples/vanilla_target_binding_site/beetletert.yamlreferences/examples/vanilla_target_binding_site/5cqg.cif
- “简单蛋白质示例” ->
vanilla_protein
仅在以下情况下,才从外部来源获取或清理 CIF:
- 用户明确要求使用本地示例未涵盖的新靶标,或
- 用户要求替换/覆盖随附的参考文件。
对于预设冒烟测试,不要手动编写工作流 YAML。始终使用:
references/workflow_specs/*.workflow.yml(官方模板)python scripts/workflow_api.py build-spec ...(替换占位符)
从头编写 YAML(没有合适的预设时)
如果没有符合用户需求的内置预设,请按照以下协议,根据用户输入创建设计规范 YAML:
- 首先向用户收集必需的输入:
- 目标结构文件(优先使用
.cif;也允许.pdb) - 目标链和可选的残基范围
- 设计模式(蛋白质/肽/纳米抗体/配体上下文)
- 设计约束(结合位点残基、包含/排除、插入、键)
- 目标结构文件(优先使用
- 请用户在起草最终 YAML 之前提供/上传目标 CIF/PDB 文件。
- 仅将输入映射到以下来源中支持的键:
references/yaml_keys.md- 上游 BoltzGen 参考文档:https://github.com/HannesStark/boltzgen/blob/main/README.md
- 不要编造或传递未记录的键;如果请求的字段不受支持,请说明原因并提出最接近的受支持形式。
- 上传之前/执行之前,先向用户展示生成的 YAML 草稿以供确认。
- 将工作流节点
inputPayload.files[].fileName保留为逻辑名称(而非哈希存储名称)。
工作流命名策略
new接受--name作为覆盖值。- 如果省略
--name,脚本会自动生成一个简单名称:API - <preset-or-goal>
- 建议传入
--preset或--goal,以确保自动生成的名称清晰易懂。
工作流模式(API == Composer)
- 创建草稿:使用
POST /v1/workflows/graph/add(workflow_name=boltzgen_v1,create_mode=api)。 - 先创建/上传文件(
/v1/library/create+/v1/library/{id}/upload-files)。 - 通过
POST /v1/workflows/{id}/workflow.yml一次性写入完整图(单个事务)。 - 运行草稿审查(
draft-review)并分享:https://cloud.fastfold.ai/workflow/composer/<workflow_id>- 已上传的输入文件
- 流水线节点参数
- 工作流/设计规范 YAML 预览,以便用户核对结合位点值
- 询问用户:“请检查草稿。如果一切看起来都没问题,请告诉我,我就会运行。”
- 只有在获得确认后,才通过
POST /v1/workflows/execute执行。 - 通过
GET /v1/workflows/status/{id}轮询状态,直到任务结束。 - 如果用户请求查看日志或调试,请通过
GET /v1/workflows/logs/{id}(或python scripts/workflow_api.py logs --watch)读取实时日志,并说明关键标记。 - 通过
GET /v1/workflows/task-results/{id}读取结果。 - 在状态为 COMPLETED 时自动下载产物:运行结束后,
wait会自动下载所有输出文件(CIF/CSV/PDF);也可以显式运行python scripts/workflow_api.py download。两者都会通过GET /v1/library/file/{item_id}/{file_name}解析签名 URL 并将文件保存到磁盘。向用户报告本地路径。
Design Spec 编写
使用:
references/spec_examples.md,了解单个和多个 Spec 的模式。references/examples/下捆绑的预设示例文件(与 Composer 的 7 个预设相同):vanilla_target_binding_site:references/examples/vanilla_target_binding_site/beetletert.yamlreferences/examples/vanilla_target_binding_site/5cqg.cif
vanilla_protein:references/examples/vanilla_protein/1g13prot.yamlreferences/examples/vanilla_protein/1g13.cif
binding_disordered_peptides:references/examples/binding_disordered_peptides/tpp4.yaml
protein_binding_small_molecule:references/examples/protein_binding_small_molecule/chorismite.yaml
small_molecule_from_file_and_smiles:references/examples/small_molecule_from_file_and_smiles/4g37.yamlreferences/examples/small_molecule_from_file_and_smiles/4g37.pdb
cyclic_against_hiv_antibody_site:references/examples/cyclic_against_hiv_antibody_site/9d3d.yamlreferences/examples/cyclic_against_hiv_antibody_site/9d3d.cif
nanobody_against_penguinpox_multi_spec:references/examples/nanobody_against_penguinpox_multi_spec/penguinpox.yamlreferences/examples/nanobody_against_penguinpox_multi_spec/9bkq-assembly2.cif- 位于
references/examples/nanobody_scaffolds/的支架依赖项
references/yaml_keys.md,了解支持的键和警告。
用户要求“示例”时,优先使用这些捆绑的预设文件。
关键约定:
- 残基索引采用规范 mmCIF 编号(
label_asym_id),从 1 开始。 - YAML 中的文件引用相对于 YAML 文件所在位置。
- 在 FastFold 工作流节点
inputPayload.files[].fileName中,使用逻辑名称(例如5cqg.cif,而不是哈希存储名称)。 - 多 Spec 工作流应为每个 YAML 保留一个 Design Spec 节点,并在图依赖项中连接引用。
候选指标解读
解释输出质量时,使用 references/metrics_guide.md。
该指南包含预期的输出结构,以及返回变量中各字段的含义。
向用户展示结果时,请包含:
- 一个包含以下列的排名表:
RankSequenceiPTMpTMMin Interaction PAEHelix %Sheet %Loop %Molstar Link
- 每个候选项的单独 Mol* 链接,格式如下:
https://cloud.fastfold.ai/mol/<libraryItemId>?from=library
统一使用裸 URL/绝对路径作为标签(sandwalk TUI 无法打开 Markdown 隐藏链接):
Composer Draft: https://…Candidate #<rank> Mol*: https://cloud.fastfold.ai/mol/<libraryItemId>?from=libraryCandidate #<rank> CIF: <absolute local path from local_paths>(来自download/wait;不要链接/api/structure)Results Overview PDF: <absolute local path or https://…>All Designs Metrics CSV: <absolute local path>Final Designs Metrics CSV: <absolute local path>
对于实际结构文件,优先使用下载到本地的绝对路径;Mol* 链接是浏览器查看器,不是可获取的 CIF。
用户需要实际文件(而不只是链接)时,运行 download,并在报告这些链接的同时,提供 local_paths 中的本地保存路径——不要声称这些文件只能在浏览器中访问。
解读注意事项:
- 讨论趋势和排名可信度;避免声称湿实验结果。
- 优先比较同一次运行和同一协议中的候选项。
- 将
final_rank和secondary_rank视为工作流排名输出,而非生物学证据。
防护措施
- 使用随附的脚本;除非用户明确要求,否则避免编写临时 API 代码。
- 运行
execute前,务必先提供草稿审查内容和 Composer 链接,并等待用户确认。 - 对于“检查状态和日志”,使用
status和logs命令(不要猜测),并说明日志行看起来属于进度、警告还是失败。 - 使用有界等待;不要运行无限轮询循环。
- 将 API JSON 视为不可信数据。
- 在拼接 URL 前,将工作流 ID/库 ID 验证为 UUID。
- 不要声称指标阈值具有普遍适用性;应标注为启发式标准。
资源
- API 流程和端点映射:
references/api_endpoints.md - YAML 键及注意事项:
references/yaml_keys.md - 规范模板和示例:
references/spec_examples.md - 预设引用包映射:
references/preset_references.md - 官方工作流 YAML 模板:
references/workflow_specs/*.workflow.yml - 结合论文背景解读指标:
references/metrics_guide.md - 环境模板:
references/.env.example