Kraken是2013年9月推出的一款宏基因组分类分析软件,通过使用k-mers的精确对齐和新的分类算法来实现高灵敏度、高速度的分析。
-
与MetaPhalAn2相比Kraken的特点是非常快速,但内存需求较大,比较适宜大量小数据集运算。
-
准确度方面Kraken与Megablast相当,灵敏度虽低,但精度非常高。下面是来自kraken官网关于各分类器的测评结果:
![]() |
Kraken如此的高效快速,是不是很想试一试,下面小锐给大家简单展示一个操作示例。
Kraken安装
Kraken是由C ++和Perl编写的,专门用于Linux操作系统。
下载地址:http://ccb.jhu.edu/software/kraken/
下载安装包并解压后,进入含有install_kraken.sh文件的目录下,
命令: ./install_kraken.sh $KRAKEN_DIR($KRAKEN_DIR实际操作中的路径)
显示:Kraken installation complete.即为安装成功,为方便后续操作,安装完成后,可将两个主要Kraken脚本:kraken和kraken-build复制到PATH变量(例如“$ HOME / bin”)中
命令:
cp $ KRAKEN_DIR / bin / kraken $ HOME / bin
cp $ KRAKEN_DIR / bin / kraken-build $ HOME / bin
Kraken数据库
首先,设定比对的数据库,也可以下载该软件提供的数据库。Kraken提供的参考数据库分别包含了细菌、古细菌以及病毒基因组。
命令:
kraken-build --standard --db $DBNAME ( “$ DBNAME”替换为首选数据库名称/位置。)
数据库目录下至少包含4个文件:database.kdb、database.idx、taxonomy / nodes.dmp、taxonomy / names.dmp。
然后,下载NCBI分类学信息,以及RefSeq中细菌,古细菌和病毒域的完整基因组。
命令:
kraken-build --standard --threads 24 --db $DBNAME
注:此步构建过程大约需要5个小时。
最后,删除任何不必要的文件。
命令:kraken-build --db $ DBNAME --clean
Kraken 分类分析
对一组序列进行分类,使用kraken命令:
kraken --db $ DBNAME seqs.fq
结果:
![]() |
![]() |
解析:
“C”/“U”:一个字母代码,表示序列是分类的还是未分类的。
序列ID,从FASTA / FASTQ头获得。
分类标识Kraken用于标记序列; 如果序列未分类,则这是0。
序列的长度以bp为单位。
空格分隔的列表,指示序列中每个k-mer的LCA映射。 例如,“562:13 561:4 A:31 0:1 562:3”将表明:
前13个k-mers被映射到分类ID#562
接下来的4个k-mers被映射到分类ID#561
接下来的31个k-mers含有一个模糊的核苷酸
下一个k-mer不在数据库中
最后3个k-mers被映射到分类ID#562
若想显示每个输入序列关联的完整分类名称,我们可以使用kraken-translate脚本,会生成两种不同的输出格式。该脚本基于kraken的输出运行,其中未分类的序列不会被kraken-translate报告。
kraken-translate输出的第一列是分类序列的序列ID,第二列包含序列的分类。
命令:
kraken --db $DBNAME sequences.fa > sequences.kraken
kraken-translate --db $DBNAME sequences.kraken > sequences.labels
结果:
若想使报告显示“界门纲目科属种”的分类的级别排序,使用参数--mpa-format。
命令:kraken-translate --mpa-format --db $ DBNAME
结果:
![]() |
按序输出,并利用管道来划分各分类级别。
所以,还在等什么,赶紧实战起来吧,完成你的Kraken 分类分析。
参考文献:
Wood DE, Salzberg SL: Kraken: ultrafast metagenomic sequence classification using exact alignments. Genome Biology 2014, 15:R46.