Nextflow pipeline for Nanopore basecalling with Dorado and downstream QC with SeqKit. Supports POD5 and FAST5 inputs (optional FAST5→POD5 conversion).
main.nf
├── workflows/basecalling.nf # BASECALLING: pod5convert → dorado
└── workflows/qc.nf # QC: bam2fastq → getstats
└── modules/
├── pod5convert.nf
├── dorado.nf
└── seqkit.nf # bam2fastq, getstats
| Subworkflow | Steps | Output |
|---|---|---|
BASECALLING |
pod5convert → dorado |
BAM (results/bam/) |
QC |
bam2fastq → getstats |
FASTQ + stats (results/fastq/, results/data/) |
nextflow run main.nf -profile kutral -params-file params/params.yamlResume a previous run (use the run name or session UUID to keep the correct cache):
nextflow run main.nf -profile kutral -params-file params/params.yaml -resume mighty_lorenzStub / dry-run (does not run real tools; creates a new Nextflow session):
nextflow run main.nf -profile stub -params-file params/params_stub.yml -stub-runDefined in params/params.yaml (see also nextflow_schema.json):
| Parameter | Description |
|---|---|
files |
CSV with sample metadata and input paths |
dorado_path |
Path to the local Dorado binary |
outdir |
Output directory (default: ./results/) |
Example (params/prunus.csv):
id,path,kitname,require_convert,base_model,modified_base_model
NANO_012_PC,/path/to/pod5_pass/,,false,,| Column | Required | Description |
|---|---|---|
id |
yes | Sample ID |
path |
yes | Directory with POD5 or FAST5 |
kitname |
no | If set, Dorado is run with --kit-name |
require_convert |
no | true to convert FAST5→POD5; otherwise symlink input |
base_model |
no | Dorado base model (used when kitname is set) |
modified_base_model |
no | Modified-bases model (used when kitname is set) |
| Profile | Use |
|---|---|
kutral |
Slurm + Singularity on the cluster |
local |
Singularity on the local node |
stub |
Lightweight config for -stub-run |
results/
├── bam/ # Dorado BAM
├── fastq/ # BAM → FASTQ
├── data/ # SeqKit read statistics
└── pipeline_info/ # reports, timeline, trace, DAG
| Software | Notes |
|---|---|
| Nextflow | ≥ 23.10 |
| Dorado | Local binary; pass path via dorado_path (not containerized) |
| Pod5 Tools | Provided via Singularity (pod5convert) |
| samtools / SeqKit | Provided via Singularity (bam2fastq, getstats) |
| GPU | Required for dorado (--gres=gpu:1 on kutral) |