The input of the pipeline are fastq files.
If you have only the fast5/pod5 and not the fastq you need to perform the basecalling.
Usually for the nanopore projects the basecalling is already performed (Guppy5/Dorado).
Set up your data as follows:
<Project Directory>
├── metadata.txt
└── RawData/
├── <Run Directory 1>
└── ...
└── fast5/
├── <fast5 file 1>.fast5
├── ...
└── <fast5 file n>.fast5
└── fastq/
├── <fastq file 1>.fastq
├── ...
└── <fastq file n>.fastq
├── ...
└── <Run Directory n>
└── ...
To run the pipeline you need to include a metadata.txt file.
If you have a multiplexed run then you need to include also a barcodes.txt file.
For examples please check nano-wgs.snakejob.sh.
Please check the configurable parameters of the snakemake pipeline in configs/config_run.yaml.
You dont need to change this file because snakemake allows to override the configuration parameters during runtime.
For example, if you want to run the pipeline with only hg38 then use:
snakemake <other_paramters> --config refs=hg38
The default minimal read length is 300 bp.
Run pipeline using the structure of the following script:
#!/bin/bash
#SBATCH --job-name=test-hg38
#SBATCH --ntasks=16
#SBATCH --nodes=1
#SBATCH --mem=100GB
#SBATCH --time 7-00:00:00
#SBATCH --output=slurm-<SampleName>-hg38.txt
set -x
date
hostname
# metadata.txt - configuration file
meta=metadata.txt
# barcodes.txt - barcodes specification in case of multiplexing
mux=barcodes.txt
# set temp folder
tmp=/fast/users/giurgium_c/scratch/<SampleName>
working_dir=/fast/users/<YourUser>/Nanopore
project_name=Celllines # this is a path (relative)
refs="hg38"
# go to the root of snakemake pipeline
# run first snakemake and make sure that files are not blocked
snakemake -F --cores 4 \
--keep-going --rerun-incomplete --printshellcmds \
--config metafile=${meta} \
muxfile=${mux} \
tmp_dir=${tmp} \
threads=8 \
read_length=300 \
working_dir=${working_dir} \
project_name=${project_name} --unlock
# the actual run
snakemake -F --cores 4 \
--keep-going --rerun-incomplete --printshellcmds \
--config metafile=${meta} \
muxfile=${mux} \
refs=${refs} \
threads=8 \
read_length=300 \
tmp_dir=${tmp} \
working_dir=${working_dir} \
project_name=${project_name}