Nextflow 可复现数据流水线
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/nextflow。
技能介绍
要解决什么问题
数据密集型工作流(尤其是生物信息学)往往卡在三个地方:执行环境不一致(本机能跑、集群上挂)、调度与并行要手写、以及失败后从头重跑浪费算力。Nextflow 用通道连接 process 任务,由数据依赖推断顺序与并行度;配合容器与 -resume 缓存,同一套 .nf 可通过 nextflow.config 的 profile 在本地、SLURM/SGE 等 HPC 或 AWS/Google/Azure Batch、Kubernetes 上切换,而不改业务脚本。
技能如何帮你做事
本 skill 分两条主线:运行已有 nf-core 或自定义流水线,以及开发模块/子工作流。
- 运行侧:先用
-profile test(可与docker/singularity/conda组合,容器类 profile 互斥)做冒烟;流水线参数用--input、--outdir等,nf-core 通常吃 samplesheet CSV;-resume复用缓存,-r固定发布版本。可用nf-core pipelines launch做 schema 校验与参数文件生成。 - 开发侧:DSL2 下的
process(input/output/指令与script)、channel 与 operator、带take/main/emit的 workflow、include模块;nf-core 约定含 meta map、ext.args、stub:与 nf-test。 - 配置与扩展:executor、资源标签、
withName/withLabel、容器引擎选型见 skill 内 references(configuration、containers、running-pipelines、testing 等)。
适用边界与注意点
需要 Bash 与 Java 17+;建议固定 NXF_VER 与流水线 -r 版本,科学可复现运行不要追 latest。每个 process 应自带容器/Conda 环境,勿依赖主机全局工具。Nextflow 26.04 起默认严格语法:优先 channel.of、显式闭包参数、def 与命名 emit,可用 nextflow lint 自查。
使用场景
- 研究所 SLURM 集群上,用 samplesheet CSV 启动 nf-core 流水线并固定 `-r` 发布版本
- 自定义 `.nf` 或 nextflow.config 报错时,对照 process/channel 逻辑与 executor 配置排查失败任务
- 编写 nf-core 模块前用 `nf-core modules install` 复用现有模块,并用 nf-test 与 lint 在提交前自测
- 真实样本跑通前,用 `-profile test,docker`(或 singularity/conda)做环境冒烟再切生产 profile
适合人员
- 负责把测序下机数据接入标准分析流程、并在 HPC 上保证可复现运行的生信工程师
- 向 nf-core/modules 或自有仓库维护 DSL2 模块与子工作流、需对齐 meta map 与 ext.args 约定的流水线开发者
- 在本地、批调度集群与云 Batch/K8s 之间为同一流水线切换 profile 与容器的科学计算或平台维护者
- 用 nextflow_schema.json、params-file 管理多样本批量参数并协调 `-resume` 与资源标签的项目或实验室负责人