论文部分内容阅读
近年来,深度学习越来越多地被应用到各个领域,计算机与其他学科之间的交叉程度越来越大,而分子生成就是其中一个重要的部分。分子空间异常庞大,而已知的分子在其中不过是很小的一部分。为了发现更多潜在可用的新分子,近年来研究人员尝试利用深度学习的方法生成新分子,提出了大量的分子生成模型。
这些分子生成模型通常要求输入与输出类型相同,即若输入是字符串则输出也是相同意义的字符串,若输入是邻接矩阵则输出也是邻接矩阵等等。为便于计算机软件等处理分子数据,我们通常会用简化分子线性输入规范(Simplified Molecular Input Line Entry Specification,SMILES)的形式来表达、存储分子,该形式将分子表示为一种字符序列。现有工作中有直接以SMILES字符串作为模型输入的,也有将分子转化为邻接矩阵等图结构作为模型输入的,但是他们大多都要求输入和输出的类型相同,而没有考虑到分子中各类特征之间的联系,如分子骨架与支链以及原子分布与分子结构。为了对此方面进行改进,我们提出三种方法通过建立输入与输出之间的联系来进行分子生成。
首先,我们提出了一种基于序列的分子生成模型Core2Chains(Core to Chains)。我们使用SMILES来表示分子,并将分子分为两部分:分子核心和分子支链。以分子核心作为输入,分子支链为输出,将输入和输出拼接即可得到一个分子。同时,为了提高生成分子的多样性,我们在模型的隐空间中加入了高斯噪声,这样使得同一核心可以产生不同的支链。
其次,我们提出了一种基于图结构的分子生成模型A2Str,直观上来看,分子是可以表达为一个图结构的,我们可以将原子视为节点,将化学键视为边。我们通常以邻接矩阵等形式来表达一个图中的节点以及节点间的连接情况,一般来说它可以代表一个完整的图结构,然而分子图中节点(原子)类型以及边(化学键)类型都有很多种,一个邻接矩阵难以囊括图结构的全部信息。我们可以将其分为两部分,一部分是专门表达节点类型的节点特征矩阵,另一部分是专门表达节点连接情况的邻接矩阵,将前者作为模型输入,后者作为模型输出,将两者结合即可得到一个分子图的全部信息,这样可以构建起节点与边之间的联系。
最后,我们提出了一种基于分子指纹的分子生成模型FPVAE。分子指纹可以表示出分子中存在的子结构以及子结构之间的联系,一般以0/1位流的形式表达。显然,一个分子可以对应唯一的分子指纹,但一个分子指纹可以对应的分子是不唯一的,我们希望给定分子指纹,即我们已知一些子结构以及原子间的连通性,来推断出分子真实完整的结构。
这些分子生成模型通常要求输入与输出类型相同,即若输入是字符串则输出也是相同意义的字符串,若输入是邻接矩阵则输出也是邻接矩阵等等。为便于计算机软件等处理分子数据,我们通常会用简化分子线性输入规范(Simplified Molecular Input Line Entry Specification,SMILES)的形式来表达、存储分子,该形式将分子表示为一种字符序列。现有工作中有直接以SMILES字符串作为模型输入的,也有将分子转化为邻接矩阵等图结构作为模型输入的,但是他们大多都要求输入和输出的类型相同,而没有考虑到分子中各类特征之间的联系,如分子骨架与支链以及原子分布与分子结构。为了对此方面进行改进,我们提出三种方法通过建立输入与输出之间的联系来进行分子生成。
首先,我们提出了一种基于序列的分子生成模型Core2Chains(Core to Chains)。我们使用SMILES来表示分子,并将分子分为两部分:分子核心和分子支链。以分子核心作为输入,分子支链为输出,将输入和输出拼接即可得到一个分子。同时,为了提高生成分子的多样性,我们在模型的隐空间中加入了高斯噪声,这样使得同一核心可以产生不同的支链。
其次,我们提出了一种基于图结构的分子生成模型A2Str,直观上来看,分子是可以表达为一个图结构的,我们可以将原子视为节点,将化学键视为边。我们通常以邻接矩阵等形式来表达一个图中的节点以及节点间的连接情况,一般来说它可以代表一个完整的图结构,然而分子图中节点(原子)类型以及边(化学键)类型都有很多种,一个邻接矩阵难以囊括图结构的全部信息。我们可以将其分为两部分,一部分是专门表达节点类型的节点特征矩阵,另一部分是专门表达节点连接情况的邻接矩阵,将前者作为模型输入,后者作为模型输出,将两者结合即可得到一个分子图的全部信息,这样可以构建起节点与边之间的联系。
最后,我们提出了一种基于分子指纹的分子生成模型FPVAE。分子指纹可以表示出分子中存在的子结构以及子结构之间的联系,一般以0/1位流的形式表达。显然,一个分子可以对应唯一的分子指纹,但一个分子指纹可以对应的分子是不唯一的,我们希望给定分子指纹,即我们已知一些子结构以及原子间的连通性,来推断出分子真实完整的结构。