ONT basecalling Guppy
-
https://community.nanoporetech.com/protocols/Guppy-protocol/v/gpb_2003_v1_revs_14dec2018/linux-guppy
Choosing a Guppy package
Depending on whether you are basecalling on a CPU or a GPU, you will need to choose an appropriate Guppy package. These packages are available as separate installers on the Software Downloads page:GPU basecalling is available in the ont-guppy package and will require a GPU driver for basecalling to work. It is also possible to perform CPU basecalling using this package. You will need to specify the GPU device(s) you want to use when setting up your experiment, otherwise Guppy will default to CPU calling.
CPU-only basecalling is available in the ont-guppy-cpu package.Supported platforms for Guppy
Debian packages:- 64-bit Ubuntu 16 amd64 (for either GPU-enabled Guppy or cpu-only Guppy)
- 64-bit Ubuntu 16 arm64v8 (for GPU-enabled Guppy only)
RPM packages:
- Centos 7 (for either GPU-enabled Guppy or CPU-only Guppy)
Archive package:
- Most 64-bit amd64 Linux platforms (for either GPU-enabled Guppy or CPU-only Guppy – the package was built on Centos 6)
- 64-bit Ubuntu 16 arm64v8 (for GPU-enabled Guppy only - the package was built on a Jetson TX2)
GPU devices:
- A supported NVIDIA GPU for the ont-guppy packages
From version 2.3.8 onwards, Guppy no longer officially supports Ubuntu 14.04, as that version of Ubuntu has reached its End of Life (EOL) date. It should still be possible to run the Guppy archive releases on that platform, although it is not explicitly supported.
Use this installation process if you are installing from .deb for Guppy:
Add Oxford Nanopore's deb repository to your system (this is to install Oxford Nanopore Technologies-specific dependency packages):sudo apt-get update
sudo apt-get install wget lsb-release
export PLATFORM=$(lsb_release -cs)
wget -O- https://mirror.oxfordnanoportal.com/apt/ont-repo.pub | sudo apt-key add -
echo "deb http://mirror.oxfordnanoportal.com/apt ${PLATFORM}-stable non-free" | sudo tee /etc/apt/sources.list.d/nanoporetech.sources.list
sudo apt-get updateTo install the .deb for Guppy, use the following command:
sudo apt update
sudo apt install ont-guppyThis will install the GPU version of Guppy.
GPU版本也可以运算纯CPU模式or:
注意:这个命令会覆盖GPU版本 强烈建议不要安装
sudo apt update
sudo apt install ont-guppy-cpuTo install the CPU-only version of Guppy.
Use this installation process if you are installing from .tar.gz:
Download the .tar.gz archive file. This can be found on the Software Downloads page of the Nanopore Community.
Unpack the archive:tar -xf ont-guppy_xxx_linux<64 or aarch64>.tar.gz
or to unpack the CPU-only version of Guppy:
tar -xf ont-guppy-cpu_xxx_linux<64 or aarch64>.tar.gz
Note: 'xxx' in the command denotes the version number e.g. 3.0.3.
Use this installation process if you are installing from .rpm:
Download the .rpm file. This can be found on the Software Downloads page of the Nanopore Community.
Install the epel-release repository:yum install epel-release
Install the rpm:
yum install <path>/<to>/ont-guppy_xxx.rpm
This command installs the GPU version of Guppy.
or
yum install <path>/<to>/ont-guppy-cpu_xxx.rpm
This command installs the CPU-only version of Guppy.
The GPU-enabled ont-guppy package will not install a GPU driver by default – it will be necessary to handle installing this yourself, e.g. by visiting NVIDIA's website. Guppy requires an NVIDIA driver of at least version 384.
Using unsupported NVIDIA GPUs
Newer GPUs may require more up-to-date versions of NVIDIA drivers and CUDA APIs than the ont-guppy deb recommends. It is possible to install the ont-guppy deb without installing any GPU drivers by not installing the recommended ones, leaving it to the user to ensure that their system has the required minimum drivers:apt-get install ont-guppy --no-install-recommends
In general NVIDIA APIs and drivers are backwards compatible, so it will usually be safe to install a later / higher version than Guppy requires. Check for the minimum driver version that Guppy requires using apt-cache show:
$ apt-cache show ont-guppy
Package: ont-guppy
Version: 0.0.0-1~xenial
Architecture: amd64
Depends: libc6 (>=2.23), libcurl4-openssl-dev, libssl-dev, libhdf5-cpp-11, libzmq5, libboost-atomic1.58.0, libboost-chrono1.58.0, libboost-date-time1.58.0, libboost-filesystem1.58.0, libboost-program-options1.58.0, libboost-regex1.58.0, libboost-system1.58.0, libboost-log1.58.0
Recommends: nvidia-384, libcuda1-384
[...]In this example the driver version (384) can be seen as part of the nvidia and libcuda1 package names in the "Recommends" section. Driver versions higher than 384 will likely be compatible with this version of Guppy.
Note that Guppy only supports GPUs with an NVIDIA compute version of 6.1 or higher.
Setting custom GPU parameters in Guppy
If using an unsupported GPU then the following calculation provides a rough ceiling to the amount of GPU memory that Guppy will use:
runners * chunks_per_runner * chunk_size < 100000 * [max GPU memory in GB]
For example, a GPU with 8GB of memory would require:
runners * chunks_per_runner * chunk_size < 800000 -
time guppy_basecaller -i ./fast5 -s ./guppy_out -c dna_r9.4.1_450bps_hac.cfg --num_callers 2 --cpu_threads_per_caller 1
用R740跑了快15个小时

-
time guppy_basecaller -i ./fast5 -s ./guppy_out2 -c dna_r9.4.1_450bps_hac.cfg --num_callers 2 --cpu_threads_per_caller 1 --gpu_runners_per_device 20 --device "auto"

GPU用了不到2分钟 -
time guppy_basecaller -i ./fast5 -s ./guppy_out3 -c dna_r9.4.1_450bps_hac.cfg --num_callers 20 --cpu_threads_per_caller 1

20线程大约4个小时 这样来看GPU的加速还是相当可观 -
-
使用guppy进行样本拆分:
time guppy_basecaller -i ./fast5 -s ./fastq2 --barcode_kits "EXP-NBD104" -c dna_r9.4.1_450bps_hac.cfg --num_callers 2 --cpu_threads_per_caller 1 --gpu_runners_per_device 20 --device "auto" -
查询流程配置
guppy_basecaller --print_workflowsR10版本:
sudo guppy_basecaller -i ./fast5 -s ./fastq -c dna_r10.3_450bps_hac.cfg --num_callers 2 --cpu_threads_per_caller 1 --gpu_runners_per_device 20 --device "auto"