目前,绝大部分的生物信息分析是从原始测序的fastq格式文件开始的。而nanopore可以保存为fast5格式,MinKNOW软件是可以直接进行basecalling输出fastq格式文件的。但是这个过程比较耗时,如果使用MiniION,是很难在笔记本电脑上进行实时的basecalling的。可以将测序完成的fast5文件传输到更大的计算设备上进行处理。
Basecalling
将原始测序文件转换为碱基序列的过程basecalling,也就是将base call出来,生动形象。一代测序是对峰图进行处理,二代测序是将激发出的荧光照片进行处理,nanopore是将变化的电流值转换为碱基。我们前面测序原理部分介绍过,由于每次是检测几个碱基共同的信号值,因此,碱基识别这个过程比较复杂。因此,官方碱基识别的工具经常更新,目前正在使用的是guppy工具,在它前面还有albacore,后面可能还有flappie,中间可能还有其他的。这就是因为这个领域还有很大的提高空间,也是研究的一大方向。还有很多第三方的工具,比如poretools,nanopolish等。不过这个工作还是推荐官方的工具吧,毕竟,机器是人家生产的,更了解一些。而且nanopore的碱基识别还与使用的芯片有关,因为DNA测序每秒过450bp左右碱基,而RNA测序每秒过70bp左右碱基,这在识别算法上是完全不同的。
guppy介绍
Guppy是Oxford Nanopore提供的碱基识别软件,是一款基于命令行的工具包,目前MinKNOW软件中内置了该工具,后面如果有更好的工具,guppy就将被打入冷宫,目前被拍在沙滩上的albacore就是guppy未来的宿命。guppy也可以单独安装,不过软件目前只能购买仪器的注册用户才能下载到(小气,应该像人家10X genomics学习下),当然,不买仪器一般也用不到。
一、首先是Guppy的安装
根据community里面的文档指导
由于我们所使用的操作系统
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
# 按照官网的要求添加一些安装data repository,主要是后面可能会通过这些库来下载更新nanopore数据分析所需要的各种包
#实际安装的话直接从这一步开始执行
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 -
sudo echo "deb http://mirror.oxfordnanoportal.com/apt ${PLATFORM}-stable non-free"|sudo tee /etc/apt/sources.list.d/nanoporetech.sources.list
##尽量不更新
# sudo apt-get update
安装guppy
- To install the .deb for Guppy, use the following command:
##尽量能不更新就不更新
# sudo apt update
#通过sudo apt 安装官网提供的ont-guppy软件
sudo apt install ont-guppy
另外需要提醒的是不要轻易对服务器进行sudo update, 否则会出现很多软件驱动和版本对应不上的尴尬
我自己更新之后当时出现的问题就是
在Ubuntu18.04的命令行中运行命令nvidia-smi
查看GPU的运行状态,返回错误信息
Failed to initialize NVML: Driver/library version mismatch
当时心态略有些爆炸,不过好歹最终顺利解决。
软件介绍
安装完成之后,会有bin,data,lib三个文件夹。
因为是通过apt-install
自动安装的,所有一开始一直没有找到这个目录在哪儿,然后直到后来想了一个办法就是说先从/usr/bin
该目录下直接查找guppy
,找到之后再通过链接的地址索引到guppy的安装路径地址,这个方法还是蛮实用的

目录比较重要,我们这次的安装是通过ubuntu里面的apt-install
安装的,其默认的安装数据存放位置在/opt/ont/guppy/dat
这个目录,这个目录的路径地址比较重要,后面在做分析的时候还会用到

bin中就是应用程序,包括以下内容:

data目录也比较重要,里面包含了每一种芯片类型对应的配置文件,需要记住这个位置,软件运行时需要。其中的barcoding目录也比较重要,在使用guppy对数据进行barcode拆分时需要指定使用哪种barcode类型。

利用guppy进行碱基识别
输入原始测序文件,fast5格式,放到单独一个目录下,然后选择正确的芯片类型配置文件,这个过程很重要,MinKNOW集成时软件会自动识别。输出fastq格式文件,也可以选择输出新的fast5文件,这个fast5里面包含了碱基部分,最后是一些统计文件。
guppy_basecaller -i /home/qianwj/project/ONT/testfast5 -c /opt/ont/guppy/data/dna_r9.4.1_450bps_fast.cfg -s /home/qianwj/project/ONT/output/ --num_callers 4

得到的输出文件是的情况是

最后的输出文件中包含fail和pass两个结果文件夹,我们最后只用pass序列,不用管fail和pass之间的比例。
然后对于basecalling过程中的时候需要给一个配置文件,这个配置文件主要是看芯片版本,对于我们的实验来讲,450bps是默认的,然后fast是快速模式,basecalling出来的Q值也是最低,hac是我们最常用的高准确率模式,然后sup是超高准确率模式
然后又重新用hac模式进行basecalling
命令行:
guppy_basecaller -i ~/project/ONT/testfast5 -c /opt/ont/guppy/data/dna_r9.4.1_450bps_hac.cfg -s ~/project/ONT/output_hac/ --num_callers 4

最后输出的结果显示
call出来的pass的序列更多,所以建议一般进行basecalling的时候尽量选择hac模式,虽然花的时间也相对更长一些

一般默认的basecalling是使用的CPU模式
如果需要加快速度,需要指定为GPU模式,速度会快很多
参数:
-x
guppy_basecaller -i /home/qianwj/project/ONT/lab_data -c /opt/ont/guppy/data/dna_r9.4.1_450bps_sup.cfg -s /home/qianwj/project/ONT/basecalling_gpu_sup/ -x "cuda:0" > guppy_4_gpu_sup.log
对于需要进行barcode拆分的数据来说
guppy_basecaller -i ~/project/raw_data/multi-sample211216/no_sample/20211216_1525_MC-110961_FAQ24388_26559c62/fast5 -c /opt/ont/guppy/data/dna_r9.4.1_450bps_sup.cfg -s ~/project/ONT/2021_12_16_multi_sample_basecalling_gpu_sup -r --num_callers 4 -x "cuda:0" --barcode_kits EXP-NBD104 > guppy_triming.log
但是不建议在basecalling
的时候同时还进行着拆分
一般是先basecallling然后再进行拆分
guppy_basecaller -i ~/project/raw_data/multi-sample211216/no_sample/20211216_1525_MC-110961_FAQ24388_26559c62/fast5 -c /opt/ont/guppy/data/dna_r9.4.1_450bps_sup.cfg -s ~/project/ONT/multi_sample_basecalling_gpu_sup -r --num_callers 4 -x "cuda:0" > guppy_triming.log
然后再对basecalling出来的fastq文件进行
guppy_barcoder -i ~/project/ONT/multi_sample_basecalling_gpu_sup/pass/ -o ~/project/ONT/multi_sample_basecalling_gpu_sup/barcode/ --barcode_kits EXP-NBD104
网友评论