Nature子刊:三代Nonopore测序数据耐药性分析软件NanoOK RT
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:fasta
Fast5Dir:/tgac/workarea/group-si/BAMBI\_Pt4/BAMBI\_P8\_2D\_Local\_070317/basecalled
ReadsPerBlast:500
Blast:bacteria,blastn,/tgac/references/databases/blast/nt\_04022017/bacteria\_human\_28022016,8G,tgac-medium
Blast:card,blastn,/tgac/workarea/group-si/BAMBI\_Pt1/CARD\_1.1.1\_Download\_17Oct16/nucleotide\_fasta\_protein\_homolog\_model.fasta,8G,TempProject4
Blast: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 NanoOKReporter
java -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-GC
Read: TG--ACTATTCagCTAcTTAG--AGGCTGTGCTAC
在上面的示例中,为清楚起见,以小写形式显示了替代项。
· 序列长度为30个碱基,但仅前24个碱基包含在比对中。
· 比对长度为28个碱基。
· 序列和参考序列之间的16个碱基完全匹配。
· 序列一致性为100 * 16/30 = 53%。
· 比对一致性为100 * 16/28 = 57%
7. 完美Kmer
完美kmer是指没有任何错误(替代或插入缺失)的完美比对序列。
· 累积完美kmers:至少具有此(x轴)大小的一段完美序列的读取百分比。
· 最佳完美kmer:序列的百分比直方图,其(x轴)是完美序列的最佳延伸。
· 最长完美序列与序列长度的散点图。
8. 覆盖度
本部分包含Template,Complement和2D数据的覆盖图,以及用于参考的%GC图。
9. 5-mer分析
该图显示了Template,Complement和2D数据的序列相对于参考的5-mers的丰度。
10. 所有21mer分析
散点图显示了每种序列类型的完美21mers与序列长度的关系。
11. 所有参考情况
为每种序列类型(Template,Complement和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专刊 肠道指挥大脑
文献阅读 热心肠 SemanticScholar Geenmedical
16S功能预测 PICRUSt FAPROTAX Bugbase Tax4Fun
生物科普: 肠道细菌 人体上的生命 生命大跃进 细胞暗战 人体奥秘
写在后面
为鼓励读者交流、快速解决科研困难,我们建立了“宏基因组”专业讨论群,目前己有国内外5000+ 一线科研人员加入。参与讨论,获得专业解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。PI请明示身份,另有海内外微生物相关PI群供大佬合作交流。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍未解决群内讨论,问题不私聊,帮助同行。
学习16S扩增子、宏基因组科研思路和分析实战,关注“宏基因组”