kraken 是微生物组分析进行物种分类的工具,目前已经是第二代 kraken2 了。kraken2 对比 kraken 重点优化了数据库创建速度和数据库大小,以及分类速度。
kraken 用 k-mer 方法对输入数据的每一条序列进行分类分析。将每一条序列分成多个 k-mers, 每个 k-mer 在分类数据库寻找 LCA (lowest common ancestor), 序列所有 k-mers 所在的分类及其祖先组成一个分类树————属于总分类树的子集,这个分类树每个节点的权重是序列 k-mers 分配到该分类的次数。分类树上每个 RTL (root-to-leaf) 路径得分是这些权重总分,得分最高的路径是分类路径。然后将该路径分类 left 标签分配给该序列。如果有多个路径得分相等,那么他们的共同祖先标签分配给该序列。
从上面原理可以看出,用 kraken2 分析时提供合适的分类数据库至关重要。比如你期望分类到物种(species)水平,那么 silva 的 16S 数据库是不合适的,因为 silva 数据库本身只分类到属(genus)。如果你提供的分类数据库根本不包含样品主要物种,那么分析肯定是错误的。
完成 kraken2 分析得到每个序列的分类,再用 bracken 对各分类进行丰度估计。
分类数据库
分类数据库可以用 kraken2-build 命令创建,也可以从 Index zone by BenLangmead 下载现成的。默认下载的包含 50, 75, 100, 150, 200, 250, 300 k-mers 索引。
用 kraken2-build 命令创建时需要安装标记低复杂度区域的 dustmasker 工具,如果没有用 --no-masking 取消标记,否则工具会出错。创建标准的数据库直接用 --standard 命令,这将下载 NCBI 分类数据库,包含细菌、古细菌、病毒、人类和一些已知质粒载体。 |