Guppy is a data processing toolkit that contains the Oxford Nanopore Technologies' basecalling algorithms, and several bioinformatic post-processing features.
Early downstream analysis components such as barcoding/demultiplexing, adapter trimming and alignment are contained within Guppy. Furthermore, Guppy now performs modified basecalling (5mC, 6mA and CpG) from the raw signal data, producing an additional FAST5 file of modified base probabilities.
module spider guppy to find out what environment modules are available for this application.
- HPC_GUPPY_DIR - installation directory
Warning: Guppy can be orders of magnitude faster when using GPUs for basecalling compared to pure CPU runs. See GPU Access for more details on how to request GPUs on HiPerGator. Here's a sample Guppy GPU script you might want to use as a starting point:
GPU Job Example
#!/bin/bash #SBATCH --job-name=guppy #SBATCH --output=guppy_%j.out #SBATCH --time=12:00:00 #SBATCH --ntasks=1 #SBATCH --mem=10GB #SBATCH --mail-type=END,FAIL #SBATCH --mail-user=MYEMAIL@ufl.edu #SBATCH --partition=gpu #SBATCH --gpus=geforce:1 date;hostname;pwd module purge module load cuda guppy guppy_basecaller \ --recursive \ --input_path cool_project/minion_input/fast5 \ --save_path cool_project/minion_output/basecalls \ --flowcell FLO-MIN107 --kit SQK-LSK109 \ --device "auto" date
Use jobnvtop and jobhtop tools from the UFRC environment module for a real-time look at GPU and CPU processes on the job node.
CPU Job Example
If you don't have access to GPUs then set
#SBATCH --ntasks=1 #SBATCH --cpus-per-task=X
in the resources request section and use the corresponding guppy_basecaller arguments to set the number of basecallers and threads to use CPUs:
--cpu_threads_per_caller X --num_callers 1
where X is the same numbers in both sections. You can parallelize callers if appropriate.