对于第一次开始生信项目的人来说,或许您在创建完文件夹后,不知道如何进一步下手;或者如果您是需要经常开始新项目的实验员或熟练工,您可能会感觉每次建立新项目时都需要从零开始配置环境和项目结构,非常麻烦。
因此,我使用Copier创建了一个空白的生信标准项目模板,可以让您只运行一条命令就能把这些繁琐的起始工作搞定,直奔实际的写业务代码的环节。
GitHub 地址:https://github.com/h4rvey-g/bioinformatics-copier-template.git
TL;DR
运行
uvx --with copier-templates-extensions --from copier copier copy --trust \ https://github.com/h4rvey-g/bioinformatics-copier-template.git \ path/to/destination这个模板内置了什么?
生成后的项目会包含:
pixi.tomlmain.nfnextflow.configconf/base.configconf/modules.configconf/local.config 或 conf/slurm.config.copier-answers.ymlAGENTS.mddata/results/其中比较关键的是这几个部分。
1. Pixi:环境和任务统一管理
模板使用 Pixi 1 管理环境和任务。
也就是说,项目生成后,您可以直接使用:
pixi installpixi run configpixi run lintpixi run run这样做的好处是:
环境依赖有统一入口; 常用命令不需要记很长; 新成员接手项目时更容易复现; 本地开发、测试、运行流程更清晰。
在一个生信项目里,环境可复现性非常重要。 Pixi 可以把“这个项目该怎么装、怎么跑”收敛到项目本身,而不是散落在 README、聊天记录或个人 shell history 里。
2. Nextflow:从一开始就按工作流组织
模板内置了一个 Nextflow DSL2 starter workflow。
生成后的项目中会有:
main.nfnextflow.configconf/base.configconf/modules.configstarter workflow 会读取:
assets/samplesheet.csv然后向:
results/写入一些小的 summary 文件,用于 smoke test。
这意味着新项目生成后,不是一个空壳,而是一个可以立即验证运行链路的最小工作流。
您可以先确认:
pixi run run能跑通,然后再逐步把真实分析模块替换进去。
3. local / Slurm 二选一:生成时就确定执行环境
不同项目可能运行在不同环境:
有些只需要本地跑; 有些要提交到 HPC; 有些需要 Slurm; 有些还涉及 GPU 资源。
这个模板在生成项目时支持 executor 选择:
local或:
Slurm生成后项目中只会保留对应的 executor config:
conf/local.config或者:
conf/slurm.config这样项目结构更干净,不会混入一堆暂时用不到的配置。
4. 对 Slurm 更友好:支持分区和 GPU 资源选择
如果您在有 Slurm 的机器上运行模板,并且系统中可以使用:
sinfo模板会尝试检测可用的 Slurm partitions 和 GPU 资源,并在生成时让您交互式选择。
对于 Slurm 项目,生成后的:
pixi run run会使用:
nextflow run . -profile slurm -resume同时,生成的 Nextflow config 会启用更适合共享 HPC 文件系统的 lenient process caching。
如果生成时选择了 GPU --gres,模板会在 conf/slurm.config 中为 process_gpu jobs 设置对应的:
clusterOptions = '--gres=...'这对经常在 HPC 上跑生信流程的人来说会省掉不少配置时间。
5. 自动 git init:项目生成后就是一个 Git 仓库
默认情况下,模板在 copier copy 之后会自动执行:
git init这意味着您生成项目后,可以直接开始版本管理。
6. AGENTS.md:给 AI coding agent 的项目说明书
生成后的项目里还会包含一个:
AGENTS.md这个文件是给 AI coding agent 用的,里面预先添加了一些规则,包括pixi的用法、HPC的用法、输出文件的命名和路径的建议等。
快速开始
推荐使用 uvx 一次性运行,不需要提前全局安装 Copier:
uvx --with copier-templates-extensions --from copier copier copy --trust \ https://github.com/h4rvey-g/bioinformatics-copier-template.git \ path/to/destination生成后进入项目:
cd path/to/destinationgit statuspixi installpixi run configpixi run lintpixi run run总结
bioinformatics-copier-template 的核心目标不是做一个“大而全”的生信流程,而是提供一个干净、可复用、可更新的项目起点。
如果您也经常搭生信分析项目,可以试试看这个模板。
夜雨聆风