关于华为:一文带你认识MindSpore新一代分子模拟库SPONGE

2次阅读

共计 4439 个字符,预计需要花费 12 分钟才能阅读完成。

【本期举荐专题】物联网从业人员必读:华为云专家为你具体解读 LiteOS 各模块开发及其实现原理。

摘要:基于 MindSpore 主动并行、图算交融等个性,SPONGE 可高效地实现传统分子模仿过程,利用 MindSpore 主动微分的个性,能够将神经网络等 AI 办法与传统分子模仿进行联合。

本文分享自华为云社区《MindSpore 新一代分子模仿库:SPONGE》,原文作者:于璠,MindSpore 算法科学家

MindSpore 新一代分子模仿库:SPONGE,由北大和深圳湾实验室高毅勤课题组与华为 MindSpore 团队联合开发,具备高性能、模块化等个性,是一个齐全自主研发的分子模仿软件库。基于 MindSpore 主动并行、图算交融等个性,SPONGE 可高效地实现传统分子模仿过程,利用 MindSpore 主动微分的个性,能够将神经网络等 AI 办法与传统分子模仿进行联合。

背景介绍

分子模仿是指利用计算机以原子程度的分子模型来模仿分子结构与行为,进而模仿分子体系的各种物理、化学性质的办法。它是在试验根底上,通过基本原理,构筑起一套模型和算法,从而计算出正当的分子结构与分子行为。近年来,分子模仿技术倒退迅速并且在多个学科畛域失去了宽泛的利用。在药物设计畛域,可用于钻研病毒、药物的作用机理等;在生物科学畛域,可用于表征蛋白质的多级构造与性质;在资料学畛域,可用于钻研构造与力学性能、资料的优化设计等;在化学畛域,可用于钻研外表催化及机理;在石油化工畛域,可用于分子筛催化剂构造表征、合成设计、吸附扩散,可构建和表征高分子链以及晶态或非晶态本体聚合物的构造,预测包含共混行为、机械性质、扩散、内聚等重要性质。

因为模仿的时空限度,传统分子动力学仿真软件的利用受到很大的限度,科研工作者须要一直地开发新的力场、抽样办法、联合新的技术 (如 AI 算法) 来拓展分子动力学仿真的场景。因而,SPONGE 应运而生,具备齐全自主的知识产权。SPONGE 应用模块化的设计个性,反对科学家进行高效且便捷地搭建分子动力学模仿中所须要的相干计算模块。同时,SPONGE 也具备传统模仿所须要的高效性。除此之外,SPONGE 也人造地反对与人工智能算法的天然交融,并且能使用 MindSPore 框架本身的高性能计算个性。

相比于之前在传统分子模仿软件上联合 SITS 办法进行生物分子加强抽样,SPONGE 原生反对 SITS 并对计算流程进行优化使得其应用 SITS 办法模仿生物体系更加高效。针对极化体系,传统分子模仿采纳联合量化计算等形式来解决电荷浮动等问题。即便采纳机器学习升高计算量也会节约大量工夫在程序数据传送的问题上。而 SPONGE 利用模块化的特点可反对内存上间接与机器学习程序通信大大降低了整体计算工夫。

图 1:联合 SITS 等办法对显性溶剂中的丙氨酸二肽进行加强抽样

随 MindSpore1.2 版本开源的 SPONGE 具备以下劣势:

  1. 全模块化分子模仿。模块化构建分子模仿算法,易于畛域研发人员进行实践和算法的疾速实现,并为内部开发人员奉献子模块提供敌对的开源社区环境。
  2. 传统分子模仿与 MindSpore 联合的人工智能算法的全流程实现。在 MindSpore 中,研发人员能便当的将 AI 办法作用于分子模仿中。全算子化的 SPONGE 将与 MindSpore 进一步联合成为新一代端到端可微的分子模仿软件,实现人工智能与分子模仿的天然交融。

案例介绍

上面,这里将简略介绍一下 MindSpore 上的 SPONGE 的一个简略案例,该案例应用 SPONGE 模仿了丙氨酸三肽水溶液体系。

实际前,确保曾经正确装置 MindSpore。如果没有,能够通过 MindSpore 装置页面 (MindSpore 官网) 装置 MindSpore。

1. 输出文件筹备

本教程模仿体系中须要加载三个输出文件,别离是:

· 属性文件(后缀为.in 的文件),申明模仿的根本条件,对整个模仿过程进行参数管制。

· 拓扑文件(后缀为.param7 的文件),拓扑文件形容的是体系外部分子的拓扑关系及各种参数。

· 坐标文件(后缀为.rst7 的文件),坐标文件形容的是每个原子在体系中的初始时刻的坐标。

拓扑文件和坐标文件能够通过建模过程由 AmberTools 中自带的 tleap 工具建模实现,下载地址(Download Amber MD)。

通过 tleap 构建了所须要的拓扑文件和坐标文件后,须要通过属性文件申明模仿的根本条件,对整个模仿过程进行参数管制。以本教程中的属性文件为例,其文件内容如下:

NVT 290k

 mode = 1, # 分子动力学(MD)模式,1 示意模仿采纳 NVT 系综

 dt= 0.001, # 模仿步长

 step_limit = 1, # 模仿总步数

 thermostat=1, # 控温办法,1 示意采纳的是 Liujian-Langevin 办法

 langevin_gamma=1.0, # 控温器中的 Gamma_ln 参数

 target_temperature=290, # 指标温度

 write_information_interval=1000, # 输入频率

 amber_irest=0, # 输出形式,0 示意读入 amber 格局的输出坐标文件,其中不蕴含速度

 cut=10.0,  # 非键相互作用的间隔

案例的输出文件实现后,别离命名为 http://NVT_290_10ns.in、WATER_ALA.parm7 和 WATER_ALA_350_cool_290.rst7,这三个文件能够寄存在本地工作区的自定义门路下。

2. 加载数据

从三个输出文件中,读取模仿体系所须要的参数,用于最初体系的计算,其加载代码如下:

import argparse

from mindspore import context

 

parser = argparse.ArgumentParser(description='Sponge Controller')

parser.add_argument('--i', type=str, default=None, help='input file')

parser.add_argument('--amber_parm', type=str, default=None, help='paramter file in AMBER type')

parser.add_argument('--c', type=str, default=None, help='initial coordinates file')

parser.add_argument('--r', type=str, default="restrt", help='')

parser.add_argument('--x', type=str, default="mdcrd", help='')

parser.add_argument('--o', type=str, default="mdout", help="")

parser.add_argument('--box', type=str, default="mdbox", help='')

parser.add_argument('--device_id', type=int, default=0, help='')

args_opt = parser.parse_args()

 

context.set_context(mode=context.GRAPH_MODE, device_target="GPU", device_id=args_opt.device_id, save_graphs=False)

3. 构建模仿流程

应用 SPONGE 中定义的计算力模块和计算能量模块,通过屡次迭代进行分子动力学过程演变,使得体系达到咱们所须要的平衡态,并记录每一个模仿步骤中失去的能量等数据。其模仿流程构建代码如下:

from src.simulation_initial import Simulation

from mindspore import Tensor

 

if __name__ == "__main__":

 simulation = Simulation(args_opt)

 save_path = args_opt.o

 for steps in range(simulation.md_info.step_limit):

 print_step = steps % simulation.ntwx

 if steps == simulation.md_info.step_limit - 1:

 print_step = 0

 temperature, total_potential_energy, sigma_of_bond_ene, sigma_of_angle_ene, sigma_of_dihedral_ene, \

 nb14_lj_energy_sum, nb14_cf_energy_sum, LJ_energy_sum, ee_ene, _ = simulation(Tensor(steps), Tensor(print_step))

 # compute energy and temperature

4. 运行脚本

python main.py --i /path/NVT_290_10ns.in \

 --amber_parm /path/WATER_ALA.parm7 \

 --c /path/WATER_ALA_350_cool_290.rst7 \

 --o /path/ala_NVT_290_10ns.out

其中,–i 为 MD 模仿的属性文件,管制模仿过程,–amber_parm 为 MD 模仿体系的拓扑文件,–c 为咱们输出的初始坐标文件,–o 为咱们模拟输出的记录文件,其记录了输入每步的能量等信息,–path 为输出文件所在的门路,在本教程中为 sponge_in 文件夹。

应用输出文件,通过在指定温度下进行模仿,计算力和能量,进行分子动力学过程演变。

5. 运行后果

运行失去的后果在 .out 文件中,体系的能量变动都被记录在该文件中,能够查看模仿体系的热力学信息。在 .out 文件中记录了体系的如下信息:

_steps_ _TEMP_ _TOT_POT_ENE_ _BOND_ENE_ _ANGLE_ENE_ _DIHEDRAL_ENE_ _14LJ_ENE_ _14CF_ENE_ _LJ_ENE_ _CF_PME_ENE_

其中记录了模仿过程中输入的各类能量,别离是迭代次数(_steps_),温度(_TEMP_),总能量(_TOT_POT_E_),键长(_BOND_ENE_),键角(_ANGLE_ENE_),二面角相互作用(_DIHEDRAL_ENE_),非键相互作用,其蕴含静电力及 Leonard-Jones 相互作用。

教程文档:https://gitee.com/mindspore/d…

瞻望

在将来的版本中,会退出更多实用的分子动力学模仿模块,反对更多利用。之后,SPONGE 各模块会逐渐反对主动微分和主动并行,对于连接机器学习计划提供更敌对的反对。欢送宽广的分子动力学爱好者和研究者退出咱们,独特拓展和保护 SPONGE。

点击关注,第一工夫理解华为云陈腐技术~

正文完
 0