1.一种基于图卷积网络的分子结构预测方法,其特征在于,包括以下步骤:S1、构建训练数据集,将获取的SMILES分子表达式转换为图表示:G1(num_nodes,num_edges,ndata={‘feature’:[X1,X2,…,Xnum_nodes]},edata={‘feature’:[E1,E2,…,Enum_edges],‘label’:[y1,y2,…,ynum_edges]})和G2(num_nodes,num_edges,ndata={‘feature’:[X1,X2,…,Xnum_nodes]},edata={‘feature’:[E1,E2,…,Enum_edges],‘label’:[y1,y2,…,ynum_edges]}),其中,G1表示分子图,G2表示分子完全图,分子完全图即没有键的原子之间也存在边,num_nodes和num_edges表示图结点和边的数量;ndata表示结点信息,其中的feature即为结点的特征向量集合,每个结点的特征向量由该结点所表示的原子的属性编码而成;edata表示边的信息,其中的feature为边的特征向量集合,每条边的特征向量由该边表示的键的属性编码而成,label为边的标签集合,是每条边长度的真值;
S2、构建网络模型,网络模型包括两条分支,第一分支包括MLP1,MLP1为四层的MLP,输入为G1,MLP1中每一层后都跟着一个BachNorm层,输入维度=结点特征维度*2+边特征维度,每一层的输出维度分别为32、16、16、1;MLP1用于预测有键之间的原子所构成的边,输出分子图的每一条边长度预测值;
第二分支包括用于进行图卷积操作的更新层、边连接层和MLP2,更新层为四层,MLP2为三层的MLP,更新层结点输入特征为19维,隐藏层特征为32维,输出特征为5维,每一层更新之后都要进行BachNorm操作,更新层中更新边的全连接层为两层,输入维度=结点特征维度*2+边特征维度,输出维度为4;MLP2中每一层后都跟着一个BachNorm层,输入维度=结点特征维度*2+边特征维度*4,每一层的输出维度为32,8,1;更新层的输入为G1和G2,更新层每一层的具体更新方式为:对G1的每一个结点进行图卷积操作,聚合邻居结点信息,用聚合的结果更新每一个结点特征向量,再将更新了的结点特征向量赋给G2的结点特征,将G2中每一条边的特征向量和组成这条边的两个结点的特征向量拼接起来,送入两层全连接层,用于对边的特征向量进行更新;四层更新层结束后,将每一层的边特征向量和最后一层组成这个边的两个结点特征向量通过边连接层拼接起来,送入MLP2,输出完全分子图中没有键的原子之间构成的每一条边的长度预测;
最后将MLP1和MLP2的所有输出拼接起来,输出两两原子间的距离;
S3、采用训练数据集对构建的网络模型进行训练,具体为使用梯度下降法进行训练,整个模型的总体损失函数定义为Loss=αloss1+βloss2,其中loss1表示MLP1的损失,loss2表示MLP2的损失,α和β分别设置为0.4和0.6,loss1和loss2都使用了平均绝对误差,定义为其中n为每个batch中边的条数, 为预测输出;根据总体损失函数Loss反向传播,训练各层的权重,完成模型的训练,获得训练好的网络模型;
S4、利用训练好的网络模型,将目标分子图输入网络模型,获得每一个分子图中两两原子距离预测。