首页 > 其他分享 >05 Kraken2物种注释

05 Kraken2物种注释

时间:2023-05-11 21:33:17浏览次数:35  
标签:05 数据库 Kraken2 注释 test 物种 序列

1、介绍

Kraken2是一种宏基因组分析工具,可通过对DNA序列进行分类和注释来识别微生物序列。它使用的是参考数据库,包括细菌、病毒、真菌和原核生物等,并根据每个序列中存在的K-mer进行分类和注释。Kraken2物种注释是为每个序列特定分类到相应的物种级别。

Kraken2物种注释可用于确定样品中存在哪些微生物,并计算各微生物在样品中的相对丰度。它对于鉴定可能会影响人类和环境健康的微生物或了解它们的功能和生态学角色非常有用。

Kraken2可以与其他分析软件集成使用,例如Bracken,后者可提高物种注释结果的准确性,并提供更精细的相对丰度值。使用Kraken2物种注释需要一个参考数据库,这些数据库可以从公共数据库中获得或构建自己专门的数据库。 通常应该选择具有高质量序列的最新数据库以获得最好的结果。

2、具体

Kraken2是一种广泛应用于宏基因组学领域的物种注释工具,它的主要作用是将宏基因组测序数据中的DNA序列比对到一个预定义的参考数据库中,以确定这些序列来源于哪些物种。具体来说,Kraken2物种注释的过程包括以下几个步骤:

  1. 建立参考数据库:Kraken2使用NCBI的分类体系构建了一个参考数据库,其中包括各种生物的完整基因组序列和代表性序列。这些序列被归类到不同的分类级别(例如:物种、属、科、目等)。

  2. 比对序列:Kraken2会将样品中的DNA序列与参考数据库中的序列进行比对,以确定其来源。

  3. 确定分类:根据比对结果,Kraken2会确定每个序列的分类级别(例如:物种、属、科、目等),并为其注释物种信息。

  4. 汇总统计:最后,Kraken2会将所有序列的分类结果进行汇总统计,生成一个关于样品物种组成的报告。

举个例子,如果我们有一个来自土壤样品的宏基因组测序数据集,使用Kraken2进行物种注释后,我们可以得到一个报告,其中包括了样品中所有DNA序列的物种组成信息。例如,Kraken2可能会告诉我们,该样品中包含了40%的细菌、30%的真菌、20%的古菌和10%的病毒等等。这些信息可以帮助我们了解样品中各种微生物的相对丰度,并进一步研究它们在不同环境下的功能和作用。

3、原理

Kraken2物种注释的原理是基于一种称为k-mer的特征。k-mer是指DNA序列中长度为k的连续子串。Kraken2会将输入的宏基因组测序数据集中的每个序列进行k-mer切割,然后将这些k-mer序列与预定义的参考数据库中的k-mer序列进行比对。通过比对这些k-mer序列,Kraken2可以快速地确定序列来源于哪个物种或者哪个分类单元。

举个例子,假设我们有一个长度为100bp的宏基因组序列,Kraken2可以将其切割成长度为k(例如k=31)的多个k-mer序列。然后,Kraken2会将这些k-mer序列与参考数据库中的k-mer序列进行比对,以确定这些k-mer序列来源于哪个物种或者哪个分类单元。最终,Kraken2会根据比对结果确定该序列的物种或分类单元。

Kraken2的特点是快速和准确。它使用了一种高效的k-mer比对算法,可以在较短的时间内完成大规模的物种注释。此外,Kraken2还支持多线程处理,可以充分利用计算机的多核处理能力,加快物种注释速度。

4、特点

Kraken2物种注释具有以下特点:

  1. 高效快速:Kraken2使用了一种高效的k-mer比对算法,可以在较短的时间内完成大规模的物种注释。此外,Kraken2还支持多线程处理,可以充分利用计算机的多核处理能力,加快物种注释速度。

  2. 准确性高:Kraken2的比对算法能够高度准确地将输入序列比对到参考数据库中的物种或分类单元。与传统的BLAST等比对算法相比,Kraken2的准确性更高。

  3. 数据库广泛:Kraken2的参考数据库包括了各种生物的完整基因组序列和代表性序列。这些序列被归类到不同的分类级别(例如:物种、属、科、目等)。这使得Kraken2可以用于各种类型的生物样品的物种注释。

  4. 灵活性高:Kraken2可以根据用户的需要自定义参考数据库。用户可以添加或删除参考序列,以便适应特定研究领域的需求。

  5. 输出结果清晰:Kraken2的输出结果包括了样品中所有DNA序列的物种组成信息。输出结果以表格或图表形式展示,方便用户进行数据分析和可视化。

举个例子,如果我们使用Kraken2对一组人体肠道微生物群落的宏基因组测序数据进行物种注释,Kraken2可以快速准确地将序列比对到参考数据库中的物种或分类单元。最终,Kraken2可以生成一份关于该微生物群落物种组成的报告,告诉我们该样品中各种微生物的相对丰度和种类信息,这有助于我们了解该微生物群落的生态特征和功能。

5、数据库

"minikraken_8GB_20200312"是一种广泛使用的宏基因组分析参考数据库,由Kraken2开发者提供。该数据库包含了各种生物的完整基因组序列和代表性序列,并将这些序列归类到不同的分类级别(例如:物种、属、科、目等)。这个数据库是一个预处理的Kraken2数据库,占用8GB空间,是用于快速物种注释的小型数据库。

该数据库的构建方法如下:

  1. 从NCBI网站下载所有的参考基因组序列和代表性序列。

  2. 使用Kraken2的"kraken2-build"工具对这些序列进行索引和压缩,以加快物种注释的速度。

  3. 在索引和压缩的过程中,Kraken2根据序列的相似性将其分成多个分类单元,并将这些单元归类到不同的分类级别中。

  4. 最终生成的参考数据库包括了各种生物的完整基因组序列和代表性序列,以及一个分类树(taxonomic tree),用于分类单元的注释和归类。

"minikraken_8GB_20200312"参考数据库的特点是其速度快、准确性高、覆盖面广,适用于各种类型的宏基因组数据的物种注释。当然,如果用户需要注释某些特定类型的生物样品,可以自行构建自己的参考数据库,或者在"minikraken_8GB_20200312"基础上进行自定义修改。

 

6、命令分析

kraken2 --db ~/database/minikraken2/minikraken_8GB_20200312 --threads 20 --report ./test.report --output ./test.output --paired ../SRR13188906_1.fastq ../SRR13188906_2.fastq

这是一个Kraken2的命令,用于对一组宏基因组测序数据进行物种注释。具体来说,该命令使用了一个名为"minikraken_8GB_20200312"的参考数据库,该数据库包含了各种生物的完整基因组序列和代表性序列。该命令使用了20个线程来加速注释过程。注释结果将会保存在"./test.report"文件中,该文件包括了样品中所有DNA序列的物种组成信息。此外,Kraken2会生成一个"./test.output"文件,该文件包含了所有输入序列的注释结果。最后,该命令使用了一对paired-end的fastq文件("../SRR13188906_1.fastq"和"../SRR13188906_2.fastq")作为输入数据进行物种注释。

 

bracken -d ~/database/minikraken2/minikraken_8GB_20200312 -i ./test.report -o ./test.S.bracken -w ./test.S.bracken.report -r 150 -l S

这是一个Bracken的命令,用于对Kraken2生成的物种注释结果进行进一步分析和校正。具体来说,该命令使用了一个名为"minikraken_8GB_20200312"的参考数据库,该数据库是Kraken2使用的数据库。该命令的输入文件是"./test.report",即Kraken2生成的物种注释结果。该命令会生成两个文件:一个名为"./test.S.bracken"的文件,包含了根据Bracken算法推测出来的样品的物种组成信息;一个名为"./test.S.bracken.report"的文件,包含了Bracken算法的统计结果,比如每个分类单元的比例、排名、以及覆盖面积等。在运行Bracken时,该命令使用了一个参数"-r 150",表示测序数据的read长度为150bp;还使用了一个参数"-l S",表示要将物种注释结果根据分类单元的等级进行校正,只考虑物种级别。

 

kreport2mpa.py -r test.S.bracken.report -o test.final.report

这是一个用于将Kraken2和Bracken生成的物种注释结果转换成MetaPhlAn2格式的命令。具体来说,该命令的输入文件是Bracken生成的统计结果文件,即"./test.S.bracken.report"。该命令的输出文件是一个名为"test.final.report"的文件,包含了每个样品的物种组成信息,以及每个分类单元在各个样品中的相对丰度。该命令的作用是将Kraken2和Bracken的结果转换成MetaPhlAn2的输入格式,以便进行后续的微生物组分析。

 

perl style_change.pl test.final.report test.txt

 这是一个用Perl编写的脚本命令,用于将MetaPhlAn2生成的物种注释结果转换成一种特定的格式,即在每行记录中将物种的ID和相对丰度用制表符分隔开,并且每个样品的注释结果占据一行。具体来说,该命令的输入文件是一个名为"test.final.report"的文件,该文件是MetaPhlAn2生成的物种注释结果。该命令的输出文件是一个名为"test.txt"的文件,该文件是经过转换后的物种注释结果。该命令的作用是将MetaPhlAn2的输出结果转换成另一种格式,以便进行后续的微生物组分析。  

merge_metaphlan_tables.py *.txt >all

这是一个用于合并多个MetaPhlAn2生成的物种注释结果的命令。具体来说,该命令的输入文件是多个以".txt"为扩展名的MetaPhlAn2结果文件,通配符符号"*.txt"可以匹配到所有这样的文件。该命令的输出文件是一个名为"all"的文件,包含了所有输入文件中的物种注释信息,并且将不同输入文件中相同的物种注释信息进行了合并。该命令的作用是将多个样品的MetaPhlAn2注释结果合并成一个文件,以便进行后续的微生物组分析和比较分析。

 ##################################################################################

conda install kraken2 -c bioconda
conda install bracken -c bioconda
conda update bracken
conda install krakentools==1.2
conda install metaphlan==4.0.2

下载数据库
wget ftp://ftp.ccb.jhu.edu/pub/data/kraken2_dbs/minikraken_8GB_202003.tgz
tar -xzvf minikraken_8GB_202003.tgz
wget http://ccb.jhu.edu/data/eupathDB/dl/eupathDB_kraken2.tar.gz
tar -xzvf eupathDB_kraken2.tar.gz

kraken2 --db ~/database/minikraken2/minikraken_8GB_20200312 --threads 20 --report ./test.report --output ./test.output --paired ../SRR13188906_1.fastq ../SRR13188906_2.fastq


bracken -d ~/database/minikraken2/minikraken_8GB_20200312 -i ./test.report -o ./test.S.bracken -w ./test.S.bracken.report -r 150 -l S


使用krakentools转换report为mpa格式

kreport2mpa.py -r test.S.bracken.report -o test.final.report

perl style_change.pl test.final.report test.txt

merge_metaphlan_tables.py *.txt >all

####################################################################################

 

标签:05,数据库,Kraken2,注释,test,物种,序列
From: https://www.cnblogs.com/wzbzk/p/17392303.html

相关文章

  • 优捷易装机助理 5.23.05.01 绿色单文件版
    更新流水:2023.05.01:首个自改官方 5.23.05.01最新正式版本修改内容:by.星野怜去除程序所有自校验;(首创)禁用第一次打开程序时弹出提示对话框;(首创)禁用程序检测更新并清除关于版本"检查更新"选项;(首创)禁用程序所有联网功能(包括"在线重装","软件大全");内部禁用设置主页及其相......
  • 05-CSS中的浮动
    CSS中的浮动HTML页面的文档流1、标准文档流---面试题 标准文档流指的是元素排版布局过程中,元素会默认自动从左往右,从上往下的流式排列方式 当前面内容发生了变化,后面的内容位置也会随着发生变化2、留存弊端 无论多么复杂的布局,其基本出发点均是:“如何在一行显示多个div......
  • [NOIP2005 普及组] 校门外的树
    [NOIP2005普及组]校门外的树题目描述某校大门外长度为\(l\)的马路上有一排树,每两棵相邻的树之间的间隔都是\(1\)米。我们可以把马路看成一个数轴,马路的一端在数轴\(0\)的位置,另一端在\(l\)的位置;数轴上的每个整数点,即\(0,1,2,\dots,l\),都种有一棵树。由于马路上有一......
  • 05 ffmpeg语法使用参考(个人版)
    【一】合并语法和步骤参考下面是在Python中使用ffmpeg命令将文件夹中的所有.ts文件合并为一个.mp4文件的步骤和代码示例:(1)安装FFmpeg库使用Python之前,您需要安装FFmpeg库。您可以使用如下命令在命令行中安装它:pipinstallffmpeg-python(2)导入FFmpeg库在Python脚本中,您需要......
  • [NOIP2005 普及组] 陶陶摘苹果
    [NOIP2005普及组]陶陶摘苹果题目描述陶陶家的院子里有一棵苹果树,每到秋天树上就会结出\(10\)个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个\(30\)厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知\(10\)个苹果到地面的高度,以及陶陶......
  • 【2023.05.07 模拟赛】T3 树数树
    Description牛牛有一棵\(n\)个点的有根树,根为1。我们称一个长度为\(m\)的序列\(a\)是好的,当且仅当:\(\foralli\in(1,m],\mathrm{a}_{\mathrm{i}}\)为\(\mathrm{a}_{\mathrm{i}-1}\)的祖先或\(\mathrm{a}_{\mathrm{i}-1}\)是\(\mathrm{a}_{\mathrm{i}}\)的......
  • 【2023-05-08】保持淳朴
    20:00读书做人,不是两件事。将所读之书,句句体贴到自己身上来,便是做人之法,如此方叫得能读书;人若不将来身上理会,则读书自读书,做人自做人,只算做“不曾读书的人”。                                    ......
  • C/C++模拟银行排队叫号系统[2023-05-11]
    C/C++模拟银行排队叫号系统[2023-05-11]2、模拟银行排队叫号系统(难度等级A)[问题描述]模拟实现银行的排队叫号系统。[基本要求](1)假定银行上午9点开门,下午5点关门,期间每个小时的客流量不超过35人;(2)每个客户的基本信息包括:到达银行时间、业务需要办理的时长。这两项数据均......
  • C/C++交通咨询系统设计哈夫曼编码问题[2023-05-11]
    C/C++交通咨询系统设计哈夫曼编码问题[2023-05-11]题目三、交通咨询系统设计最短路径问题设计要求及分析:设计一个交通咨询系统,能让旅客咨询从任一个城市顶点到另一城市顶点之间的最短路径(里程)、最低花费、最少时间等问题。对于不同咨询要求,可输出城市间的路程、所需时间......
  • 产品原型23-20230510
       ......