轨迹处理&分析

周期性处理

gmx -pbc mol -ur compact (-s 接tpr)(配位离子需要保留,保留溶质组)(保留输出轨迹) output file 命名:dry.xtc
cpptraj autoimage (parm prmtop)(保留输出轨迹)     output file 命名:dry-autoimage.xtc

RMSD

大致检查周期性处理情况
全原子叠合
全原子计算
gmx rms (算溶质的rms)

apo/complex 口袋RMSD

ref 为complex的初始结构(crystal)口袋氨基酸
rmsd 计算 使用 backbone 来叠合(fit)
计算 rmsd值 仅考虑重原子
看apo 1*3 um 内是否出现 与complex 接近的构象(rmsd接近0 的 构象占比)
看complex 的 rmsd曲线

关键差异氨基酸RMSF

按D3PM 库中标注的最大差异氨基酸为准
先按照配体,选择周围(即口袋)氨基酸计算RMSF

半柔性对接中蛋白构象对晶体结构复现的影响

期待结果:
  1. apo晶体结构无法复现配体结合构象
  2. 蛋白构象(口袋的正确结构)引起的对接打分差异

测试

  • 75.2 /home/databank/MD_traj_dataset/D3PM/1um_cmd_12A/batch2
  • # batch1 3vvx_B_pair4 3vw0_D_pair4 没跑完,正在转移至75.3 ,转移完成后续跑

检查轨迹的完整性

  • # 1um是否跑完了
  • for a in *;do for i in {1..3};do echo "########## $a md$i ##########";grep -A 2 Step ${a}/md${i}/*log|tail -n5;done;done

  • # 轨迹文件是否完整
  • for a in *;do du -sh ${a}/*;done

pbc

bash

  • # batch2的pbc任务均已提交
  • 75.2 /home/databank/MD_traj_dataset/D3PM/analysis/pbc/complex
  • 75.2 /home/databank/MD_traj_dataset/D3PM/analysis/pbc/apo

  • # 已撰写好了流程化脚本,后面按照这种方法进行周期性处理,脚本已测试通过(截取了很短的轨迹做测试)
  • 75.2 /home/databank/MD_traj_dataset/D3PM/analysis/pbc2_test

  • # 0910 脚本已经开始运行
  • 75.2 /home/databank/MD_traj_dataset/D3PM/analysis/batch3/pbc
  • # 处理不同批次下的体系,需要更改 pbc.sh 里的 datadir 参数(用于读取tpr和原始轨迹)
  • # 同时,需要更改 autoimage-apo.sh 和 autoimage-complex.sh 的参数读取路径
  • # cpptraj 所需参数需要从v100服务器复制
  • # 以batch3为例,路径为
  • 75.2 /home/databank/MD_traj_dataset/D3PM/analysis/batch3/sys_md_parameters
  • # 0910 因为目前75.2上只有4对体系可进行处理,参数只打包了这4对

python

2025-09-10 16:35 版本如上,测试路径如下:
  • 75.2 /home/databank/MD_traj_dataset/D3PM/analysis/batch3/pbc2
其中 autoimage 是外接bash 脚本实现的,pytraj autoimage 在测试中报错,找不到盒子信息,加上其读取轨迹速度慢,暂不使用pytraj autoimage。
rmsd的计算 是使用rmsd,按照下午和师姐的讨论结果,apo和complex都是使用复合物的晶体构象作为参考构象计算

autoimage

RMSD

师姐的建议
  • import os 
  • import pandas as pd
  • import numpy as np
  • import pytraj as pt

  • #trajectory of 0-500ns
  • traj = pt.iterload('/home/databank/lywu/apo-proteins/ache/analysis/xtc/0_fit.xtc',top='/home/databank/lywu/apo-proteins/ache/analysis/xtc/dry.pdb')
  • rmsf_data = pt.rmsf(traj,options='byres')

  • df=pd.DataFrame(rmsf_data)
  • if not os.path.exists("csv_rmsf"):
  •         os.makedirs("csv_rmsf")
  • df.to_csv('./csv_rmsf/rmsf_apo_ache-md0_0-500ns.csv', index=False)


  • import os 
  • import pandas as pd
  • import numpy as np
  • import pytraj as pt

  • traj = pt.iterload('/home/databank/MD_traj_dataset/D3PM/analysis/batch3/pbc2_test/4E0F_pair18_pair18/dry-auto-apo-1.xtc',top='/home/databank/MD_traj_dataset/D3PM/analysis/batch3/sys_md_parameters/4E0F_B_pair18/pro.prmtop')
  • rmsd_data = pt.rmsd(traj)
  • df=pd.DataFrame(rmsd_data)
  • if not os.path.exists("csv_rmsd"):
  •     os.makedirs("csv_rmsd")
  • df.to_csv('./csv_rmsd/test_apo_rmsd.csv', index=False)

pkt-rmsd

  • 75.2 /home/databank/MD_traj_dataset/D3PM/analysis/pkt_rmsd

  • # 脚本已初步测试通过,可以计算 口袋rmsd
  • # 初步检查 apo 和 complex 轨迹前几帧的rmsd,理论上,因为参考构象是complex初始结构,complex应该是0。测试得到的结果显示,complex接近0,apo不是0(如下图)