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