【3.2.3】利用NanoFilt对数据进行过滤

数据质控之后,我们得到nanopore数据长度和平均质量的分布,例如平均质量值低于Q7的占有多少比例。有了这些指标之后,接下来就可以对数据进行过滤了。数据类似于处理食材,需要将不好的食材去掉,这样才能做出精致可口的菜肴,所以,不懂计算机的生物学家不是一个好厨子。

一、安装NanoPlot

NanoFilt顾名思义,是用来过滤nanopore测序数据的,它来自于nanopack包,我们前面已经安装过,当时是在虚拟环境中安装的,现在要使用该软件,则需要进入虚拟环境中来使用。也可以单独安装。

#激活虚拟nanopack环境
conda activate nanopack
#如果没有安装,使用如下命令进行安装
conda install -c bioconda  nanofilt
#使用软件过滤数据
gunzip -c ../2.rawdata/minion/all.sra.fastq.gz | NanoFilt -q 7 -l 500 --headcrop 50 | gzip > clean.NanoFilt.fastq.gz
#退出虚拟环境
conda deactivate nanopack

二、利用NanoFilt过滤数据

nanopore过滤数据主要是过滤掉一些长度过短的序列,例如小于1000bp以下的,如果数据量比较大,足够用,可以提高一下过滤标准。另外就是过滤掉平均质量较低的,比如一条测序数据,平均测序数据质量小于Q7 ,则将整条去掉。有些情况下,头部可能还含有一些adapter序列或者尾部质量较差,也可以剪掉头尾一部分序列。具体如何过滤需要针对不同的序列采用不同的策略,如果结果不好,需要修改条件重新过滤数据。

三、使用案例

由于NanoFilt软件目前不能处理压缩格式文件,因此我们需要使用gzip命令管道符来进行操作。

gunzip -c ../2.rawdata/minion/all.fastq.gz | NanoFilt -q 7 -l 1000 --headcrop 50 --tailcrop  50| gzip > clean.NanoFilt.fastq.gz

选项参数:

-l ,--length :过滤掉小于此长度的序列
--maxlength :过滤掉超过此长度的序列
-q , --quality :过滤掉低质量序列
--minGC:过滤掉GC含量小于此百分比的序列
--maxGC:过滤掉GC含量大于此百分比的序列
--headcrop:从头部切掉n bp
--tailcrop:尾部切掉n bp

结果解读:

输入一个压缩格式的fastq文件,结果软件处理,已经将长度小于1000,同时整条序列平均质量值小于Q7的过滤掉,同时将每条序列首位各剪掉50bp。这些剩余的序列则为“clean data”。可以使用NanoPlot重新进行一下质控。

参考资料

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn