首页/文章/ 详情

GROMACS之重启计算任务+续跑

2月前浏览400

模拟过程中机器意外断电怎么办?觉得模拟时间短想延长模拟时间怎么办? 别急,请看下面内容。

 

GROMACS模拟程序在模拟过程中,mdrun 按照 mdp 文件在一定时间间隔保存一个断点文件(checkpoint file, .cpt文件),该文件保存了该时刻模拟系统的所有物理量信息。如果由于不可预见原因,模拟中断,则可以使用该文件重新在该时刻开始进行模拟。

重启模拟的命令如下:


mdrun -s newtopol.tpr -cpi state.cpt –append

以上 state.cpt 文件为最新生产的断点文件( mdrun 会保存另外一个断点文件:state_prev.cpt,为上一个时刻保存的断点文件,双保险。)使用 “-append " 的作用是将模拟输出添加到已有文件中,包括轨迹文件,记录文件,能量文件等,相同帧的信息将被后生产的信息覆盖。另外其他的办法如下。


使用tpbconv重启gromacs模拟

在使用gromacs的mdrun进行模拟计算过程中,很多因素可以是模拟计算终止。比如突然断电,断网或者磁盘空间满,或者死机等等。重启gromacs模拟计算是一件十分方便的事情,因为gromacs众多的程序里面就有一个专门用来修改tpr文件的,就是tpbconv。gromacs把模拟需要的所以文件都打包成一个tpr二进制文件,里面包含了分子坐标,各个原子在给定温度下速度和能量的分布。当模拟突然终止时,只要将终止时候系统的状态,即各个原子的位置、速度、坐标等装入tpr文件即可。tpbconv的参数也不少,可以使用"tpbconv -h "查看,但是制作一个重启tpr文件的参数和格式一般如下:

tpbconv -s topol.tpr -f traj.trr -e ener.edr -o newtopol.tpr

其中topol.tpr为原来的tpr文件,traj.trr为双精度坐标文件(不要用xtc文件,因为精度不够),ener.edr为系统能量输出文件,newtopol.tpr是重启模拟文件。以上的命令得到的是在计算突然终止前一个系统构象的信息。也可以在命令中加上一个"-time "参数来指定从那一个时间重新开始,如下指定从一纳秒处重新开始模拟: 


tpbconv -s topol.tpr -f traj.trr -e ener.edr -time 1000-o newtopol.tpr

同时,如果模拟正常结束,而模拟时间让人觉得不够长时,可以使用tpbconv写一个延长模拟的tpr文件,一般格式如下:


tpbconv -s topol.tpr -f traj.trr -e ener.edr -extend 1000 -o newtopol.tpr

其中"-extend 1000"表示延长1000ps的模拟时间,非常好用。 

这样断了又开始,就会产生很多轨迹文件,分析的时候非常不方便,gromacs有其他常用的命令把坐标文件,能量文件连接成一个文件,其中比较常用的如trjcat和eneconv,格式分别如下:



trjcat -f traj1.trr traj2.trr.... -o traj_all.trreneconv -f ener1.edr ener2.edr... -o ener_all.edr

即使用"-f "读入所有轨迹或者能量文件,使用"-o "输出完整的轨迹和能量文件。最后说说一个tpbconv的弱点。tpbconv不能更改你原来tpr文件中并行计算的节点数,比如你原来的tpr文件是8个节点的,那么使用tpbconv得到的重启tpr文件也是8个节点的。如果想更改使用节点数,那只能用grompp重新做一个了。但是使用grompp做重启模拟文件时,就算你指定了原来的轨迹文件和能量文件,它还是会根据麦克斯韦分布重新给各个原子指定速度。

 

 使用grompp提取上一次模拟最后速度和能量

在上面提到的使用gromacs程序包中tpbconv命令制作新的tpr文件中,最后提到新制作的.tpr文件只能使用跟原来.tpr文件一样多的CPU数目。还抱怨说这是tpbconv一个不足的地方。使用grompp可以制作一个新的.tpr文件,从上一步模拟的轨迹文件中提取速度,并从上一步能量文件中提取能量,也可以无缝的链接重启模拟计算。要做到从上一步的最后的一个系统状态开始新的模拟计算。首先要在.mdp文件中把“ gen_vel ”参数定义为" no ",这样做是为了告诉grompp不要重新为系统中的原子指定随机速度。指定新模拟开始的时间,即修改" tinit "参数。然后可以使用以下命令制作一个从上一步模拟文件中提取速度和能量的.tpr文件,命令如下:

grompp -f [.mdp文件] -c [上一步模拟最后的系统坐标文件] -p [拓扑文件]-t [上一步的trr轨迹文件] -e [上一步能量文件] -time [坐标文件对应的模拟时间] -o [输出tpr文件] -np [CPU数目]

提取上一步模拟系统的速度时使用trr文件,是因为xtc为单精度,没有trr文件精确。" -time "参数告诉grompp在上一步模拟文件中提取该时间的能量和速度,所以该时间要和系统的坐标文件相一致。看起来好像要比tpbconv命令复杂一点,但是可以改变CPU数目,还算十分灵活。Gromacs是灵活的人的MD工具。



来源:模拟之家
GROMACS
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-09-08
最近编辑:2月前
刘十三613
博士 分子动力学、GROMACS
获赞 133粉丝 97文章 83课程 29
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈