模拟丙氨酸三肽水溶液体系
MindSPONGE介绍
分子模拟主要通过计算机借助原子层次的分子模型来预测或分析分子结构与行为特征,并以此为基础研究各种物理化学性质的方法。它基于实验数据构建遵循理论基础的设计模型并开发相应的算法系统以计算出合理的分子形态及其动态行为模式。
近年来,分子模拟技术取得了显著进展,并在医学、生命科学以及材料科学等多个领域展现出重要应用价值;在药物设计方面,则主要聚焦于探究病毒特性及药物作用机制;生物科学研究中,则主要用于探索蛋白质多层次结构及其特性;材料学研究则集中于解析物质组成与性能关系;化学领域则着重于揭示催化反应本质及其动力学规律;石油化工领域则通过构建分子筛催化剂的微观模型来分析其催化机理以及优化合成工艺;此外,在高分子材料研究中还能够系统构建其微观结构特征
MindSPONGE是由高毅勤课题组(北京大学与深圳湾实验室)与华为MindSpore团队共同开发的分子模拟库,并具备高性能与模块化等特点。MindSPONGE作为MindSpore与SPONGE(Simulation Package Of Next GEneration molecular modeling)的缩写而存在。它是首个立足于AI框架的分子模拟工具,并采用了模块化设计思路从而能够快速构建完整的分子模拟流程;基于MindSpore支持自动并行计算与图算融合技术使其能够高效执行传统分子模拟任务;同时它还具备将神经网络等AI方法与传统分子模拟相结合的能力,并广泛应用于生物、材料科学以及医药等多个领域
未来展望中, MindSPONGE系统预计会集成更多基于人工智能算法开发的分子模拟实例, 我们热切期待您的关注与支持。
准备输入文件
本教程模拟体系中需要加载三个输入文件,分别是:
属性文档(采用.in格式存储),设定模拟的前提条件,并通过参数设置全面调控整个模拟流程。
该文档(具有后缀.param7的类型)属于拓扑结构文件。它阐述了体系内部各个组成部分之间的拓扑关联以及相关参数设置。
该文档包含以rst7为后缀名的坐标数据文件,这些数据文件记录着每个原子在系统中的起始状态下的位置信息及其运动初值
拓扑文件及坐标文件可通过AmberTools内置的tleap建模功能进行构建
建模过程如下:
打开tleap
加载tleap自带的ff14SB力场
source leaprc.protein.ff14SB
搭建丙氨酸三肽模型
ala = sequence {ALA ALA ALA}
利用tleap加载其自带的tip3p力场
source leaprc.water.tip3p
通过tleap软件中的solvatebox功能使丙氨酸三肽链溶解并完成整个体系构建。其中10.0表示所加入的水中分子与被溶解物质及其体系边界之间的距离至少维持在10.0埃以上。
solvatebox ala TIP3PBOX 10.0
将建好的体系保存成parm7及rst7文件
saveamberparm ala WATER_ALA.parm7 WATER_ALA_350_cool_290.rst7
利用tleap成功生成了必要的拓扑结构(WATER_ALA.parm7)以及坐标数据(WATER_ALA_350_cool_290.rst7)。这不仅为后续模拟奠定了基础,并且为精准控制模拟参数提供了依据。必须配置属性文件以设定模拟的基本参数。例如,在本教程中使用的属性文件NVT_290_10ns.in中
其文件内容如下:
NVT 290k
mode = 1, # Simulation mode ; mode=1 for NVT ensemble
dt= 0.001, # Time step in picoseconds (ps). The time length of each MD step
step_limit = 1, # Total step limit, number of MD steps run
温度控制器设为1,并附有注释# 用于温度调节 ; 当设为0时,则采用Langevin热控方案
langevin_gamma=1.0, # Gamma_ln for Langevin thermostat represents coupling strength between thermostat and system
target_temperature=290, # Target temperature
write_information_interval=1000, # Output frequency
设置为初始状态, # 输入样式 ; 当选择使用Amber风格输入时 & rst7文件包含速度数据
cut=10.0, # Nonbonded cutoff distance in Angstroms
mode,分子动力学(MD)模式,1表示模拟采用NVT系综。
dt,表示模拟步长。
step_limit,表示模拟总步数。
thermostat,表示控温方法,1表示采用的是Liujian-Langevin方法。
langevin_gamma,表示控温器中的Gamma_ln参数。
target_temperature,表示目标温度。
amber_irest用于指定输入格式。当数值为0时采用amber方式进行输入。rst7文件中未设置velocity属性。
cut,表示非键相互作用的距离。
加载数据
在构建完成后,将其存放于本地工作区的数据目录中

从三个输入文件中,读取模拟体系需要的参数,用于MindSpore的计算。
加载代码如下:
import argparse
import time
from mindspore import context
parser = argparse.ArgumentParser(description='Sponge Controller')
parser.add_argument('--i', type=str, default=None, help='Input .in file')
parser对象.add_argument( --amber_parm, 类型设为字符串,默认无值, 帮助信息说明文件格式)
parser.add_argument('--coordinates', type=str, default=None, help='description of initial coordinate information:')
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()
configure_context(
mode=GRAPH_MODE,
device_target="GPU",
_args_opt.device_id=device_id,
save_graph=False
)
构建模拟流程
使用SPONGE框架中所包含的计算能力组件以及能量管理组件,在反复计算分子动力学过程的过程中逐步模拟体系的行为模式,并追踪记录每个模拟步骤中的能量值和其他相关数据。为了便于操作演示,在本教程中将整个计算过程设定为1次迭代
其模拟流程构建代码如下:
from mindsponge.md.simulation import Simulation
from mindspore import Tensor
if name == "main":
simulation = Simulation(args_opt)
start = time.time()
compiler = args_opt.o
save_path = args_opt.o
simulation.main_initial()
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; σ of bond energy; σ of angle energy; σ of dihedral energy
无法进行有效的同义改写
compute energy and temperature
运行脚本
执行以下命令,启动训练脚本main.py进行训练:
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
属性文件(.in)用于定义MD模拟参数;拓扑文件(.param7)描述了分子结构的连接性与几何信息;初始坐标文件(.rst7)提供了分子在初始状态的位置信息;输出记录文件(.rst)记录了分子动力学过程的能量变化等关键数据;路径设置用于指定输入和输出文件的位置,默认情况下位于data/polypeptide目录下。训练过程中,在指定温度条件下使用上述三类输入数据进行计算,并通过分子动力学方法模拟体系演化过程。
运行结果如下:

