Kraken序列分类算法
当然可以!kraken是一种流行的高效序列分类器,使用 k-mer (k个连续碱基组成的子串)方法对不同分类下的序列进行分类。以下是kraken序列分类算法简要说明:
- 数据预处理
首先,kraken会将参考数据库中的序列分割为固定长度的 k-mers,这些k-mer会被记录到一个查询表中。
- 样品序列匹配
kraken通过比对来自样品的短读序列(通常为32bp或更少,可以根据实验需要调整),与查询表中的 k-mer 匹配,并记录经过匹配的 k-mer。
- 计算lca(最近公共祖先)
lca计算是kraken算法的核心。这一步骤主要涉及的约简数据结构是ncbi(美国国家生物技术信息中心)的 taxonomic 树。每一个 k-mer之前必须对应着一个分类学意义上正确的taxon id(id大致相当于生命体系中的等级,例如物种、属、门等)。由于在参考数据库中存在不同分类间交叉的 k-mers,所以每个 k-mer必须被指派到唯一的位置(也就是唯一的taxon id)。
- 输出分类结果
统计经过搜索和分类的k-mer的数量,并利用分类后的k-mer信息支持对样品的分类结果。这些结果可以轻松地导出到一个表格中,以便进行后续分析。
总之,kraken是一款高效、准确和灵活的序列分类器,适用于大规模的医学、生物学和生态学应用。