美文网首页
利用guppy进行basecalling

利用guppy进行basecalling

作者: 莫讠 | 来源:发表于2021-11-24 15:56 被阅读0次

目前,绝大部分的生物信息分析是从原始测序的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:

  1. 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

  1. 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的安装路径地址,这个方法还是蛮实用的

屏幕截图 2021-11-24 144747.png

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

屏幕截图 2021-11-24 143410.png

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

屏幕截图 2021-11-24 143557.png

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

屏幕截图 2021-11-24 143918.png

利用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
图片2.jpg

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


屏幕截图 2021-11-24 151431.png

最后的输出文件中包含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
屏幕截图 2021-11-24 162831.png

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

屏幕截图 2021-11-24 163222.png

一般默认的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

参考链接:
https://zhuanlan.zhihu.com/p/102392867

相关文章

网友评论

      本文标题:利用guppy进行basecalling

      本文链接:https://www.haomeiwen.com/subject/ooqeoltx.html