Skip to content

Installation

Prerequisites

  • Linux x86_64. The clusters this is built for are Bodhi and Alpine; a workstation with an NVIDIA GPU also works for small runs.
  • An NVIDIA GPU for dorado basecalling (and DNAscent detect). Everything downstream is CPU.
  • About 12 GB of disk for tools and models: dorado 2.1.2 is 3.4 GB, the three default models 380 MB, the optional DNAscent image 5 GB.
  • Network access from the node you run setup on: the ONT CDN, GitHub and the Sylabs library.

1. Install pixi

curl -fsSL https://pixi.sh/install.sh | sh
source ~/.bashrc
pixi --version

Alpine: nothing goes in $HOME

$HOME on Alpine is 2 GB. Clone the pipeline under /projects/$USER and point pixi's cache at scratch before the first install:

export PIXI_CACHE_DIR=/scratch/alpine/$USER/.cache/pixi

See Alpine.

2. Clone and install the environment

git clone https://github.com/rnabioco/nanopore-dna-modification-pipeline.git
cd nanopore-dna-modification-pipeline
pixi install

pixi install creates .pixi/envs/default from the committed pixi.lock: snakemake, the Slurm executor, samtools, minimap2, modkit, mosdepth and the Python libraries. It takes a few minutes and about 1.4 GB.

3. Install dorado, the models and escpod

pixi run setup

This runs once, from one node, and puts everything under resources/ (gitignored):

What Where Notes
dorado 2.1.2 resources/tools/dorado/2.1.2/ checksum pinned in scripts/setup-tools.sh
models named by the config resources/models/ dorado download by name; see Models
escpod 0.20.0 resources/tools/escpod/0.20.0/ POD5 tooling used to build test fixtures

Re-running pixi run setup is a no-op for anything already present. A project config that names other models installs them with pixi run install-models --configfile config/my-project.yml.

Run setup from a compute node, not in parallel

The downloads write to the shared filesystem. Two GPU jobs downloading the same model at once corrupt each other, which is why the pipeline never downloads inside a job.

4. Optional: DNAscent

Only if you will set dnascent.enabled: true:

pixi run install-dnascent         # Alpine: module load singularity first

Pulls the DNAscent 4.2.1 Singularity image (5 GB) by digest into resources/tools/dnascent/4.2.1/. On Bodhi you can instead point dnascent.sif at the cluster's own image; see DNAscent.

5. Check the installation

pixi run dl-test-data     # 5 MB synthetic fixture + lambda/E. coli reference
pixi run dry-run          # builds the DAG for config/config-test.yml
pixi run list-models      # the model stack the base config resolves to

The dry run should end with a job table of 27 jobs and no errors. list-models should show every model as present.

With a GPU available, pixi run test executes the whole DAG on the synthetic reads in a few minutes. The reads are synthetic, so the outputs are nearly empty; the point is that every rule's command runs.

Next: the walkthrough.