一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种用于有机化合物的化学结构和命名双向自动转化的处理方法及装置与流程

2022-02-20 05:26:37 来源:中国专利 TAG:


1.本发明涉及化学信息学技术领域,特别涉及一种用于有机化合物结构 和名称转化的处理方法及装置。


背景技术:

2.有机物化学结构-命名相互转化对于化学领域有着重要的意义。化学 结构-命名转化的尝试最早可以追溯到1962年。现有技术中,在对化学结 构-命名进行相互转化时,通常采用如下这几类软件:chemdraw、lexichem toolkit、nameexpert、name=struct(2)、iupac drawit、acd/name、instant jchem和opsin(3)。然而,这些软件所采用的转换方法存在如下问题:
3.a.已有的技术方法需要提取转化规则以及专家定义和总结语法,开 发周期长、开发成本高、维护困难。
4.b.已有基于规则模板的方法难以进行实时更新,新规则的添加可能 造成原转化模型的冲突和失效,以此无法准确的进行转化。
5.c.已有的方法不支持gpu加速,可能存在转化速度慢效率差等问 题。


技术实现要素:

6.本发明实施例的目的在于提供一种用于有机化合物结构和名称转化的 处理方法及装置,用于解决现有的转化方法效率低的问题。
7.为了解决上述技术问题,本技术的实施例采用了如下技术方案:一种 用于有机化合物的化学结构和命名双向自动转化的处理方法,有机物化学 结构文件的存储格式包括:简化分子线性输入规范smiles格式、mol2 格式、sdf格式和pdb格式;有机物命名方式包括:国际纯粹与应用化学 联合会iupac规定的有机物命名法命名、系统命名法命名、俗名和常用名; 在所述有机物化学结构文件存储格式为smiles格式、mol2格式、sdf 格式或pdb格式的情况下,在所述有机物命名方式为iupac规定的有机 物命名法命名的情况下,所述方法包括如下步骤:
8.获取目标有机化合物待转换的化学结构文件;
9.利用预设的化学结构转化工具将非smiles格式的所述化学结构文件 转成smiles格式;
10.对所述smiles格式进行处理获得目标第一向量;
11.利用预设的目标转换模型对所述目标第一向量进行转换,获得若干第 二向量;
12.基于各第二向量的概率,确定目标第二向量;
13.基于所述目标第二向量确定与所述目标有机化合物结构对应的命名。
14.可选的,所述方法还包括采用深度学习的方法训练获得所述目标转换 模型,具体包括:
15.获取若干样本有机化合物结构的smiles格式以及对应的iupac命名;
16.基于预设的字符-数字映射表,对各smiles格式中的各字符进行转换, 获得若干第一样本向量,以作为输入向量;
17.基于所述预设的字符-数字映射表,对各所述iupac命名中的各字符 进行转换,获得若干第二样本向量,以作为目标输出向量;
18.基于各所述输入向量以及与各所述输入向量对应的目标输出向量进行 模型训练,获得所述目标转换模型。
19.可选的,所述字符-数字映射表的配置方式,包括:
20.获取若干样本有机化合物的smiles格式,得到第一样本集合;
21.获取各所述样本有机化合物的iupac命名,得到第二样本集合;
22.获取所述第一样本集合中各smiles格式中的字符,得到第一字符集 合;
23.获取所述第二样本集合中各iupac命名中的字符,得到第二字符集合;
24.基于所述第一字符集合和所述第二字符集合构建所述字符-数字映射 表。
25.可选的,所述对所述smiles格式进行处理获得目标第一向量,具体 包括:
26.基于所述字符-数字映射表对所述目标有机化合物结构的smiles格式 中的各字符进行转换,获得第一向量;
27.利用词嵌入方法将所述第一向量转换成词嵌入向量;
28.对所述词嵌入向量中的各偶数位置使用正弦编码,对所述词嵌入向量 中的各奇数位置使用余弦编码,获得与各位置对应的位置编码值;
29.将所述词嵌入向量中各位置的词嵌入值与位置编码值相加,获得所述 目标第一向量。
30.可选的,所述基于所述目标第二向量确定与所述目标有机化合物对应 的命名,具体包括:
31.基于所述字符-数字映射表对所述目标第二向量中的各数字进行转换, 获得与所述目标有机化合物对应的命名。
32.为了解决上述技术问题,本技术提供一种用于有机化合物的化学结构 和命名双向自动转化的处理方法,有机物化学结构文件的存储格式包括: smiles格式、mol2格式、sdf格式和pdb格式;有机物命名方式包括: iupac规定的有机物命名法命名、系统命名法命名、俗名和常用名;在所 述有机物化学结构文件存储格式为smiles格式、mol2格式、sdf格式 或pdb格式的情况下,在所述有机物命名方式为iupac规定的有机物命 名法命名的情况下,所述方法包括如下步骤:
33.获取目标有机化合物待转换的iupac命名;
34.对所述iupac命名进行处理获得目标第一向量;
35.利用预设的目标转换模型对所述目标第一向量进行转换,获得若干第 二向量;
36.基于各第二向量的概率,确定目标第二向量;
37.基于所述目标第二向量确定与所述目标有机化合物对应的smiles格 式的化学结构文件;
38.利用预设的化学结构转化工具将smiles格式的化学结构文件转换成 目标格式化学结构文件。
39.可选的:采用深度学习的方法训练获得所述目标转换模型,具体包括:
40.获取若干样本有机化合物结构的smiles格式以及对应的iupac命名;
41.基于预设的字符-数字映射表,对各iupac命名中的各字符进行转换, 获得若干第一样本向量,以作为输入向量;
42.基于所述预设的字符-数字映射表,对与各所述smiles中的各字符进 行转换,获得若干第二样本向量,以作为目标输出向量;
43.基于各所述输入向量以及与各所述输入向量对应的目标输出向量进行 模型训练,获得所述目标转换模型。
44.可选的,所述字符-数字映射表的配置方式,包括:
45.获取若干样本有机化合物的smiles,得到第一样本集合;
46.获取各所述样本有机化合物的iupac命名,得到第二样本集合;
47.获取所述第一样本集合中各smiles中的字符,得到第一字符集合;
48.获取所述第二样本集合中各iupac命名中的字符,得到第二字符集合;
49.基于所述第一字符集合和所述第二字符集合构建所述字符-数字映射 表。
50.可选的,所述对所述命名进行处理获得目标第一向量;具体包括:
51.基于所述字符-数字映射表对所述iupac命名中的各字符进行转换, 获得第一向量;
52.利用词嵌入方法将所述第一向量转换成词嵌入向量;
53.对所述词嵌入向量中的各偶数位置使用正弦编码,对所述词嵌入向量 中的各奇数位置使用余弦编码,获得与各位置对应的位置编码值;
54.将所述词嵌入向量中各位置的词嵌入值与位置编码值相加,获得所述 目标第一向量。
55.可选的,所述基于所述目标第二向量确定与所述目标有机化合物对应 的smiles格式的化学结构文件,具体包括:
56.基于所述字符-数字映射表对所述目标第二向量中的各数字进行转换, 获得与所述目标有机化合物对应的smiles格式的化学结构文件。
57.为了解决上述技术问题,本技术提供一种用于有机化合物的化学结构 和命名转化的处理装置,包括:
58.获取模块,用于获取目标有机化合物待转换的化学结构文件;
59.第一转换模块,用于利用预设的化学结构转化工具将非smiles格式 的所述化学结构文件转成smiles格式;
60.处理模块,用于对所述smiles格式进行处理获得目标第一向量;
61.第二转换模块,用于利用预设的目标转换模型对所述目标第一向量进 行转换,获得若干第二向量;
62.第一确定模块,用于基于各第二向量的概率,确定目标第二向量;
63.第二确定模块,用于基于所述目标第二向量确定与所述目标有机化合 物结构对应的命名。
64.为了解决上述技术问题,本技术提供一种用于有机化合物的命名和化 学结构转化的处理装置,包括:
65.获取模块,用于获取目标有机化合物待转换的iupac命名;
66.处理模块,用于对所述iupac命名进行处理获得目标第一向量;
67.第一转换模块,用于利用预设的目标转换模型对所述目标第一向量进 行转换,获得若干第二向量;
68.第一确定模块,用于基于各第二向量的概率,确定目标第二向量;
69.第二确定模块,用于基于所述目标第二向量确定与所述目标有机化合 物对应的smiles格式的化学结构文件;
70.第二转换模块,用于利用预设的化学结构转化工具将smiles格式的 化学结构文件转换成目标格式化学结构文件。
71.本发明实施例的有益效果在于:利用预设的目标转换模型来对第一向 量进行转换,得到目标第二向量,然后再根据目标第二向量确定对应的有 机化合物的命名,与传统的基于规则的方法和装置相比,本发明的处理方 法和装置能够使得化学结构与命名之间的转换能够更加方便、快捷,提高 了转换效率,避免了传统方法中新规则添加易造成模型冲突和失效的风险。。
附图说明
72.图1为本发明一实施例一种用于有机化合物的化学结构和命名双向自 动转化的处理方法的流程图;
73.图2为本发明一实施例中目标转换模型的示意图;
74.图3为本发明又一实施例一种用于有机化合物的化学结构和命名双向 自动转化的处理方法的流程图;
75.图4为本发明又一实施例中目标转换模型的示意图;
76.图5为本发明另一实施例一种用于有机化合物结构和名称转化的处理 装置的结构框图;
77.图6为本发明又一实施例一种用于有机化合物结构和名称转化的处理 装置的结构框图。
具体实施方式
78.此处参考附图描述本技术的各种方案以及特征。
79.应理解的是,可以对此处申请的实施例做出各种修改。因此,上述说 明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想 到在本技术的范围和精神内的其他修改。
80.包含在说明书中并构成说明书的一部分的附图示出了本技术的实施例, 并且与上面给出的对本技术的大致描述以及下面给出的对实施例的详细描 述一起用于解释本技术的原理。
81.通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述, 本技术的这些和其它特性将会变得显而易见。
82.还应当理解,尽管已经参照一些具体实例对本技术进行了描述,但本 领域技术人员能够确定地实现本技术的很多其它等效形式,它们具有如权 利要求所述的特征并因此
都位于借此所限定的保护范围内。
83.当结合附图时,鉴于以下详细说明,本技术的上述和其他方面、特征 和优势将变得更为显而易见。
84.此后参照附图描述本技术的具体实施例;然而,应当理解,所申请的 实施例仅仅是本技术的实例,其可采用多种方式实施。熟知和/或重复的功 能和结构并未详细描述以避免不必要或多余的细节使得本技术模糊不清。 因此,本文所申请的具体的结构性和功能性细节并非意在限定,而是仅仅 作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意 合适的详细结构多样地使用本技术。
85.本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、
ꢀ“
在又一实施例中”或“在其他实施例中”,其均可指代根据本技术的相 同或不同实施例中的一个或多个。
86.本发明实施例提供一种用于有机化合物的化学结构和命名双向自动转 化的处理方法,有机物化学结构文件的存储格式包括:简化分子线性输入 规范(simplified molecular input line entry specification,smiles)格式、 mol2(一种文件类型)格式、标准延时格式(standard delay format,sdf) 和程序数据库文件(program database file,pdb)格式;有机物命名方式 包括:国际纯粹与应用化学联合会(international union of pure and applied chemistry,iupac)规定的有机物命名法命名、系统命名法命名、俗名和 常用名;在所述有机物化学结构文件存储格式为smiles格式、mol2格 式、sdf格式或pdb格式的情况下,在所述有机物命名方式为iupac规 定的有机物命名法命名的情况下,所述方法包括如下步骤:
87.步骤s101,获取目标有机化合物待转换的化学结构文件;
88.本步骤中化学结构文件的格式具体可以为smiles格式、mol2格式、 sdf格式或pdb格式等。
89.步骤s102,利用预设的化学结构转化工具将非smiles格式的所述化 学结构文件转成smiles格式;
90.本步骤中在化学结构文件的格式为非smiles格式时,需要利用转化 工具转化成smiles格式,即当化学结构文件格式为mol2格式、sdf格 式或pdb格式时,需要将mol2格式、sdf格式或pdb格式转化成smiles 格式。本步骤在具体实施过程中化学结构转化工具包括openbabel软件, 当然也可以利用其他转化软件来对非smiles格式化学结构文件转换成 smiles格式。
91.步骤s103,对所述smiles格式进行处理获得目标第一向量;
92.本步骤在具体实施过程中,具体是基于字符-数字映射表对所述目标 有机化合物结构的smiles格式中的各字符进行转换,来获得第一向量; 再利用词嵌入方法将所述第一向量转换成词嵌入向量;对所述词嵌入向量 中的各偶数位置使用正弦编码,对所述词嵌入向量中的各奇数位置使用余 弦编码,获得与各位置对应的位置编码值;将所述词嵌入向量中各位置的 词嵌入值与位置编码值相加,获得所述目标第一向量。
93.步骤s104,利用预设的目标转换模型对所述目标第一向量进行转换, 获得若干第二向量;
94.本步骤中目标转换模型是预先训练获得的,包括卷积神经网络模型、 循环神经网络模型、transformer模型。具体可以采用深度学习的方法训练 获得所述目标转换模型,包
括:获取若干样本有机化合物结构的smiles 格式以及对应的iupac命名;基于预设的字符-数字映射表,对各smiles 格式中的各字符进行转换,获得若干第一样本向量,以作为输入向量;基 于所述预设的字符-数字映射表,对各所述iupac命名中的各字符进行转 换,获得若干第二样本向量,以作为目标输出向量;基于各所述输入向量 以及与各所述输入向量对应的目标输出向量进行模型训练,获得所述目标 转换模型。
95.进一步的,在训练获得目标转换模型之前,还包括配置字符-数字映射 表,具体的配置方式包括:获取若干样本有机化合物的smiles格式,得 到第一样本集合;获取各所述样本有机化合物的iupac命名,得到第二样 本集合;获取所述第一样本集合中各smiles格式中的字符,得到第一字 符集合;获取所述第二样本集合中各iupac命名中的字符,得到第二字符 集合;基于所述第一字符集合和所述第二字符集合构建所述字符-数字映射 表。
96.步骤s105,基于各第二向量的概率,确定目标第二向量;
97.步骤s106,基于所述目标第二向量确定与所述目标有机化合物结构对 应的命名。
98.本步骤在具体实施过程中,具体是基于预设的字符-数字映射表来对所 述目标第二向量中的各数字进行转换,获得与所述目标有机化合物对应的 命名。
99.本实施例在具体实施过程中,可以基于上述smiles格式-iupac命名 转换的原理实现任意一种化学结构文件格式-任意一种命名的转换,例如 smiles格式-俗名、mol2格式-iupac命名、mol2格式-俗名、sdf格 式-常用名、pdb格式-常用名等的转换,在此不再赘述。
100.本实施例利用预设的目标转换模型来对第一向量进行转换,得到目标 第二向量,然后再根据目标第二向量确定对应的有机化合物的命名,与传 统的基于规则的方法和装置相比,本发明的处理方法和装置能够使得化学 结构与命名之间的转换能够更加方便、快捷,提高了转换效率,避免了传 统方法中新规则添加易造成模型冲突和失效的风险。
101.为了对上述实施例做更进一步解释,以将阿司匹林的smiles格式转 换成iupac命名为例进行说明,具体转换过程如下:
102.步骤一、首先配置字符-数字映射表。即获取若干样本有机化合物的 smiles格式,得到第一样本集合;获取各所述样本有机化合物的iupac 命名,得到第二样本集合;获取所述第一样本集合中各smiles格式中的 字符,得到第一字符集合;获取所述第二样本集合中各iupac命名中的字 符,得到第二字符集合;基于所述第一字符集合和所述第二字符集合构建 所述字符-数字映射表。本实施例中的字符-数字映射表可以如下表1所示, 表1中只是给出了一部分字符与数字的映射关系。
103.表1:
[0104][0105][0106]
步骤二、在获得了上述的字符-数字映射表之后,就可以基于该映射表 来对对各样本smiles格式中的各字符进行转换,获得若干第一样本向量, 以作为输入向量;
[0107]
基于上述的字符-数字映射表,对与样本smiles格式对应的各iupac 命名中的各字符进行转换,获得若干第二样本向量,以作为目标输出向量;
[0108]
基于各所述输入向量以及与各所述输入向量对应的目标输出向量进行 模型训练,获得所述目标转换模型。目标转换模型具体可以为:卷积神经 网络模型、循环神经网络模型和transformer模型。本实例中以目标转换模 型为transformer模型为例,如图2所示,transformer模型采用经典的编码 层-解码层架构。图2的左半边是编码层,图2的右半边是解码层。编码层 由n个相同的层组成,每一层包括一个多头注意力层和一个前馈层。编码 器的输出会作为解码器的输入。解码层由n个相同的层组成,每一层包括 两个多头注意力层和一个前馈层。
[0109]
步骤三、在对阿司匹林的化学结构文件进行转换时,首先获得阿司匹 林的smiles格式,即“o=c(c)oc1ccccc1c(=o)o”,然后通过上述的字符
ꢀ-
数字映射表来对“o=c(c)oc1ccccc1c(=o)o”进行转换,获得第一向量 [1,2,3,6,3,7,1,4,5,4,4,4,4,4,5,3,6,2,1,7,1]。目标转换模型的输出序 列初始化为“(['mask','mask','mask','mask','mask','mask','mask', 'mask','mask','mask','mask','mask','mask','mask','mask', 'mask','mask','mask','mask','mask','mask','mask','mask'],”。 类似地,在配置了字符-数字映射表后,也可以写成[25,25,25,25,25, 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, 25]。
[0110]
然后再利用词嵌入技术,将输入序列、输出序列,转换成词嵌入。即 利用词嵌入方法将第一向量转换成词嵌入向量,对所述词嵌入向量,在偶 数位置使用正弦编码,在奇数位置,使用余弦编码。将位置编码值与词嵌 入值相加,得到目标第一向量,以作为目标转换模型的输入。设输入为x, 不妨令x为:
[0111]
[[0.3374,-0.1778,-0.3035],
[0112]
[-0.5880,0.3486,0.6603],
[0113]
[-0.2196,-0.3792,0.7671],
[0114]
[-1.1925,0.6984,-1.4097],
[0115]
[0.1794,1.8951,0.4954],
[0116]
[0.2692,-0.0770,-1.0205],
[0117]
[-0.1690,0.9178,1.5810],
[0118]
[1.3010,1.2753,-0.2010],
[0119]
[0.4965,-1.5723,0.9666],
[0120]
[-1.1481,-1.1589,0.3255],
[0121]
[-0.6315,-2.8400,-1.3250],
[0122]
[0.1784,-2.1338,1.0524],
[0123]
[-0.3885,-0.9343,-0.4991],
[0124]
[-1.0867,0.8805,1.5542],
[0125]
[0.6266,-0.1755,0.0983],
[0126]
[-0.0935,0.2662,-0.5850],
[0127]
[0.8768,1.6221,-1.4779],
[0128]
[1.1331,-1.2203,1.6236],
[0129]
[-2.3229,1.0878,-0.0635],
[0130]
[-0.4486,-1.2785,-1.1440],
[0131]
[0.2436,0.1167,0.4403],
[0132]
[-1.4465,-0.5581,-0.0517],
[0133]
[-0.9083,0.3507,1.5434]]
[0134]
为了方便说明,本实施例中transformer模型的多头注意力简化为 单头注意力。每个输入必须有三个表示,这些表示称为键、查询和值。 每个输入需要乘以一组键的权重、一组查询的权重,以及一组值的权重, 分别设为w&key,w&query,w&value,不妨令
[0135]
w&key为:
[0136]
[[-0.8800,0.0642,-0.3424],
[0137]
[0.2524,0.2091,-1.9297],
[0138]
[-0.2152,-0.5500,1.1138]]
[0139]
w&query为:
[0140]
[[-1.2306,1.4138,-0.2184],
[0141]
[2.4353,-0.2603,-0.7742],
[0142]
[-0.8148,-1.0141,0.2453]]
[0143]
w&value为:
[0144]
[[-0.7604,0.3005,1.2888],
[0145]
[0.1139,0.1683,0.2774],
[0146]
[0.8915,-0.0480,-1.1167]]
[0147]
k=x w&key
[0148]
k为:
[0149]
[[-0.2764,0.1514,-0.1105],
[0150]
[0.4633,-0.3281,0.2641],
[0151]
[-0.0675,-0.5153,1.6613],
[0152]
[1.5291,0.8448,-2.5095],
[0153]
[0.2139,0.1353,-3.1667],
[0154]
[-0.0367,0.5625,-1.0801],
[0155]
[0.0401,-0.6885,0.0476],
[0156]
[-0.7798,0.4608,-3.1302],
[0157]
[-1.0418,-0.8285,3.9407],
[0158]
[0.6478,-0.4951,2.9919],
[0159]
[0.1241,0.0943,4.2210],
[0160]
[-0.9221,-1.0135,5.2286],
[0161]
[0.2135,0.0542,1.3801],
[0162]
[0.8440,-0.7405,0.4038],
[0163]
[-0.6169,-0.0505,0.2336],
[0164]
[0.2754,0.3714,-1.1333],
[0165]
[-0.0441,1.2084,-5.0766],
[0166]
[-1.6546,-1.0754,3.7751],
[0167]
[2.3323,0.1132,-1.3747],
[0168]
[0.3183,0.3331,1.3466],
[0169]
[-0.2797,-0.2021,0.1817],
[0170]
[1.1432,-0.1812,1.5146],
[0171]
[0.5556,-0.8339,1.3532]]
[0172]
v=x w&value
[0173]
得v为:
[0174]
[[-0.5474,0.0860,0.7244],
[0175]
[1.0755,-0.1497,-1.3985],
[0176]
[0.8077,-0.1666,-1.2449],
[0177]
[-0.2704,-0.1731,0.2310],
[0178]
[0.5212,0.3490,0.2037],
[0179]
[-1.1232,0.1169,1.4651],
[0180]
[1.6425,0.0278,-1.7286],
[0181]
[-1.0232,0.6152,2.2550],
[0182]
[0.3051,-0.1619,-0.8756],
[0183]
[1.0312,-0.5556,-2.1647],
[0184]
[-1.0246,-0.6040,-0.1222],
[0185]
[0.5594,-0.3560,-1.5371],
[0186]
[-0.2560,-0.2500,-0.2025],
[0187]
[2.3122,-0.2530,-2.8917],
[0188]
[-0.4089,0.1540,0.6492],
[0189]
[-0.4201,0.0448,0.6066],
[0190]
[-1.7996,0.6074,3.2304],
[0191]
[0.4468,0.0571,-0.6911],
[0192]
[1.8336,-0.5118,-2.6210],
[0193]
[-0.8244,-0.2950,0.3446],
[0194]
[0.2205,0.0717,-0.1453],
[0195]
[0.9903,-0.5261,-1.9614],
[0196]
[2.1065,-0.2880,-2.7967]]
[0197]
q=x w&query
[0198]
得q为:
[0199]
[[-0.6008,0.8310,-0.0105],
[0200]
[1.0345,-1.5917,0.0205],
[0201]
[-1.2782,-0.9897,0.5297],
[0202]
[4.3169,-0.4381,-0.6260],
[0203]
[3.9909,-0.7421,-1.3849],
[0204]
[0.3127,1.4355,-0.2495],
[0205]
[1.1548,-2.0810,-0.2859],
[0206]
[1.6684,1.7112,-1.3207],
[0207]
[-5.2277,0.1309,1.3459],
[0208]
[-1.6745,-1.6516,1.2277],
[0209]
[-5.0596,1.1900,2.0116],
[0210]
[-6.2735,-0.2596,1.8711],
[0211]
[-1.3906,0.2001,0.6858],
[0212]
[2.2153,-3.3415,-0.0632],
[0213]
[-1.2786,0.8319,0.0231],
[0214]
[1.2401,0.3918,-0.3292],
[0215]
[4.0757,2.3162,-1.8098],
[0216]
[-5.6892,0.2731,1.0955],
[0217]
[5.5596,-3.5027,-0.3505],
[0218]
[-1.6292,0.8586,0.8071],
[0219]
[-0.3742,-0.1324,-0.0356],
[0220]
[0.4632,-1.8474,0.7353],
[0221]
[0.7142,-2.9404,0.3054]]
[0222]
由于
[0223][0224]
v2=values*attention
t
[0225]
outputs=v2.sum(dim=0)
[0226]
outputs为:
[0227]
[[-3.0202e-01,7.4368e-02,4.6584e-01],
[0228]
[1.2313e 00,-2.8870e-01,-1.8154e 00],
[0229]
[4.4742e-01,-1.4190e-01,-1.0151e 00],
[0230]
[1.7390e 00,-4.9607e-01,-2.4924e 00],
[0231]
[1.5993e 00,-4.6972e-01,-2.2962e 00],
[0232]
[-6.8762e-01,1.9802e-01,1.2488e 00],
[0233]
[1.4221e 00,-2.7544e-01,-1.9373e 00],
[0234]
[-1.3077e 00,4.0557e-01,2.3484e 00],
[0235]
[4.5480e-01,-5.5058e-03,-8.0749e-01],
[0236]
[4.8872e-01,-1.9441e-01,-1.1714e 00],
[0237]
[4.7320e-01,-8.3997e-02,-9.6444e-01],
[0238]
[4.5787e-01,-8.7128e-04,-8.0365e-01],
[0239]
[3.7686e-01,-1.7359e-01,-9.8649e-01],
[0240]
[1.7767e 00,-3.7649e-01,-2.4750e 00],
[0241]
[-2.5628e-01,8.9516e-02,3.7987e-01],
[0242]
[5.2646e-01,-1.8131e-01,-6.9625e-01],
[0243]
[7.7772e-02,-1.2320e-01,-5.7441e-02],
[0244]
[4.4941e-01,2.0711e-02,-7.5609e-01],
[0245]
[1.8309e 00,-5.1050e-01,-2.6169e 00],
[0246]
[3.3528e-01,-1.8607e-01,-9.6349e-01],
[0247]
[1.9284e-01,-4.2051e-02,-3.2262e-01],
[0248]
[5.7685e-01,-2.8830e-01,-1.3664e 00],
[0249]
[9.9143e-01,-2.5950e-01,-1.6761e 00]]
[0250]
步骤四、解码阶段中的每个步骤从输出序列输出一个元素,在解码器 中,自注意力层只被允许注意到输出序列中早一些的位置,这可通过屏蔽 未来的位置来实现的,即未来位置注意力为0。自注意力层的计算与步骤 三中的计算过程相似。
[0251]
步骤五、最后通过目标转换模型即transformer模型的全连接层输出各 目标第一向量以及各目标第一向量对应的概率。得到各目标第一向量的输 出概率后,为了得到输出序列,选取输出概率最大对应的类别,那么得到 最终输出的目标向量即目标第二向量[8,9,10,4,16,13,14,21,19,22,14, 15,16,17,18,19,20,4,23,10,4,20,24]。最后通过上述的字符-数字映射表 来对上述目标第二向量中的各数字进行转换,获得阿司匹林的iupac名称
ꢀ“
2-acetyloxybenzoic acid”。完成阿司匹林的smiles格式
ꢀ“
o=c(c)oc1ccccc1c(=o)o”到iupac命名“2-acetyloxybenzoic acid”的转 换。
[0252]
进一步的,以将水杨酸的smiles格式转换成iupac命名为例进行说 明,具体转换过程如下:
[0253]
步骤一、首先配置字符-数字映射表。即获取若干样本有机化合物的 smiles格式,得到第一样本集合;获取各所述样本有机化合物的iupac 命名,得到第二样本集合;获取所述第一样本集合中各smiles格式中的 字符,得到第一字符集合;获取所述第二样本集合中各iupac命名中的字 符,得到第二字符集合;基于所述第一字符集合和所述第二字符集合构建 所述字符-数字映射表。本实施例中的字符-数字映射表可以如下表2所示, 表2中只是给出了一部分字符与数字的映射关系。
[0254]
表1:
[0255]
[0256][0257]
步骤二、在获得了上述的字符-数字映射表之后,就可以基于该映射表 来对对各样本smiles格式中的各字符进行转换,获得若干第一样本向量, 以作为输入向量;
[0258]
基于上述的字符-数字映射表,对与样本smiles格式对应的各iupac 命名中的各字符进行转换,获得若干第二样本向量,以作为目标输出向量;
[0259]
基于各所述输入向量以及与各所述输入向量对应的目标输出向量进行 模型训练,获得所述目标转换模型。目标转换模型具体可以为:卷积神经 网络模型、循环神经网络模型和transformer模型。本实例中以目标转换模 型为transformer模型为例,如图2所示,
transformer模型采用经典的编码 层-解码层架构。图2的左半边是编码层,图2的右半边是解码层。编码层 由n个相同的层组成,每一层包括一个多头注意力层和一个前馈层。编码 器的输出会作为解码器的输入。解码层由n个相同的层组成,每一层包括 两个多头注意力层和一个前馈层。
[0260]
步骤三、在对水杨酸的化学结构文件进行转换时,首先获得水杨酸的 smiles格式,即“o=c(o)c1=cc=cc=c1o”,然后通过上述的字符-数字映射 表来对“o=c(o)c1=cc=cc=c1o”进行转换,获得第一向量,即[1,2,3,6,1,7, 3,5,2,3,3,2,3,3,2,3,5,1],输出序列初始化为“(['mask','mask', 'mask','mask','mask','mask','mask','mask','mask','mask', 'mask','mask','mask','mask','mask','mask','mask','mask', 'mask','mask','mask','mask','mask'],”。类似地,在配置了字符
-ꢀ
数字映射表后,也可以写成[25,25,25,25,25,25,25,25,25,25,25, 25,25,25,25,25,25,25,25,25,25,25,25]。
[0261]
然后再利用词嵌入技术,将输入序列、输出序列,转换成词嵌入。即 利用词嵌入方法将第一向量转换成词嵌入向量,对所述词嵌入向量,在偶 数位置使用正弦编码,在奇数位置,使用余弦编码。将位置编码值与词嵌 入值相加,得到目标第一向量,以作为目标转换模型的输入。设输入为x, 不妨令x为:
[0262]
[0.3374,-0.1778,-0.3035],
[0263]
[-0.5880,0.3486,0.6603],
[0264]
[-0.2196,-0.3792,0.7671],
[0265]
[-1.1925,0.6984,-1.4097],
[0266]
[0.1794,1.8951,0.4954],
[0267]
[0.2692,-0.0770,-1.0205],
[0268]
[-0.1690,0.9178,1.5810],
[0269]
[1.3010,1.2753,-0.2010],
[0270]
[0.4965,-1.5723,0.9666],
[0271]
[-1.1481,-1.1589,0.3255],
[0272]
[-0.6315,-2.8400,-1.3250],
[0273]
[0.1784,-2.1338,1.0524],
[0274]
[-0.3885,-0.9343,1.0533],
[0275]
[0.1388,-0.2044,-2.2685],
[0276]
[-0.9133,-0.4204,1.3111],
[0277]
[-0.2199,0.1838,0.2293],
[0278]
[0.6177,-0.2876,0.8218],
[0279]
[0.1512,0.1036,-2.1996]]
[0280]
为了方便说明,本实施例中transformer模型的多头注意力简化为 单头注意力。每个输入必须有三个表示,这些表示称为键、查询和值。 每个输入需要乘以一组键的权重、一组查询的权重,以及一组值的权重, 分别设为w&key,w&query,w&value,不妨令
[0281]
w&key为:
[0282]
[[-0.8800,0.0642,-0.3424],
[0283]
[0.2524,0.2091,-1.9297],
[0284]
[-0.2152,-0.5500,1.1138]]
[0285]
w&query为:
[0286]
[[-1.2306,1.4138,-0.2184],
[0287]
[2.4353,-0.2603,-0.7742],
[0288]
[-0.8148,-1.0141,0.2453]]
[0289]
w&value为:
[0290]
[[-0.7604,0.3005,1.2888],
[0291]
[0.1139,0.1683,0.2774],
[0292]
[0.8915,-0.0480,-1.1167]]
[0293]
k=x w&key
[0294]
k为:
[0295]
[[-1.1228e-01,4.9153e-01,2.8029e-01],
[0296]
[2.0234e-01,-1.0809e 00,-6.4555e-01],
[0297]
[9.0495e-01,-1.3864e 00,4.3754e-01],
[0298]
[-7.0082e-01,2.6146e 00,4.0272e-01],
[0299]
[-2.2018e 00,-6.0465e-01,-4.1604e 00],
[0300]
[-4.8568e-01,1.7626e 00,5.7631e-01],
[0301]
[-3.6456e-01,-2.6276e 00,-2.6477e 00],
[0302]
[-2.4126e 00,4.7847e-01,-3.3648e 00],
[0303]
[1.9990e 00,-1.9347e 00,2.1131e 00],
[0304]
[2.2300e 00,-6.8609e-01,2.9437e 00],
[0305]
[3.2809e 00,1.9400e 00,6.8687e 00],
[0306]
[2.9062e 00,-2.1513e 00,3.4030e 00],
[0307]
[1.7962e 00,-1.9588e 00,1.4785e 00],
[0308]
[-7.6181e-01,3.9328e 00,1.6947e 00],
[0309]
[1.5958e 00,-2.3147e 00,7.0878e-01],
[0310]
[3.7464e-03,-3.6583e-01,-3.3545e-01],
[0311]
[3.1054e-01,-1.5040e 00,-4.1064e-01],
[0312]
[-1.1144e 00,3.8556e 00,1.0383e 00]]
[0313]
v=x w&value
[0314]
v为:
[0315]
[[0.0513,0.6183,-0.8752],
[0316]
[-0.2248,-0.9258,1.8475],
[0317]
[-0.4205,0.7727,0.5021],
[0318]
[2.1356,-5.6827,-1.2221],
[0319]
[-1.1913,-0.3102,5.1122],
[0320]
[0.7544,-0.6364,-1.9565],
[0321]
[-1.6214,1.0264,4.8419],
[0322]
[-1.3065,2.2016,2.7019],
[0323]
[-0.8603,3.8906,-1.6384],
[0324]
[1.0235,-1.7114,-2.1915],
[0325]
[2.6436,-1.3113,-8.7787],
[0326]
[-0.5001,3.5977,-2.7844],
[0327]
[-0.3785,1.1512,-0.2409],
[0328]
[2.0796,-2.6160,-4.5100],
[0329]
[-0.3279,-0.2930,1.2589],
[0330]
[-0.0836,-0.4123,0.7773],
[0331]
[-1.2149,3.0129,0.9618],
[0332]
[1.9113,-2.7274,-3.7031]
[0333]
q=x w&query
[0334]
q为:
[0335]
[[1.6565e-01,1.2751e-01,-2.1387e-01],
[0336]
[-3.2451e-01,-2.1246e-01,4.1625e-01],
[0337]
[1.0260e 00,-6.8280e-01,2.7384e-01],
[0338]
[-1.4693e 00,1.4192e-01,-7.0926e-04],
[0339]
[-3.5828e 00,1.8562e 00,2.4997e-01],
[0340]
[-2.2830e-01,3.2908e-01,-4.0438e-01],
[0341]
[-1.2639e 00,4.3681e-01,6.1340e-01],
[0342]
[-2.8819e 00,2.1862e 00,-3.6741e-01],
[0343]
[3.2179e 00,-1.3807e 00,1.2557e-02],
[0344]
[2.6528e 00,-1.9930e 00,3.6700e-01],
[0345]
[5.2888e 00,-2.9118e 00,-4.3931e-01],
[0346]
[4.4190e 00,-2.1648e 00,9.3302e-02],
[0347]
[2.2360e 00,-1.3990e 00,3.6968e-01],
[0348]
[-3.2221e-01,3.7846e-01,-7.5698e-01],
[0349]
[1.4521e 00,-1.3220e 00,6.5587e-01],
[0350]
[-2.3060e-01,-2.3966e-02,1.5462e-01],
[0351]
[6.4447e-01,-2.1014e-02,3.4523e-02],
[0352]
[-9.0375e-01,6.7096e-01,-7.1464e-01]]
[0353]
由于v2=values*attention
t
[0354]
outputs=v2.sum(dim=0)
[0355]
outputs为:
[0356]
[[0.0291,-0.1391,0.0565],
[0357]
[0.4676,0.1459,-2.0996],
[0358]
[-0.0412,2.0644,-2.6466],
[0359]
[-0.4684,0.1679,1.8492],
[0360]
[1.8054,-2.5082,-3.5716],
[0361]
[-0.1924,-0.3073,1.2902],
[0362]
[1.7518,-2.5194,-3.4095],
[0363]
[1.6500,-2.3024,-3.2242],
[0364]
[-0.4525,3.3710,-2.6861],
[0365]
[-0.4890,3.4592,-2.6539],
[0366]
[-0.5008,3.5687,-2.7456],
[0367]
[-0.4964,3.5624,-2.7543],
[0368]
[-0.4076,3.2377,-2.6926],
[0369]
[-0.9170,0.4574,3.1853],
[0370]
[-0.2851,2.9763,-2.8393],
[0371]
[0.3384,-0.2725,-0.9898],
[0372]
[0.5032,0.5576,-2.8291],
[0373]
[-0.8180,0.5614,2.7261]]
[0374]
步骤四、解码阶段中的每个步骤从输出序列输出一个元素,在解码器 中,自注意力层只被允许注意到输出序列中早一些的位置,这可通过屏蔽 未来的位置来实现的,即未来位置注意力为0。自注意力层的计算与步骤 三中的计算过程相似。
[0375]
步骤五、最后通过目标转换模型即transformer模型的全连接层输出各 目标第一向量以及各目标第一向量对应的概率。得到各目标第一向量的输 出概率后,为了得到输出序列,选取输出概率最大对应的类别,那么得到 最终输出的目标向量即目标第二向量[8,9,26,14,24,27,19,22,14,15,16, 17,18,19,20,4,23,10,4,20,24]。最后通过上述的字符-数字映射表来对上 述目标第二向量中的各数字进行转换,获得水杨酸的iupac名称
ꢀ“
2-hydroxybenzoic acid”。完成水杨酸的smiles格式
ꢀ“
o=c(c)oc1ccccc1c(=o)o”到iupac命名“2-hydroxybenzoic acid”的 转换。
[0376]
本发明又一实施例提供一种用于有机化合物的化学结构和命名双向自 动转化的处理方法,有机物化学结构文件的存储格式包括:smiles格式、 mol2格式、sdf格式和pdb格式;有机物命名方式包括:iupac规定 的有机物命名法命名、系统命名法命名、俗名和常用名;在所述有机物化 学结构文件存储格式为smiles格式、mol2格式、sdf格式或pdb格式 的情况下,在所述有机物命名方式为iupac规定的有机物命名法命名的情 况下,如图3所示,所述转化方法包括如下步骤:
[0377]
步骤s201,获取目标有机化合物待转换的iupac命名;
[0378]
步骤s202,对所述iupac命名进行处理获得目标第一向量;
[0379]
本步骤在具体实施过程中,具体是基于字符-数字映射表对iupac命 名中的各字符进行转换,来获得第一向量;再利用词嵌入方法将所述第一 向量转换成词嵌入向量;对所述词嵌入向量中的各偶数位置使用正弦编码, 对所述词嵌入向量中的各奇数位置使用余弦编码,获得与各位置对应的位 置编码值;将所述词嵌入向量中各位置的词嵌入值与位置编码值相加,获 得所述目标第一向量。
[0380]
步骤s203,利用预设的目标转换模型对所述目标第一向量进行转换, 获得若干第二向量;
[0381]
本步骤中目标转换模型是预先训练获得的,包括卷积神经网络模型、 循环神经网络模型、transformer模型。具体可以采用深度学习的方法训练 获得所述目标转换模型,包括:获取若干样本有机化合物结构的smiles 格式以及对应的iupac命名;基于预设的字符-数字映射表,对各iupac 命名中的各字符进行转换,获得若干第一样本向量,以作为输入向量;基 于所述预设的字符-数字映射表,对与各所述smiles中的各字符进行转换, 获得若干第二样本向量,以作为目标输出向量;基于各所述输入向量以及 与各所述输入向量对应的目标输出向量进行模型训练,获得所述目标转换 模型。
[0382]
本实例中以目标转换模型为transformer模型为例,如图4所示, transformer模型采用经典的编码层-解码层架构。图4的左半边是编码层, 图4的右半边是解码层。编码层由n个相同的层组成,每一层包括一个多 头注意力层和一个前馈层。编码器的输出会作为解码器的输入。解码层由 n个相同的层组成,每一层包括两个多头注意力层和一个前馈层。
[0383]
进一步的,训练获得目标转换模型之前,还包括配置字符-数字映射表, 具体的配置方式包括:获取若干样本有机化合物的smiles格式,得到第 一样本集合;获取各所述样本有机化合物的iupac命名,得到第二样本集 合;获取所述第一样本集合中各smiles格式中的字符,得到第一字符集 合;获取所述第二样本集合中各iupac命名中的字符,得到第二字符集合; 基于所述第一字符集合和所述第二字符集合构建所述字符-数字映射表。
[0384]
步骤s204,基于各第二向量的概率,确定目标第二向量;
[0385]
步骤s205,基于所述目标第二向量确定与所述目标有机化合物对应的 smiles格式的化学结构文件;
[0386]
本步骤在具体实施过程中,是基于所述字符-数字映射表来对所述目标 第二向量中的各数字进行转换,获得与所述目标有机化合物对应的smiles 格式的化学结构文件。
[0387]
步骤s206,利用预设的化学结构转化工具将smiles格式的化学结构 文件转换成目标格式化学结构文件。
[0388]
本步骤在具体实施过程中,化学结构转化工具包括openbabel软件, 当然也可以利用其他转化软件来对smiles格式化学结构文件转换成非 smiles格式。
[0389]
本实施例在具体实施过程中,可以基于上述iupac命名-smiles格式 转换的原理实现任意一种命名-任意一种转换化学结构文件格式的转换,例 如俗名-smiles格式、iupac命名-mol2格式、俗名-mol2格式、常用 名-sdf格式、常用名-pdb格式等的转换,在此不再赘述。
[0390]
本实施例利用预设的目标转换模型来对第一向量进行转换,得到目标 第二向量,然后再根据目标第二向量确定对应的smiles格式的化学结构 文件,与传统的基于规则的方法和装置相比,本发明的处理方法和装置能 够使得化学结构与命名之间的转换能够更加方便、快捷,提高了转换效率, 避免了传统方法中新规则添加易造成模型冲突和失效的风险。
[0391]
本发明另一实施例提供一种用于有机化合物的化学结构和命名转化的 处理装置,如图5所示,包括:
[0392]
获取模块,用于获取目标有机化合物待转换的化学结构文件;
[0393]
第一转换模块,用于利用预设的化学结构转化工具将非smiles格式 的所述化学结构文件转成smiles格式;
[0394]
处理模块,用于对所述smiles格式进行处理获得目标第一向量;
[0395]
第二转换模块,用于利用预设的目标转换模型对所述目标第一向量进 行转换,获得若干第二向量;
[0396]
第一确定模块,用于基于各第二向量的概率,确定目标第二向量;
[0397]
第二确定模块,用于基于所述目标第二向量确定与所述目标有机化合 物结构对应的命名。
[0398]
本实施例在具体实施过程中,还包括用于采用深度学习的方法训练获 得所述目标转换模型的训练模块,所述训练模块具体用于:获取若干样本 有机化合物结构的smiles格式以及对应的iupac命名;基于预设的字符
ꢀ-
数字映射表,对各smiles格式中的各字符进行转换,获得若干第一样本 向量,以作为输入向量;基于所述预设的字符-数字映射表,对各所述iupac 命名中的各字符进行转换,获得若干第二样本向量,以作为目标输出向量; 基于各所述输入向量以及与各所述输入向量对应的目标输出向量进行模型 训练,获得所述目标转换模型。
[0399]
具体的本实施例中还包括用于配置所述字符-数字映射表的配置模块, 所述配置模块具体用于:获取若干样本有机化合物的smiles格式,得到 第一样本集合;获取各所述样本有机化合物的iupac命名,得到第二样本 集合;获取所述第一样本集合中各smiles格式中的字符,得到第一字符 集合;获取所述第二样本集合中各iupac命名中的字符,得到第二字符集 合;基于所述第一字符集合和所述第二字符集合构建所述字符-数字映射表。
[0400]
本实施例中所述处理模块具体用于:基于所述字符-数字映射表对所述 目标有机化合物结构的smiles格式中的各字符进行转换,获得第一向量; 利用词嵌入方法将所述第一向量转换成词嵌入向量;对所述词嵌入向量中 的各偶数位置使用正弦编码,对所述词嵌入向量中的各奇数位置使用余弦 编码,获得与各位置对应的位置编码值;将所述词嵌入向量中各位置的词 嵌入值与位置编码值相加,获得所述目标第一向量。
[0401]
本实施例中所述第二确定模块具体用于:基于所述字符-数字映射表对 所述目标第二向量中的各数字进行转换,获得与所述目标有机化合物对应 的命名。
[0402]
本实施例利用预设的目标转换模型来对第一向量进行转换,得到目标 第二向量,然后再根据目标第二向量确定对应的有机化合物的命名,与传 统的基于规则的方法和装置相比,本发明的处理方法和装置能够使得化学 结构与命名之间的转换能够更加方便、快捷,提高了转换效率,避免了传 统方法中新规则添加易造成模型冲突和失效的风险。
[0403]
本发明又一实施例提供一种用于有机化合物的命名和化学结构转化的 处理装置,如图6所示,包括:
[0404]
获取模块,用于获取目标有机化合物待转换的iupac命名;
[0405]
处理模块,用于对所述iupac命名进行处理获得目标第一向量;
[0406]
第一转换模块,用于利用预设的目标转换模型对所述目标第一向量进 行转换,获得若干第二向量;
[0407]
第一确定模块,用于基于各第二向量的概率,确定目标第二向量;
[0408]
第二确定模块,用于基于所述目标第二向量确定与所述目标有机化合 物对应的
smiles格式的化学结构文件;
[0409]
第二转换模块,用于利用预设的化学结构转化工具将smiles格式的 化学结构文件转换成目标格式化学结构文件。
[0410]
本实施例在具体实施过程中,所述装置还包括用于采用深度学习的方 法训练获得所述目标转换模型的训练模块,所述训练模块具体用于:获取 若干样本有机化合物结构的smiles格式以及对应的iupac命名;基于预 设的字符-数字映射表,对各iupac命名中的各字符进行转换,获得若干 第一样本向量,以作为输入向量;基于所述预设的字符-数字映射表,对与 各所述smiles中的各字符进行转换,获得若干第二样本向量,以作为目 标输出向量;基于各所述输入向量以及与各所述输入向量对应的目标输出 向量进行模型训练,获得所述目标转换模型。
[0411]
本实例在具体实施过程中,所述装置还包括用于配置所述字符-数字映 射表的配置模块,所述配置模块具体用于:获取若干样本有机化合物的 smiles,得到第一样本集合;获取各所述样本有机化合物的iupac命名, 得到第二样本集合;获取所述第一样本集合中各smiles中的字符,得到 第一字符集合;获取所述第二样本集合中各iupac命名中的字符,得到第 二字符集合;基于所述第一字符集合和所述第二字符集合构建所述字符-数 字映射表。
[0412]
本实施例中,所述处理模块具体用于:基于所述字符-数字映射表对所 述iupac命名中的各字符进行转换,获得第一向量;利用词嵌入方法将所 述第一向量转换成词嵌入向量;对所述词嵌入向量中的各偶数位置使用正 弦编码,对所述词嵌入向量中的各奇数位置使用余弦编码,获得与各位置 对应的位置编码值;将所述词嵌入向量中各位置的词嵌入值与位置编码值 相加,获得所述目标第一向量。
[0413]
本实施例中所述第二确定模块具体用于:基于所述字符-数字映射表对 所述目标第二向量中的各数字进行转换,获得与所述目标有机化合物对应 的smiles格式的化学结构文件。
[0414]
以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明 的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保 护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应 视为落在本发明的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献