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(年久失修,待完善)
- 获取特征(x,y数据)
- 数据正则化
- 计算能量(概率分布)
- 画图
实例一: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