rbd-ace2

ACE2体系准备
用/home/chpeng/zjfang/rbd-ace2/路径下准备好二硫键信息的ace2_H.pdb、rbd_H.pdb.
将ace2_H.pdb中的前19个氨基酸和第20位的H删掉。
  • pdb2pqr30 rbd.pdb rbd.pqr --ff AMBER --ffout AMBER --with-ph 7.4 --pdb-output rbd_H.pdb
              
  • source oldff/leaprc.ff14SB
  • loadAmberParams frcmod.ions234lm_1264_tip3p
  • loadAmberParams frcmod.ionsjc_tip3p
  • pro=loadpdb ../ace2_H.pdb
  • lig=loadpdb ../rbd_H.pdb
  • bond pro.133.SG pro.141.SG
  • bond pro.344.SG pro.361.SG
  • bond pro.530.SG pro.542.SG
  • bond lig.336.SG lig.361.SG
  • bond lig.379.SG lig.432.SG
  • bond lig.391.SG lig.525.SG
  • bond lig.480.SG lig.488.SG
  • com=combine {pro lig}
  • saveamberparm com native.prmtop native.inpcrd
  • solvatebox com TIP3PBOX 10
  • charge com    #计算0.15M的NaCl中和离子
  • addionsrand com Na+ 189 Cl- 170
  • #用这个公式算需要加多少Cl- https://ambermd.org/tutorials/basic/tutorial8/index.php
  • #需要170个Cl-
  • charge com
  • saveamberparm pro ace2.prmtop ace2.inpcrd
  • saveamberparm lig rbd.prmtop rbd.inpcrd
  • saveamberparm com complex.prmtop complex.inpcrd
  • savepdb com com-wet.pdb
  • quit
  转为GROMACS参数
  • mkdir gmx
  • cd gmx
  • cp ../../../change.py ./
  • python change.py

  • #Amber参数转gromacs
  • #Parmed (acype转过去之后,离子识别有点问题)
  • #Python change.py
  • import parmed as pmd
  • amber=pmd.load_file("../complex.prmtop","../complex.inpcrd")
  • amber.save("gmx.top")
  • amber.save("gmx.gro")
  • exit()      
转为GMX参数后Zn2+被分成一个单独的moleculetype,但是限制的选项只能针对同一个moleculetype下的原子,所以需要把Zn2+修改到对应的moleculetype下。
好在离子不与其他原子成键,只需要在[ atoms ]的最后一行添加即可
可搜索[ bonds ],[ bonds ]的前面就是atoms的最后一行 
注意事项:既然已经把ZN合并到system1,在最后一项中的[ molecules ]中要记得删掉ZN 。除新添加的,所有ZN相关的条目都删除。
Zn2+的距离限制
gmx.top中添加如下信息:
  • [ distance_restraints ]
  • ;  ai aj    type index type   low up1 up2 fac
  •  5623 9495   1    0     1     0.0 0.3 0.4 1.0
  •  5640 9495   1    0     1     0.0 0.3 0.4 1.0
  •  5679 9495   1    0     1     0.0 0.3 0.4 1.0
  •  6050 9495   1    0     1     0.0 0.3 0.4 1.0

  • #ifdef POSRES
  • #include "posre1.itp"
  • #endif

#这里的posre1.itp需要单独生成,对哪里限制就生成哪里的posre.itp文件。这里需要对两个蛋白质限制,所以生成两个,gmx.top文件中也需要添加两次itp
  • #生成索引文件
  • gmx_mpi make_ndx -f gmx.gro -o index.ndx
  • #根据索引文件生成限制文件:选择protein-H,只限制重原子。
  • gmx_mpi genrestr -f gmx.gro -n index.ndx -o posre.itp
  • #也可以直接生成限制文件
  • gmx_mpi genrestr -f gmx.gro -o posre.itp    
注意事项:
1) posre.itp中的编号要与gmx.top中的一致,但是gmx.top中的原子编号与gmx.gro是不一致的
2)posre.itp需要预gmx.top放在同一个文件夹中         
Gromacs能量最小化 :对于GMX2019,在进行grompp的时候一定要加 -r 选项
  • #gpu:
  • gmx_mpi grompp -f ../../em.mdp -p gmx.top -c gmx.gro -o em.tpr -maxwarn 1 -r gmx.gro
  • nohup gmx_mpi mdrun -v -deffnm em &
  • #CPU
  • nohup mpirun -np 20 gmx_mpi mdrun -v -deffnm em &       
Gromacs平衡: 需要一直平衡到dt=0.002不出问题
  • gmx_mpi grompp -f ../../npt.mdp -p gmx.top -c em.gro -o npt.tpr -maxwarn 1 -r em.gro
  • nohup gmx_mpi mdrun -v -deffnm npt &
 npt不行,可以加 nvt调整密度:
  • gmx_mpi grompp -f ../../nvt.mdp -p gmx.top -c npt.gro -o nvt.tpr -maxwarn 1 -r npt.gro
  • nohup gmx_mpi mdrun -v -deffnm nvt &

npt、nvt来回几遍直到dt=0.002能跑
Gromacs提交md:
  • gmx_mpi grompp -f ../../md.mdp -p gmx.top -c npt.gro -o md.tpr -maxwarn 1 -r npt.gro
  • nohup gmx_mpi mdrun -v -deffnm md &
  •               
通过1ns的MD测试后,把md.tpr更改为200ns。超算上的版本是5.1.4 ,需要在cpu256上source到lywu.sh,再调用Gromacs延长时间到200ns
  • source ~/lywu/lywu.sh 
  • mkdir tpr-200ns
  • cd tpr-200ns
  • gmx_mpi convert-tpr -s ../md.tpr -o md.tpr  -until 200000
# convert-tpr:用于准备tpr文件,具体指延长MD模拟时间(通常该任务由于某些原因已经停止)时所需要的输入文件,即mdnew.tpr
#-s:指定已存在的tpr文件
#-f:指定轨迹文件
#.cpt:模拟断点文件(check point),该文件在模拟过程中每隔固定的时间间隔产生,保存了模拟系统的所有信息。若模拟因某些原因中断,可以使用该文件重新在断点处开始模拟,也可以从该断点文件开始,延长模拟时间
#-extend:指定延长的时间,单位ps,比如40000指40ns              
只需要提供给超算平台md.tpr文件即可,任务运行命令如下
  • gmx_mpi mdrun -v -deffnm md