Published 2 February 2022
Link:https://journals.asm.org/doi/epub/10.1128/msphere.00916-21
摘要
将新的样本合并到以前聚类好的数据集而不是再次聚类所有序列可大大节省分析时间和成本。现有的基于参考数据库方法会产生一致的OTU,但只考虑OTU中每个序列与单个参考序列的相似性,导致效果不如de novo方法。
为了提供一种有效的方法来将序列匹配到现有的OTU,开发了OptiFit算法。受de novo OptiClust算法的启发,OptiFit考虑了所有参考和查询序列对的相似性,以产生尽可能高质量的OTU。
使用四个数据集两种策略来测试OptiFit: (i)聚类到一个参考数据库,(ii)将数据集分割成一个参考和查询集,使用OptiClust聚类参考集,然后将查询集聚类到参考集。结果比只基于参考参考数据库要好。当使用分割数据集策略时,OptiFit能够以更快的速度产生与OptiClust相似的质量OTU。
背景
OTU聚类算法主要有两大类:de novo(从头)聚类算法和基于参考数据库的聚类算法。OptiClust为de novo聚类算法,使用成对序列之间的距离分数,通过最大化Matthews correlation coefficient (MCC)对序列进行聚类。这种方法考虑了所有对序列之间的距离。而在常用的贪婪聚类算法的方法中,聚类时只考虑每个序列与OTU中具有代表性的质心序列之间的距离。因此,同一OTU中序列对之间的距离往往大于指定的阈值,即为假阳性。而OptiClust算法在考虑如何将序列聚类成OTU时考虑了所有序列对之间的距离,因此不太会出现假阳性。
de novo聚类的一个局限性是,当新的序列添加到数据集时,会产生不同的OTU分配结果,这使得很难使用de novo聚类来比较不同研究之间的OTU。此外,由于de novo聚类需要计算和比较数据集中所有序列之间的距离,时间可能会很慢,对于非常大的数据集来说,内存需求可能很大。基于参考数据库聚类试图克服de novo聚类方法的局限性,它使用数据库中具有代表性的序列集,每个参考序列生成一个OTU。通常在VSEARCH中使用97%相似性的具有代表性的全长序列的Greengenes数据集作为参考。然后根据查询序列与参考序列的相似性将查询序列聚类成OTU。任何不在任何参考序列距离阈值内的查询序列要么被丢弃(closed reference clustering),要么再使用de novo聚类以创建额外的OTU (open reference clustering)。基于参考数据库的聚类通常速度较快,但受到参考数据库多样性的限制。之前研究表明OptiClust de novo聚类算法在所有聚类方法中创建了最高质量的OTU。
Westcott SL, Schloss PD.2017. OptiClust, an improved method for assigning amplicon-based sequence datato operational taxonomic units. mSphere 2:e00073-17. https://doi.org/10.1128/mSphereDirect.00073-17.
方法
OptiFit利用OptiClust所采用的迭代分配序列到OTU的方法,以产生尽可能高质量的OTU,并将该方法扩展到基于参考数据库的聚类。OptiClust首先将每个序列作为singleton种子植入到自己的OTU中。然后对于每个序列,OptiClust通过选择导致更好的MCC得分的选项考虑序列是应该移动到一个不同的OTU还是保持在当前的OTU中。MCC使用一个混淆矩阵中的所有值,范围从-1到1。当所有序列对真阳性和真阴性得分为1,全为假阳性和假阴性时为-1,当真和假结果数量相同,值为0(即和随机相比没有差别)。彼此相似的序列对(即在距离阈值内),如果它们聚在相同的OTU中,则被计数为真阳性,如果它们不在相同的OTU中,则被计数为假阴性。彼此不相似的序列对,如果它们没有聚在相同的OTU中,则为真阴性,如果它们在相同的OTU中,则为假阳性。因此,当一对序列的OTU分配与距离阈值设置的OTU定义相匹配时,认为该序列的分配是正确的。OptiClust迭代直到MCC稳定或达到最大的迭代数量。这个过程在给定输入序列的情况下,使用最优MCC生成全新的OTU分类。
OptiFit从OptiClust结束的地方开始 (图1)。最初,所有查询序列都被放置到单独的OTU中。然后,算法迭代地将查询序列重新分配给参考OTU,以优化MCC。如果序列是singleton而没有被聚类成参考OTU,序列将保持未分配。计算MCC时考虑所有的查询和引用序列对。此过程将重复执行,直到MCC的变化不超过0.0001(默认),或者直到达到最大迭代次数(默认为100)。在closed reference模式下,任何不能聚类成参考OTU的查询序列都会被丢弃,结果中只包含原始参考中存在的OTU。在open reference模式下,使用OptiClust对未分配的查询序列进行从头聚类,生成新的OTU。有两个策略生成OTU: (i) 通过de novo聚类产生的一个独立的数据库,将序列聚类进去(ii)把数据集分割成一个参考集和查询集, 参考集进行de novo聚类,然后查询集向他聚类。
图1 OptiFit算法示例
图2 验证算法效果。下载来自Greengenes、RDP和SILVA的参考序列,muthor进行预处理修剪到V4区, OptiClust de novo聚类100次。下载来自人类、海洋、小鼠和土壤微生物组的数据集,修剪到V4区,然后OptiClust de novo聚类100次。单独的数据集使用OptiFit比对到数据库;对每个数据集和数据库组合重复OptiFit100次。将数据集随机分为参考和查询两个部分,使用OptiFit对参考序列进行100次重复的拟合。对所有OptiClust和OptiFit进行最终MCC评分。
结果
OptiClust或OptiFit效果最好,时间也不慢。
MCC中位数、在closed reference聚类中映射的查询序列的分数,以及重复每个聚类方法100次后的运行时间(秒)。每个数据集采用三种聚类策略:(i)使用OptiClust对整个数据集进行从头聚类,(ii)将数据集分割为50%的序列作为参考集,另外50%的序列作为查询集,使用OptiClust对引用进行聚类,然后使用OptiFit将查询序列聚类到引用OTUs,(iii)将数据集聚类到参考数据库(Greengenes、SILVA或RDP)。