掌桥专利:专业的专利平台
掌桥专利
首页

基于深度学习和集束搜索的系统发育树构建方法及系统

文献发布时间:2023-06-19 19:28:50


基于深度学习和集束搜索的系统发育树构建方法及系统

技术领域

本发明属于生物信息学和深度学习技术领域,具体涉及一种基于深度学习和集束搜索的系统发育树构建方法及系统。

背景技术

系统发育树是用一种类似树状分支图形来概括各节点之间的演化关系,节点可以是不同物种、同一物种不同个体、不同基因等。它对谱系历史进行建模,可体现物种演化关系和演化历程,群体内部样本亲缘关系,基因家族成员演化关系等等。在大多数情况下,系统发育树具有二叉结构,它传达了物种演化是半随机分裂的概念。然而,由于数据或者方法的原因可能会出现一个节点分出多个演化分支等情况,导致该节点演化出的物种之间的演化关系无法明确,因此在大多数研究中,人们希望得到一个二叉的系统发育树。目前重建系统发育树的主要方法是统计推断。研究者提出了多种统计推断算法用于从多重序列比对(Multiple sequence alignment;MSA)推断系统发育树。

一般来说,这些算法可以分为两类:

1)基于距离的算法,通过计算包含成对序列距离信息的距离矩阵,然后使用聚类算法推断层次关系,这类算法包括非加权组平均法(UPGMA)和邻接法(NJ)。

2)基于搜索的算法,依靠预定义的模型、参数集、和评价指标来评估一个候选的系统发育树对给定MSA的符合程度,搜索树的空间并选择给定评价指标下最适合MSA的系统发育树,如最大解析法、最大似然法和贝叶斯推断法。

这些算法通常具有以下几个缺陷:

1)系统发育树的重建需根据已经观察到的数据或理论假设,预先定义一个带有相关参数的演化模型,但当演化模型和参数偏离实际情况时,所构建的树也会偏离真实结果。

2)很难有能够解决基因组中小片段序列插入或缺失(INDEL)的精确演化模型,很多传统算法在重建树时都会忽略INDEL,使得部分演化信息被忽略,造成系统发育树重建的不准确性。

3)一些跨序列的杂合情况可能导致长分支的产生。因此,如何准确构建多类群的系统发育树仍然是一项艰巨的任务。

随着深度学习的发展,研究者希望将深度学习算法应用于系统发育树的推断领域,目前主要面临两个挑战:

1)处理不固定长度的多序列比对数据,研究者对具有固定序列长度(1000个碱基)的MSA,通过模拟核苷酸训练数据集进行训练和预测系统发育树的分类情况。然而,现有的方法无法解决非固定长度序列的推断问题。

2)处理不同序列数量的MSA的系统发育树的推断。为了处理更多的序列,研究者提出了一种逐步添加方法用于系统发育树重建,然而,现有的算法存在算法效率低以及可能产生多叉树等问题。

发明内容

本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于深度学习和集束搜索的系统发育树构建方法及系统,用于解决传统深度学习难以处理非固定长度、非固定序列数量多序列比对的系统发育树推断的技术问题,使得本发明能处理任意序列数量、任意序列长度的多序列比对重构系统发育树的问题。同时,相对于传统的极大似然法,本发明可以对INDEL这一关键演化信息进行处理,且不需要设定难以估计的演化模型及参数,而能够针对特定场景进行数据模拟和模型训练,因此对于特定场景有更大的应用潜力。

本发明采用以下技术方案:

基于深度学习和集束搜索的系统发育树构建方法,包括以下步骤:

S1、定义不同演化场景,根据每个演化场景的序列特性设置模拟参数,基于模拟参数模拟四序列系统发育树及其对应固定长度的多序列比对数据,将多序列比对作为监督学习的数据,对应的四序列系统发育树的类别作为监督学习的分类标签,构成监督学习数据集,最后将监督学习数据集划分为训练集、验证集和测试集;

S2、使用步骤S1构建的监督学习数据集构建以卷积神经网络和长短期记忆神经网络为核心的三分类深度学习器,使用步骤S1的训练集、验证集、测试集分别用作深度学习分类器的训练、验证和测试,得到训练好的深度学习分类器;

S3对非固定长度的四序列比对数据,利用滑动窗口算法划分成多个固定长度的子四序列比对,再利用步骤S2得到的三分类深度学习分类器对子四序列比对进行分类预测,每个子四序列比对的分类预测结果为一个3维的概率分布向量,每一维向量给出3种拓扑各自对应的概率,选择子四序列比对的最大概率分布预测结果,得到非固定长度的四序列比对分类结果;

S4、对于非固定长度的多序列比对数据,首先采样所有非固定长度的子四序列比对,并根据步骤S3对非固定长度的四序列比对数据的分类预测方法进行预测,得到所有四序列比对的预测结果,最后根据所有四序列比对的结果,结合改进的逐步添加方法和集束搜索策略进行非固定长度的、任意序列个数的系统发育树重构。

具体的,步骤S1具体如下:

S101、随机设定系统发育树的叶节点个数N

S102、从定义的演化场景对应的平均分歧度分布中采样一个期望的平均分歧度d

S103、根据定义的演化场景对应的非叶结点枝长分布及叶结点枝长分布,独立采样步骤S101得到的系统发育树的每一个枝长,并计算当前系统发育树的平均分歧度d

S104、从步骤S103得到的具有N

S105、根据预定义的其他参数及步骤S104得到的四序列树的拓扑结构和每一个分支的枝长,使用生物信息学软件模拟给定系统发育树的多序列比对MSA,以多序列比对作为数据,对应的系统发育树根据无根树的分类作为标签,制作数据集;

S106、对步骤S105得到的数据集划分为训练集、验证集和测试集。

具体的,演化场景定义如下:

采用正则表达式[SCN][1-2][UG]的规则,预先定义12个用于模拟序列数据的演化场景;为每个演化场景设置序列长度、非叶结点枝长分布、叶结点枝长分布、平均序列分歧度、替换与INDEL的比率、INDEL的长度分布、最大INDEL长度和不可变位点比率。

具体的,步骤S2具体为:

S201、对数据集中原始的MSA序列的碱基信息进行编码,经过编码后,数据集表现为一个M×4×L的张量,M为数据集的数据量大小,4为多序列比对中的4条序列,L为多序列比对的长度;

S202、构建用于序列特征提取的卷积神经网络,以及用于MSA序列特征提取的长短期记忆神经网络;

S203、将步骤S202构建的卷积神经网络与长短期记忆神经网络得到的特征展平为一维,再经全连接层后输出3维的概率分布向量,代表预测的拓扑概率分布,向量的每一维代表对应拓扑的预测概率;

S204、根据交叉熵损失函数,通过梯度下降及反向传播算法优化和更新卷积神经网络与长短期记忆神经网络的参数,针对演化场景数据,分别训练对应的深度学习分类器;

S205、将步骤S204训练好的深度学习模型分别运用于对应的测试集中,使用分类正确率指标评价深度学习分类器的分类准确度,得到训练好的深度学习分类器。

进一步的,步骤S204中,优化过程使用的损失函数Loss为:

其中,N

具体的,步骤S3具体为:

S301、对于一个长度为L

S302、使用W个长度为L滑动窗口对原始MSA进行滑动窗口采样,得到张量W×4×L,对采样后的结果使用深度学习分类器进行预测,得到W×3的结果。

进一步的,步骤S302具体为:

S3021、在预测过程中,使用滑动窗口对原始MSA各区域的四序列树进行系统发育树推断,综合各区域的拓扑结构,选择全长MSA的最佳四序列树;

S3022、对于每个原始MSA子区域,得到一个三维的向量,并计算出W个三维向量的平均数,用于表示总体长度对应的系统发育树拓扑分类的概率分布,针对任意长度的四序列比对的预测结果为一个W×3的三维向量。

具体的,步骤S4具体为:

S401、对于任意长度、任意序列数目的多序列比对数据,首先采样所有的四序列比对,将采样结果编码为大小

S402、基于改进的逐步添加方法,迭代地将节点N

进一步的,改进的逐步添加方法具体为:

S4021、采用集束搜索策略,设定超参数集束大小n,在逐步添加新结点的每一轮迭代中,只保留候选子树中得分前n的解,进行下一步的结点添加;

S4022、在每个迭代中使用剪枝算法加速搜索过程,如果剪枝后剩余边的个数小于或等于用户定义的集束大小,则将下一个结点加到这些边上,不再计算候选子树打分,直接进入下一轮迭代中;若剩余的边的数目大于用户定义的集束大小,则将下一个结点加到剩余的边上,并进行集束搜索。

第二方面,本发明实施例提供了一种基于深度学习和集束搜索的系统发育树构建系统,包括:

数据模块,定义不同演化场景,根据每个演化场景的序列特性设置模拟参数,基于模拟参数模拟四序列系统发育树及其对应固定长度的多序列比对数据,将多序列比对作为监督学习的数据,对应的四序列系统发育树的类别作为监督学习的分类标签,构成监督学习数据集,最后将监督学习数据集划分为训练集、验证集和测试集;

训练模块,使用数据模块构建的监督学习数据集构建以卷积神经网络和长短期记忆神经网络为核心的三分类深度学习器,使用数据模块的训练集、验证集、测试集分别用作深度学习分类器的训练、验证和测试,得到训练好的深度学习分类器;

分类模块,对非固定长度的四序列比对数据,利用滑动窗口算法划分成多个固定长度的子四序列比对,再利用训练模块得到的三分类深度学习分类器对子四序列比对进行分类预测,每个子四序列比对的分类预测结果为一个3维的概率分布向量,每一维向量给出3种拓扑各自对应的概率,选择所有子四序列比对的最大概率分布预测结果,得到非固定长度的四序列比对分类结果;

构建模块,对于非固定长度的多序列比对数据,首先采样所有非固定长度的四序列比对,并根据分类模块对非固定长度的四序列比对数据的分类预测方法进行预测,得到所有四序列比对的预测结果,最后根据所有四序列比对的结果,结合改进的逐步添加方法和集束搜索策略进行非固定长度的、任意序列个数的系统发育树重构。

与现有技术相比,本发明至少具有以下有益效果:

一种基于深度学习和集束搜索的系统发育树构建方法,

本发明基于深度学习和集束搜索的系统发育树构建方法,预定义12个测试场景模拟真实世界生物序列的属性,根据预设的参数模拟序列数据,分别作为模型的训练集、验证集和测试集;构建卷积神经网络和长短期记忆神经网络,以模拟数据集对网络进行训练、验证和测试,损失函数曲线在12种场景下均逐渐收敛;基于训练好的深度学习网络与滑动窗口算法,对序列数据进行所有子四序列树的预测;基于改进的逐步添加方法对序列数据进行完整的系统发育树推断,得到完整的重建结果。

进一步的,利用多序列比对,通过深度学习算法推断序列之间的拓扑结构与演化关系,进而对序列数据进行系统发育树推断,构建系统发育树,并可以对特定场景模拟新数据集,训练新深度学习分类器来实现定制用于特定场景的系统发育树重建工具。

进一步的,定义12种不同的演化场景,并使用正则表达式[SCN][1-2][UG]来定义;正则表达式第一位S、C、N分别用来代表多序列比对中的序列来自基因组任意区域、编码区、非编码区,正则表达式第二位1或2分别用来代表使用深度学习分类器中的多序列比对序列长度为240bp或1200bp,正则表达式第三位U、G分别用来代表系统发育树的枝长采样自均匀分布、伽马分布。上述12种不同的演化场景的设定期望能够涵盖大多数实际的系统发育树重构场景,进而训练出能够处理绝大多数常用多序列比对的深度学习分类器。同时,对于每一个演化场景设置平均序列分歧度、替换与INDEL的比率、INDEL的长度分布、最大INDEL长度和不可变位点比率等多个参数,使得本发明可以实现更为精细地数据模拟,例如本发明通过查阅文献,参考其中平均序列分歧度、替换与INDEL的比率的参数来使得本发明的模拟结果更接近现实的生物学序列。

进一步的,训练获得的深度学习分类器具有鲁棒性和普适性,可应用于不同生物类群的比较基因组和群体基因组数据,量化基因组水平的演化关系。相对于传统的系统发育树方法,保留了更多的有效信息如INDEL,更有利于研究基因流存在下的演化历史。

进一步的,使用交叉熵损失函数作为分类损失函数,该损失函数的值越小说明深度学习分类器的误差越小。并且,在训练的过程中,本发明建立循环迭代,使用随机梯度下降算法来优化深度学习分类器中的神经网络参数,使得交叉熵损失函数逐渐降低,并最终收敛到一个极小值处,得到最终的深度学习分类器。

进一步的,对于针对任意长度的四序列比对,若直接采用深度学习分类器进行分类将难以处理可变序列长度的问题,因此结合滑动窗口算法,将原始任意长度的四序列比对数据划分为多个固定长度(240bp或1200bp)的子四序列比对,然后对这些子四序列比对使用训练好的深度学习分类器进行分类,最后对所有的子四序列比对的分类结果进行综合评分得到最终的分类结果。

进一步的,对于针对任意长度的四序列比对,在预测过程中,使用滑动窗口将原始四序列比对划分成多个子四序列比对,使用深度学习分类器对这些子四序列比对进行预测分类。最后在综合结果时,对所有子四序列比对的分类结果进行取平均操作,选择平均值最大的拓扑分布得到最终的任意长度的四序列比对的分类结果,该结果为一个三维向量,向量的每一个维度是3种可能的系统发育树的打分情况。

进一步的,对于任意长度、任意序列数目的多序列比对数据,目前的算法要么无法直接利用深度学习进行推断,要么需要结合其他算法(如quartet puzzling),这些其他的推断算法有可能无法生成符合演化理论的多叉系统发育树。而本发明设计的推断框架,利用深度学习分类器来解决固定长度的四序列比对分类器,结合滑动窗口算法来处理非固定长度的四序列比对的分类打分,最后结合改进的逐步添加方法进行非固定长度的、任意序列个数的系统发育树重构。这样的设计使得本发明能够灵活处理所有可能的系统发育树构建场景,使得本发明的系统发育树方法可以应用到更多的常见演化生物学分析中。

进一步的,本发明采用集束搜索策略,设定超参数集束大小n,在逐步添加新结点的每一轮迭代中,只保留候选子树中得分前n的解,进行下一步的结点添加,这一操作使得逐步添加算法的每一轮迭代可以在多项式时间复杂度内得到计算,保证了本发明算法的效率;同时,为了加速整体的搜索效率,在每一轮迭代中,本发明进一步地使用了剪枝算法来加速搜索过程,本发明的剪枝策略保证如果剪枝后剩余边的个数小于或等于用户定义的集束大小,则将下一个结点加到这些边上,然后不需要计算候选子树的得分,直接进入下一轮迭代,若剪枝后剩余边的个数大于用户定义的集束大小,则继续集束搜索。本发明的剪枝算法使得重构系统发育树的运算量大大降低,能够达到与极大似然估计算法可比的时间效率。

可以理解的是,上述第二方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。

综上所述,本发明提出了全新的、基于深度学习的系统发育树重构方法,可以实现对非固定长度、非固定序列个数的多序列比对的系统发育关系的重构。本发明设计了涵盖绝大多数演化情景的、共12种预定义演化场景,针对不同的演化场景设定较为合理的演化参数,并为每个场景模拟数据集进行深度学习分类器的训练,训练好的深度学习分类器可以解决固定长度(240bp或1200bp)的四序列比对的系统发育树分类问题,并且该分类器可以较好地处理多序列比对种存在INDEL的情况,而不是像传统的极大似然算法那样忽略掉这些演化信息。为了处理非固定长度的四序列比对数据,本发明结合了滑动窗口算法,利用滑动窗口,将原始的四序列比对划分成多个固定长度(240bp或1200bp)的四序列比对,针对固定长度的四序列比对运用训练好的深度学习分类器,最后对所有的子四序列比对分类结果求平均,得到非固定长度的四序列比对的分类预测。为了处理非固定序列个数、非固定序列长度的多序列比对的系统发育树重构问题,本发明首先从原始的多序列比对中采样得到所有可能的四序列比对,然后运用前文提到的处理非固定长度的四序列比对的方法来对所有可能的四序列比对进行分类预测,最终使用这些预测结果,结合逐步添加算法和和集束搜索策略来实现任意序列个数的系统发育树重构。最后,为了提高重构的效率,本发明设计了剪枝算法,使得本发明最终的运行时间与传统的极大似然算法具有可比性。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

图1为本发明实施例中基于深度学习的系统发育树构建方法和系统的流程图;

图2为本发明中模拟过程定义12种场景的部分参数设置示意图;

图3为本发明中数据集划分示意图;

图4为本发明中深度学习分类器的框架图;

图5为本发明中模型每层的数据输出形状;

图6为本发明中模型的损失函数示意图;

图7为本发明中深度学习分类器在12种场景下的模拟数据集上采用预定义的12种场景参数的分类精度示意图;

图8为本发明中优化的逐步添加方法示意图;

图9为本发明中剪枝示意图;

图10为本发明中模型与IQ-TREE和RAxML算法下的模拟数据在六种场景下的表现示意图,其中,从左到右依次为:S1G、S2G、N1G、N2U、C1U、C2U;

图11为本发明中UCSC数据库10个10_leaf nodes子树的系统演化的重建结果,以及结合模型和NJMerge-2重建100taxa树的结果示意图;

图12为本发明中分别用模型和最大似然法重建水稻和蝴蝶物种的结果示意图,其中,A、C为模型重建的水稻与蝴蝶物种的系统发育树;

图13为本发明中的算法与根据数据估计的参数训练的算法、Iqtree和Raxml算法进行系统演化重建(RF距离)的结果;

图14为本发明中系统发育树算法与IQ-TREE和RAxML算法分别在10个分类群、20个分类群、30个分类群、40个分类群模拟数据上的平均运行时间示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供了一种基于深度学习和集束搜索的系统发育树构建方法,基于卷积神经网络和长短期记忆神经网络,提供一个新的基于深度学习和集束搜索的系统发育树推断框架,为系统发育树推断的日常应用提供一个可重新训练的工具包;开发了一个在线服务器(http://fusang.cibr.ac.cn)和一个Linux命令行软件包。可对输入序列数在40条以下,序列长度在10,000碱基以下的MSA进行系统发育树重建;同时,可以对特定场景数据集,设定新的训练参数,得到新的深度学习分类器来定制用于特定场景的系统发育树重构方法。

请参阅图1,本发明一种基于深度学习和集束搜索的系统发育树构建方法,

预定义12个演化场景,每个场景的演化参数参考真实世界的生物序列属性进行设定,并根据预设的参数模拟系统发育树及其对应的多序列比对数据来制作深度学习数据集,将数据集分割成训练集、验证集和测试集;构建以卷积神经网络和长短期记忆神经网络为核心的深度学习分类器,使用训练集和验证集对网络进行训练和验证,损失函数曲线在12种场景下均逐渐收敛,并使用测试集对网络的准确性进行测试;基于训练好的深度学习分类器及滑动窗口算法,对序列数据所有子四序列树进行分类预测;结合改进的逐步添加方法和子四序列树的分类预测结果对多序列数据进行系统发育树重构,得到完整的重建结果;基于模拟的序列数据与真实的序列数据分别对系统发育树构建算法进行检验。本发明使用多序列比对,通过深度学习算法推断序列之间的拓扑结构与演化关系,进而对序列数据进行系统发育树推断,构建系统发育树,并可以对特定场景数据集设定新的参数,训练新的深度学习分类器得到定制的、用于构建系统发育树的深度学习网络;具体步骤如下:

S1、预定义12个演化场景,并根据每个演化场景的序列特性设置模拟参数,根据预设的模拟参数来模拟四序列系统发育树及其对应固定长度的(预设有240和1200两种多序列比对长度)多序列比对数据,将多序列比对作为监督学习的数据,其对应的四序列系统发育树的类别(四个叶节点、无根的系统发育树共有3种可能的拓扑结构)作为监督学习的分类标签,最后对数据集进行划分,分为训练集、验证集和测试集;

请参阅图2,为使模拟参数设置接近于真实世界生物序列的属性,采用正则表达式"[SCN][1-2][UG]"的规则,预先定义12个用于模拟序列数据的场景。为每个场景设置序列长度、非叶结点枝长分布、叶结点枝长分布、平均序列分歧度、替换与INDEL的比率、INDEL的长度分布、最大INDEL长度、不可变位点比率等参数,其中,平均序列分歧度和替换与INDEL的比率是区分不同的演化情景场景的核心指标。具体为:

S101、使用生物信息学软件包ETE3生成一个系统发育树拓扑,随机选择N

S102、从预定义的12种场景对应的平均分歧度分布中采样出一个期望的平均分歧度d

S103、根据预定义的12种演化场景对应的非叶结点枝长分布及叶结点枝长分布,独立地采样出每一个枝长(从均匀分布或伽马分布中取样),并计算当前系统发育树的平均分歧度d

S104、从该系统发育树中随机抽出4个物种,得到四序列树的拓扑结构和每一个分支的枝长;

S105、根据预定义的其他参数及系统发育树拓扑结构、枝长,使用生物信息学软件Indelible模拟给定系统发育树的多序列比对(MSA),并制作用于监督学习的数据集,其中以MSA作为数据,其对应的系统发育树根据无根树的分类(共有三种类别,其中,((A,B),C,D)记为类别0,((A,C),B,D)记为类别1,((A,D),B,C)记为类别2)作为标签,制作数据集,如图3所示;

S106、对数据集进行划分,将数据集划分为训练集、验证集和测试集。

请参阅图3,根据不同预定义演化场景的复杂性,选取训练集、验证集、测试集的个数。

根据真实系统发育树数据模式,对S1G、S2G、N1G、N2U、C1U和C2U数据集分别取样进行测试,均呈现长尾分布模式。

上述技术方案的有益效果是:

模拟参数设置接近于真实世界生物序列的属性,通过模拟复杂的演化历史和种群结构,增强了模型的推广能力和泛化能力,确保模拟数据能够正确反映真实情况的数据分布。

S2、构建以卷积神经网络和长短期记忆神经网络为核心的深度学习分类器,使用训练集、验证集、测试集对网络进行训练、验证、测试,验证集的分类损失函数曲线在12种场景下均逐渐收敛,测试集显示出模型具有高的分类正确率;

S201、对数据集中原始的MSA序列的碱基信息进行编码,其中,编码规则为('A':'0','T':'1','C':'2','G':'3','-':'4','N':'4'),其中,'-'和'N'表示MSA中的INDEL,经过编码之后,数据集将表现为一个M×4×L的张量,其中M为数据集的数据量大小,4为多序列比对中的4条序列,L为多序列比对的长度;

S202、构建用于序列特征提取的卷积神经网络(CNN),以及用于MSA序列特征提取的长短期记忆神经网络(LSTM),具体模型结构如图4所示;

S203、卷积神经网络与长短期记忆神经网络得到的特征被展平为一维,再经过全连接层后,最后输出3维的向量,代表预测的拓扑概率分布,其中向量的每一维代表一种拓扑的预测概率,算法每一层的输出形状如图5所示;

S204、根据交叉熵损失函数,通过梯度下降及反向传播算法来优化和更新神经网络参数,使损失函数在训练过程中逐渐收敛,其中针对"[SCN][1-2][UG]"共12个场景的数据,分别训练对应的深度学习分类器,如图6所示;

S2041、使用反向传播算法,在交叉熵损失函数最小化的过程中优化深度学习分类器的参数;

优化过程的损失函数具体为:

设有N

S2042、使用Adam优化器最小化损失函数,使用标签平滑策略在学习过程中对目标分布进行平滑,减少极端偏差。

S205、将训练好的"[SCN][1-2][UG]"共12个模型分别运用于对应的测试集中,使用分类正确率指标评价深度学习分类器的分类准确度,结果如图7所示。

S3、基于训练好的深度学习分类器及滑动窗口算法,对非固定长度的四序列比对数据进行分类预测,分类预测的结果将为一个3维的概率分布向量,每一维向量给出了3种拓扑各自对应的概率;

S301、对于一个长度为L

对于4,代表四序列比对中的四条序列;

对于L

对于编码规则,使用规则如下:('A':'0','T':'1','C':'2','G':'3','-':'4','N':'4')。

S302、使用W个长度为L滑动窗口对原始MSA进行滑动窗口采样,得到张量W×4×L,对采样后的结果使用深度学习分类器进行预测,得到W×3的结果;

S3021、预测过程中,使用滑动窗口对MSA各区域的四序列树进行系统发育树推断,综合各区域的拓扑结构,选择全长MSA的最佳四序列树;

窗口函数计算方法具体为:

如果MSA的长度小于1200bp,使用长度为240bp的滑动窗口;如果MSA的长度大于1200bp,小于10000bp,使用长度为1200bp的滑动窗口。

滑动窗口的数量W的计算方法为:

其中,C是一个超参数,决定一个碱基将被覆盖的平均窗口数,默认C=1。通常,C可以为正实数,如1、1.5、2等等,例如,如果C等于2,则意味着平均而言,一个碱基将被2个滑动窗口覆盖。

确定滑动窗口数量W后,滑动窗口的滑动步长S的计算方法为:

确定滑动窗口的步长S后,滑动窗口将从第一个碱基开始,每次向后移动S个碱基,直到最后一个滑动窗口恰好覆盖最后一个碱基。

S3022、对于每个MSA子区域,得到一个三维的向量,并计算出W个三维向量的平均数表示总体长度对应的系统发育树拓扑分类的概率分布,最终针对任意长度的四序列比对的预测结果为一个三维向量。

S303、上述方法将作为固定模块用于任意结点、任意序列长度的系统发育树重建。

S4、对于大于四序列比对数据,首先从中采样出所有的四序列比对,并根据步骤S3的方法进行分类预测,最后结合改进的逐步添加方法和集束搜索策略进行任意序列个数的系统发育树重构,并得到完整的重建结果;

系统演化重建即是找到最佳的演化树拓扑结构τ,使对给定的MSA(简记为M)的后验概率P(τ|M)最大化,表示为:

T=argmax

使用改进的逐步加法算法对不同数量的物种进行重建系统发育树具体为:

S401、对于任意长度的、任意序列数目的多序列比对数据,首先从中采样出所有的四序列比对,将采样结果编码为大小

S402、迭代地将节点N

请参阅图8,逐步添加新节点计算方法具体为:

已有四序列树拓扑结构T

首先根据逐步添加方法定义下列符号,(T

(T

(T

(T

最后得到一个树状拓扑结构T,添加所有的n个节点,过程如下:

如果想获得正确的树状拓扑结构T,逐步加法的每个子过程都应是逐步寻找最优的过程,其计算过程如下:

对于每个子过程,需用

对于

对于

P(N

P(N

因此用argmaxP(τ

在每个添加新节点的迭代中,将新节点添加到原有子树的每一条边,例如原有子树为T

在这个过程中,对于一个拥有i个节点的候选子树而言,其候选子树打分的计算方法为:

其中,T

本发明得分越高,候选子树T

对逐步添加方法进行改进的方法具体为:

S4021、随着物种的数量增加,系统发育树的搜索空间逐渐增大,若遍历所有的搜索空间,将是一个NP-hard问题,因此需要对搜索策略进行优化,只搜索部分可能的解。对此,采用集束搜索(Beam Search)策略,用户设定超参数集束大小n,在逐步添加新结点的每一轮迭代中,只保留候选子树(步骤S402)中得分前n的解,进行下一步的结点添加。

本发明中,默认的集束大小等于1,即贪心搜索算法,将下一个结点加到当前打分最高的候选子树中,直到所有结点都添加完成,得到最终的系统发育树;

S4022、在逐步添加方法的每个迭代中使用剪枝算法加速搜索过程。即在逐步添加方法的过程中,剪枝掉一些可能性比较小的边,如果经过剪枝之后,剩余边的个数小于或等于用户定义的集束大小,则直接将下一个结点加到这些边上,不再计算它们的候选子树打分,直接进入下一轮迭代中;若是剩余的边的数目大于用户定义的集束大小,则将下一个结点加到剩余的边上,并进行如步骤S4021所描述的集束搜索。

具体的剪枝策略为,假设目前已经在候选系统发育子树中的结点为1,2,…,n-1,n为将要加入的下一个结点。首先计算所有可能的四序列子树(其中的三个结点从1,2,…,n-1中进行选择,第四个结点为n)的概率分布,从这里所有的概率中挑出概率最大的n个(n为用户设定的超参数,默认为四序列子树个数的10%),然后进行边的剪枝,剪枝过程示意图如图9所示。

上述技术方案的有益效果是:

能够处理个体或群体数据,能够更加有效地反映类群之间的真实关系,能够对长度不同、物种数目不同的序列进行系统发育树构建。

S5、基于模拟的序列数据、公开数据库中的生物序列数据、演化实验得到的序列数据分别对系统发育树构建算法进行测试。测试算法的准确度、运行的时间效率并针对演化实验得到的序列数据定制深度学习分类器,测试表明定制分类器重构结果的准确度提升。

S501、在物种数低于40的情况下,使用模拟数据测试模型在默认场景下系统发育树重建的准确性;

默认情况下,每个参数设置包含1160个MSA,涵盖29个多物种场景(分别为4-30、35和40),以RF距离作为系统演化重建准确性的判断标准,同时与IQ-TREE和RAxML的重建结果进行比较,判断本发明的性能,整体结果如图10所示,系统演化重建结果的RF距离整体小于另外两种算法。

S5011、默认情况下,每个参数设置包含1160个MSA,涵盖29类序列种类数的场景(分别为4~30、35和40);

S5012以RF距离作为系统演化重建准确性的判断标准,计算系统发育树重建结果的RF距离。

S502、将模型与改进的邻接法NJMerge相结合,进行100个序列树的重建,检验模型的可扩展性,同时与IQ-TREE和RAxML的重建结果进行比较,判断模型的性能。结果为,本发明模型(RF距离8)、IQ-TREE(RF距离12)、RAxML(RF距离6),具有相当的性能;

S503、基于UCSC数据库构建系统发育树;

S5031、从UCSC数据库中收集100-leaf nodes的MSA,用一号染色体进行系统发育树推断(http://hgdownload.cse.ucsc.edu/goldenpath/hg38/multiz100way/);

S5032、测试10个10-leaf nodes子树的重建系统演化情况,重建结果如图11所示;

S5033、将模型与NJMerge-2相结合,重建100_leaf nodes的系统发育树。

S504、对水稻和蝴蝶物种进行系统发育树推断;

分别对水稻和蝴蝶物种做了系统发育树推断,重建的拓扑结构的如图12所示。

S505、对实验室中的演化数据进行系统发育树推断;

对根据预定义12个场景下模拟参数的算法版本与根据具体场景训练新参数的算法版本进行性能测试。与预定义版本和RAxML和IQ-TREE法相比,新参数算法在重建实验系统演化时取得了较小的RF距离,证明算法的自适应性,具体结果如图13所示。

S506、测试不同物种数下构建系统发育树的运行时间。

请参阅图14,并与IQ-TREE和RAxML算法进行比较,以判断Fusang的计算效率。物种小于20个时,算法具有不错的计算效率。随着物种的增加,由于逐步增加算法和集束搜索的特性,算法的运行时间略有增加。

本发明实施例利用深度学习分类器,不仅对模拟数据构建的系统发育树有较好的性能,对真实数据库与水稻、蝴蝶类真实物种下的系统发育树也有较好的性能,有效地从真实数据中获得了类群间的演化关系。

本发明再一个实施例中,提供一种基于深度学习和集束搜索的系统发育树构建系统,该系统能够用于实现上述基于深度学习和集束搜索的系统发育树构建方法,具体的,该基于深度学习和集束搜索的系统发育树构建系统包括数据模块、训练模块、分类模块以及构建模块。

其中,数据模块,定义不同演化场景,根据每个演化场景的序列特性设置模拟参数,基于模拟参数模拟四序列系统发育树及其对应固定长度的多序列比对数据,将多序列比对作为监督学习的数据,对应的四序列系统发育树的类别作为监督学习的分类标签,构成监督学习数据集,最后将监督学习数据集划分为训练集、验证集和测试集;

训练模块,使用数据模块构建的监督学习数据集构建以卷积神经网络和长短期记忆神经网络为核心的三分类深度学习器,使用数据模块的训练集、验证集、测试集分别用作深度学习分类器的训练、验证和测试,得到训练好的深度学习分类器;

分类模块,对非固定长度的四序列比对数据,利用滑动窗口算法划分成多个固定长度的子四序列比对,再利用训练模块得到的三分类深度学习分类器对子四序列比对进行分类预测,每个子四序列比对的分类预测结果为一个3维的概率分布向量,每一维向量给出3种拓扑各自对应的概率,选择所有子四序列比对的最大概率分布预测结果,得到非固定长度的四序列比对分类结果;

构建模块,对于非固定长度的多序列比对数据,首先采样所有非固定长度的四序列比对,并根据分类模块对非固定长度的四序列比对数据的分类预测方法进行预测,得到所有四序列比对的预测结果,最后根据所有四序列比对的结果,结合改进的逐步添加方法和集束搜索策略进行非固定长度的、任意序列个数的系统发育树重构。

本发明再一个实施例中,提供了一种终端设备,该终端设备包括处理器以及存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于执行所述计算机存储介质存储的程序指令。处理器可能是中央处理单元(Central ProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor、DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其是终端的计算核心以及控制核心,其适于实现一条或一条以上指令,具体适于加载并执行一条或一条以上指令从而实现相应方法流程或相应功能;本发明实施例所述的处理器可以用于基于深度学习和集束搜索的系统发育树构建方法的操作,包括:

定义不同演化场景,根据每个演化场景的序列特性设置模拟参数,基于模拟参数模拟四序列系统发育树及其对应固定长度的多序列比对数据,将多序列比对作为监督学习的数据,对应的四序列系统发育树的类别作为监督学习的分类标签,构成监督学习数据集,最后将监督学习数据集划分为训练集、验证集和测试集;使用构建的监督学习数据集构建以卷积神经网络和长短期记忆神经网络为核心的三分类深度学习器,使用训练集、验证集、测试集分别用作深度学习分类器的训练、验证和测试,得到训练好的深度学习分类器;对非固定长度的四序列比对数据,利用滑动窗口算法划分成多个固定长度的子四序列比对,再利用三分类深度学习分类器对子四序列比对进行分类预测,每个子四序列比对的分类预测结果为一个3维的概率分布向量,每一维向量给出3种拓扑各自对应的概率,选择子四序列比对的最大概率分布预测结果,得到非固定长度的四序列比对分类结果;对于非固定长度的多序列比对数据,首先采样所有非固定长度的四序列比对,并根据对非固定长度的四序列比对数据的分类预测方法进行预测,得到所有四序列比对的预测结果,最后根据所有四序列比对的结果,结合改进的逐步添加方法和集束搜索策略进行非固定长度的、任意序列个数的系统发育树重构。

本发明再一个实施例中,本发明还提供了一种存储介质,具体为计算机可读存储介质(Memory),所述计算机可读存储介质是终端设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括终端设备中的内置存储介质,当然也可以包括终端设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(Non-Volatile Memory),例如至少一个磁盘存储器。

可由处理器加载并执行计算机可读存储介质中存放的一条或一条以上指令,以实现上述实施例中有关基于深度学习和集束搜索的系统发育树构建方法的相应步骤;计算机可读存储介质中的一条或一条以上指令由处理器加载并执行如下步骤:

定义不同演化场景,根据每个演化场景的序列特性设置模拟参数,基于模拟参数模拟四序列系统发育树及其对应固定长度的多序列比对数据,将多序列比对作为监督学习的数据,对应的四序列系统发育树的类别作为监督学习的分类标签,构成监督学习数据集,最后将监督学习数据集划分为训练集、验证集和测试集;使用构建的监督学习数据集构建以卷积神经网络和长短期记忆神经网络为核心的三分类深度学习器,使用训练集、验证集、测试集分别用作深度学习分类器的训练、验证和测试,得到训练好的深度学习分类器;对非固定长度的四序列比对数据,利用滑动窗口算法划分成多个固定长度的子四序列比对,再利用三分类深度学习分类器对子四序列比对进行分类预测,每个子四序列比对的分类预测结果为一个3维的概率分布向量,每一维向量给出3种拓扑各自对应的概率,选择子四序列比对的最大概率分布预测结果,得到非固定长度的四序列比对分类结果;对于非固定长度的多序列比对数据,首先采样所有非固定长度的四序列比对,并根据对非固定长度的四序列比对数据的分类预测方法进行预测,得到所有四序列比对的预测结果,最后根据所有四序列比对的结果,结合改进的逐步添加方法和集束搜索策略进行非固定长度的、任意序列个数的系统发育树重构。

本发明的系统发育树重构结果的优势可以从以下几个方面中看出。

第一,对于固定长度的四序列比对,深度学习算法可以将其视为一个三分类问题,对此本发明训练了自己的深度学习分类器,该分类器的分类正确率在测试的两个演化场景上高于之前的方法,同时该正确率也高于极大似然估计方法。

第二,对于非固定长度的多序列比对推断,本发明从两个数据来源比较了本发明与极大似然估计的效果。首先本发明模拟12个场景的测试数据,使用本发明和另外两种极大似然算法Raxml、Iqtree进行系统发育树重构,并使用RF distance作为评价指标,得到的结果如图10所示。可以看出,总体上,本发明的方法相较于极大似然估计方法具有更小的RFdistance,说明Fusang的建树结果更为准确。其次,本发明使用了真实的生物学数据来评估系统发育树重构的结果。本发明将重构结果在UCSC数据集上与极大似然估计方法进行比较,如图11所示,使用水稻与蝴蝶的数据与极大似然估计方法进行比较,如图12所示,可以看出本发明在这两类数据上均与传统方法重构结果接近,说明了本发明方法与传统极大似然估计方法具有可比性。最后,本发明在实验室中产生了真实的演化数据,将本发明的方法与极大似然估计方法进行比较,如图13所示,可以看出本发明的方法具有更小的估计误差,证明了本发明方法具有能更好地处理真实生物学数据的系统发育树重构问题的能力。

综上所述,本发明一种基于深度学习和集束搜索的系统发育树构建方法及系统,首先预定义12个演化场景模拟真实世界生物序列的属性,根据预设的参数模拟序列数据作为模型的训练集、验证集和测试集;其次构建卷积神经网络和长短期记忆神经网络,用模拟数据集对网络进行训练和验证,并保证损失函数曲线在12种场景下均逐渐收敛,基于模拟的序列数据对深度学习网络算法的准确性进行测试;基于训练好的深度学习网络结合滑动窗口算法,对序列数据所有子四序列树进行预测;基于改进的逐步添加方法对序列数据进行重建系统发育树,得到完整的重建结果,实现对不同物种数量与不同序列长度的条件下进行构建系统发育树,并具有稳定且优异的性能;最后基于模拟的序列数据与真实的序列数据分别对系统发育树构建算法进行检验。将模型分别应用到模拟场景与现实场景下,检验了本发明的准确性和可行性。

以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。

相关技术
  • 基于多度量指标权重的古生物形态系统发育树构建方法
  • 一种基于特征层次的多目标系统发育树构建方法
技术分类

06120115922347