BC.Wang Welcome

利用网格化的分子模型预测能量

2018-09-13
BCWang

阅读:


  • 代码在项目CHEM-ML的GridAtomNN中,尚未开源
  • 分子模型给出的是原子的位置,如果将其网格化,可以:
  • 先画格子,给出xyz范围和分辨率
  • 然后对于每个格子,求它到某一种元素的距离向量,将这个向量平方之后降维求和,得到一个元素的权重,然后再求另一个元素,这样就相当于得到了长宽高为xyz,通道数目为元素种类数目的三维图像了
  • 然后用Conv3D三维卷积进行处理 画了格点之后的某原子的权重热力图
  • 训练后在测试集上的预测结果:

代码设计

使用numpy的广播方法进行矩阵的处理,能够提高很多性能,并且可以改写成tf进行GPU加速:



return 1 / np.square(1 +
                                     np.sqrt(
                                         np.sum(
                                             np.square(
                                                 coord[index, :] - grid_distance), axis=1)))
# 先求出距离,形成grid_distance向量,然后直接矩阵减法,这样子避免循环

 # 在numpy中使用判断,判断某种原子,然后得到所有坐标
atom_coord = coord[abs(coord[:,0]-atom_case_index)<0.1][:,1:]

Similar Posts

Comments

0