demux

将REMD轨迹处理成按照时间连续
  • 我们希望轨迹具有连续的坐标,尽管在系综空间中存在“跳跃”。这意味着将每个轨迹文件切成碎片,然后以正确的顺序粘贴回去。随Gromacs一起安装的Perl脚本demux.pl(在Gromacs安装目录下的bin目录下)将分析一个 .log文件,并写入两个特殊的.xvg文件,这些文件为转换矩阵,描述了轨迹时间序列从一个到另一个以及返回的过程。trjcat -demux可以使用这些文件为您对轨迹文件进行剪切和粘贴。

生成replica_index.xvg

  • pwd
  • /home/databank/zzy/project/trip13/analysis/0415/demux
  • locate gromacs-5.1.4/scripts/demux.pl 
  • perl /home/dddc/software/gromacs-5.1.4-vsremd/gromacs-5.1.4/scripts/demux.pl md0.log
  • -----------------------------------------------------------------
  • Going to read a file containing the exchange information from
  • your mdrun log file (md0.log).
  • This will produce a file (replica_index.xvg) suitable for
  • demultiplexing your trajectories using trjcat,
  • as well as a replica temperature file (replica_temp.xvg).
  • Each entry in the log file will be copied 0 times.
  • -----------------------------------------------------------------
  • There are 28 replicas.

  • Finished writing replica_index.xvg and replica_temp.xvg with 250000 lines
  • (base) [dddc@localhost demux]$ ls
  • md0.log  replica_index.xvg  replica_temp.xvg

各副本轨迹reconnected

gmx_mpi trjcat -f xxx.xtc -demux replica_index.xvg 
  • (base) [dddc@localhost 1ns]$ gmx_mpi trjcat -f ../../../0415_500ns/vsremd20230609/500ns/cpp/04150.xtc ../../../0415_500ns/vsremd20230609/500ns/cpp/04151.xtc ../../../0415_500ns/vsremd20230609/500ns/cpp/04152.xtc ../../../0415_500ns/vsremd20230609/500ns/cpp/04153.xtc  ../../../0415_500ns/vsremd20230609/500ns/cpp/04154.xtc
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/04155.xtc
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/04155.xtc
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/04156.xtc
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/04157.xtc
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/04158.xtc
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/04159.xtc
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/041510.xtc 
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/041511.xtc 
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/041512.xtc 
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/041513.xtc 
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/041514.xtc 
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/041515.xtc 
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/041516.xtc 
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/041517.xtc 
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/041518.xtc
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/041519.xtc
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/041520.xtc
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/041521.xtc
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/041522.xtc
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/041523.xtc
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/041524.xtc
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/041525.xtc
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/041526.xtc
  • ../../../0415_500ns/vsremd20230609/500ns/cpp/041527.xtc -demux replica_index.xvg 

  • (base) [dddc@localhost 1ns]$ ls
  • 0_trajout.xtc  3_trajout.xtc  6_trajout.xtc
  • 1_trajout.xtc  4_trajout.xtc  replica_index.xvg
  • 2_trajout.xtc  5_trajout.xtc  replica_temp.xvg

周期性处理

去除周期性
去除水分子和离子
  • gmx_mpi trjconv -f 0_trajout.xtc -s /home/dddc/lywu/koff/oame-g4/pre/funnel-vsremd/1ns/md0.tpr -pbc mol -ur compact -center -o 0_trajout_nopbc_nowater.xtc 

align 

-fit rot+trans
  • gmx_mpi trjconv -f 6_trajout_nopbc_nowater.xtc -s /home/dddc/lywu/koff/oame-g4/pre/funnel-vsremd/1ns/md0.tpr -fit rot+trans -o look6.pdb

500ns轨迹处理

注意事项:后续若将这499ns的轨迹与前面1ns的轨迹相连接时需注意轨迹的开头和结尾有变化,要仔细检查

生成replica_index.xvg

  • (base) [dddc@localhost 500ns]$ perl /home/dddc/software/gromacs-5.1.4-vsremd/gromacs-5.1.4/scripts/demux.pl /home/dddc/lywu/koff/oame-g4/pre/funnel-vsremd/500ns/md0.log 
  • -----------------------------------------------------------------
  • Going to read a file containing the exchange information from
  • your mdrun log file (/home/dddc/lywu/koff/oame-g4/pre/funnel-vsremd/500ns/md0.log).
  • This will produce a file (replica_index.xvg) suitable for
  • demultiplexing your trajectories using trjcat,
  • as well as a replica temperature file (replica_temp.xvg).
  • Each entry in the log file will be copied 0 times.
  • -----------------------------------------------------------------
  • There are 7 replicas.
  • Finished writing replica_index.xvg and replica_temp.xvg with 249501 lines

  • (base) [dddc@localhost 500ns]$ ls
  • replica_index.xvg  replica_temp.xvg

各副本轨迹reconnected

注意事项:
replica_index.xvg中的时间需要与轨迹中的对应好,对于续跑轨迹,第一行若多出来time 0, 需要删除
思考:现在时未对原始轨迹进行任何处理,直接进行reconnected,速度较慢,有两个可以尝试的点,或许可以方便以后加快速度
1)对轨迹先去除周期性盒子、水分子、离子
2)
  • (base) [dddc@localhost 500ns]$ cat reconnected.sh 
  • gmx_mpi trjcat -f /home/dddc/lywu/koff/oame-g4/pre/funnel-vsremd/500ns/md0.xtc /home/dddc/lywu/koff/oame-g4/pre/funnel-vsremd/500ns/md1.xtc /home/dddc/lywu/koff/oame-g4/pre/funnel-vsremd/500ns/md2.xtc /home/dddc/lywu/koff/oame-g4/pre/funnel-vsremd/500ns/md3.xtc /home/dddc/lywu/koff/oame-g4/pre/funnel-vsremd/500ns/md4.xtc /home/dddc/lywu/koff/oame-g4/pre/funnel-vsremd/500ns/md5.xtc /home/dddc/lywu/koff/oame-g4/pre/funnel-vsremd/500ns/md6.xtc -demux replica_index.xvg

  • (base) [dddc@localhost 500ns]$ nohup sh reconnected.sh &

周期性处理

只使用-pbc mol -ur compact处理时观察到少数跳跃较大的轨迹,怀疑周期性处理有问题
rmsd0

whole

  • (base) [dddc@localhost pbc-test]$ echo 1|gmx_mpi trjconv  -f ../0_trajout.xtc -s /home/dddc/lywu/koff/oame-g4/pre/funnel-vsremd/1ns/md0.tpr -pbc whole -o 0_whole.xtc

nojump

  • (base) [dddc@localhost pbc-test]$ echo 1|gmx_mpi trjconv  -f 0_whole.xtc -s /home/dddc/lywu/koff/oame-g4/pre/funnel-vsremd/1ns/md0.tpr -pbc nojump -o 0_nojump.xtc

mol

  • (base) [dddc@localhost pbc-test]$ echo 3 1|gmx_mpi trjconv  -f 0_nojump.xtc -s /home/dddc/lywu/koff/oame-g4/pre/funnel-vsremd/1ns/md0.tpr -pbc mol -ur compact -center -o  0_mol.xtc

fit

  • (base) [dddc@localhost pbc-test]$ echo 0 0|gmx_mpi trjconv  -f 0_mol.xtc -s ../ref_nopbc_nowater.pdb -fit rot+trans -o  0_fit.xtc
cluster
nojump
whole
fit

计算RMSD