查看原文
其他

Nature子刊:三代Nonopore测序数据耐药性分析软件NanoOK RT

宏基因组 2023-08-18

The following article is from 三代测序 Author 很跩的土豆

                前言                 

前期,我们解读了Nature Microbiology的关于快速分析肠道菌群耐药性的论文。

【文献解读】Nature Microbiology | 使用MinION快速分析早产儿肠道菌群谱并鉴定抗生素抗性致病菌

其中,作者引入了一个叫作NanoOK RT package的耐药性分析软件,为此,我们在本期对该软件进行一个简单的介绍,有相关应用的小伙伴,可以关注一下。


                正文                 


NanoOK RT package

1.    简介:NanoOKRT是一种使用Nanopore测序数据实时进行菌种分类和抗生素抗性鉴定的工具。NanoOK RT被设计成为一个NanoOK tool的工具包,基于对Nanopore测序数据进行组装后分析。此外,NanoOK repoRTer可以作为一个独立的工具对分析过程中的数据进行可视化。

 

2.    安装

NanoOK RT包含在NanoOK软件包中,如果只使用NanoOK RT,则不需要安装所有的依赖包。需确认安装以下工具:

(1)  HDF5 tools:从FAST5文件中获取FASTA/Q文件。

(2)  BLAST和一个合适的数据库。

如果使用Mac OS,这些依赖的工具可使用 Homebrew轻易安装。在Linux系统中,可使用Conda等软件管理工具进行安装。

NanoOK可以在GitHub上进行下载,使用以下代码:

git clone https://github.com/TGAC/NanoOK.git

安装:

(1)  将NanoOK文件夹拷贝到计算机的指定位置;

(2)  设置NANOOK_DIR环境变量以指向此目录,使NanoOK获取路径以找到它使用的java JARs和R脚本。在Linux或MacOS上,通常可以通过以下命令添加到.bash_profile(或Ubuntu上的.profile)文件。或“ source”脚本中:

export NANOOK_DIR=/path/to/NanoOK


MacOS, 使用:

open-e ~/.bash_profile


(3)  添加bin文件夹到环境变量PATH中。在Linux或MacOS上,通常可以通过以下命令添加到.bash_profile(或Ubuntu上的.profile)文件。或“ source”脚本中:

exportPATH=/path/to/NanoOK/bin:$PATH


(4)  重置,使更改生效。

(5)  设置工具的Java堆(Java heap)大小——JAVA主程序打包为.jar文件。一个名为nanook的包装器脚本(在bin目录中)使它可以在不指定Java虚拟机参数的情况下运行。默认情况下,此脚本为Java堆请求2Gb RAM。如果希望减少/增加此文件,需要编辑此文件。

 

3.     运行NanoOKRT

要运行NanoOK RT,必须为nanook指定“ rt”选项并指定一个进程文件,例如:

nanook rt -t 8-process processfile.txt -log log.txt -timeout 10000-templateonly


-t:指定要使用的执行线程数。

-process:指定进程文件的名称(请参见下文)。

-log:(可选)指定日志文件。

-timeout:设置了NanoOK退出时间,在没有新输入序列需处理时将在指定时间退出。

-templateonly:仅指定过程模板序列。

 

4.     处理文件

处理文件定义了NanoOK RT将对每条序列执行的操作。一个例子如下所示:

Sample:BAMBI\_P8\_2D\_Local\_070317Extract:fastaFast5Dir:/tgac/workarea/group-si/BAMBI\_Pt4/BAMBI\_P8\_2D\_Local\_070317/basecalledReadsPerBlast:500Blast:bacteria,blastn,/tgac/references/databases/blast/nt\_04022017/bacteria\_human\_28022016,8G,tgac-mediumBlast:card,blastn,/tgac/workarea/group-si/BAMBI\_Pt1/CARD\_1.1.1\_Download\_17Oct16/nucleotide\_fasta\_protein\_homolog\_model.fasta,8G,TempProject4Blast:nt,blastn,/tgac/references/databases/blast/nt\_04022017/nt,16G,TempProject4


(1)“ Sample:”开头的行定义了样本目录——可以是相对路径,也可以是绝对路径(以“ /”开头)。

(2)第二部分指定序列提取信息。提取命令行要求提取FASTA,Fast5Dir指定fast5文件的位置(如标准NanoOK的-f选项)。

注意:NanoOK RT会查看fast5目录结构,以便找出碱基判读后的.fast5文件(Metrichor,MinKNOW,Albacore)的来源,因此必须在运行NanoOK RT之前创建此结构,或者只能在序列已输出的情况下运行NanoOK RT。

(3)最后一部分定义了BLAST过程。ReadsPerBlast定义块大小。然后,每个Blast进程都包含以下内容:

Blast:identifier,blast_tool,/path/to/database,SLURM_memory_requirements,SLURM_partition_name


 

NanoOK Reporter

1.    简介:NanoOKReporter是用于实时分析NanoOKRT生成的数据的工具。在下文中,将分析BAMBI项目生成的数据。

下载NanoOK Reporter:

https://github.com/richardmleggett/NanoOKReporter  

下载BAMBI数据集: https://opendata.earlham.ac.uk/opendata/data/bambi/BAMBI_1D_19092017_P8_LSK108.tar.gz 

 

2.     运行NanoOKReporter

从GitHub克隆并运行:

git clone https://github.com/richardmleggett/NanoOKReporter.git


NanoOK Reporter依赖于NCBI的分类信息,需要单独下载。下载地址:ftp://ftp.ncbi.nlm.nih.gov/pub/taxonomy/。NanoOK Reporter需要的文件是taxdump.tar.gz文件中的node.dmp和names.dmp文件。需要下载此文件并将其解压缩,然后通过将环境变量NANOOK_TAXONOMY设置为指向包含nodes.dmp和names.dmp文件的目录来指定NanoOK Reporter文件的位置。在Linux或MacOS上,通常可以通过将以下命令添加到.bash_profile(或Ubuntu上的.profile)文件或“源”脚本中来执行此操作:

export NANOOK_TAXONOMY=/path/to/dir


MacOS

open-e ~/.bash_profile


还需要设置另一个变量NANOOK_CARD以指向包含card文件的目录,例如aro.csv:

export NANOOK_CARD=/path/to/dir


完成此操作后,可以按以下方式运行程序:

cd NanoOKReporterjava -jar dist/NanoOKReporter.jar


将显示一个闪屏,然后片刻后,系统将提示选择一个示例目录。

 

3.     加载BAMBI数据

加压BAMBI数据集:

tar -xvzf BAMBI_1D_19092017_P8_LSK108_nanook.tar.gz


·        这是一个仅包含BLAST子目录的NanoOK示例文件夹——NanoOK Reporter使用的是这些子目录。

·        在tar文件未压缩的情况下,返回NanoOK Reporter并浏览以找到刚解压缩的BAMBI_1D19092017_P8_LSK108示例目录。单击“Choose按钮。

·        按下“Bacteria”按钮以加载细菌数据。可以在窗口底部跟踪其进度。此数据集有202个块文件要加载,加载可能需要一两分钟。如果只想加载数据的子集,请从“Chunks”下拉菜单中选择“ 10”或“ 100”。

·        加载完成后,“Bacteria”选项卡将显示匹配的序列列表。这是通过对每个序列的BLAST最高匹配结果来计算的。

·        单击“Taxonomy选项卡将显示样品物种组成的分类树,通过半径和颜色阴影指示物种的丰富程度。这基于最小共同祖先法比对,该分类考虑每次读取多个BLAST命中。

·        单击“Summary”选项卡将显示样品的物种组成的圈图,该图也基于“最小共同祖先”比对。

·        按下蓝色的“CARD”按钮以加载CARD AMR数据。加载完成后,单击“CARD”选项,以查看最高的AMR匹配率。

·        在“Bacteria”和“CARD”选项卡中,可以移动滑块以在数据中及时返回。还不能针对“Summary”或“Taxonomy”视图执行此操作。

·        按下“Walk”按钮将执行walkout分析,其中将AMR匹配项放置在包含细菌的位置。完成此操作后,显示将自动切换到“ Walkout”选项卡,该图将显示包含AMR基因的主要细菌。

4.     实时测序运行

使用实时排序运行时,可以通过从“Refresh”下拉菜单中进行选择来设置应用程序的刷新率。这指定了将新视图的更新频率多久(以分钟为单位)。也可以通过再次单击“CARD或“Bacteria按钮来手动强制加载最新数据。这不会重新加载已经分析过的块文件,而只是重新加载新文件。

 

NanoOK Report Explanation

1.     通过和失败计数

本部分简单显示Template和Complement数量,以及Basecaller处理后“通过”和“失败”目录中分类的2D序列数量。

 

2.     序列长度

本节包含一个有关Template, Complement和2D读取的读取长度统计信息的表,以及reads长度直方图。

 

3.     Template/Complement/2D比对

每种序列类型一个部分。Summary表提供每种类型的序列数量,比对的数量(和百分比)和未比对的数量。然后是每个表格中有一行,总结了与参考数据库比对的序列数,覆盖范围和最长的完美kmer(最长的完全映射序列)。

 

4.     参考结果错误分析

对于各参考结果,均有错误评估的部分。

表格的头两行是查询一致性,不包括indels:

·        总体一致性(去除indels):在read集合中完美匹配的碱基平均百分比。

·        比对一致性(去除indels):在比对结果中完美匹配的碱基平均百分比。

表格中的后四行基于每100个碱基比对的平均值(包括插入缺失),因此每列中的四个值之和应为100(给定或取小的舍入误差)。

·        每100个比对碱基的一致碱基数:每100个比对序列的一致碱基的平均数。

·        每100个比对碱基的插入碱基数:每100个比对序列的平均插入碱基数。

·        每100个比对碱基的删除碱基数:每100个比对序列的平均删除碱基数。

·        每100个比对碱基的取代数:每100个比对序列的取代碱基的平均数。

然后有两行的平均插入和删除大小。最后,对于三种类型的reads,都有插入和删除大小的直方图。

5.     参考结果序列一致性

本节包含以下图形,每种序列类型各一个:

·        序列一致性直方图:显示序列与一致性数量。

·        一致性碱基百分比与序列长度散点图。

·        比对一致性与查询序列百分比散点图。

了解对齐标识和读取标识的含义很重要:

 

·        读取身份定义为与参考中的碱基完全匹配的读取中碱基的百分比-或100 *匹配的碱基/读取长度。

·        比对同一性定义为比对字符串中完全匹配的碱基的百分比。


6.     示例

Reference: TGACACTA--TGCCTAGTTAGCTA-GCRead: TG--ACTATTCagCTAcTTAG--AGGCTGTGCTAC

在上面的示例中,为清楚起见,以小写形式显示了替代项。

 

·        序列长度为30个碱基,但仅前24个碱基包含在比对中。

·        比对长度为28个碱基。

·        序列和参考序列之间的16个碱基完全匹配。

·        序列一致性为100 * 16/30 = 53%。

·        比对一致性为100 * 16/28 = 57%


7.     完美Kmer

完美kmer是指没有任何错误(替代或插入缺失)的完美比对序列。

·        累积完美kmers:至少具有此(x轴)大小的一段完美序列的读取百分比。

·        最佳完美kmer:序列的百分比直方图,其(x轴)是完美序列的最佳延伸。

·        最长完美序列与序列长度的散点图。


8.     覆盖度

本部分包含TemplateComplement和2D数据的覆盖图,以及用于参考的%GC图。


9.   5-mer分析

该图显示了TemplateComplement和2D数据的序列相对于参考的5-mers的丰度。


10. 所有21mer分析

散点图显示了每种序列类型的完美21mers与序列长度的关系。


11. 所有参考情况

为每种序列类型(TemplateComplement和2D)提供了一个替换表,其中显示了所有碱基转换的百分比(例如C转换为A)。


12. 错误图案分析

NanoOK存储所有在取代或插入缺失之前出现的3-mer,4-mer和5-mer。错误motif表显示每种错误类型的前10个最常见和最低的10条最不常见kmer。徽标图像分别基于前10个kmers或后10个kmers计算。


                参考                 


[1] https://nanook.readthedocs.io/en/latest/index.html 

猜你喜欢

10000+:菌群分析 宝宝与猫狗 梅毒狂想曲 提DNA发Nature Cell专刊 肠道指挥大脑

系列教程:微生物组入门 Biostar 微生物组  宏基因组

专业技能:学术图表 高分文章 生信宝典 不可或缺的人

一文读懂:宏基因组 寄生虫益处 进化树

必备技能:提问 搜索  Endnote

文献阅读 热心肠 SemanticScholar Geenmedical

扩增子分析:图表解读 分析流程 统计绘图

16S功能预测   PICRUSt  FAPROTAX  Bugbase Tax4Fun

在线工具:16S预测培养基 生信绘图

科研经验:云笔记  云协作 公众号

编程模板: Shell  R Perl

生物科普:  肠道细菌 人体上的生命 生命大跃进  细胞暗战 人体奥秘  

写在后面

为鼓励读者交流、快速解决科研困难,我们建立了“宏基因组”专业讨论群,目前己有国内外5000+ 一线科研人员加入。参与讨论,获得专业解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。PI请明示身份,另有海内外微生物相关PI群供大佬合作交流。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍未解决群内讨论,问题不私聊,帮助同行。

学习16S扩增子、宏基因组科研思路和分析实战,关注“宏基因组”

点击阅读原文,跳转最新文章目录阅读

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存