Kraken2是一种宏基因组分析工具,可通过对DNA序列进行分类和注释来识别微生物序列。它使用的是参考数据库,包括细菌、病毒、真菌和原核生物等,并根据每个序列中存在的K-mer进行分类和注释。Kraken2物种注释是为每个序列特定分类到相应的物种级别。
Kraken2物种注释可用于确定样品中存在哪些微生物,并计算各微生物在样品中的相对丰度。它对于鉴定可能会影响人类和环境健康的微生物或了解它们的功能和生态学角色非常有用。
Kraken2可以与其他分析软件集成使用,例如Bracken,后者可提高物种注释结果的准确性,并提供更精细的相对丰度值。使用Kraken2物种注释需要一个参考数据库,这些数据库可以从公共数据库中获得或构建自己专门的数据库。 通常应该选择具有高质量序列的最新数据库以获得最好的结果。
Kraken2是一种广泛应用于宏基因组学领域的物种注释工具,它的主要作用是将宏基因组测序数据中的DNA序列比对到一个预定义的参考数据库中,以确定这些序列来源于哪些物种。具体来说,Kraken2物种注释的过程包括以下几个步骤:
建立参考数据库:Kraken2使用NCBI的分类体系构建了一个参考数据库,其中包括各种生物的完整基因组序列和代表性序列。这些序列被归类到不同的分类级别(例如:物种、属、科、目等)。
比对序列:Kraken2会将样品中的DNA序列与参考数据库中的序列进行比对,以确定其来源。
确定分类:根据比对结果,Kraken2会确定每个序列的分类级别(例如:物种、属、科、目等),并为其注释物种信息。
汇总统计:最后,Kraken2会将所有序列的分类结果进行汇总统计,生成一个关于样品物种组成的报告。
举个例子,如果我们有一个来自土壤样品的宏基因组测序数据集,使用Kraken2进行物种注释后,我们可以得到一个报告,其中包括了样品中所有DNA序列的物种组成信息。例如,Kraken2可能会告诉我们,该样品中包含了40%的细菌、30%的真菌、20%的古菌和10%的病毒等等。这些信息可以帮助我们了解样品中各种微生物的相对丰度,并进一步研究它们在不同环境下的功能和作用。
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还支持多线程处理,可以充分利用计算机的多核处理能力,加快物种注释速度。
Kraken2物种注释具有以下特点:
高效快速:Kraken2使用了一种高效的k-mer比对算法,可以在较短的时间内完成大规模的物种注释。此外,Kraken2还支持多线程处理,可以充分利用计算机的多核处理能力,加快物种注释速度。
准确性高:Kraken2的比对算法能够高度准确地将输入序列比对到参考数据库中的物种或分类单元。与传统的BLAST等比对算法相比,Kraken2的准确性更高。
数据库广泛:Kraken2的参考数据库包括了各种生物的完整基因组序列和代表性序列。这些序列被归类到不同的分类级别(例如:物种、属、科、目等)。这使得Kraken2可以用于各种类型的生物样品的物种注释。
灵活性高:Kraken2可以根据用户的需要自定义参考数据库。用户可以添加或删除参考序列,以便适应特定研究领域的需求。
输出结果清晰:Kraken2的输出结果包括了样品中所有DNA序列的物种组成信息。输出结果以表格或图表形式展示,方便用户进行数据分析和可视化。
举个例子,如果我们使用Kraken2对一组人体肠道微生物群落的宏基因组测序数据进行物种注释,Kraken2可以快速准确地将序列比对到参考数据库中的物种或分类单元。最终,Kraken2可以生成一份关于该微生物群落物种组成的报告,告诉我们该样品中各种微生物的相对丰度和种类信息,这有助于我们了解该微生物群落的生态特征和功能。
5、数据库
"minikraken_8GB_20200312"是一种广泛使用的宏基因组分析参考数据库,由Kraken2开发者提供。该数据库包含了各种生物的完整基因组序列和代表性序列,并将这些序列归类到不同的分类级别(例如:物种、属、科、目等)。这个数据库是一个预处理的Kraken2数据库,占用8GB空间,是用于快速物种注释的小型数据库。
该数据库的构建方法如下:
从NCBI网站下载所有的参考基因组序列和代表性序列。
使用Kraken2的"kraken2-build"工具对这些序列进行索引和压缩,以加快物种注释的速度。
在索引和压缩的过程中,Kraken2根据序列的相似性将其分成多个分类单元,并将这些单元归类到不同的分类级别中。
最终生成的参考数据库包括了各种生物的完整基因组序列和代表性序列,以及一个分类树(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
####################################################################################
clade_name:分类的物种属名,可以看到分成了不同的层级,使用“|”进行分割
NCBI_tax_id:该物种属名对应的 NCBI 数据库中的分类号码
其他列:每个样品被分到对应物种属名的百分比或计数值,具体含义要看输入数据和 Kraken2 的参数设置。
根据这个结果,可以发现样本中检测到了一些古菌(Archaea),其中有一部分被分类为 Candidatus_Korarchaeota,其中又有一部分被分类到了 Candidatus_Korarchaeum。除此之外,还有一些其他的细菌和真菌被检测到。具体的物种组成情况可以根据不同的分类层级和 NCBI_tax_id 进行进一步的分析。