Nextflow

以下為一個典型的 Nextflow 專案結構,適用於模組化、可重複使用與 CI/CD 管理:

my-nextflow-pipeline/
├── main.nf                    # Pipeline 主要流程
├── nextflow.config            # 全域與 profile 設定
├── params.yaml                # 使用者參數預設檔案(建議用於 reproducibility)
├── README.md                  # 專案說明文件
├── LICENSE                    # 授權條款(如 MIT)
├── .gitignore                 # Git 忽略項目

├── conf/                      # 自訂 config profiles
   ├── base.config
   ├── docker.config
   └── slurm.config

├── workflows/                 # 主流程拆分區塊(常見於 DSL2)
   └── my_workflow.nf

├── modules/                   # 模組化 process,每一工具/步驟一個
   └── my_tool/
       └── main.nf

├── subworkflows/              # 子流程(可重複使用的子邏輯)
   └── my_subworkflow.nf

├── assets/                    # 補充資源(如 BED, GTF, 範例參考)
   └── reference.bed

├── data/                      # 測試用資料或樣本範例
   └── test_samplesheet.csv

├── bin/                       # 自訂 script(bash, python 等)
   └── helper.sh

├── .github/                   # GitHub Actions CI 設定(選用)
   └── workflows/
       └── test.yml

└── docs/                      # 文件或報告(可用於 GitHub Pages)
    └── index.md

✅ 建議事項

  • 使用 DSL2 模組化結構(modules/, workflows/, subworkflows/)有助於維護與重複使用。

  • params.yaml 提供參數版本控管,可搭配 -params-file 使用。

  • 配置檔放在 conf/,配合 -profile 切換環境(如 docker/singularity/slurm)。

  • data/ 夾建議只放測試用資料,不包含大型真實輸入。

  • bin/ 適合放自訂外部工具腳本(會自動加到 $PATH)。

如需更進階的模板,可參考 nf-core template

Last updated