This Snakemake workflow processes Oxford Nanopore Technologies (ONT) raw reads (POD5 format) through basecalling and quality control, supporting both DNA and RNA sequencing data.
This pipeline is based on the workflow originally developed by @tdido in cnio-bu/myeloma-epi-sv.
- Basecalling: Uses Dorado for basecalling with modified base detection
- Quality Control: NanoPlot quality assessment from Dorado summary output
- Snakemake (>=9.0)
- Conda or Mamba (for environment management)
- CUDA-compatible GPU (required for Dorado basecalling)
- Dorado v2.0.1, downloaded manually (not managed via conda/mamba)
- Clone this repository:
git clone https://github.com/villena-francis/basecalling_ont.git
cd basecalling_ont- Create your config file:
cp config/config.yaml.example config/config.yaml-
Download the Dorado binary (see Requirements)
-
Edit the configuration file to match your environment, data locations, and analysis parameters
The pipeline is configured through the config/config.yaml file, which includes:
- Tool path: Path to the downloaded Dorado binary (see Requirements)
- Analysis parameters: Quality thresholds, basecalling model (see Basecalling models below), and other analysis options
- Samples structure: Hierarchical organization of samples with associated metadata
- Resource specifications: Resource allocation for different workflow steps
See config/config.yaml.example for a detailed example of the configuration structure.
The Dorado model argument must be adjusted depending on the type of sequencing data and the modifications you wish to detect (see the model list for all available options).
- Dorado DNA example model argument:
params_model: "sup,5mCG_5hmCG"- Dorado RNA example model argument:
params_model: "sup,m6A_DRACH --estimate-poly-a"Run the full pipeline with:
snakemake --use-conda --cores <N>For cluster environments using Slurm:
snakemake --use-conda --executor slurm- Basecalling: Convert raw POD5 files to BAM format using Dorado, including modified base detection
- Dorado Summary: Generate per-read summary file from BAM output
- Quality Control: Generate QC metrics and reports with NanoPlot from summary file
The pipeline generates results in a hierarchical directory structure:
results/
├── basecall_dorado/ # Basecalled reads
├── summary_dorado/ # Per-read summary TXT files
└── nanoplot/ # Quality control reports