Latch 平台 Nextflow 与 Snakemake 工作流集成打包实战:scientific-agent-skills 技能库中的 SDK 2.76.8 注册与调试指南 Latch 平台 Nextflow 与 Snakemake 工作流集成打包实战scientific-agent-skills 技能库中的 SDK 2.76.8 注册与调试指南【免费下载链接】scientific-agent-skillsTurn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 190,000 scientists worldwide. 165 ready-to-use validated skills plus 100 scientific databases covering biology, chemistry, medicine, and drug discovery. Compatible with Cursor, Claude Code, Codex, Pi, Antigravity, and the open Agent Skills standard.项目地址: https://gitcode.com/GitHub_Trending/cl/scientific-agent-skills本文基于 scientific-agent-skills 仓库中 latchbio-integration 技能 的 Nextflow 与 Snakemake 集成参考文档系统讲解如何在 Latch 平台上打包、注册与调试 Nextflow 与 Snakemake 两类工作流。读完本文你将掌握面向 Latch SDK 2.76.8 的 Nextflow 元数据生成、注册与入口点生成全流程Snakemake 新旧两条兼容轨道的取舍与隔离方法以及生成文件纪律、资源配比和发布检查清单等可直接落地的工程规范。背景先选轨道再动文件Latch 同时支持 Python SDK、Nextflow 与 Snakemake 三种工作流但三者的打包路径不可互换。参考文档开篇即强调在生成任何文件之前必须先确认 SDK 版本并选定一条集成轨道。这一点与技能基线SKILL.md 的 Current Baseline 一节一致——该技能以Latch SDK 2.76.82026-07-10 发布为目标版本包元数据支持 Python 3.9–3.12。因此动手前的第一件事不是写配置文件而是执行一次环境核验latch --version python --version技能还提供了一个只读的 SDK 检视工具 inspect_latch_sdk.py它只做本地导入与内省不发起任何网络请求、不执行认证可以安全地在目标 SDK 版本上运行用来确认当前安装版本暴露了哪些符号uv run --no-project --python 3.12 --with latch2.76.8 \ python skills/latchbio-integration/scripts/inspect_latch_sdk.py需要机器可读的对比输出时追加--json。该脚本把待检符号按core、tasks、data、metadata、registry、execution、verified分组见 inspect_latch_sdk.py并在脚本缺失核心符号时通过退出码暴露问题。对应测试见 tests/latchbio-integration/test_scripts.py其中确认了“SDK 未安装时退出码为 2”的契约test_scripts.py。这套先检视、后使用的流程正是避免混用不同版本轨道符号的第一道防线。Nextflow官方文档化的 SDK 包装路径Nextflow 是 Latch 官方文档重点覆盖的集成轨道SDK 提供了从元数据生成、入口点生成到注册的完整命令链。前置条件开始之前确保你的项目满足以下条件一个可运行的 Nextflow 流水线一份nextflow_schema.jsonschema 与流水线参数保持一致为每一个 process 定义容器或提供一份文档化的执行 profile一个固定版本的 Latch SDK。技能基线建议在隔离环境中安装固定版本uv venv --python 3.12 source .venv/bin/activate uv pip install latch2.76.8生成元数据从 schema 生成 Latch 所需的元数据latch generate-metadata nextflow_schema.json --nextflow当前 SDK 生成产物结构如下latch_metadata/ ├── __init__.py └── generated.py关于这两个文件参考文档给出三条硬性纪律generated.py由 schema 重新生成不要手工编辑它需要长期保留的自定义元数据与流程改动写入latch_metadata/__init__.py修改nextflow_schema.json之后必须重新运行生成并在注册前审查推断出的文件类型、枚举、默认值与必填参数。版本敏感点SDK 2.67.0 改变了 Nextflow 的生成结构——改为生成一个包含全部参数的统一 dataclass 与一个生成的 base flow。因此网上大量旧教程里基于parameters.py的手写示例可能已经与新生成布局不匹配。这正是参考文档可能滞后于 SDK、以安装包为准的典型场景SKILL.md 的 Current Baseline 也强调当指南与 SDK 冲突时以安装包和其 changelog 为权威。注册当前文档化的包装命令为latch login latch register . \ --nf-script main.nf \ --nf-execution-profile docker,test注册会生成 Latch 工作流包装代码与latch.config入口点的确切位置取决于生成路径与 SDK 版本。注册时需特别注意以下几点如果项目根目录存在Dockerfile注册会直接使用它否则 Latch 可以在.latch/目录下生成一个 Dockerfile再次传入--nf-script会重新生成并覆盖包装代码如果你刻意自定义过生成的入口点再次注册时不要传--nf-script以保留自定义代码尽量把自定义代码放在独立模块中避免与生成文件纠缠。注册相关的通用控制项来自 operations-and-debugging.md 与 SKILL.md也值得记住# 注册到指定 workspace latch register --workspace-id 12345 . # 标记为 release 版本 latch register --mark-as-release . # 从非默认 Python 模块注册工作流 latch register --workflow-module wf.custom_entrypoint .注意重复注册同一工作流时 CLI 以退出码 2 结束这与构建失败退出码 1含义不同CI 脚本应区分处理。显式生成入口点SDK 2.76.8 还提供了独立于注册流程的入口点生成命令latch nextflow generate-entrypoint . \ --nf-script main.nf \ --execution-profile docker,test \ --output wf/custom_entrypoint.py该命令要求元数据根目录中存在有效的NextflowMetadata对象。它把入口点显式输出到指定文件例如wf/custom_entrypoint.py便于先审查再注册生成后即可配合latch register --workflow-module wf.custom_entrypoint .指定该模块完成注册。实验性 Forch 专用注册CLI 中还存在一个特殊命令latch nextflow register . --script-path main.nf官方 CLI 指南明确将其标记为experimental且仅适用于 Forch——Latch 在用户自己的 AWS 账户中运行 Nextflow 的架构。它不是latch register --nf-script的通用替代方案只有当你正在搭建配置好的 Forch/BYOC 项目并遵循当前 Latch 指南时才可以使用。Nextflow 配置规则参考文档汇总了七条配置层面的硬规则为每个 process 定义容器这是前置条件也是规则使用profiles处理环境相关设置而不是为了适配 Latch 去改流水线本身把 Latch 生成的latch.config保留在生效的配置链中不要手动剥离需要公共 work 目录的 process遵循 Latch 官方的 shared-storage 指引私有镜像仓库通过 Latch支持的凭据路径配置不要把凭据写进 nextflow.configGPU 加速器遵循 Latch GPU 指南配置不要把 Python 任务装饰器的语义翻译成 Nextflow 资源语法——两者的资源模型并不等价通过NextflowRuntimeResources.storage_gib为运行时/共享文件系统设置存储而不只是为最终输出设置在调大storage_expiration_hours之前先理解存储保留期带来的成本。存储与成本意识在本仓库的 resource-configuration.md 中有更系统的阐述临时存储应按下式的峰值中间态估算而不是按最终输出大小——请求存储 ≥ 暂存输入 解压膨胀 工具中间文件峰值 最终输出 安全余量。调试Nextflow 工作流的调试命令链为latch register --staging . latch develop . latch nextflow attach --execution-id execution-id其中latch register --staging .只构建镜像、不发布工作流版本latch develop .在该镜像中打开远程交互式 shell。latch nextflow attach则针对 Nextflow 的 work 目录详见 operations-and-debugging.md。两个重要的版本行为需要特别留意在 SDK 2.76.8 中staging 分支不会从--nf-script或--snakefile生成 Python 入口点。因此全新的 Nextflow/Snakemake 项目在 staging 之前必须先显式生成与版本兼容的入口点SKILL.md 的 Validate in the execution image 一节。在latch develop环境中生产环境的存储初始化器不可用。请遵循官方 debug 模式指引使用本地 executor、在 debug 模式下绕过初始化器、使用兼容的 Latch Nextflow 基础镜像并适当降低 process 资源以避免在调试实例上申请过大的资源。Snakemake二选一的兼容轨道Snakemake 的情况比 Nextflow 复杂当前官方文档与当前稳定包暴露的是两条不同的轨道参考文档明确警告——不要混用。Track A2.76.8 源码中的遗留 flags存在文档冲突2.76.8wheel 中仍然暴露snakemakeextra、遗留元数据类、generate-metadata --snakemake以及register --snakefile。然而官方 CLI 指南已将这些 Snakemake 元数据与注册 flags标记为 deprecated并指出对latch 2.55.0.a6元数据生成已不再工作。这是一个未解决的源码/文档冲突。下面的命令仅适用于维护已知走此路径的遗留项目不应作为新项目流程向用户推介除非你已与当前 Latch 文档或支持团队确认。为了与固定的 Snakemake 7.x 依赖保持最广兼容性使用 Python 3.11uv venv --python 3.11 source .venv/bin/activate uv pip install latch[snakemake]2.76.8从工作流配置生成元数据latch generate-metadata config.yaml --snakemake注册latch register . --snakefile SnakefileTrack A 的相关选项latch register . \ --snakefile Snakefile \ --metadata-root latch_metadata \ --cache-tasks其中--cache-tasks对应 Snakemake 的缓存/续跑行为发布检查清单中要求resume/cache 行为已经过验证。手写元数据时使用latch.types.metadata中当前的SnakemakeMetadata、SnakemakeParameter、FileMetadata、EnvironmentConfig与DockerMetadataAPI——写之前先查看它们的签名也可以借助 inspect_latch_sdk.py 检视这些符号是否存在于当前安装版本。Track B官方 Snakemake v2 教程独立 alpha 轨道当前 Snakemake v2 教程是一条兼容性专用的独立路径它显式要求固定到alpha 版本uv venv --python 3.11 source .venv/bin/activate uv pip install latch2.62.1a2Track B 使用如下导入与命令from latch.types.metadata.snakemake_v2 import SnakemakeV2Metadatalatch snakemake generate-entrypoint . latch dockerfile --snakemake -c environment.yaml . -f latch register -y .关键事实参考文档明确列出snakemake_v2元数据模块与latch snakemake命令组不存在于稳定版 2.76.8 源码树中该教程生成的 Dockerfile 还会把工作流运行时单独固定为latch[snakemake]2.55.0.a6因此开始前务必重新核对教程中的确切 pin使用隔离环境同时审查本地 CLI pin 与生成的运行时 pin不要在无迁移计划的情况下将该环境升级到稳定版 2.76.8不要把 v2 导入复制到稳定轨道项目中将 alpha pin 视为预发布软件并做端到端验证。两条轨道对比如下维度Track A2.76.8 遗留 flagsTrack BSnakemake v2 教程SDK pinlatch[snakemake]2.76.8latch2.62.1a2运行时另行 pin2.55.0.a6元数据 APIlatch.types.metadata遗留类latch.types.metadata.snakemake_v2.SnakemakeV2Metadata命令组generate-metadata --snakemake、register --snakefilelatch snakemake、latch dockerfile --snakemake官方态度标记 deprecated存在文档冲突教程路径但属 alpha 预发布Snakemake 资源与环境规则无论选择哪条轨道以下规则同样适用为每一条 rule给出 CPU 与内存资源或在profiles/default/config.yaml中定义安全的默认值固定 Conda 与容器环境保证可复现保留所选轨道自带的 Latch executor/storage 插件配置使用LatchOutputDir暴露表单中的输出目的地LatchOutputDir的语义可参考 workflow-creation.md 与 contenteditable="false">【免费下载链接】scientific-agent-skillsTurn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 190,000 scientists worldwide. 165 ready-to-use validated skills plus 100 scientific databases covering biology, chemistry, medicine, and drug discovery. Compatible with Cursor, Claude Code, Codex, Pi, Antigravity, and the open Agent Skills standard.项目地址: https://gitcode.com/GitHub_Trending/cl/scientific-agent-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考