一种GROMACS云计算流程控制方法与流程

文档序号:15688574发布日期:2018-10-16 21:32阅读:621来源:国知局

本发明属于高通量的gromacs科学计算领域,涉及一种gromacs云计算流程控制方法。



背景技术:

分子动力学(md)计算已广泛地应用于材料科学的各个领域,gromacs作为一个开源、高效的md计算软件,已成为模拟计算的首选。当前,几乎所有的超算中心和云平台都安装了各类版本的gromacs软件,并有相应的作业管理系统来完成任务的提交、修改和删除等功能。

当前的gromacs云计算流程主要存在以下缺陷:

1.不能跨平台调度:当前几乎所有的gromacs云计算平台,都需要先手动登录、编写任务脚本,再提交到各自的平台上计算。

2.不能连续计算:一般gromacs的后续任务都需要使用到上一个任务的最终结构,因此连续的任务都需要等前一个任务计算完成才能提交。

3.存储形式单一:所有的gromacs计算和分析结果都储存在平台上,不利于实时查看和监控模拟状态。

4.缺乏用户界面:当前所有的gromacs云计算和分析流程都是基于脚本的形式,用户体验差,不利于任务状态监控、结果的图形化显示等。



技术实现要素:

为了解决以上技术问题,本发明提供一种gromacs云计算流程控制方法,包括以下几个步骤:

步骤(1):从arangodb数据库,获取聚类排位得到的能量靠前的几个晶体结构的.res或.cif文件,然后调用yoda库函数进行对称性操作、格式转化和晶胞扩展,得到gromacs的结构文件;

步骤(2):从arangodb数据库,获取力场开发研究得到的最佳力场参数.prm和.rtf,然后调用yoda库函数自动转换成gromacs的力场参数文件;

步骤(3):根据不同阶段对应的模拟类型,调用yoda库函数自动生成对应的gromacs的模拟参数文件;

步骤(4):调用mixc库函数,将gromacs计算和分析任务提交到majorana任务调度平台;

步骤(5)给每个结构对应的同批次任务添加相应的监控任务,实时获取任务的执行状态;

(6)待所有的任务都执行完成后,从arangodb数据库获取相应的分析结果,调用matplotlib绘图库,直接在jupyter中作出相应的曲线。

现有技术中,gromacs模拟所必须的3类文件包括:结构(.gro)、力场参数(.top和.itp)和模拟参数(.mdp)。本发明是用于晶型预测流程中的晶体的温度稳定性计算(自由能计算)。其中,结构来源于晶型预测流程中的聚类排位结果(.res和.cif),力场参数来源于力场开发计算结果,而模拟参数则是参考已有的文献报道、以及相关的测试和优化结果(基于不同的模拟类型,自动生成相应的参数文件)。因此本发明无缝衔接了晶型预测流程中的力场开发、聚类排位和自由能计算。

本发明采用以上技术方案,可以解决平台登录、任务脚本编写、分析脚本编写、任务监控、分析数据绘图等跨平台和软件的繁琐步骤,将所有的用户操作都集成到jupyter中,从而大大提高了计算和分析的效率。

优选的,所述任务参数采用任务类型、镜像名、内存和核数中的至少一种。

优选的,所述任务类型采用md或remd。

优选的,所述步骤(5)中,所述运行状态包括:正常结束、失败、准备中、排队中和内存不足中的至少一种。

相应的,本发明还提供一种基于所述gromacs云计算的副本交换分子动力学流程方法,包括如下几个步骤:

步骤①:从聚类排位计算结果中选取n个能量较低的晶体结构,变换格式和扩展超胞后得到对应的gromacs结构;其中,n个能量较低的晶体结构是指能量排位靠前的5至10个结构

步骤②:选取最优的力场参数,对上述每个结构进行1ns的等温等压弛豫;所述最优的力场参数是指本领域技术人员所知道的能够最好地描述分子的构效关系,并具有良好的晶体学表现。

步骤:获取弛豫后的结构,在给定的一系列温度下进行npt系综下的常规分子动力学模拟的温度扫描;

步骤:将每组温度扫描的最终结构进行npt系综下的remd模拟;通过提取常用的理化性质随时间的变化,直接在jupyter中绘制所有温度下某个性质随时间演化的全景图;

步骤⑤根据remd模拟的结果,计算出体积、内能和自由能随温度变化的曲线;在使用mbar计算自由能时,同时计算相邻温度之间的相关时间和重叠矩阵;这些数据都可以直接在jupyter中绘制成图,以便实时查看和收敛性检查。

优选的,所述步骤⑤中,模拟的计算过程可以通过温度、压力、体积、各种能量、rmsd、质心偏移等随时间的变化图来监控是否收敛。所述各种能量是指包括势能、动能、位置限制作用能、静电作用能、范德华作用能和总能量中的至少一种。

remd模拟主要用于增强体系在构型空间上的采样,从而在最大程度上遍历势能面上所有点,以获取准确的自由能数据。但由于其需要的计算资源很大,在任务执行和资源调度上很复杂。为此,我们为remd设计了套完整的计算流程,方便快速提交remd任务,并对结果进行自动化分析。

本发明进一步采用以上技术方案,其优点在于,在指定初始结构、力场参数和各步的模拟参数(包括模拟步长、时长、温度范围等)后,上述计算过程只需进行一次提交,就可以自动完成后续的所有计算和数据分析任务。用户可以在jupyter中随时查看和修改任务的执行状态,也能以图形的方式实时查看已有的计算和分析结果。

本发明带来了如下效果:

1.实现了高通量、高并行gromacs任务的跨平台调度、gromacs任务的自动续算、连续计算和结果的自动化分析。

2.实现了gromacs结构文件、力场参数文件和模拟参数文件的自动化创建,以及常用理化性质的自动化分析和整合。

3.无缝衔接了晶型预测流程中的力场开发、聚类排位计算和自由能计算;设计将平衡结构、分析结果与gromacs轨迹分开存储,便于快速获取计算结果;大大提升了结果展示和收敛性分析的速度。

4.将所有的gromacs任务创建、提交和管理,理化性质监控,结果分析和绘图等步骤集成到jupyter中,实现了gromacs云计算流程的可视化操作。

附图说明

图1是本发明完整的gromacs云计算流程图。

图2是本发明基于gromacs云计算的副本交换分子动力学流程图。

图3是本发明md模拟的计算过程中通过温度、压力、体积、各种能量、rmsd、质心偏移等随时间的变化图来监控是否收敛;涉及步骤②③④。

图4是本发明不同温度下,体积、内能和温度等随时间的变化图,图中的曲线从上到下代表温度逐步降低(即从上到下的温度为从350k到10k),涉及的过程④。

图5是本发明体积、内能和自由能等随温度的变化,涉及的过程:⑤。

图6是本发明自由能计算的收敛性分析,相邻副本的相关时间随扫描温度数的变化(相关时间都在10以内,表明收敛性较好),涉及的过程:⑤。

图7是本发明自由能计算的收敛性分析,不同扫描温度数对应的能量重叠矩阵(对角线的上一格和下一格与整体背景有较大颜色差,表明相邻副本之间重叠足够充分),涉及的过程:⑤。

具体实施方式

下面结合附图,对本发明的较优的实施例作进一步的详细说明:

实施例1

完整的gromacs云计算流程,如图1所示,包括以下几个步骤:

步骤(1):从arangodb数据库,获取聚类排位得到的能量靠前的几个晶体结构的.res或.cif文件,然后调用yoda库函数进行对称性操作、格式转化和晶胞扩展,得到gromacs的结构文件;

步骤(2):从arangodb数据库,获取力场开发研究得到的最佳力场参数.prm和.rtf,然后调用yoda库函数自动转换成gromacs的力场参数文件;

步骤(3):根据不同阶段对应的模拟类型,调用yoda库函数自动生成对应的gromacs的模拟参数文件;这些参数可以被用户提供的json格式的输入参数所替换,从而实现了参数的可控调节;

步骤(4):调用mixc库函数,将gromacs计算和分析任务提交到majorana任务调度平台。

这些任务包括:常规md计算,副本交换分子动力学(remd),轨迹重算,延长模拟时间,断点续算,以及多维数据的多态贝内特接受率计算(mbar)等。

任务参数采用任务类型、镜像名、内存和核数等。

majorana会根据任务参数,将任务提交到指定的云计算平台(amazoncloud,tencentcloud等)上。例如,根据任务类型(md或remd)和核数来选择是否需要跨节点并行,根据选取的镜像名来指定要提交的云平台。majorana会实时获取任务的执行状态并记录下来,用户可以通过调用obiwan库函数来查看任务的执行状态。

根据实际需要,可以通过obiwan库函数和任务的handle来修改指定任务的参数和状态。例如:list_job可以查看提交的任务信息;dump_job可以获取任务的标准错误/输出;rerun可以重新计算(当任务意外中断时,会自动实现断点续算);dump_file可以获取gromacs的输入和输出文件;kill可以删除任务等。这些命令会自动触发majorana发送对应的指令到云平台上,从而达到远程管理任务的目的。

(5)为了实现任务的自动化连续计算,我们给每个结构对应的同批次任务添加了一个监控任务(joiner),它会实时获取这些任务的执行状态。

运行状态包括:正常结束(done),失败(failed),准备中(in_prep),排队中(in_queue),内存不足等(falat)。一旦所有任务都执行成功(done)了,就会调用数据分析程序(基于numpy,pandas和scipy库),自动计算常用的理化性质(包括各种能量、体积、温度、压力、rmsd、质心偏移等)随时间的变化、自由能、相关时间和重叠矩阵等,并将任务执行信息、参数、最终结构和分析结果保存到arangodb数据库中。同时,将数据量大的轨迹文件(.trr和.xtc)、各类性质随时间演化的.csv文件、收敛性数据(.npy文件)等上传到s3(simplestorageservice,简单存储服务)上(用于实时监控各个参数的变化、debug和收敛性分析等)。因为s3可以实现文件的高通量传输,所以方便随时下载和分析中间数据。最后,根据需要自动提交下一步的计算任务。此时,该joiner任务的状态变为done,新的joiner任务会重新生成。

(6)待所有的任务都执行完成后,从arangodb数据库获取相应的分析结果,调用matplotlib绘图库,直接在jupyter中作出相应的曲线,以直观的查看计算结果。

实施例2

基于gromacs云计算的副本交换分子动力学流程,如图2至7所示,以下是本流程的具体步骤:

步骤①:从聚类排位计算结果(能量景观)中选取n个能量较低的晶体结构,变换格式和扩展超胞后得到对应的gromacs结构。

步骤②:选取最优的力场参数,对上述每个结构进行1ns的等温等压(npt)弛豫。

步骤:获取弛豫后的结构,在给定的一系列温度(n=68,10~350k)下进行5ns的npt系综下的常规分子动力学模拟(温度扫描)。

步骤:将每组温度扫描的最终结构进行5ns的npt系综下的remd模拟。通过提取常用的理化性质随时间的变化,可以直接在jupyter中绘制所有温度下某个性质随时间演化的全景图。

步骤⑤根据remd模拟的结果,可以计算出体积、内能和自由能随温度变化的曲线。在使用mbar计算自由能时,我们也同时计算了相邻温度之间的相关时间和重叠矩阵。这些数据都可以直接在jupyter中绘制成图,以便实时查看和收敛性检查。

另外,md模拟的计算过程可以通过温度、压力、体积、各种能量、rmsd、质心偏移等随时间的变化图来监控是否收敛,涉及的过程包括②,③,④。

当前,在指定初始结构、力场参数和各步的模拟参数(包括模拟步长、时长、温度范围等)后,上述计算过程只需进行一次提交,就可以自动完成后续的所有计算和数据分析任务。用户可以在jupyter中随时查看和修改任务的执行状态,也能以图形的方式实时查看已有的计算和分析结果。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1