Analyze MD trajectories

写在前面

大胆敲命令,出错了没事,gmx大多数的命令都可以先敲,报错信息里会告诉你哪里出错了,结合gmx_mpi <关键词> -h,再看看手册,你可以解决大多数报错!实在不行,还有乐云:)

轨迹处理

  • # 你想看你的体系中哪些东西,就把他们放进一个group,常用的是 protein|mol|ions
  • !建议在md 工作文件夹下建一个新的文件夹 (analysis之类的),md的文件很多,及时整理会大大减小出错的可能性
  • gmx_mpi make_ndx -f ../md.gro -o index.ndx

  • # 处理周期性
  • !注意:提前制作index.ndx
  • # skip 参数可自行调整,代表着间隔几帧输出一次,建议一开始调的大一些,把traj.pdb下载到本地看一下,你能看到里面有几帧,如果数量太少,可以减小间隔的数目
  • gmx_mpi trjconv -f ../md.xtc -s ../md.tpr -n index.ndx -o traj.pdb -skip 1000 -pbc mol -ur compact
  • # 注意选择你要看的那个组(就是上面index.ndx里的那个)
  • # 输出 traj.pdb 不是特别划算,因为文件会比较大,但是下一步就比较方便

  • # cpptraj 使你的轨迹对齐
  • !注意:部分服务器(如24)需要先激活环境 conda activate ambertools
  • 命令行输入:cpptraj
  • > parm traj.pdb
  • > trajin traj.pdb
  • > autoimage
  • > rms
  • > trajout look.pdb
  • > run
  • # 跑完就 ctrl C 退出cpptraj 即可
  • # look.pdb就是一个可以可视化的轨迹(一帧帧的pdb,pymol里可以直接看,播放一下,你的蛋白质就动起来了,还是很有趣的,如果你看到了这个过程,恭喜你,你算是完成了一个MD,虽然这实际上是刚开始:),祝你在md的坑里越走越远(bushi))

FEL(年久失修,待完善)

  1. 获取特征(x,y数据)
  2. 数据正则化
  3. 计算能量(概率分布)
  4. 画图

实例一:trip13-0415的fel绘制(28个副本 )

x:AAA_ATPase结构域的rmsd(172-324)
y:蛋白全长rmsd
  • nohup sh -c 'for i in {0..27};do echo 1 13|gmx_mpi rms -s ../ref.pdb -f /home/databank/zzy/project/trip13/0415_500ns/vsremd20230609/500ns/cpp/0415${i}.xtc -n index.ndx -o AAA_ATPase${i}_rmsd.xvg;done' &
  • nohup sh -c 'for i in {0..27};do echo 1 1|gmx_mpi rms -s ../ref.pdb -f /home/databank/zzy/project/trip13/0415_500ns/vsremd20230609/500ns/cpp/0415${i}.xtc -o pro${i}_rmsd.xvg;done' &
  • #文本处理,得到x,y轴的数据
  • # 删除#/@开头的行
  • for i in {0..27};do sed -i '/^#/d' pro${i}_rmsd.xvg;done
  • for i in {0..27};do sed -i '/^@/d' pro${i}_rmsd.xvg;done
  • for i in {0..27};do sed -i '/^#/d' AAA_ATPase${i}_rmsd.xvg;done
  • for i in {0..27};do sed -i '/^@/d' AAA_ATPase${i}_rmsd.xvg;done

  • ## cut 的范围根据不同的feather灵活调整,gyrate就是4-23
  • for i in {0..27};do cat pro${i}_rmsd.xvg | cut -b 1-25 > y_${i}.xvg;done

  • for i in {0..27};do python xvg_combine.py ../AAA_ATPase${i}_rmsd.xvg y_${i}.xvg output${i}.xvg;done

  • ## 若得到了正确的 output${i}.xvg 以下正则化步骤可直接照搬,
  • ## 正则化后的 input-md${i}.csv 可直接用于脚本画图
  • for i in {0..27};do cat output${i}.xvg | cut -b 16-100 > input_md${i}.xvg;done
  • for i in {0..27};do sed -i '1 i aax                y' input_md${i}.xvg;done
  • for i in {0..27};do sed -i 's/aa/  /g' input_md${i}.xvg;done
  • mkdir input
  • cd input 
  • for i in {0..27};do awk '{print($1,",",$2)}' ../input_md${i}.xvg > input_md${i}.csv;done
  • for i in {0..27};do mv input_md${i}.csv input-md${i}.csv;done
  • for i in {0..27};do sed -i 's/x , y/x,y/g' input-md${i}.csv;done

  • ls > file
  • cp ../../../temp ./
  • ### 检查顺序,input_list.csv 最终记录了每个副本的温度
  • paste -d ',' file temp > input_list.csv