20240826 MD procedure 

基于20240825 晚和乐云师姐的讨论,开展以下工作
trypsin-inhibitors 体系
trypsin-inhibitors

3PTB和5eg4序列比对

进入3PTB的PDB界面,find similar proteins by sequence 100%, 

配体准备

  • # 22224 
  • # 172.21.85.24  
  • # 使用薛定谔优化结构(图形化界面操作)
  • # pH = 8.0,手性从3D结构定(晶体结构),力场为2017版的默认力场OPLS3
  • # 高斯优化
  • # 原始文件 /home/databank/lywu/trypsin/inhibitiors/gaussian_job 

  • # 注意检查体系的电荷和自选多重度
  • antechamber -i lig.sdf -fi sdf -o lig.gjf -fo gcrt -at gaff2 -gn "%nproc=4" -gm "%mem=4GB" -gk "#B3LYP/6-31G* em=gd3bj pop=MK iop(6/33=2,6/42=6) opt" -rn MOL  -nc 0  

  • # 上述工作乐云师姐已完成,高斯优化已完成,拿到了log文件
  • ###################################################################################
  • # 以下工作由我接手
  • # 85.24 /home/databank/zzy/project/MD/koff/trypsin/ligprep-opt
  • # 基于高斯优化日志文件,拟合RESP电荷,生成AMBER需要的参数文件(prep)
  • conda activate ambertools
  • for i in `ls`;do cd $i;antechamber -i lig.log -fi gout -o lig.prep -fo prepi -c resp;parmchk2 -i lig.prep -f prepi -o lig.frcmod -a y;cd ../;done
  • antechamber -i ensitrelvir.log -fi gout -o ensitrelvir.prep -fo prepi -c resp
  • # 这一步生成的NEWPDB.PDB 很重要
  • parmchk2 -i ensitrelvir.prep -f prepi -o ensitrelvir.frcmod -a y
  • # 这一步本质上是获得坐标,尝试直接从晶体结构中抠出小分子,提取坐标
  • # gv里分别打开 NEWPDB.PDB 与 5eg4_ligand_native_277.mol2(晶体结构配体文件)
  • # 打开GV tools-atom list-鼠标点击symbol列-rows-sort selected -拖动鼠标选择所有H-edit-delete-selected atoms),接着仍在atom list中,edit-z matrix-standardize,分别保存<步骤一>
  • # 得到 g16-gv.pdb crystal-gv.pdb
  • # GV里 检查 g16-gv.pdb crystal-gv.pdb,更改crystal-gv.pdb (atom list - Tag),使其Tag 与g16-gv.pdb 完全一致。
  • # 20240826 经乐云师姐指正,参考子涧师兄20230703的提出的方法,<步骤一>完成后,两个文件的原子index是一致的,无需再对(atom list - Tag)做修改。
  • # 注意:输入的文件晶体结构文件需要是sdf文件!mol2无法成功
  • # 20240806 检查发现,并不行,原子对不上

  • dos2unix *
  • grep -v "CONECT" g16-gv.pdb |cut -b 1-26 > symbol
  • cat crystal-gv.pdb | cut -b 29-78|sed '1,2d'|sed '1i Combineing the coordinates from the crystal structure with the atomic numbers from the Gaussian optimized structure'> coordinate
  • paste -d " " symbol coordinate|sed '1i TITLE      lig.pdb'> lig.pdb
  • ### 可视化检查

受体准备

  • # PDBBIND
  • # /home/databank/zzy/project/MD/koff/trypsin/pro-pre/pdbbind
  • conda activate pdb2pqr
  • pdb2pqr30 5eg4_ligand_native_277_protein.pdb 5eg4_pred.pqr --ff AMBER --ffout AMBER --with-ph 8.0 --pdb-output 5eg4_pred.pdb
  • # 直接从PDBBIND蛋白结构出发,用tleap读取,存成新的蛋白文件,再进行二硫键相关的处理
  • # /home/databank/zzy/project/MD/koff/trypsin/pro-pre
  • tleap -f tleap-pdbclean.in
  • # 得到 5eg4-pdb2pqr-tleap.pdb
  • # 二硫键的特殊处理
  • 1)找到形成二硫键的氨基酸,把残基名字改为CYX;
  • 2)删掉CYX的所有H;
  • 3)用tleap中的bond连接二硫键,可以在cpptraj中的trajout output.pdb conect命令中输出CONET信息检查

  • grep -v "H   CYX" 5eg4-pdb2pqr-tleap.pdb|grep -v "HA  CYX"|grep -v "HB2 CYX"|grep -v "HB3 CYX" >pro-tleap.pdb

  • (ambertools) [lywu@localhost pro-pre]$ wc -l 5eg4_pred.pdb 5eg4-pdb2pqr-tleap.pdb pro-tleap.pdb 
  •   3221 5eg4_pred.pdb
  •   3222 5eg4-pdb2pqr-tleap.pdb
  •   3174 pro-tleap.pdb
  • # /home/databank/zzy/project/MD/koff/trypsin/complex-pre/trypsin-31
  • # 发现PDB2PQR处理得到的蛋白质已经没有名字为CYS的氨基酸了,都是CYX
  • # 删除氢原子的时候发现有12个(6对)CYX,各自有4个H(H,HA,HB2,HB3},总共48个,但是删掉后比原来少了13个。。
  • ##################################################################################
  • (base) [lywu@localhost trypsin-31]$ wc -l 5eg4_pred_CYX_cleaned.pdb 
  • 3174 5eg4_pred_CYX_cleaned.pdb
  • (base) [lywu@localhost trypsin-31]$ grep -v "H   CYX" 5eg4_pred.pdb|grep -v "HA  CYX"|grep -v "HB2 CYX"|grep -v "HB3 CYX"|wc -l
  • 3174
  • (base) [lywu@localhost trypsin-31]$ wc -l 5eg4_pred.pdb 
  • 3221 5eg4_pred.pdb
  • (base) [lywu@localhost trypsin-31]$ grep CY 5eg4_pred.pdb |grep H|wc -l
  • 48
  • ##################################################################################
  • # 5eg4_pred_CYX_cleaned.pdb是手动删除的
  • # 先用 5eg4_pred_CYX_cleaned.pdb往下做
  • tleap 重新输出结构后该问题解决

复合物准备

  • # /home/databank/zzy/project/MD/koff/trypsin/complex-pre/trypsin-31
  • # tleap
  • source leaprc.protein.ff19SB
  • source leaprc.gaff2
  • source leaprc.water.opc

  • loadamberparams /home/databank/zzy/project/MD/koff/trypsin/ligprep-opt/g16/31/lig.frcmod
  • loadamberprep /home/databank/zzy/project/MD/koff/trypsin/ligprep-opt/g16/31/lig.prep

  • mol=loadpdb lig.pdb 
  • pro=loadpdb pro-tleap.pdb
  • bond pro.7.SG pro.137.SG
  • bond pro.25.SG pro.41.SG
  • bond pro.173.SG pro.197.SG
  • bond pro.162.SG pro.148.SG
  • bond pro.116.SG pro.183.SG
  • bond pro.109.SG pro.210.SG
  • 报错了,发现蛋白质中存在缺失的氨基酸,序号对不上
  • 发现师姐的那个3PTB也是一样的问题,开头的序号不是1,中间有缺失的氨基酸(例如:34后面直接跟的就是37)
  • solution: 直接用tleap读取蛋白结构,保存一个新的出来
  • com=combine {pro mol}
  • saveamberparm pro pro.prmtop pro.inpcrd
  • saveamberparm mol lig.prmtop lig.inpcrd
  • saveamberparm com native.prmtop native.inpcrd
  • savepdb com com-dry.pdb

  • #检查电荷
  • charge com
  • solvatebox com OPCBOX 10

  • # 1.5 Calculating Salt Molarity in an Explicit Water System (ambermd.org)
  • addionsrand com Na+ 24 Cl- 32 
  • # 计算电荷(检查是否为0,有浮点数无妨)
  • charge com

  • saveamberparm com complex.prmtop complex.inpcrd
  • savepdb com com.pdb
  • # 二硫键的特殊处理
  • 1)找到形成二硫键的氨基酸,把残基名字改为CYX;
  • 2)删掉CYX的所有H;
  • 3)用tleap中的bond连接二硫键,可以在cpptraj中的trajout output.pdb conect命令中输出CONET信息检查

  • parm ../native.prmtop
  • trajin ../com-dry.pdb
  • trajout test.pdb conect
  • run
  • # 是检查prmtop文件的键连信息
  • # 除此以外,也可以检查topol文件的键连信息(bond部分)
  • #进入python 
  • import parmed as pmd
  • amber = pmd.load_file('complex.prmtop','complex.inpcrd')
  • amber.save('topol.top')
  • amber.save('gromacs.gro')

  • #修改topol.top 与 gromacs.gro
  • sed -i "s/WAT/SOL/g" topol.top
  • sed -i "s/system1/Protein/g" topol.top
  • ######################################################################
  • # 20240826 完成到这一步 SMD是否需要位置限制?网络波动,有道云打不开
  • # 0827 冲!
  • # 在蛋白质结束和小分子开始前添加位置限制(moleculetype)
  • sed -i '36213 a ; Include Position restraint file\n#ifdef  POSRES\n#include "posre1.itp\n#endif\n' topol.top
  • # 在小分子结束和离子开始前添加位置限制(moleculetype)
  • sed -i '37434 a ; Include Position restraint file\n#ifdef  POSRES\n#include "posre2.itp\n#endif\n' topol.top

  • sed -i "s/WAT/SOL/g" gromacs.gro

  • gmx_mpi make_ndx -f gromacs.gro -o index.ndx
  • > 1|13

  • # 位置限制文件只是个索引,规定了哪些原子被限制
  • gmx_mpi genrestr -f gromacs.gro -o posre1.itp
  • sed -n '1,62p' posre1.itp > posre2.itp
  • 关于mdp文件的一些注意事项:
  • 1. 同一个工作中mdp一定要一致
  • 2. 尽量不要出现 warning ,若出现,仔细检查

体系平衡

  • # /home/databank/zzy/project/MD/koff/trypsin/complex-pre/trypsin-31/pre-equilibrium
  • mkdir em nvt npt mdp

  • cp /home/databank/lywu/vsremd_plus/protein-ligand/trypsin-benzamidine/pre-equilibrium/mdp-file/* ./mdp/
  • # nvt,npt 都改成200ns
  • ### 能量最小化
  • # /home/databank/zzy/project/MD/koff/trypsin/complex-pre/trypsin-31/pre-equilibrium/em
  • gmx_mpi grompp -f ../mdp/em.mdp -c ../gmx.gro -r ../gmx.gro -p ../topol.top -o em.tpr 
  • nohup mpirun -np 100 gmx_mpi mdrun -v -deffnm em &

  • ### 等温等容预平衡
  • # /home/databank/zzy/project/MD/koff/trypsin/complex-pre/trypsin-31/pre-equilibrium/nvt
  • gmx_mpi grompp -f ../mdp/nvt.mdp -c ../em/em.gro -r ../em/em.gro -p ../topol.top -o nvt.tpr
  • nohup mpirun -np 100 gmx_mpi mdrun -v -deffnm nvt &

  • ### 等温等压预平衡
  • # /home/databank/zzy/project/MD/koff/trypsin/complex-pre/trypsin-31/pre-equilibrium/npt
  • gmx_mpi grompp -f ../mdp/npt.mdp -c ../nvt/nvt.gro -r ../nvt/nvt.gro -p ../topol.top -o npt.tpr
  • nohup mpirun -np 100 gmx_mpi mdrun -v -deffnm npt &
  • 对于该体系,nvt不跑,体系会崩溃,即使先1fs,再2fs,或者1fs后再能量最小化,也是会崩溃
  • 但是这种调试的方法,确实会逐渐使体系稳定(npt能跑更多的步数,一开始跑10几步报错,后买你300多步报错)

SMD

复制师姐的dat 文件,smd.sh , mdp文件
复制自己的top文件,npt结构文件,正则化命名
dat 文件里的 
ligand: COM ATOMS=2472
active-residue: COM ATOMS=3225
是根据CV来的,需要根据我们自己体系里的原子index修改(这个体系里,都用苯甲脒上的苄基碳和对应的关键resn ASP189上的羧基碳)
修改后,检查sh 文件里的核数,可以跑SMD(google 有空看一下参数)
跑出来会得到 smd${I}.gro, 检查是否成功的将小分子拉出来了,若没有,可增加副本数(多20个拉的距离很远的副本),一定要拿到小分子在 on/off 路径上 的一系列 构象。
用这些构象,去泡vsREMD/..
  • # 24上的SMD很慢,去23上跑
  • # 85.23 /home/databank_70t/zzy/project/koff/trypsin-31/smd
  • scp -r lywu@172.21.85.24:/home/databank/zzy/project/MD/koff/trypsin/complex-pre/trypsin-31 ./
  • cp ../pre-equilibrium/npt/npt.gro ./
  • cp ../pre-equilibrium/topol.top ./gmx.top

  • 在npt.gro里找到对应的原子index
  • ligand: COM ATOMS=2472
  • active-residue: COM ATOMS=33
  • 做到这一步突然发现 CA离子没加,回去 去加离子
  • 在 tleap 加载的那个蛋白文件里加 
  • 这个问题的 ”根源“是PDBBIND里没加 钙离子!!!!(-_-)

vsREMD

  • # pymol 里看SMD的结果,挑选20个构象
  • # 85.23 /home/databank_70t/zzy/project/koff/trypsin-31/smd/40loop/gro-check/vsremd-select
  • for i in {0,10,13,15,17,21,24,25,27,28,29,31,32,33,34,35,36,37,38,39};do cp ../smd${i}.gro ./;done
  • ls > index
  • for i in {1..20};do b=`sed -n "${i}p" index`;mv $b smd-select${i}.gro;done

  • # 85.24 /home/databank/zzy/project/MD/koff/trypsin/vsremd/trypsin-31/smd-select
  • for i in {0..19};do a=`expr ${i} + 1`;mv smd-select${a}.gro smd-select${i}.gro;done

  • # /home/databank/zzy/project/MD/koff/trypsin/vsremd/trypsin-31
  • nohup sh -c 'for i in {0..19};do a=`expr ${i} + 1`; b=`sed -n "${a}p" temp` ; mkdir md$i; sed "s/300.00/${b}/g" md.mdp > md$i/md.mdp; cd md$i; gmx_mpi grompp -f md.mdp -p ../gmx.top -n ../index.ndx -r ../smd-select/smd-select${i}.gro -c ../smd-select/smd-select${i}.gro -o md.tpr; cd ../; done'

  • source ~/.gmx2022.5-vsremd.sh
  • nohup mpirun -np 100 gmx_mpi mdrun -v -deffnm md -multidir md0 md1 md2 md3 md4 md5 md6 md7 md8 md9 md10 md11 md12 md13 md14 md15 md16 md17 md18 md19 -replex 1000 &