模拟过程中机器意外断电怎么办?觉得模拟时间短想延长模拟时间怎么办? 别急,请看下面内容。
GROMACS模拟程序在模拟过程中,mdrun 按照 mdp 文件在一定时间间隔保存一个断点文件(checkpoint file, .cpt文件),该文件保存了该时刻模拟系统的所有物理量信息。如果由于不可预见原因,模拟中断,则可以使用该文件重新在该时刻开始进行模拟。
重启模拟的命令如下:
mdrun -s newtopol.tpr -cpi state.cpt –append
以上 state.cpt 文件为最新生产的断点文件( mdrun 会保存另外一个断点文件:state_prev.cpt,为上一个时刻保存的断点文件,双保险。)使用 “-append " 的作用是将模拟输出添加到已有文件中,包括轨迹文件,记录文件,能量文件等,相同帧的信息将被后生产的信息覆盖。另外其他的办法如下。
使用tpbconv重启gromacs模拟
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做重启模拟文件时,就算你指定了原来的轨迹文件和能量文件,它还是会根据麦克斯韦分布重新给各个原子指定速度。
使用grompp提取上一次模拟最后速度和能量
grompp -f [.mdp文件] -c [上一步模拟最后的系统坐标文件] -p [拓扑文件]-t [上一步的trr轨迹文件] -e [上一步能量文件] -time [坐标文件对应的模拟时间] -o [输出tpr文件] -np [CPU数目]
提取上一步模拟系统的速度时使用trr文件,是因为xtc为单精度,没有trr文件精确。" -time "参数告诉grompp在上一步模拟文件中提取该时间的能量和速度,所以该时间要和系统的坐标文件相一致。看起来好像要比tpbconv命令复杂一点,但是可以改变CPU数目,还算十分灵活。Gromacs是灵活的人的MD工具。