一种化学逆合成分析方法及系统与流程

文档序号:30410586发布日期:2022-06-15 09:20阅读:446来源:国知局
一种化学逆合成分析方法及系统与流程

1.本发明涉及化合物分析领域,特别是涉及一种化学逆合成分析方法及系统。


背景技术:

2.计算机辅助合成路线规划程序(computerassisted synthesis planning program,以下简称casp程序)是通过计算机算法与化学数据库结合,可以自动设计给定有机化合物合成路线的一类程序。在此类程序中,最重要、最核心的技术,是基于已知的化学反应模板(reactiontemplates)数据、基本分子(buildingblocks)数据和其他与合成路线设计有关的数据或信息,根据一定的用户需求计算给定化合物合成路线的方法。早期的casp程序多使用非常简单的搜索与排序算法,因此并不能得到和化学家水平相近的结果。在近年的研究和实践中,使用人工智能方法进行合成路线设计逐渐成为开发casp程序的主流。不过在这类算法中,排序部分对所使用的外部数据非常敏感,因此通常难以给出与专家评判或实验室结果高度一致的结果。因此在算法设计思路上,应该更侧重于其搜索能力,使其便于产生数量足够多的合成路线,对人工设计提供更大的参考价值。另外,人工智能方法的数据驱动属性,决定了高质量的化学反应数据是提高其表现的决定因素。高质量的化学反应数据至今仍是稀缺和昂贵的,因此有必要开发并实现一种设计合成路线的技术方案,其可以更加灵活地利用各种来源的化学反应数据、减少对外部数据的需求且仍能得到质量相对较好的合成路线。


技术实现要素:

3.本发明的目的是提供一种化学逆合成分析方法及系统,以实现更加灵活地利用各种来源的化学反应数据、减少对外部数据的需求且仍能得到质量相对较好的合成路线。
4.为实现上述目的,本发明提供了如下方案:
5.一种化学逆合成分析方法,包括:
6.将训练化合物输入合成树,利用蒙特卡洛搜索树进行搜索,得到逆合成分析网络的训练数据;所述训练数据包括训练化合物的基本分子和以所述基本分子为起始物的训练化合物合成路线;所述蒙特卡洛搜索树根据动作价值估计和状态价值估计进行更新;
7.利用所述训练数据对逆合成分析网络进行训练,得到训练好的逆合成分析网络;
8.获取待合成化合物并将所述待合成化合物输入所述训练好的逆合成分析网络,得到待合成化合物合成路线。
9.可选地,所述将训练化合物输入合成树,利用蒙特卡洛搜索树进行搜索,得到逆合成分析网络的训练数据,具体包括:
10.将所述训练化合物作为合成树的根节点,利用蒙特卡洛搜索树确定训练化合物逆向合成模板概率和所述训练化学物分解后的中间体的逆向合成模板概率;
11.计算所述根节点的状态标记;
12.判断状态标记是否为-1,得到第一判断结果;若所述第一判断结果为是,则合成树
构建失败,将除为状态标记为1节点以外所有节点重置为-1,并根据合成树的叶节点和边确定训练数据;
13.若所述第一判断结果为否,则判断所述合成树中是否有节点深度达到第一设定节点深度,得到第二判断结果;
14.若所述第二判断结果为否,则判断所述合成树中是否存在状态标记为0的节点,得到第三判断结果;若所述第三判断结果为是,则遍历合成树中所有状态标记为0的叶节点,并根据所述训练化合物逆向合成模板概率和所述训练化学物分解后的中间体的逆向合成模板概率对所述状态标记为0的叶节点添加子节点;确定所述子节点的状态标记并返回步骤“判断状态标记是否为-1,得到第一判断结果”;
15.若所述第三判断结果为否,则合成树构建成功,重置所有节点标记为1并根据所述合成树的叶节点和边确定训练数据;
16.若所述第二判断判断结果为是,则判断所述合成树中是否存在状态标记为0的节点,得到第四判断结果;若所述第四判断结果表示为否,则合成树构建成功,重置所有节点标记为1并根据所述合成树的叶节点和边确定训练数据;
17.若是第四判断结果为否,则合成树构建失败,将除为状态标记为1节点以外所有节点重置为-1并根据所述合成树的叶节点和边确定训练数据。
18.可选地,所述逆合成分析网络的损失函数的表达式为:
19.l=π
t
ln p+(z-v)2+λ||ω||220.其中,l为损失函数,ω为逆合成分析网络参数,||ω||2为全部参数的平方和;λ是l2正则化参数,π
t
为蒙特卡洛策略,p为神经网络策略,v为节点价值估计,z为状态标记。
21.可选地,所述逆向合成模板概率的表达式为:
[0022][0023]
其中,π(a|s0)为逆向合成模板概率,s0为蒙特卡洛搜索树的根节点,a为逆向合成模板,n(s0,a)为存储了逆向合成模板的边的总访问次数,τ为温度系数。
[0024]
一种化学逆合成分析系统,其特征在于,包括:
[0025]
训练数据获取模块,用于将训练化合物输入合成树,利用蒙特卡洛搜索树进行搜索,得到逆合成分析网络的训练数据;所述训练数据包括训练化合物的基本分子和以所述基本分子为起始物的训练化合物合成路线;所述蒙特卡洛搜索树根据动作价值估计和状态价值估计进行更新;
[0026]
训练模块,用于利用所述训练数据对逆合成分析网络进行训练,得到训练好的逆合成分析网络;
[0027]
逆合成分析模块,用于获取待合成化合物并将所述待合成化合物输入所述训练好的逆合成分析网络,得到待合成化合物的合成路线。
[0028]
可选地,所述训练数据获取模块,具体包括:
[0029]
逆向合成模板概率确定模块,用于将所述训练化合物作为合成树的根节点,利用蒙特卡洛搜索树确定训练化合物逆向合成模板概率和所述训练化学物分解后的中间体的逆向合成模板概率;
[0030]
状态标记确定模块,用于计算所述根节点的状态标记;
[0031]
第一判断模块,用于判断状态标记是否为-1,得到第一判断结果;若所述第一判断结果为是,则合成树构建失败,将除为状态标记为1节点以外所有节点重置为-1,并根据合成树的叶节点和边确定训练数据;
[0032]
第二判断模块,用于若所述第一判断结果为否,则判断所述合成树中是否有节点深度达到第一设定节点深度,得到第二判断结果;
[0033]
第三判断模块,用于若所述第二判断结果为否,则判断所述合成树中是否存在状态标记为0的节点,得到第三判断结果;
[0034]
添加和返回模块,用于若所述第三判断结果为是,则遍历合成树中所有状态标记为0的叶节点,并根据所述训练化合物逆向合成模板概率和所述训练化学物分解后的中间体的逆向合成模板概率对所述状态标记为0的叶节点添加子节点;确定所述子节点的状态标记并返回步骤“判断状态标记是否为-1,得到第一判断结果”;
[0035]
第一重置模块,用于若所述第三判断结果为否,则合成树构建成功,重置所有节点标记为1并根据所述合成树的叶节点和边确定训练数据;
[0036]
第四判断模块,用于若所述第二判断判断结果为是,则判断所述合成树中是否存在状态标记为0的节点,得到第四判断结果;若所述第四判断结果表示为否,则合成树构建成功,重置所有节点标记为1并根据所述合成树的叶节点和边确定训练数据;
[0037]
第二重置模块,用于若是第四判断结果为否,则合成树构建失败,将除为状态标记为1节点以外所有节点重置为-1并根据所述合成树的叶节点和边确定训练数据。
[0038]
可选地,所述逆合成分析网络的损失函数的表达式为:
[0039]
l=π
t
ln p+(z-v)2+λ||ω||2[0040]
其中,l为损失函数,ω为逆合成分析网络参数,||ω||2为全部参数的平方和;λ是l2正则化参数,π
t
为蒙特卡洛策略,p为神经网络策略,v为节点价值估计,z为状态标记。
[0041]
可选地,所述逆向合成模板概率的表达式为:
[0042][0043]
其中,π(a|s0)为逆向合成模板概率,s0为蒙特卡洛搜索树的根节点,a为逆向合成模板,n(s0,a)为存储了逆向合成模板的边的总访问次数,τ为温度系数。
[0044]
根据本发明提供的具体实施例,本发明公开了以下技术效果:
[0045]
本发明将训练化合物输入合成树,利用蒙特卡洛搜索树进行搜索,得到逆合成分析网络的训练数据;训练数据包括训练分子合成路线;利用训练数据对逆合成分析网络进行训练,得到训练好的逆合成分析网络;获取待合成化合物并将待合成化合物输入训练好的逆合成分析网络,得到待合成化合物的合成路线,从而实现更加灵活地利用各种来源的化学反应数据、减少对外部数据的需求且仍能得到质量相对较好的合成路线。
附图说明
[0046]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施
例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0047]
图1为本发明提供的化学逆合成分析方法流程图;
[0048]
图2为本发明提供的合成树示意图;
[0049]
图3为逆合成分析网络训练流程图;
[0050]
图4为逆合成分析网络架构图。
具体实施方式
[0051]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0052]
本发明的目的是提供一种化学逆合成分析方法及系统,以实现更加灵活地利用各种来源的化学反应数据、减少对外部数据的需求且仍能得到质量相对较好的合成路线。
[0053]
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0054]
如图1所示,本发明提供的一种化学逆合成分析方法,包括:
[0055]
步骤101:将训练化合物输入合成树,利用蒙特卡洛搜索树进行搜索,得到逆合成分析网络的训练数据;所述训练数据包括训练化合物的基本分子和以所述基本分子为起始物的训练化合物合成路线;所述蒙特卡洛搜索树根据动作价值估计和状态价值估计进行更新。
[0056]
步骤102:利用所述训练数据对逆合成分析网络进行训练,得到训练好的逆合成分析网络。
[0057]
步骤103:获取待合成化合物并将所述待合成化合物输入所述训练好的逆合成分析网络,得到待合成化合物的合成路线。
[0058]
步骤101,具体包括:
[0059]
将所述训练化合物作为合成树的根节点,利用蒙特卡洛搜索树确定训练化合物逆向合成模板概率和所述训练化学物分解后的中间体的逆向合成模板概率。
[0060]
计算所述根节点的状态标记。
[0061]
判断状态标记是否为-1,得到第一判断结果;若所述第一判断结果为是,则合成树构建失败,将除为状态标记为1节点以外所有节点重置为-1,并根据合成树的叶节点和边确定训练数据。
[0062]
若所述第一判断结果为否,则判断所述合成树中是否有节点深度达到第一设定节点深度,得到第二判断结果。
[0063]
若所述第二判断结果为否,则判断所述合成树中是否存在状态标记为0的节点,得到第三判断结果;若所述第三判断结果为是,则遍历合成树中所有状态标记为0的叶节点,并根据所述训练化合物逆向合成模板概率和所述训练化学物分解后的中间体的逆向合成模板概率对所述状态标记为0的叶节点添加子节点;确定所述子节点的状态标记并返回步骤“判断状态标记是否为-1,得到第一判断结果”。
[0064]
若所述第三判断结果为否,则合成树构建成功,重置所有节点标记为1并根据所述合成树的叶节点和边确定训练数据。
[0065]
若所述第二判断判断结果为是,则判断所述合成树中是否存在状态标记为0的节点,得到第四判断结果;若所述第四判断结果表示为否,则合成树构建成功,重置所有节点标记为1并根据所述合成树的叶节点和边确定训练数据;
[0066]
若是第四判断结果为否,则合成树构建失败,将除为状态标记为1节点以外所有节点重置为-1并根据所述合成树的叶节点和边确定训练数据。
[0067]
在实际应用中,所述逆合成分析网络的损失函数的表达式为:
[0068]
l=π
t
ln p+(z-v)2+λ||ω||2[0069]
其中,l为损失函数,ω为逆合成分析网络参数,||ω||2为全部参数的平方和;λ是l2正则化参数,π
t
为蒙特卡洛策略,p为神经网络策略,v为节点价值估计,z为状态标记。
[0070]
在实际应用中,所述逆向合成模板概率的表达式为:
[0071][0072]
其中,π(a|s0)为逆向合成模板概率,s0为蒙特卡洛搜索树的根节点,a为逆向合成模板,n(s0,a)为存储了逆向合成模板的边的总访问次数,τ为温度系数。
[0073]
本发明提供的化学逆合成分析系统,包括:
[0074]
训练数据获取模块,用于将训练化合物输入合成树,利用蒙特卡洛搜索树进行搜索,得到逆合成分析网络的训练数据;所述训练数据包括训练化合物的基本分子和以所述基本分子为起始物的训练化合物合成路线;所述蒙特卡洛搜索树根据动作价值估计和状态价值估计进行更新。
[0075]
训练模块,用于利用所述训练数据对逆合成分析网络进行训练,得到训练好的逆合成分析网络。
[0076]
逆合成分析模块,用于获取待合成化合物并将所述待合成化合物输入所述训练好的逆合成分析网络,得到基本分子和基本分子合成路线。
[0077]
其中,所述训练数据获取模块,具体包括:
[0078]
逆向合成模板概率确定模块,用于将所述训练化合物作为合成树的根节点,利用蒙特卡洛搜索树确定训练化合物逆向合成模板概率和所述训练化学物分解后的中间体的逆向合成模板概率;
[0079]
状态标记确定模块,用于计算所述根节点的状态标记;
[0080]
第一判断模块,用于判断状态标记是否为-1,得到第一判断结果;若所述第一判断结果为是,则合成树构建失败,将除为状态标记为1节点以外所有节点重置为-1,并根据合成树的叶节点和边确定训练数据;
[0081]
第二判断模块,用于若所述第一判断结果为否,则判断所述合成树中是否有节点深度达到第一设定节点深度,得到第二判断结果;
[0082]
第三判断模块,用于若所述第二判断结果为否,则判断所述合成树中是否存在状态标记为0的节点,得到第三判断结果;
[0083]
添加和返回模块,用于若所述第三判断结果为是,则遍历合成树中所有状态标记
为0的叶节点,并根据所述训练化合物逆向合成模板概率和所述训练化学物分解后的中间体的逆向合成模板概率对所述状态标记为0的叶节点添加子节点;确定所述子节点的状态标记并返回步骤“判断状态标记是否为-1,得到第一判断结果”;
[0084]
第一重置模块,用于若所述第三判断结果为否,则合成树构建成功,重置所有节点标记为1并根据所述合成树的叶节点和边确定训练数据;
[0085]
第四判断模块,用于若所述第二判断判断结果为是,则判断所述合成树中是否存在状态标记为0的节点,得到第四判断结果;若所述第四判断结果表示为否,则合成树构建成功,重置所有节点标记为1并根据所述合成树的叶节点和边确定训练数据;
[0086]
第二重置模块,用于若是第四判断结果为否,则合成树构建失败,将除为状态标记为1节点以外所有节点重置为-1并根据所述合成树的叶节点和边确定训练数据。其中,所述逆合成分析网络的损失函数的表达式为:
[0087]
l=π
t
ln p+(z-v)2+λ||ω||2[0088]
其中,l为损失函数,ω为逆合成分析网络参数,||ω||2为全部参数的平方和;λ是l2正则化参数,π
t
为蒙特卡洛策略,p为神经网络策略,v为节点价值估计,z为状态标记。
[0089]
其中,所述逆向合成模板概率的表达式为:
[0090][0091]
其中,π(a|s0)为逆向合成模板概率,s0为蒙特卡洛搜索树的根节点,a为逆向合成模板,n(s0,a)为存储了逆向合成模板的边的总访问次数,τ为温度系数。
[0092]
软件中有两种计算模式:模型构建模式和模型应用模式。模型构建模式通过用户给定的基本分子数据库、化学反应模板数据库、化学反应模板分类数据库和其他必要参数等,通过强化学习方法构建可用于在本软件中进行合成路线设计的模型;模型应用模式使用模型构建模式得到的模型,对用户给定的待合成化合物进行合成路线设计。
[0093]
基本分子数据库是由通过某种来源得到的商品化化合物或易得化合物组成的数据库,也可以是由用户自定义的一系列结构简单、便于合成或购买的化合物组成的数据库。
[0094]
基本分子是基本分子数据库中的分子,或是满足(五)中所列出条件的分子。
[0095]
目标化合物数据库,是软件从开源渠道获取的化学反应数据库中,提取全部反应的生成物组成的数据库。
[0096]
目标化合物是目标化合物数据库中的化合物分子,在模型迭代过程中提供给软件,用于计算合成路线。计算的合成路线用于转化为模型训练中使用的训练数据。
[0097]
化学信息学工具是指能够处理标准化化学信息、化学编码、化学数据库的开源软件工具,包括但不限于rdkit、indigo、openbabel等。
[0098]
化学反应模板是通过化学信息学工具,从若干相似的化学反应smarts表达式中提取,得到的编码一类化学反应的smarts表达式。化学反应模板表示了结构转化上相近的一些化学反应,具有编码反应物结构特征的部分和生成物结构特征的部分,分别称为反应物模板和生成物模板。这两种模板都是从化学反应模板所表示的该类化学反应的反应物和生成物中提取的。如果化学反应模板中的反应物模板提取自原化学反应的反应物(生成物)、生成物模板提取自原化学反应的生成物(反应物),那么这种化学反应模板称为正向(逆向)
合成模板。通过化学信息学工具,可以使用化学反应模板将某种与化学反应模板中反应物模板匹配的化学分子的smiles表达式转化为另一种分子的smiles表达式,即在计算机中抽象地进行这种化学反应。化学反应模板与化学分子的匹配由化学信息学工具判定得到,事实上是判断分子结构中是否存在与化学反应模板中反应物模板相匹配的子结构。把匹配的模板应用在分子上总能得到新的分子,而把不匹配的模板应用在分子上得到的结果总是为空。
[0099]
化学反应模板数据库是由编码化学反应模板的smarts表达式组成的数据库,可以由用户自定义得到。软件使用化学信息学工具,从开源渠道获取的化学反应数据库中提取了简单的化学反应模板数据库,可以在用户未提供此数据库时使用。需要注意的是,化学反应模板数据库中总存在一个空模板,将此模板应用于任何分子都不得到任何结果(结果为空),这是为处理数据库中所有化学反应模板均无法与某个分子相匹配的情况。以下若无特别说明,均默认化学反应模板数据库由逆向合成模板组成。
[0100]
化学反应模板分类数据库是对化学反应模板数据库进行一定分类后,得到的3个新化学反应模板数据库的总称。此数据库的获取方式和应用方法见(四)。
[0101]
逆合成策略是对于某一化学分子和所使用的化学反应模板数据库(由逆向合成模板组成)而言,该分子应用该数据库内各逆向合成模板的概率。这一概率是根据化学反应模板数据库的大小归一化后的概率,即任意分子应用数据库内各模板的概率之和为1。在本发明中,存在两种逆合成策略,它们的来源不同,使用的位置也不同。由神经网络计算得到的逆合成策略称为神经网络策略,用符号p表示;由mcts得到的策略称为mcts策略,用符号π表示。
[0102]
mc搜索树(全称为蒙特卡洛搜索树)是由mcts过程构建,在计算某单一化合物的逆合成策略时产生的树状数据结构。一个树状数据结构包含节点和边两种结构,节点之间通过有方向的边相互连接,即边具有起始节点和终止节点。边的起始节点称为终止节点的父节点,边的终止节点称为起始节点的子节点。在本发明的语境下,边的终止节点可能不唯一,而是多个节点作为终止节点存在,这些终止节点均视为起始节点的子节点。树状数据结构中定义了唯一一个根节点,它不是任何其他节点的子节点。树状数据结构中还定义了叶节点,它不是任何其他节点的父节点。树状数据结构的定义要求对除根节点之外的任意节点而言,有且仅有一条边以此节点为终止节点。节点用符号s表示,边用符号a表示,(s,a)表示以节点s为起始节点的边a。树状数据结构中节点的深度d(s)定义为根节点与该节点之间的边数量,根节点的深度一般定义为0;边的深度d(a)定义为其起始节点的深度+1,如以根节点为起始节点的边,深度为1,以此类推。树状数据结构的节点与边又可作为任意抽象的数据结构,存储不同类型的信息。
[0103]
终止态,是在mc搜索树中一类特殊的叶节点,这种叶节点满足以下三种条件之一:1、深度达到了某一最大值,即(一)中mcts最大搜索深度的maxmctsdepth;2、其中存储的化学分子是基本分子;3、其中存储的化学分子不是基本分子,且与任何化学反应模板均无法匹配。
[0104]
在本发明涉及的mc搜索树中,节点存储的信息包含:1、节点的深度d(s);与节点对应的化学分子smiles表达式s;2、神经网络策略p(s),是由神经网络计算得到的分子s的神经网络策略;3、节点价值估计v,表示该节点上分子合成的难易,由神经网络以节点上化学
分子作为输入计算得到(非终止态),或由终止态条件判定得到(终止态)。在终止态上,节点存储的节点价值估计v将是一个精确值,而非估计值,不使用模型计算。只要节点满足终止态条件3,则认为v=-1;只要节点满足终止态条件2,则认为v=1;其他情况下若节点满足终止态条件1,认为v=-1;4、n(s),含义是节点当前被访问的总次数。边存储的信息包含:1、与边对应的化学反应模板smarts表达式a;2、n(s,a),含义是以节点s为起始节点的边a当前被访问的总次数;3、q(s,a),含义是以节点s为起始节点的边a的边价值估计。
[0105]
模型是软件中由pytorch所构建的神经网络模型。模型具备的功能是根据输入的化学分子,计算神经网络策略与mc搜索树中的节点价值估计(该节点存储的分子正是输入模型的分子)。
[0106]
mcts(全称为蒙特卡洛树搜索)是一种搜索算法。这种搜索算法每次执行时需要完成多次模拟过程,并随着不断模拟构建出mc搜索树,最后根据搜索树存储的信息给出搜索问题的解。在本发明中,每一次模拟过程均包含三个阶段:选择阶段、展开与评估阶段、更新阶段。每个阶段的具体方案见(一)中所述。
[0107]
合成树是软件针对某一待合成化合物构建的一种树状数据结构。为与mc搜索树相区别,合成树中的节点用m表示,边用r表示,(m,r)表示以节点m为起始节点的边r。合成树与mc搜索树的主要区别是合成树上各节点和边存储的信息不同。合成树各节点存储的信息包括:节点的深度d(m);与节点对应的化学分子smiles表达式m;节点的状态标记z。合成树各边存储的信息包括:边的深度d(r);边连接的起始节点上化学分子所执行的化学反应模板r(这是一个逆向合成模板)。其中,合成树的节点状态标记z按如下规则决定:若该节点对应的化学分子是基本分子,则z=1;若该节点对应的化学分子是第二次及以后出现在合成树中,则标记值为z=2,并且软件不会再展开这一节点;若该节点对应的化学分子不是基本分子,但又无法执行软件所选的模板,或软件所选的模板为空模板,那么z=-1;其他情况下z=0。
[0108]
软件对某一化学分子进行合成路线设计时,可能得到成功或失败的结果。成功的判定方式为:软件在构建合成树所允许的最大深度内,构建出的合成树中全部叶节点上存储的化学分子都是基本分子。除此以外的任何情况均判定为失败。
[0109]
成功率,是用软件对一定数量的分子进行合成路线设计时,可产生完整合成路线的分子所占比例。
[0110]“+=”运算符定义为:若x是一个变量,则x+=1等价于x=x+1,也就是将变量x当前的值自增1,再赋值给变量x。
[0111]
(一)一种使用mcts与神经网络相结合的计算化合物逆合成策略的方法
[0112]
输入数据:待搜索化合物、模型、化学反应模板数据库、基本分子数据库、化学反应模板分类数据库。
[0113]
方法参数:mcts模拟总次数mctssims、温度系数temp(公式中写作τ)、mcts最大搜索深度maxmctsdepth、单次模拟最大时限timebudget。
[0114]
输出结果:待搜索化合物的mcts策略π
[0115]
方法描述:
[0116]
在选择阶段,算法需要构建出一条从根节点到叶节点的路径。路径也是一种树状数据结构,且是mc搜索树中全部节点和边的子集。路径中的节点和边除满足树状数据结构
的定义外,还额外满足:以任意节点为起始节点的边都是唯一的;路径中的叶节点必须为当前构建的mc搜索树中的叶节点,除非它不属于当前mc搜索树。路径的构建方法如下:
[0117]
(1)将根节点s0添加到路径上。
[0118]
(2)如果此时是首轮模拟,mc搜索树中仅包含根节点,那么路径已经构建完成(不含任何边,因为此时mc搜索树中没有边存在)。如果此时不是首轮模拟,那么根据根节点上存储的神经网络策略p(s0),s0为根节点上的化学分子(待搜索化合物),按照以下公式计算以s0为起始节点的边(s0,a1)上应存有的化学反应模板a1:
[0119][0120]
a1=argmax
a∈rs
{q(s0,a)+u(s0,a)}
[0121]
式中,rs为化学反应模板数据库,公式中将对rs中全部与s0匹配的模板进行计算,但通过(四)中方法可大幅减少与s0上存储的分子s0匹配的模板数量;a为数据库中的某一逆向合成模板;p(s0,a)为神经网络策略p(s0)中逆向合成模板a被应用的概率。此处各s,s,a,a的下标表示节点和边的深度,后同。c
puct
是公式中的常数,用于控制mcts算法对探索与利用的平衡,本发明中取c
puct
=1,并保持不变。u(s0,a)是基于当前mc搜索树中化学反应模板a在分子s0上的使用情况,对存有该模板的边(s0,a)边价值估计的一种改进。q(s0,a)是存有模板a的边(s0,a)的当前边价值估计。如果无法从现有mc搜索树中得到该q值,则说明此边是首次访问,此时取q(s0,a)=0。对于首次访问的边,n(s0,a)的值也不能从mc搜索树中取得,此时取n(s0,a)=0。计算出使得第二个公式中大括号内取最大值的a1后,选择a1对应的边(s0,a1)加入到路径中;
[0122]
(3)将a1应用到分子s0上,获得一个分子集合并创建与集合中分子一一对应的节点加入到路径中,作为s0的子节点。
[0123]
(4)从d=1开始,循环执行以下



的操作:
[0124]

从当前路径上深度为d的全部叶节点中,选取属于mc搜索树但不是mc搜索树中叶节点的所有节点,组成集合
[0125]

从k=1开始遍历集合中各个节点。对集合中第k个节点按照类似的公式计算以为起始节点的边上应存有的化学反应模板
[0126][0127][0128]
其中,为神经网络策略中逆向合成模板a被应用的概率;是基于当前mc搜索树中化学反应模板a在分子上的使用情况,对存有该模板的边边价值估计的一种改进;是节点至当前已被访问过的总次数(不含本次);
是边至当前已被访问过的总次数(不含本次);是存有模板a的边的当前边价值估计。
[0129]
注意,此时仍可能遇到边是首次访问的情况,这时仍取是首次访问的情况,这时仍取公式中将对全部rs中与匹配的模板进行计算,但通过(四)中的方法可大幅减少与上存储的分子匹配的模板数量;
[0130]

将存有模板的边加入路径中,并将应用于得到分子集合构建与分子集合中一一对应的节点加入到路径中;
[0131]

回到

继续处理第k+1个节点直至集合中的全部分子均处理完成,跳出本循环;
[0132]

d+=1,然后回到

,重新计算集合直到路径上全部叶节点中,属于mc搜索树的叶节点全部为mc搜索树中原本存在的叶节点,跳出本循环;
[0133]
在展开与评估阶段,算法分析路径中所有叶节点存储的信息,并完成节点价值估计计算。分析每一个叶节点时,首先判断该叶节点是否是终止态。若是终止态,则根据终止态满足的条件计算v的精确值;如果不是终止态,再判断该叶节点是否是首次访问。叶节点被首次访问意味着叶节点上存储的分子从未计算神经网络策略p和节点价值估计v,也就是此节点目前并不属于当前的mc搜索树.对于首次访问的叶节点,用模型计算出其神经网络策略p和节点价值估计v。对于非首次访问的叶节点,则在当前mc搜索树中,根据已经计算出的p,选择概率最大的一个分量对应的化学反应模板应用于叶节点上存储的分子,然后为此叶节点添加相应的新的边与子节点,展开mc搜索树,并评估这些子节点的v值,存储在节点上。这些节点中的终止态将根据终止态满足的条件计算v的精确值,非终止态将用模型计算节点价值估计。非终止态还额外计算了神经网络策略p,并将p和v存储在节点上。此处新添加的节点同时添加到路径中,它们事实上已经成为了路径中新的叶节点,但不会受到进一步分析。当完成对所有叶节点的分析后进入更新阶段。如果一轮模拟的总时间在分析中达到了单次模拟最大时限timebudget,则立刻停止分析剩余的叶节点,马上进入更新阶段,剩余叶节点的节点价值估计强制记为v=0(甚至不考虑终止态)。
[0134]
在更新阶段,路径上全部叶节点的节点价值估计都参与更新。这些叶节点包括了路径上的终止态叶节点、首次访问的叶节点和新添加的节点。如果展开与评估阶段达到了单次模拟最大时限,那么节点价值估计被记为0的各节点也参与更新(它们事实上也是路径中的叶节点)。算法根据以上节点价值估计v更新本次模拟所访问过的全部边的边价值估计q(s,a),并更新本次模拟选取的路径中所有节点和边的总访问次数n(s)和n(s,a)。具体的更新方法按照以下过程进行:
[0135]
首先更新各节点和边的访问次数。对于首次访问的节点s和首次访问的边(s,a)的总访问次数:
[0136]
n(s)=0,n(s,a)=1
[0137]
对于非首次访问的节点s和首次访问的边(s,a)的总访问次数:
[0138]
n(s)+=1,n(s,a)+=1
[0139]
对于边价值估计的更新,有两种方式可以选择:方式1称为avg,方式2称为min。两种方式的区别在于计算边价值估计的更新量g的方法不同。更新量g的计算是从上述得到的全部叶节点的节点价值估计v开始,从子节点到父节点的方向迭代计算,也就是先计算连接路径中叶节点与其父节点的边的更新量,再计算连接父节点与父节点的父节点的边的更新量,以此类推,直到完成与根节点相连各边的更新量计算。与叶节点直接相连的边(s,a),其更新量g(s,a)按照方式1的计算方法为:
[0140]

[0141]
g(s,a)=-1若
[0142]
g(s,a)按照方式2的计算方法为:
[0143]

[0144]
g(s,a)=-1若
[0145]
其中s

表示作为边(s,a)终止节点的各叶节点,v(s

)表示它们的节点价值估计,n(s

,a,s)表示边(s,a)的终止节点总数,这个量不一定为1,因为一个化合物不一定仅有一种合成前体。
[0146]
对于与叶节点不直接相连的边(s,a),其更新量g(s,a)与以该边所有终止节点s

为起始节点的边(s

,a

)的更新量g(s

,a

)有关。按照方式1的计算方法为:
[0147]

[0148]
g(s,a)=-1若
[0149]
g(s,a)按照方式2的计算方法为:
[0150]

[0151]
g(s,a)=-1若
[0152]
计算出路径上所有各边的边价值估计更新量g(s,a)后,按照以下公式更新边价值估计q(s,a):
[0153][0154]
此式用于首次访问的边时,右边q(s,a)的值还未定义,此时取右边q(s,a)=0。
[0155]
以上就是mcts中一次完整模拟的过程。当算法完成规定数目的模拟次数(mctssims)后,算法的模拟过程将结束,并根据已经构建好的mc搜索树中存储的信息得到问题的解。具体来说,从与mc搜索树的根节点s0相连的所有边(s0,a)上,获得每一条边的总访问次数n(s0,a),然后根据以下公式计算对待搜索化合物s0应用某一逆向合成模板a的概率:
[0156]
[0157]
其中分子上的n(s0,a)表示存储了模板a的边的总访问次数,分母上是对所有与根节点相连的、总访问次数不为0的边的总访问次数取次幂后求和(总访问次数为0的边显然对结果无影响)。τ在公式中称为温度系数,这一参数控制了mcts策略中各化学反应模板被应用概率间的差异大小。温度系数越大,各化学反应模板被应用概率越接近,mcts策略更接近于应用各化学反应模板概率相等的随机策略;温度系数越小,mcts策略更接近于仅使得被访问次数最多的边被应用概率趋于1的贪心策略。当算得每一个化学反应模板数据库中的模板所对应的概率后,将各概率作为分量组成最终的mcts策略π.这个策略将被用于化合物合成树的构建过程(二)中。
[0158]
(二)一种利用上述计算逆合成策略的方法,通过构建待合成化合物的合成树,设计待合成化合物最优合成路线或设计同一待合成化合物多条合成路线的方法
[0159]
输入数据:待合成化合物、模型、化学反应模板数据库、基本分子数据库
[0160]
输入参数:合成路线最大长度depth、最大不可分解化合物比例unavailable_ratio_threshold
[0161]
方法描述:
[0162]
软件设计待合成化合物合成路线的方法是构建该化合物的合成树,然后根据合成树给出具体的合成路线。
[0163]
1、设计最优路线
[0164]
首先,向合成树添加根节点m0,m0上存储的分子是待合成化合物m0。这里,m的下标表示节点的深度,m的下标表示m所在节点m的深度,后同。使用(一)中方法计算出待合成化合物m0的mcts策略π(m0)。向合成树添加边(m0,r1),选择π(m0)中概率最大的一个分量对应的逆向反应模板r1加到边(m0,r1)上。这里,r的下标表示边的深度,r的下标表示模板所在边r的深度,后同。对m0应用r1,得到分子集合这里,各m的上标表示在应用r1后,产生的每一个分子的序号;n1是对m0应用r1后产生的分子总数(序号最大值),n的下标表示应用的模板r所在边r的深度。最后,将节点作为m0的子节点添加到合成树中,第i个节点上存储的分子是并计算这些节点的状态标记z.如果这些状态标记中出现z=-1,则合成树的构建立刻停止,同时判定对目标化合物的合成设计已经失败;如果全部状态标记中无z=-1出现,则进入以下循环过程:
[0165]
(1)初始化d=1。判断合成树中是否有节点深度达到了最大值d
max
(即合成路线最大长度depth),也就是合成路线最大长度depth,若是则跳出循环;再判断合成树中是否还存在z=0的叶节点,若已不存在这样的叶节点则跳出循环,停止合成树构建;
[0166]
(2)若未跳出循环,遍历全部当前合成树中z=0且深度为d的叶节点。对第k个这样的叶节点执行以下循环:
[0167]

计算其存储的分子的mcts策略然后向此叶节点添加一条边边上存储中概率最大的一个分量对应的逆向反应模板
[0168]

对分子应用逆向反应模板得到分子集合i
d+1,k
是对分子
应用模板后所得分子集合中,各分子的序号。分子集合中的分子总数为这也是i
d+1,k
的最大取值;
[0169]

向节点添加个子节点(这些都是边的终止节点),第i
d+1,k
个子节点上存储的分子是然后计算这些子节点的状态标记z。若这些节点中出现z=-1,则跳出全部循环,停止构建合成树。本次合成设计判定失败;
[0170]

回到

,继续处理下一个节点直至遍历全部当前合成树中z=0的叶节点;
[0171]
(3)d+=1,然后回到(1),直至满足条件后跳出循环;
[0172]
跳出循环后,软件将得到构建完毕的合成树。根据合成树,软件将判定合成是否成功,方法已在术语说明处叙述。若设计成功,软件将合成树中各节点上存储的分子m和各边上存储的逆向合成模板r按照一定格式输出,作为待合成化合物的合成路线;若设计失败,软件也同样按照一定格式输出合成树中各节点上存储的分子m和各边上存储的逆向合成模板r,但此时并不代表一条完整的合成路线。
[0173]
一个构建完毕的、描述了一次成功的合成路线设计的合成树,如图2所示。注意图中假设了每个逆向合成模板应用后均产生2个分子,以便于作图。一般情况下的合成树将更复杂。图中的基本分子符号改为b,与非基本分子的中间体相区别。d在此处不是深度,而是合成路线最大长度depth。
[0174]
以上设计待合成化合物合成路线的方法,软件在模型训练阶段将其作为设计目标化合物最优合成路线的方法;在模型应用阶段,软件将其作为设计用户给定的待合成化合物最优合成路线的方法。
[0175]
2、设计多条不同路线
[0176]
在模型应用阶段,软件还可以设计多条关于用户给定的待合成化合物的合成路线。这一方法与以上设计最优合成路线的方法大部分相同,只在通过π选择r时有差异。注意这一方法并不应用于模型训练阶段。方法具体步骤简述如下:
[0177]
首先,向合成树添加根节点m0,m0上存储的分子是待合成化合物m0。这里,m的下标表示节点的深度,m的下标表示m所在节点m的深度,后同。使用(一)中方法计算出待合成化合物m0的mcts策略π(m0)。向合成树添加边(m0,r1),从π(m0)中概率最大前k个分量中,随机选择其中一个分量对应的逆向反应模板r1加到边(m0,r1)上。这里,r的下标表示边的深度,r的下标表示模板所在边r的深度,后同。对m0应用r1,得到分子集合这里,各m的上标表示在应用r1后,产生的每一个分子的序号;n1是对m0应用r1后产生的分子总数(序号最大值),n的下标表示应用的模板r所在边r的深度。最后,将节点作为m0的子节点添加到合成树中,第i个节点上存储的分子是并计算这些节点的状态标记z.如果这些状态标记中出现z=-1的节点数量占当前合成树中全部节点数量的比例超过unavailable_ratio_threshold,则合成树的构建立刻停止,同时判定对目标化合物的合成设计已经失败;如果全部状态标记中无z=-1出现,则进入以下循环过程:
[0178]
(1)初始化d=1。判断合成树中是否有节点深度达到了最大值d
max
,也就是合成路
线最大长度depth,若是则跳出循环;再判断合成树中是否还存在z=0的叶节点,若已不存在这样的叶节点则跳出循环,停止合成树构建;
[0179]
(2)若未跳出循环,遍历全部当前合成树中z=0且深度为d的叶节点。对第k个这样的叶节点执行以下步骤:
[0180]

计算其存储的分子的mcts策略然后向此叶节点添加一条边从中概率最大前k个分量中,随机选择其中一个分量对应的逆向反应模板存储在边上;
[0181]

对分子应用逆向反应模板得到分子集合i
d+1,k
是对分子应用模板后所得分子集合中,各分子的序号。分子集合中的分子总数为这也是i
d+1,k
的最大取值;
[0182]

向节点添加个子节点(这些都是边的终止节点),第i
d+1,k
个子节点上存储的分子是然后计算这些子节点的状态标记z。若这些节点中出现z=-1的节点数量占当前合成树中全部节点数量的比例超过unavailable_ratio_threshold,则跳出全部循环,停止构建合成树。本次合成设计判定失败;
[0183]

回到

,继续处理下一个节点直至遍历全部当前合成树中z=0的叶节点;
[0184]
(3)d+=1,然后回到(1),直至满足条件后跳出循环;
[0185]
跳出循环后,软件将得到构建完毕的合成树。根据合成树,软件将判定合成是否成功。若设计成功,软件将合成树中各节点上存储的分子m和各边上存储的逆向合成模板r按照一定格式输出,作为待合成化合物的合成路线;若设计失败,软件也同样按照一定格式输出合成树中各节点上存储的分子m和各边上存储的逆向合成模板r,但此时并不代表一条完整的合成路线。
[0186]
由于对合成树中每一个分子所应用的逆向合成模板具有随机性,因此对相同待合成化合物进行多次平行的合成路线设计,就可以得到对同一待合成化合物的不同合成路线。
[0187]
(三)一种用于模型构建模式中的强化学习方法,用于获得可以在软件中设计化合物合成路线的模型。
[0188]
方法参数:模型迭代轮次总数、每轮数据生成所用目标化合物数量n
train
,每轮模型评估所用目标化合物数量n
test
,最大历史训练数据存储轮次numitersfortrainexampleshistory.参数默认值为:n
train
=40,n
test
=20,numitersfortrainexampleshistory=10.模型迭代轮次总数由用户自行设定。
[0189]
在模型构建模式中,软件将从参数随机初始化的模型出发,执行多个模型迭代轮次,最终得到可以用于在软件中设计化合物合成路线的模型。每一个迭代轮次分为数据生成、模型训练和模型评估三个阶段。模型构建模式的流程图如图3所示。
[0190]
首先描述模型的架构,如图4所示。输入的分子首先用化学信息学工具计算其1024
维ecfp4分子指纹,然后将指纹输入第一个全连接层,激活函数为relu,经过批正规化和p值(非图4中的p)为0.3的dropout层,再进入第二个含有512个神经元的全连接层,激活函数为relu,经过批正规化和p=0.3的dropout层,最后由一个512个神经元的logsoftmax层计算当前输入分子神经网络策略的对数ln p,由另一个含有512个神经元的tanh层计算当前输入分子的节点价值估计v(s)。p为维数等于化学反应模板总数+1的矢量,最后一维对应于所谓的空模板,p的对数lnp相当于对p中每一个分量求对数后的结果;v为介于0到1间的实数。这里注意,神经网络策略是由神经网络输出的ln p重新指数化运算后得到的结果。求对数仅作为模型训练的中间过程,纯粹是出于数值稳定的考虑。为了更合理地显示模型的功能,避免描述上的繁琐,在除本部分以外的文本中,仍认为模型输出了神经网络策略p。
[0191]
在数据生成阶段,软件从目标化合物数据库中随机抽取一定数量的目标化合物(软件内置参数,用n
train
表示),用(二)中方法设计最优合成路线,生成每一个目标化合物的合成树并记录合成树对应的合成设计成功与否的情况。如果该合成树对应的合成路线设计成功,那么将合成树中全部节点上的状态标记z重置为z=1;反之则全部重置为z=-1。如果此时处于第1个模型迭代轮次中,那么历史最佳成功率为设计合成路线的全部目标化合物中设计成功的比例;如果此时是第k个模型迭代轮次(k≥2),那么历史成功率的更新取决于上一迭代轮次中模型评估的结果。如果上一轮的模型评估中接受了上一轮训练后的模型,那么历史成功率更新为本轮设计目标化合物合成路线成功率与上一轮中模型评估时设计目标化合物合成路线成功率的加权平均,即
[0192][0193]
其中,acc
best,k
表示第k轮模型迭代的历史最佳成功率;acc
train,k
表示在第k轮迭代的数据生成阶段设计全部目标化合物合成路线的成功率;acc
eval,k-1
表示在第k-1轮模型迭代的模型评估阶段,设计全部目标化合物合成路线的成功率;n
test
是模型评估阶段所需设计的目标化合物合成路线总数。如果上一轮的模型评估中未接受了上一轮训练后的模型,则历史成功率更新为上一轮历史成功率与本轮数据生成阶段设计全部目标化合物合成路线的成功率的加权平均,即:
[0194][0195]
其中acc
best,k-1
是上一个迭代轮次中的历史最佳成功率,n
cur
是自上一次模型评估接受训练后的模型以来,模型评估已经连续多少轮未接受训练后的模型。每次模型评估接受训练后的模型时,重置n
cur
=0;每次模型评估后未接受训练后的模型时,n
cur
+=1。
[0196]
为了获得模型的训练数据集,选取每个合成树中,每一个节点上存储的分子smiles表达式m、mcts策略π和节点状态标记z,组成元组[m,π,z]。这些元组将组成模型的训练数据集,其中m在用化学信息学工具转化为1024维ecfp4分子指纹后作为神经网络的输入,π是模型输出神经网络策略p时的标签,z是模型输出节点价值估计v时的标签。每一轮模型迭代产生的训练数据集都会被保存,直到模型迭代轮次超过numitersfortrainexampleshistory。此时仅保存包含当前轮次产生训练数据集在内的前numitersfortrainexampleshistory轮产生的训练数据集。
[0197]
在模型训练阶段,软件根据当前保存的全部训练数据集,通过最小化以下公式中
的损失函数,优化模型的参数:
[0198]
l=π
t
ln p+(z-v)2+λ||ω||2[0199]
其中ω为模型的参数,||ω||2为全部参数的平方和;λ是l2正则化参数。模型训练阶段以mcts策略改进神经网络策略,以合成设计的成功与失败改进mc搜索树中的节点价值估计,因此这种构建模型的方法是一种强化学习方法。
[0200]
在模型评估阶段,软件从目标化合物数据库中再抽取一定数量的目标化合物(前面提到的参数n
test
,软件内置参数),使用(二)中方法设计最优合成路线。如果成功率高出本轮的历史最佳成功率acc
best,k
一定数值(小量∈,软件内置参数,∈=0.05),就接受本轮训练后的模型,取代本轮数据生成中使用的模型,在下一轮的数据生成中用于目标化合物合成路线设计;否则就放弃训练后的模型,在下一轮的数据生成中继续使用本轮所用的模型进行目标化合物合成路线设计。
[0201]
当软件完成模型迭代轮次总数设定的全部模型迭代后,软件运行终止,用户获得可以在本软件中设计化合物合成路线的模型。
[0202]
(四)从化学反应模板数据提取化学反应模板分类数据,并使用这一数据加速(一)中mcts过程的方法
[0203]
本方法根据化学反应模板右侧的生成物模板数量将模板分为3类:1、含单个生成物模板的;2、含2个生成物模板的;3、含3个及以上生成物模板的。将化学反应模板应用于某个分子时,分子中可能有多个不同位置的子结构与模板存在匹配。化学信息学工具在进行操作时,不能区分分子中不同位置的子结构,而是对于每一个匹配的子结构都进行一次操作。如果一个化学反应模板中包含2个生成物模板,与之匹配的分子中包含3个不同位置的匹配子结构,那么将模板应用在分子上会产生6个新的分子。如果匹配的位置更多,则新的分子数量增长迅速,mc搜索树会过于复杂,导致搜索速度很慢。因此,在(一)中的展开与评估阶段中,对与某个分子匹配的全部模板,需要根据模板与分子中匹配的位置数量和模板本身的生成物模板数量,去除匹配过多位点且生成物模板过多的化学反应模板。对于其中第1类模板,要求分子中最多只有3个位点与模板匹配;对于其中第2类模板,要求分子中最多只有两个位点匹配,且两个位点中必有一个位点应用规则时对应于一个分子内反应,否则只允许匹配一个位点;对于第3类,不作任何限制,因为这类模板数量非常少。做出这样的限制后,mc搜索树的每个节点几乎总是最多有两个子节点(未应用第3类模板的情况下),这极大降低了mc搜索树的复杂度,减少了节点和边的总数,加速了搜索过程。本方法通过正则表达式对化学反应模板数据库进行分类,得到包含不同数量生成物模板的化学反应模板集合,提供给(一)使用。
[0204]
(五)为了扩大基本分子的覆盖范围,除了基本分子数据库中的基本分子,本方法设置了判断基本分子的其他条件,满足条件但不属于基本分子数据库的分子仍然会被认为是基本分子。这些条件包括:1、若分子含c原子数不超过6个,即可认为是简单有机物,自动被判定为基本分子;2、如果分子中含有除li、mg、cu、zn、sn、pb、bi以外的任何金属原子,那么无需计算c原子数量,直接判定为基本分子。
[0205]
根据本方案开发的casp程序,原则上可使用任何来源的化学反应模板数据,并且对化学反应模板数量需求很小,同时能保持较高的计算成功率。这是由于本方案是基于强化学习算法的技术方案,在上述方法(一)中,有效利用设计合适的策略函数和回报函数(即
模型神经网络)引导mcts搜索过程;在上述方法(三)中,可以通过学习程序自我生成过的全部合成路线信息,并不断改进模型神经网络参数,从而反作用于(一)的mcts过程,提高搜索的精确度。两种方法相辅相成,相互促进,通过强化学习方法增强数据适应性,减小数据需求,保持计算成功率。
[0206]
根据本方案开发的casp程序,其可以为目标化合物设计当前文献中或专利中从未报道过的全新合成路线,为新化合物合成设计提供方向指导,或为已有合成路线的化合物设计新合成路线。这是由于本技术方案中仅允许模型学习有关化学反应模板的信息,而未将这些模板与产生模板的化学反应关联信息加入学习过程中,因此模型不会依照现有的文献或专利中的化学反应设计合成路线,而只是使用训练中学得的信息。是本方案使用强化学习方法的直接体现;
[0207]
根据本方案开发的casp程序,其可以为同一目标化合物设计不同的合成路线。这是由于上述方法(二)2可以从逆合成策略中随机采样,使得尽可能不生成重复路线。
[0208]
本发明将mcts过程与合成路线构建分开,为实现通过合成路线设计结果来改进mcts中神经网络的性能做了铺垫;mcts过程与合成路线构建的分离体现在mc搜索树和合成树的构建相互独立((一)和(二)两部分),只有这样做才能对合成树(或者说合成路线)中每一个中间体分子(非基本分子)都进行一次完整的mcts计算,从而对每个中间体分子的逆合成策略计算是最精确的。如果将mc搜索树与合成树合二为一,那么树中并非每个分子都经历的完整的mcts过程。这是因为它们不是树的根节点,每次模拟时的路径不一定包含它们,所以被模拟到的总次数可能小于甚至远小于mcts模拟总次数,而且节点间的模拟次数还很不平衡(有些多而有些少)。这样无法得出合成路线上每一个中间体分子精确的逆合成策略。
[0209]
本发明以全新方式将神经网络模型应用于mcts算法中,引导mcts搜索过程并取代随机性较强的仿真阶段,以此解决化学合成设计问题,大幅减少了合成设计的随机性,使得化合物的最优路线具备可重复性;如果不使用神经网络替代仿真来计算节点价值估计,那么节点价值估计的计算需要随机采样,很容易导致mcts搜索过于随机,最终找不到合适的合成路线,从而需要大量平行的计算才能获得预期的结果。使用神经网络后,节点价值估计将是确定值,不再由随机过程产生,因此可重复性非常好,一般只需要一次计算。
[0210]
本发明从软件自行设计的合成路线中提取训练数据,用于改进mcts所用神经网络的性能,从而增强mcts算法的搜索能力,提高软件设计合成路线的成功率与路线质量。
[0211]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0212]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1