打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
中断后继续
以前介绍过如果使用 GMX 3.x 重新由于种种原因停止的模拟,以下为 GMX 4.x 下重启模拟的方法。

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

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

当然,也可以继续像 GMX 3.x 一样使用 tpbconv 生产新的 tpr 文件继续模拟,详细请参见旧文或手册

1 使用tpbconv重启gromacs模拟

在使用gromacs的mdrun进行模拟计算过程中,很多因素可以是模拟计算终止。比如突然断电,断网或者磁盘空间满,或者windows死机(^_^)等等。重启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.trr
eneconv -f ener1.edr ener2.edr... -o ener_all.edr

即使用"-f "读入所有轨迹或者能量文件,使用"-o "输出完整的轨迹和能量文件。

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

嗯,如果你觉得这是一个大问题,那就伸长脖子等gromcas新版本出来吧。



2 使用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工具。^_^
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
gromacs示例
Installation of GROMACS
威纶通触摸屏离线模拟功能这样操作,超简单!
美国MITRE评估APT侦测产品
如何选购蓝牙适配器 - 汉杰 - 网易博客
ML-fairness-gym:探索机器学习系统长期影响的工具
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服