专栏首页生信菜鸟团关于 16s 序列的注释算法

关于 16s 序列的注释算法

最近在研究 16s 序列注释的问题,看了几篇文章,稍微整理了下。有些观点我也还需进一步验证,不一定正确,欢迎大家留言讨论。

16S rRNA 扩增子测序已被广泛应用于微生物组研究,其中一个至关重要的步骤就是对相应序列(OTU 或者 ASV)进行分类学注释。虽然已经有大量的注释算法被开发出来,但是我们最普遍用到的仍是朴素贝叶斯分类器(NBC)。追溯其历史,RDP(Ribosomal Database Project)首先使用了NBC 算法[1]来对序列进行分类注释,证明了16S rRNA 序列可以进行属水平分类。很多研究也证明 NBC 在标记基因序列分类上的效果确实十分稳健,比如 QIIME2 内置的 q2-feature-classifier[2] 分类器。

q2-feature-classifier

“Optimizing Taxonomic Classification of Marker-Gene Amplicon Sequences with QIIME 2’s Q2-Feature-Classifier Plugin.” Microbiome 6, no. 1 (May 17, 2018): 90. https://doi.org/10.1186/s40168-018-0470-z.

QIIME2 提供了 3 种不同的方法来进行物种注释,包括两种 alignment-based 的方法(VSEARCH,BLAST+)和一种基于 naive-bayes 机器学习的方法。在模拟数据集中,这些方法的 F-measure 随着分类水平的降低而降低,但在属水平的 F-measure 均大于 0.8(minimum: UCLUST F = 0.81, maximum: naive Bayes bespoke F = 1.00)。朴素贝叶斯的 F-measure、召回率、分类单元检出率、分类单元准确率都高于其他方法,但 Bray-Curtis 距离更小。

在交叉验证中,这些方法的准确性指标相差不大。但对于新种的推断,UCLUST、BLAST+ 和 VSEARCH 的算法显著优于其他算法(P < 0.05)。

q2-feature-classifier 的建模过程进行了两次超参数选择:第一次网格搜索主要用于优化特征提取参数,第二次则是更关注优化 k-mer 长度和置信度参数。

第一次网格搜索的过程,包括 sklearn.feature_extraction.text.HashingVectorizersklearn.feature_extraction.text.TfidfTransformersklearn.naive_bayes.MultinomialNB。参数见下表。这一步的结论是 TfidfTransformer 步骤没有显着改善分类性能,即 n_features 应设置为 8192,特征向量应使用 L2 归一化进行归一化,并且朴素贝叶斯分类器的 alpha 参数应设置为 0.001。

其实 QIIME2 中的 q2-feature-classifier 插件可以很方便地将 scikit-learn 中的机器学习算法迁移到标记基因序列的分类问题。该插件的默认算法,即是从参考序列中提取 k-mer 计数并训练 scikit-learn 多项式朴素贝叶斯分类器。展开来说,就是用 sklearn.feature_extraction.text.HashingVectorizer 进行特征提取和用 sklearn.naive_bayes.MultinomialNB 进行分类。不同于 RDP 分类器默认的 8-mers,scikit-learn 中的哈希特征提取器则可以使用更长的 k-mers。此外,和大多数 scikit-learn 分类器一样,我们可以在训练多项朴素贝叶斯分类器时设置权重。

所以,这篇文章也提出了物种权重信息可能提高分类准确性的假设,并在一定程度上进行了验证。因为默认的假设是每个分类群出现在每个样本中的可能性相同,这往往和实际情况有所不同。关于这部分结论可参考下文。

“Species Abundance Information Improves Sequence Taxonomy Classification Accuracy.” Nature Communications 10, no. 1 (October 11, 2019): 4643. https://doi.org/10.1038/s41467-019-12669-6.

其他算法

从上文我们可以看到,NBC 的分类性能已经十分优异,同时对算力的要求也不高。那么这就带来了新的思考:

1.更先进的监督学习算法能否超越 NBC 的准确性?2.我们是否已经达到了 16s rRNA 分类性能的上限?

最近的一篇文章就用了随机森林和神经网络算法来进行分类预测,同时也和 NBC 进行了比较。

“Beating Naive Bayes at Taxonomic Classification of 16S rRNA Gene Sequences.” Frontiers in Microbiology 12 (2021): 1664. https://doi.org/10.3389/fmicb.2021.644487.

先说这篇文章的结论,RF 和 CNN 性能接近,但准确性并没有超过加入了权重信息的 NBC。关于 16s rRNA 分类性能的上限,对于150 nt 的 reads 来说,使用加入权重信息的 NBC 几乎已经达到性能极限。对于较长的扩增子(V4 全长) ,性能提升也十分有限。所以,与 RF 和 CNN 分类器相比,对算力要求较低的 NBC 显然对于研究者来说更为友好。

随机森林分类器

和之前的建模流程相似,作者同样使用了两次超参数选择。先在一个相对较小的数据集上进行网格搜索,以选择对模型性能相对重要的超参数。然后在一个更大的数据集上进行第二次网格搜索。初步试验结果表明,max_depthmax_features 对分类准确度有显著影响。

这里的分类准确度基于 F-measure 进行计算,用于种水平的分类。使用 Matthews 相关系数 (MCC) 校正不平衡数据集中的 F-measure 的偏差。结果表明,无论使用什么参数,NBC 均优于 RF(Wilcoxon, p < 0.05)。

这幅图也能说明最大树深度 (max_depth) 对分类准确度的影响最大,增加最大深度会导致 F-measure 增加。但要是 max_depth 超过 64 ,模型的性能提升不大。同时,减少纳入的特征数量 (max_features) 也会导致分类准确度略有下降,在较低的置信水平下,这种性能下降较不明显。增加估计量(n_estimator)对分类准确度影响较小。

卷积神经网络

除了使用 RF 建模外,作者还测试了 CNN 的效果。在将 DNA 序列输入网络之前,调用了 word2vec 采用 CBOW(Continuous Bag-Of-Words Model,连续词袋模型)将遗传信息转换为一系列 300 个元素的向量。这里除了能够将 k-mers 转换为数值,而且还携带有关给定序列中任何两个 k-mers 之间相关性/相似性的附加信息。

在大多数测试中,作者使用了一个较为简单的神经网络,包含一个(一维)卷积层,然后是一个全局最大池化层和一个分类层(下图 A,架构 I)。用到的超参数选择范围 (见下表)。

超参数选择的结果表明,增加过滤器的数量或 kernel size 会提高准确度,平均 F-measure 在 0.710 ∓ 0.009 和 0.801 ∓ 0.006 之间。基于这个结果,作者定义了一组参数来测试置信度设置对 CNN 分类性能的影响。结果表明,将置信参数降低至 0.5 可提高性能(平均 F-measure 为 0.849 ∓ 0.005,filters = 512/kernel_size = 7),但要是将置信度进一步降低至 0.25 时,性能并不会进一步提高。进一步的测试也表明,过滤器数量或 kernel size 加倍对分类器精度也几乎没有影响。除此之外,作者还测试了不同网络架构(上图 B 中的架构 II )和特征提取方法(独热编码)对 CNN 性能的影响。

总而言之,在这篇文章中,CNN 平均 F-measure 的最大值约为 0.85 左右,始终显著低于 NBC(p < 0.05)。

完美分类器

RF 和 CNN 分类器的平庸表现,让人不禁假设 NBC 可能已经接近这个问题的分类准确度上限,因此单独的替代算法不可能超过这个性能。

为了检验这个假设,作者构建了一个完美分类器(Perfect Classifier, PC)来衡量给定分类任务的分类准确率上限。这个分类器只有在两个或多个物种共享完全相同的序列时才会分类失败。当它们共享相同的序列时,算法将随机选择一个匹配的分类结果作为该序列的标签。所以该分类器的性能代表了分类准确度上限。

结果表明,对于 V4 150 nt 的完美分类器,加入权重信息的完美分类器的平均 F-measure 在 0.887 和 0.903 之间,而最佳 NBC 的平均 F-measure 为 0.865 ∓ 0.002 (Wilcoxon, p < 0.05)。对于全长 V4,结果也非常类似,完美分类器的平均 F-measure 得分介于 0.934 和 0.943 之间,而 NBC 为 0.866 ∓ 0.002(Wilcoxon, p < 0.05)。但这里需要注意,NBC 执行的是样本外交叉验证,而完美分类器是训练样本内的交叉验证,所以 F-measure 肯定偏大。因此,这两者的性能其实差距很小,说明 NBC 已接近分类性能极限。

总结

综上所述,16s rRNA 序列的保守型一定程度上限制了分类器的分类性能。目前这些成熟的分类算法已经十分接近分类准确度上限。当然,很多其他变量也会对分类性能有一定的影响,比如 reads 长度、引物选择、标记基因靶标、序列熵等等。参考数据库中的错误注释也导致了这个问题更加复杂。所以分类算法的进一步改进,不太可能仅仅来自新算法的应用,而更可能是某种组合:

1.挖掘 DNA 序列或其他潜在信息中的高位特征;2.利用先前研究中的生态权重信息来提高分类准确性;3.参考序列和分类数据库的进一步优化;4.更长的读长和/或其他标记基因靶标;5.改进的点不仅局限于准确性,还可以包括运行时间、内存使用量等等。

引用链接

[1] NBC 算法: https://doi.org/10.1128/AEM.00062-07 [2] q2-feature-classifier: https://doi.org/10.1186/s40168-018-0470-z

友情推荐

学徒培养2021名额开放申请老板,请为我配备一个懂生信的师兄你以为GEO只是挖挖就完了吗

本文分享自微信公众号 - 生信菜鸟团(bio_123456789),作者:鲍志炜

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-08-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • RiboFR-Seq:将16S rRNA与宏基因组连接的方法

    16S rRNA扩增子分析和宏基因组测序是研究微生物群落的两种主要的独立方法。近年来,许多研究将这两种方法结合起来使用,但下游的数据分析是分开进行的,在分类和功...

    Listenlii-生物信息知识分享
  • 高分辨率系统发育微生物群落剖析

    摘要:在过去十年中,在微生物群落分析方面,短读长高通量16S rRNA基因扩增子测序,已经使克隆依赖性长读长Sanger测序黯然失色。过渡到新技术提供了更多的定...

    用户1075469
  • ubiome数据分析流程学习笔记1

    虽然ubiome倒下了,但是它的知识产权还是有价值的,要不也不会有公司出价收购,那么,我们看下它的方法具体细节是怎样的呢?

    用户1075469
  • AutoTax | 基于全长 16S 测序数据创建特定环境的菌群注释数据库

    16S rRNA 扩增子测序是研究微生物群落多样性和动态变化的重要方法。然而,目前公共 16S rRNA 参考数据库中仍缺乏许多环境微生物的高同一性参考序列,也...

    生信菜鸟团
  • 使用纳米孔测序数据进行16S-DNA条形码研究的计算方法[综述]

    3.Centrifuge和Minimap2是处理纳米孔数据的最合适工具,并且可以认为它们是当前的最佳选择;

    用户1075469
  • 扩增子分析流程

    该 SOP 基于 QIIME2 2020.2,学习之前建议先过一遍 QIIME2 “Moving Pictures” tutorial[1]。

    生信菜鸟团
  • Nanopore牛津纳米孔测16S学习笔记

    身处这样一个互联网时代,应当感恩技术带来的便利,从在一个地方不远游就只能是井底之蛙,到今天互联网让我们不出门知天下事,当然,假消息也有。虽然现在许多事和技能仍然...

    用户1075469
  • 微生物组研究中的术语建议~~

    Link: https://microbiomejournal.biomedcentral.com/track/pdf/10.1186/s40168-015-0...

    Listenlii-生物信息知识分享
  • PICRUSt不灵啦?别慌,它一直都不咋灵~

    PICRUSt作为利用16S进行功能预测的方法,使用非常广泛。但是其利用Greengene作为参考数据库,由于Greengene更新缓慢,在如今测序技术发展一日...

    Listenlii-生物信息知识分享
  • Picrust2预测真菌群落功能

    place_seqs.py -s ITS.fasta -o placed_seqs.tre -p 20 --intermediate placement...

    Listenlii-生物信息知识分享
  • 扩增子图表解读2散点图:组间整体差异分析(Beta多样性)

    作者: 刘永鑫 日期:2017-6-29 阅读时长:10 min 背景介绍(Introduction) 宏基因组学 宏基因组学目前的主要研究方法包括:16S/I...

    生信宝典
  • SINTAX: 优于RDP的序列分类器

    SINTAX于2016年发表于bioRxiv,作者是创造了Usearch的大神。所以看作者定价值,直接无条件的信任就好了~

    Listenlii-生物信息知识分享
  • 宏转录组学习笔记(三)

    QIIME(Quantitative Insights Into Microbial Ecology)和MOTHUR是引用最多、应用最广泛的软件。它们都可以用来...

    用户1075469
  • Microbiome Discovery 宏基因组入门课程

    偶然间在 youtube 上看到 Dan Knights 的 Microbiome Discovery 宏基因组入门课程,大致浏览了一下,由浅入深,从理论到实践...

    生信菜鸟团
  • AmpliCI: 据说优于传统ASV的高精度扩增子数据降噪算法

    前言:最近几年推出了不少新的ASV相关算法,本文也是其中一个。我没有测试过,具体使用问题别问我。

    Listenlii-生物信息知识分享
  • 扩增子图表解读1箱线图:Alpha多样性,老板再也不操心的我文献阅读了

    作者: 刘永鑫 日期:2017-6-17 阅读时长:10 min 宏基因组学 宏基因组学目前的主要研究方法包括:16S/ITS/18S扩增子、宏基因组、宏转录...

    生信宝典
  • 另辟蹊径,中科院自动化所等首次用图卷积网络解决语义分割难题

    论文链接:https://arxiv.org/pdf/2001.00335.pdf

    CV君
  • 一作解读|Nat. Biotechnol.:水稻NRT1.1B基因调控根系微生物组参与氮利用

    https://www.mr-gut.cn/papers/read/1070836774

    生信宝典
  • 9000字的扩增子背景长文,值得收藏。

    大家好,我叫刘永鑫,来自中国科学院遗传与发育生物学研究所,今天很高兴有这次机会为大家来讲扩增子分析系列课程。我本科学习的是微生物学专业,之后又获得了生物信息学博...

    生信宝典

扫码关注云+社区

领取腾讯云代金券