GaMD-CMD教程

下面格式有误,具体pdf版找我要
cMD路径:172.21.85.9 /home/databank1/xhl
GaMD路径:75.4/home/databank/xhl/GaMD_3TFL_holo和GaMD_3TFL_apo[hX1] 
目录
一、 pymol处理3LFT. 3
清理pdb文件(clean up Protein PDB files)... 3
2.1  pdb清理... 5
2.2 质子化... 6
2.4 生成拓扑... 8
三、3LFT_holo_GaMD    (85.9) /home/databank1/xhl/3LFT_holo_gamd/ 19
3.1 分开蛋白配体... 19
3.2 蛋白准备... 19
3.2 TRP 配体准备... 19
3.3组装 holo 复合物... 20
3.3 复合物准备... 23
四、3LFT_holo_cMD    (85.9) /home/databank1/xhl/3LFT_holo_cmd/ 24
五、3LFT_apo_cMD    (85.9) /home/databank1/xhl/3LFT_apo_cmd/ 24
聚类,三条轨迹合并(根据口袋周围5埃的关键残基进行聚类)... 27
Cpptraj.in(85.24)... 28
MM/GBSA(85.24)... 29
 
 

一、 pymol处理3LFT

只保留A链,去除水分子, apo构象去除TRP配体。得3LFT_holo.pdb   3LFT_apo.pdb
检查蛋白质是否完整,有无缺失残基,缺失原子。,pdb文件查看。[hX2] 
   
   
REMARK    编号
   
   
   
   
含义
   
   
   
   
需要关注吗
   
   
  
  
REMARK   2
  
  
  
  
分辨率信息
  
  
  
  
需要看
  
  
  
  
REMARK   3
  
  
  
  
结构精修统计信息
  
  
  
  
可参考
  
  
  
  
REMARK   350
  
  
  
  
生物学组装信息
  
  
  
  
做多聚体时需要看
  
  
  
  
REMARK   465
  
  
  
  
缺失残基
  
  
  
  
非常重要
  
  
  
  
REMARK   470
  
  
  
  
缺失原子
  
  
  
  
非常重要
  
  
  
  
REMARK   500
  
  
  
  
几何异常,如键长、键角、Ramachandran 问题
  
  
  
  
可参考
  
  
  
  
REMARK   800
  
  
  
  
配体/非标准残基信息
  
  
  
  
有配体时需要看
  
  
 

二、3LFT_apo_GaMD  

清理pdb文件(clean up Protein PDB files)

在整个蛋白准备过程中,这一步非常重要,如果不对蛋白做适当地清理,那么后续的工作会出现大量的问题。
用视图软件(如vmd、pymol等)查看pdb文件或者直接用文本编辑器(如vi/vim)查看,删除与模拟无关的部分。如果有其它不是蛋白或水的分子,那么我们很可能要自己生成它们的库文件,这处理起来非常麻烦,因此尽量删除不需要的分子。
(1)大部分蛋白质都是由X射线衍射方法解析得到的,结晶单元中很可能含有多个蛋白质镜像,我们只需要从中挑选一个。
(2)删除所有与模拟无关的水分子,如果有一些水与小分子或蛋白配位结合,那么一定要保留它们,并且把它们的残基名(residue name)改为“WAT”或“HOH”。
(3)同样的,删除那些离子、辅酶分子和一些其它的与模拟不相关的成分。
(4)由于各种软件以及PDB库中的氢原子命名规则不一致,为了避免AMBER软件无法识别PDB中的氢原子,应先删除pdb文件中的氢原子,如果是在Linux系统中,可以用如下的命令:
(5)接下来,删除所有的连接信息(connectivity records)。这些主要来自于小分子,或者蛋白质中的双硫键。这部分信息虽然重要,但是AMBER软件本身无法识别它们;我们将使用其它方式来真实地反映键的连接。
像这样的以CONNECT开头的信息,我们都可以删除。
(6)在pdb中,某些氨基酸残基会有几种构象,你可以用视图软件查看选取其中一种,或者直接保留构象A,删除其它构象。
(7)在蛋白不同的链之间,我们需要加入“TER”来告诉程序,这是一条链的结束、一条新链的开始位置,特别是一些链的内部如果断裂了,一定要加入“TER”来分隔断裂处的氨基酸。对于保留下来的水分子,也需要在每个水分子间加入“TER”。
最终,pdb文件中只包含一些重原子的坐标信息,或者一些重要的水分子的氧的坐标信息。如果一些残基上有缺失的原子,也不会影响Amber软件正确处理pdb,因为只要残基名正确,程序就会根据残基模板自动补全这些缺失的原子。

修改部分残基名

考虑到我们模拟的环境比较复杂,在pdb文件中,残基的质子化状态也可能需要修正,这时需要相应地改变残基的名字。下面我们一一讲解这些需要考虑质子化状态的氨基酸。
(1)组氨酸(Histidine)
                                               
这种氨基酸的状态比较复杂,由于五元环有两个氮原子且存在的形式不具有对称性,这种氨基酸有三种存在形式,分别是HID/HIE/HIP。
HID,即d-histidine,将氢加在上图所示的氮原子上:
而HIP则是两个氮原子上都加氢,整个氨基酸呈质子化状态。在实际模拟中,我们将根据文献中的报道来确定某些重要氨基酸的质子化状态,而那些没有特别报道的氨基酸则采用默认状态。
(2)Asp、Glu、Lys
对于一些通常情况处于质子化状态的氨基酸,有时候可能需要去质子化,让他们处于电中性状态,那么对应的残基名也需要修改过来:
另外,AMBER中不允许出现电中性的精氨酸(arginine、ARG),因为这种氨基酸的pKa值为12,如此高的pKa使得它基本上都是质子化状态的。
(3)半胱氨酸(Cysteine)
半胱氨酸的质子化状态也非常特殊,由于末端的S原子可能与另一个半胱氨酸的S原子形成双硫键。如果是这种情况,S原子上不会加上氢原子,并且这两个氨基酸的名字应该改为“CYX”。
至于确定半胱氨酸是否存在双硫键,AMBER程序可以依据一定的算法自动识别,但仍然需要手动修改半胱氨酸的残基名。我们会在web平台中解决这一问题,避免带给用户过多的麻烦。
 

2.1  pdb清理

  
HETATM 里主要不是小分子残留,而是 MSE(硒代蛋氨酸)[LW3] [浩伦4] [浩伦5] (大多数晶体结构里的 MSE 是为了测相方便,用硒代蛋氨酸表达出来的“人工替代残基”,本质上通常就是把天然 Met 的 S 换成 Se。)
其中 231 位 MSE 有 altloc A/B 双构象
CA AMSE / CA BMSE
CB AMSE / CB BMSE
CG AMSE / CG BMSE
CE AMSE / CE BMSE
SE AMSE / SE BMSE
cp 3LFT_apo.pdb 3LFT_apo_raw.pdb
 
pdb4amber[hX6]  -i 3LFT_apo.pdb -o 3LFT_apo_clean1.pdb --dry --reduce
-i:输入原始 PDB
-o:输出清理后的 PDB
--dry:去水
--reduce:补氢/规范原子命名并处理一些结构问题
使用脚本将残基名 MSE 改成 MET 原子名 SE 改成 SD  HETATM 改成 ATOM[hX7] 
得到3LFT_apo_clean2.pdb
       
检查:
 
 
 
 
 
 
与配体及其口袋较远,19.7A,并且AB双构象已经改变了
 
 
 

2.2 质子化

  • conda activate pdb2pqr
  • pdb2pqr30[hX8]  3LFT_apo_clean2.pdb 3LFT_apo_clean2.pqr --ff AMBER --ffout AMBER --with-ph 7.4 --pdb-output 3LFT_apo_pqr.pdb
  • 得到3LFT_apo_pqr.pdb
  •  
  • 检查
  • ls -lh 3LFT_apo_clean2.pqr 3LFT_apo_pqr.pdb
  • grep '^ATOM' 3LFT_apo_pqr.pdb | awk '{print $4}' | sort | uniq | grep -E 'HIS|HID|HIE|HIP|CYS|CYX|LYN|ASH|GLH'
  • grep '^SSBOND' 3LFT_apo_pqr.pdb
  • grep '^ATOM' 3LFT_apo_pqr.pdb | head
  • grep '^ATOM' 3LFT_apo_pqr.pdb | tail
  •  
  • ·  只有 HIE,说明组氨酸已经被指定为 ε 位质子化形式[zz9]  
  • ·  没有 SSBOND 记录[zz10]  
  • ·  没看到 CYX / ASH / GLH / HIP 这些特殊残基 
  • ·  有正常的 OXT 末端
  •  
  •  
  • 检查:pymol显示组氨酸
  • select his_all, resn HIS+HID+HIE+HIP
  • show sticks, his_all
  • color yellow, his_all
  •   
该 His 与配体最近距离约 4.1 Å,位于结合口袋附近但未见明显直接氢键几何关系;其周围虽存在 Asp 残基,但咪唑环 ND1 和 NE2 未朝向 Asp 羧酸基,暂未见该位点必须手动调整质子化状态的明确证据,可先接受自动分配结果。

2.3 Tleap

  • cat > leap_check.in <<'EOF'
  • source oldff/leaprc.ff14SB
  • source leaprc.water.tip3p
  • loadAmberParams frcmod.ionsjc_tip3p
  • pro = loadpdb 3LFT_apo_pqr.pdb
  • check pro
  • charge pro
  • desc pro
  • quit
  • EOF
  • Warning
  •  
  • /home/chpeng/software/amber18/bin/teLeap: Warning!
  • The unperturbed charge of the unit (-6.000000) is not zero.
  • # ·  蛋白总电荷 = -6 后面要加离子中和
  • /home/chpeng/software/amber18/bin/teLeap: Warning!
  • Close contact of 1.455130 angstroms between .R<ASP 93>.A<OD2 10> and .R<THR 149>.A<HG1 12>
  •  
  • /home/chpeng/software/amber18/bin/teLeap: Warning!
  • Close contact of 1.159596 angstroms between .R<SER 212>.A<HG 9> and .R<LYS 214>.A<HG2 9>
  •  
  • /home/chpeng/software/amber18/bin/teLeap: Warning!
  • Close contact of 1.470285 angstroms between .R<SER 231>.A<HG 9> and .R<VAL 232>.A<H 2>
  •  
#这些 warning 都可以接受,不用停。(GPT)

2.4 生成拓扑

计算加入电荷数
 添加正负电荷的数目需要根据盒子的体积进行计算,使得最后的离子浓度为0.15M,同时也要保证体系为电中性)
  • cat > leap_volume.in <<'EOF'
  • source oldff/leaprc.ff14SB
  • source leaprc.water.tip3p
  • loadAmberParams frcmod.ionsjc_tip3p
  •  
  • pro = loadpdb 3LFT_apo_pqr.pdb
  • solvatebox pro TIP3PBOX 12.0
  • charge pro
  • quit
  • EOF
  • tleap -f leap_volume.in > leap_volume.log
  • grep -n "Volume:" leap_volume.log 52: Volume: 477561.964 A^3 (pdb2pqr) [chpeng@localhost 3LFT_apo_gamd]$ 
  • grep -n "Added" leap_volume.log | tail 54: Added 11364 residues. (pdb2pqr) [chpeng@localhost 3LFT_apo_gamd]$ 
  • grep -n "Total unperturbed charge" leap_volume.log 55:Total unperturbed charge: -6.000000
  •  
  • NaCl 盐对数 = 43 对[LW11] 
  • addionsrand pro Na+ 49 Cl- 43
  • 溶剂化加盒子
  • cat > leap_solvate.in <<'EOF'
  • source oldff/leaprc.ff14SB
  • source leaprc.water.tip3p
  • loadAmberParams frcmod.ionsjc_tip3p
  •  
  • pro = loadpdb 3LFT_apo_pqr.pdb
  •  
  • solvatebox pro TIP3PBOX 12.0[zz12] [LW13] 
  • charge pro
  •  
  • addionsrand pro Na+ 6 
  • charge pro
  •  
  • saveamberparm pro pro-sol.prmtop pro-sol.inpcrd[zz14] [LW15] 
  • savepdb pro pro.pdb
  •  
  • quit
  • EOF
  • 得到pro-sol.prmtop  pro-sol.inpcrd  pro-sol.pdb

2.5 pre-equrlibrium

  • 01-min.in[hX16] [hX17] 
  • minimization simulation
  • &cntrl
  •  imin=1,       ! Minimize the initial structure
  •  maxcyc=1000, ! Maximum number of cycles for minimization
  •  ncyc=500,    ! Switch from steepest descent to conjugate gradient minimization after ncyc cycles
  •  ntb=1,        ! Constant volume
  •  ntp=0,        ! No pressure scaling
  •  ntf=1,        ! Complete force evaluation
  •  ntc=1,        ! No SHAKE
  •  ntpr=5000,      ! Print to mdout every ntpr steps
  •  ntwr=200,    ! Write a restart file every ntwr steps
  •  cut=9.0,      ! nonbonded cutoff, in angstroms
  •  
  •  ! Wrap coordinates when printing them to the same unit cell
  •  iwrap=1,
  •  ntwprt = 4383,#默认输出全原子[LW18] 
  •  ntr=1, restraintmask='(@1-4383)',(限制为全原子[zz19] [LW20] ,与cmd教程中的:1-439'    (这里的1-439修改成你的体系复合物实际的残基数目编号)  不一样
  •  restraint_wt=1.0
  •  /[浩夏21] 
  • 02-min.in
  • minimization simulation without restrain
  • &cntrl
  •  imin=1,
  •  maxcyc=100000,
  •  ncyc=50000,
  •  ntb=1,
  •  ntp=0,
  •  ntf=1,
  •  ntc=1,
  •  ntpr=5000,
  •  ntwr=5000,
  •  cut=9.0,
  •  
  •  iwrap=1,
  •  ntwprt=,
  • /
  • 03-nvt.in
  • heat the system to 310 for 200ps and then equilbriation for 200ps in nvt
  • &cntrl
  •  imin=0,irest=0,ntx=1,
  •  nstlim=2500,dt=0.001,
  •  ntc=2,ntf=2,
  •  ntb=1,
  •  cut=9.0,      ! nonbonded cutoff, in angstroms
  •  ntpr=500, ntwx=500,
  •  ntt=3, gamma_ln=1.0,
  •  ntr=1, restraintmask='!:WAT,Na+,K+,Cl-',(模板这里和之前的不一致[zz22] )
  •  restraint_wt=0.5,
  •  nmropt=1,
  •  ! Wrap coordinates when printing them to the same unit cell
  •  iwrap=1,
  •  ntwprt = ,
  •  /
  •  &wt TYPE='TEMP0', istep1=0, istep2=2500,
  •    value1=0.1, value2=100.0, /(此处100)[浩夏23] [LW24] [浩伦25] 
  •  &wt TYPE='END'/
  • 04-nvt.in
  • density the system for another 200ps
  • &cntrl
  •  imin=0,        ! No minimization
  •  irest=1,       ! This IS a new MD simulation
  •  ntx=5,         ! read coordinates only
  •  ! Temperature control
  •   ntt=3,         ! Langevin dynamics
  •   gamma_ln=1.0,  ! Friction coefficient (ps^-1)
  •   ig=-1,         ! random seed
  •   ! Potential energy control
  •   cut=9.0,       ! nonbonded cutoff, in Angstroms
  •  
  •   ! MD settings
  •   nstlim=50000, ! simulation length
  •   dt=0.002,      ! time step (ps)
  •   ! SHAKE
  •   ntc=2,         ! Constrain bonds containing hydrogen
  •   ntf=2,         ! Do not calculate forces of bonds containing hydrogen
  •   ! Control how often information is printed
  •   ntpr=1000,     ! Print energies every 1000 steps
  •   ntwx=1000,     ! Print coordinates every 1000 steps to the trajectory
  •   ntwr=5000,    ! Print a restart file every 10K steps (can be less frequent)
  •   ntxo=2,        ! Write NetCDF format
  •   ioutfm=1,      ! Write NetCDF format (always do this!)
  •   ! Wrap coordinates when printing them to the same unit cell
  •   iwrap=1,
  •   ntwprt = 4383,
  •   ! Constant pressure control. Note that ntp=3 requires barostat=1
  •   barostat=2,    ! Berendsen... change to 2 for MC barostat
  •   ntp=1,         ! 1=isotropic, 2=anisotropic, 3=semi-isotropic w/ [浩伦26] surften
  • (ntp=3,         ! 1=isotropic, 2=anisotropic, 3=semi-isotropic w/ surften
  •   csurften=3, gamma_ten=0.0, ninterface=2,(此处原模版为膜体系,进行更改)
  •   pres0=1.0,     ! Target external pressure, in bar
  •   taup=0.5,      ! Berendsen coupling constant (ps)
  •   ntr=1, restraintmask='!:WAT,Na+,K+,Cl-',
  •   restraint_wt=0.5,
  •   /
  •  &wt type='TEMP0', istep1=0, istep2=50000,
  •                     value1=100.0, value2=310.0 /[浩伦27] 
  •  &wt TYPE='END' /
  •  
  • 05-bb
  • density the system for  100ps
  • &cntrl
  •  imin=0,        ! No minimization
  •  irest=1,       ! This IS a new MD simulation
  •  ntx=5,         ! read coordinates only
  •  ! Temperature control
  •   ntt=3,         ! Langevin dynamics
  •   gamma_ln=1.0,  ! Friction coefficient (ps^-1)
  •   tempi=310.0,   ! Initial temperature
  •   temp0=310.0,   ! Target temperature
  •   ig=-1,         ! random seed
  •   ! Potential energy control
  •   cut=9.0,       ! nonbonded cutoff, in Angstroms
  •  
  •   ! MD settings
  •   nstlim=500000, ! simulation length
  •   dt=0.002,      ! time step (ps)
  •   ! SHAKE
  •   ntc=2,         ! Constrain bonds containing hydrogen
  •   ntf=2,         ! Do not calculate forces of bonds containing hydrogen
  •   ! Control how often information is printed
  •   ntpr=1000,     ! Print energies every 1000 steps
  •   ntwx=1000,     ! Print coordinates every 1000 steps to the trajectory
  •   ntwr=5000,    ! Print a restart file every 10K steps (can be less frequent)
  •   ntxo=2,        ! Write NetCDF format
  •   ioutfm=1,      ! Write NetCDF format (always do this!)
  •   ! Wrap coordinates when printing them to the same unit cell
  •   iwrap=1,
  •   ntwprt = 4383,
  •   ! Constant pressure control. Note that ntp=3 requires barostat=1
  •   barostat=2,    ! Berendsen... change to 2 for MC barostat
  •   ntp=1,
  •  
  •   (ntp=3,         ! 1=isotropic, 2=anisotropic, 3=semi-isotropic w/surften
  • csurften=3, gamma_ten=0.0, ninterface=2,)删除
  •   pres0=1.0,     ! Target external pressure, in ba[浩夏28] r
  •   taup=0.5,      ! Berendsen coupling constant (ps)
  • ntr=1, restraintmask='@CA,C,N',
  •   ntr=1, restraintmask=':MOL | @CA,C,N',空蛋白MOL去掉[浩伦29] 
  •   restraint_wt=0.5,
  •   /
  • 06-ca
  • density the system for 100ps
  • &cntrl
  •  imin=0,        ! No minimization
  •  irest=1,       ! This IS a new MD simulation
  •  ntx=5,         ! read coordinates only
  •  ! Temperature control
  •   ntt=3,         ! Langevin dynamics
  •   gamma_ln=1.0,  ! Friction coefficient (ps^-1)
  •   tempi=310.0,   ! Initial temperature
  •   temp0=310.0,   ! Target temperature
  •   ig=-1,         ! random seed
  •   ! Potential energy control
  •   cut=9.0,       ! nonbonded cutoff, in Angstroms
  •  
  •   ! MD settings
  •   nstlim=500000, ! simulation length
  •   dt=0.002,      ! time step (ps)
  •   ! SHAKE
  •   ntc=2,         ! Constrain bonds containing hydrogen
  •   ntf=2,         ! Do not calculate forces of bonds containing hydrogen
  •   ! Control how often information is printed
  •   ntpr=1000,     ! Print energies every 1000 steps
  •   ntwx=1000,     ! Print coordinates every 1000 steps to the trajectory
  •   ntwr=5000,    ! Print a restart file every 10K steps (can be less frequent)
  •   ntxo=2,        ! Write NetCDF format
  •   ioutfm=1,      ! Write NetCDF format (always do this!)
  •   ! Wrap coordinates when printing them to the same unit cell
  •   iwrap=1,
  •   ntwprt = 4383,
  •   ! Constant pressure control. Note that ntp=3 requires barostat=1
  •   barostat=2,    ! Berendsen... change to 2 for MC barostat
  •   ntp=1,
  • (ntp=3,         ! 1=isotropic, 2=anisotropic, 3=semi-isotropic w/surften
  • csurften=3, gamma_ten=0.0, ninterface=2,)删除
  • [浩夏30] 
  •   pres0=1.0,     ! Target external pressure, in bar
  •   taup=0.5,      ! Berendsen coupling constant (ps)
  •   ntr=1, restraintmask='@CA',
  • ntr=1, restraintmask=':MOL | @CA',空蛋白MOL去掉
  •   restraint_wt=0.5,
  • /
  • Md-10ns.in 进行10ns常规md
  • density the system for another 10 ns
  • &cntrl
  •  imin=0,        ! No minimization
  •  irest=0,       ! This IS a new MD simulation
  •  ntx=1,         ! read coordinates only
  •  ! Temperature control
  •  ntt=3,         ! Langevin dynamics
  •  gamma_ln=1.0,  ! Friction coefficient (ps^-1)
  •  tempi=310.0,   ! Initial temperature
  •  temp0=310.0,   ! Target temperature
  •  ig=-1,         ! random seed
  • ! Potential energy control
  •  cut=9.0,      ! nonbonded cutoff, in angstroms
  •  
  • ! MD settings
  •  nstlim=5000000, ! simulation length
  •  dt=0.002,      ! time step (ps)
  •  ! SHAKE
  •   ntc=2,         ! Constrain bonds containing hydrogen
  •   ntf=2,         ! Do not calculate forces of bonds containing hydrogen
  •   ! Control how often information is printed
  •   ntpr=1000,     ! Print energies every 1000 steps
  •   ntwx=1000,     ! Print coordinates every 1000 steps to the trajectory
  •   ntwr=5000,    ! Print a restart file every 10K steps (can be less frequent)
  •   ntxo=2,        ! Write NetCDF format
  •   ioutfm=1,      ! Write NetCDF format (always do this!)
  •   ! Wrap coordinates when printing them to the same unit cell
  •   iwrap=1,
  •   ntwprt = 4383,
  •   ! Constant pressure control. Note that ntp=3 requires barostat=1
  •   barostat=2,
  •   ntp=1,
  • ntp=3,         ! 1=isotropic, 2=anisotropic, 3=semi-isotropic w/surften
  • csurften=3, gamma_ten=0.0, ninterface=2,)删除
  •  
  •   pres0=1.0,     ! Target external pressure, in bar
  •   taup=0.5,      ! Berendsen coupling constant (ps)
  • /
  •  
  • md.in
  • GaMD simulation
  •  &cntrl
  •     imin=0,        ! No minimization
  •     irest=0,       ! This IS a new MD simulation
  •     ntx=1,         ! read coordinates only
  •  
  •     ! Temperature control
  •     ntt=3,         ! Langevin dynamics
  •     gamma_ln=1.0,  ! Friction coefficient (ps^-1)
  •     tempi=310.0,   ! Initial temperature
  •     temp0=310.0,   ! Target temperature
  •     ig=-1,         ! random seed
  •  
  •     ! Potential energy control
  •     cut=9.0,      ! nonbonded cutoff, in angstroms
  •     !fswitch=10.0,  ! Force-based switching
  •  
  •     ! MD settings
  •     nstlim=500000, ! simulation length
  •     dt=0.002,      ! time step (ps)
  •  
  •     ! SHAKE
  •     ntc=2,         ! Constrain bonds containing hydrogen
  •     ntf=2,         ! Do not calculate forces of bonds containing hydrogen
  •  
  •     ! Control how often information is printed
  •     ntpr= 1000,     ! Print energies every 1000 steps
  •     ntwx= 1000,     ! Print coordinates every 1000 steps to the trajectory
  •     ntwr=5000,    ! Print a restart file every 10K steps (can be less frequent)
  • !   ntwv=-1,       ! Uncomment to also print velocities to trajectory
  • !   ntwf=-1,       ! Uncomment to also print forces to trajectory
  •     ntxo=2,        ! Write NetCDF format
  •     ioutfm=1,      ! Write NetCDF format (always do this!)
  •  
  •     ! Wrap coordinates when printing them to the same unit cell
  •     iwrap=1,
  •     ntwprt = ,(与原模版31876近似。下面参数设置相同)
  •  
  •     ! Constant pressure control. Note that ntp=3 requires barostat=1
  •     barostat=2,    ! Berendsen... change to 2 for MC barostat
  •     ntp=3,         ! 1=isotropic, 2=anisotropic, 3=semi-isotropic w/ surften
  •     pres0=1.0,     ! Target external pressure, in bar
  •     taup=0.5,      ! Berendsen coupling constant (ps)
  •  
  •     ! Constant surface tension (needed for semi-isotropic scaling). Uncomment
  •     ! for this feature. csurften must be nonzero if ntp=3 above
  •     csurften=3,    ! Interfaces in 1=yz plane, 2=xz plane, 3=xy plane
  •     gamma_ten=0.0, ! Surface tension (dyne/cm). 0 gives pure semi-iso scaling
  •     ninterface=2,  ! Number of interfaces (2 for bilayer)
  •  
  •     ! GaMD parameters
  •     igamd = 3, iE = 1, irest_gamd = 0,
  •     ,
  • ntcmd = 176000, nteb = 176000, ntave = 17600,
  • ntcmdprep = 8800, ntebprep = 8800,[浩夏31] 
  • (原子数38490)
  • ntcmd = 11200000, nteb = 11200000, ntave = 1120000,(1106264)
  •     ntcmdprep = 560000, ntebprep = 560000,(553132)[浩伦32] 
  •     sigma0P = 12.0, sigma0D = 12.0,
  •  /
  •  
  •  
  •  
  •  
  •  
  • gamd-restart.in
  • GaMD simulation
  •  &cntrl
  •     imin=0,        ! No minimization
  •     irest=1,       ! This IS a new MD simulation
  •     ntx=5,         ! read coordinates only
  •  
  •     ! Temperature control
  •     ntt=3,         ! Langevin dynamics
  •     gamma_ln=1.0,  ! Friction coefficient (ps^-1)
  •     tempi=310.0,   ! Initial temperature
  •     temp0=310.0,   ! Target temperature
  •     ig=-1,         ! random seed
  •  
  •     ! Potential energy control
  •     cut=9.0,      ! nonbonded cutoff, in angstroms
  •     !fswitch=10.0,  ! Force-based switching
  •  
  •     ! MD settings
  •     nstlim=500000, ! simulation length
  •     dt=0.002,      ! time step (ps)
  •  
  •     ! SHAKE
  •     ntc=2,         ! Constrain bonds containing hydrogen
  •     ntf=2,         ! Do not calculate forces of bonds containing hydrogen
  •  
  •     ! Control how often information is printed
  •     ntpr=,     ! Print energies every 1000 steps
  •     ntwx=,     ! Print coordinates every 1000 steps to the trajectory
  •     ntwr=5000,    ! Print a restart file every 10K steps (can be less frequent)
  • !   ntwv=-1,       ! Uncomment to also print velocities to trajectory
  • !   ntwf=-1,       ! Uncomment to also print forces to trajectory
  •     ntxo=2,        ! Write NetCDF format
  •     ioutfm=1,      ! Write NetCDF format (always do this!)
  •  
  •     ! Wrap coordinates when printing them to the same unit cell
  •     iwrap=1,
  •     ntwprt = 3,
  •  
  •     ! Constant pressure control. Note that ntp=3 requires barostat=1
  •     barostat=2,    ! Berendsen... change to 2 for MC barostat
  •     ntp=3,         ! 1=isotropic, 2=anisotropic, 3=semi-isotropic w/ surften
  •     pres0=1.0,     ! Target external pressure, in bar
  •     taup=0.5,      ! Berendsen coupling constant (ps)
  •  
  •     ! Constant surface tension (needed for semi-isotropic scaling). Uncomment
  •     ! for this feature. csurften must be nonzero if ntp=3 above
  •     csurften=3,    ! Interfaces in 1=yz plane, 2=xz plane, 3=xy plane
  •     gamma_ten=0.0, ! Surface tension (dyne/cm). 0 gives pure semi-iso scaling
  •     ninterface=2,  ! Number of interfaces (2 for bilayer)
  •  
  •     ! GaMD parameters
  •     igamd = 3, iE = 1, irest_gamd = 1,   
  •     ntcmd = 0, nteb = 0, ntave = 17600(154000, , ntave = 1120000,(正式运行改成)
  •     ntcmdprep = 0, ntebprep = 0,
  •     sigma0P = 6.0, sigma0D = 6.0,[浩夏33] 
  •  /
  • run-Gamd.sh
  •  
  •  
  • #!/bin/sh
  • export CUDA_VISIBLE_DEVICES=1
  •  
  • export CUDA_HOME=/usr/local/cuda-9.1
  • export PATH=/usr/local/cuda-9.1/bin:$PATH
  • export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64:/home/chpeng/software/amber18/lib:/home/chpeng/intel/compilers_and_libraries_2017.8.262/linux/compiler/lib/intel64:/home/chpeng/intel/compilers_and_libraries_2017.8.262/linux/compiler/lib/intel64_lin:/home/chpeng/intel/compilers_and_libraries_2017.8.262/linux/mkl/lib/intel64_lin:/home/chpeng/intel/compilers_and_libraries_2017.8.262/linux/mpi/intel64/lib
  • pmemd -O -i 01-min.in -p complex.prmtop -c complex.inpcrd -o 01-min.out -r 01-min.rst -x 01-min.nc -ref complex.inpcrd
  • pmemd.cuda -O -i 02-min.in -p complex.prmtop -c 01-min.rst -o 02-min.out -r 02-min.rst -x 02-min.nc -ref 01-min.rst
  • pmemd.cuda -O -i 03-nvt.in -p complex.prmtop -c 02-min.rst -o 03-nvt.out -r 03-nvt.rst -x 03-nvt.nc -ref 02-min.rst
  • pmemd.cuda -O -i 04-npt.in -p complex.prmtop -c 03-nvt.rst -o 04-npt.out -r 04-npt.rst -x 04-npt.nc -ref 03-nvt.rst
  • pmemd.cuda -O -i 05-bb.in -p complex.prmtop -c 04-npt.rst -o 05-bb.out -r 05-bb.rst -x 05-bb.nc -ref 04-npt.rst
  • pmemd.cuda -O -i 06-ca.in -p complex.prmtop -c 05-bb.rst -o 06-ca.out -r 06-ca.rst -x 06-ca.nc -ref 05-bb.rst
  • pmemd.cuda -O -i md-1ns.in -p complex.prmtop -c 06-ca.rst -o md-1ns.out -r md-1ns.rst -x md-1ns.nc -ref 06-ca.rst
  • pmemd.cuda -O -i md.in -p complex.prmtop -c md-10ns.rst -o md-200ns.out -r md-200ns.rst -x md-200ns.nc -ref md-10ns.rst
  • ##gamd equilibration
  • pmemd.cuda -O -i md.in -p complex.prmtop -c md-10ns.rst -o gamd-1.out -x gamd-1.nc -r gamd-1.rst -gamd gamd-1.log -ref md-10ns.rst[浩夏34] 
  • ##gamd production
  • pmemd.cuda -O -i gamd-restart.in -p complex.prmtop -c gamd-1.rst -o gamd-2.out -x gamd-2.nc -r gamd-2.rst -gamd gamd-2.log -ref gamd-1.rst
  •  
  • 启动
  • chmod +x run-GaMD.sh
  •  
  • nohup ./run-GaMD.sh > run-GaMD.log 2>&1 &

三、3LFT_holo_GaMD    (85.9) /home/databank1/xhl/3LFT_holo_gamd/

3.1 分开蛋白配体

  • grep '^HETATM' 3LFT_holo.pdb | grep ' TRP A   1 ' > ligand_trp_raw.pdb
  • grep -v ' TRP A   1 ' 3LFT_holo.pdb > protein_holo_raw.pdb
  •  
3.2 蛋白准备
 
蛋白准备质子化如上
得到3LFT_holo_pqr.pdb
 

3.2 TRP 配体准备[hX36] 

  • 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=MKiop(6/33=2,6/42=6) opt" -rn MOL -nc 012. nohup g16 lig.gjf
  •  
  • Maestro中ligandprep 配体预处[浩伦37] 理ph设定为7.4,输出为两个构象,区别不大。默认选择第一个。输出为lig.sdf
  • 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=MKiop(6/33=2,6/42=6) opt" -rn MOL -nc 0
  •  
  • nohup g16[浩伦38]  lig.gjf &
  • 得到lig.log
  • antechamber -i lig.log -fi gout -o lig.prep -fo prepi -c resp
  • parmchk2 -i lig.prep -f prepi -o lig.frcmod -a y
  • 得到lig.prep、PDB.PDB、
  •  
  
出错
 
   根据自动化脚本file_types.py和lig_parmaeter.py的逻辑进行修改。
  从原始配体文件里拿到坐标 
  从 NEWPDB.PDB 里拿到原子名和PDB格式框架 
  从 ATOMTYPE.INF 里拿到原子名 → 原始配体中第几个原子的对应关系 
  把原始配体文件中的坐标,按这个对应关系,填回 NEWPDB.PDB 
  存成 lig.pdb
将ATOMTYPE.INF、/ligand_trp_raw.pdb NEWPDB.PDB
把 NEWPDB.PDB 里的重原子坐标,替换成 ligand_trp_raw.pdb 里对应原子的坐标;
氢原子行全部删掉;然后另存为 lig.pdb。

3.3 复合物准备

  • tleap
  • source leaprc.protein.ff14SB
  • source leaprc.gaff2
  • source leaprc.water.tip3p
  • loadamberparams lig.frcmod
  • loadamberprep lig.prep
  • mol = loadpdb lig.pdb
  • pro = loadpdb 3LFT_holo_pqr.pdb
  • 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
  •  
  •  
  • 检查蛋白com-dry.pdb与原来的3LFT_holo_pqr叠合
  • #warning不用管
  • charge com
  •  
  • solvatebox com TIP3PBOX 12
  • solvatebox com OPCBOX 12(前面加载的是 TIP3P 水模型参数)
  • addionsrand com Na+ 6
  • charge com   #为0
  • saveamberparm com complex.prmtop complex.inpcrd
  • savepdb com com.pdb
  •  
  •  
  • quit
  • 得到com.pdb[浩伦39]   complex.inpcrd  complex.prmtop
  • 查看除去水和离子的溶质数
  •  
  •  
  • 模拟将ntwprt = 4410[LW40] 
  •   
  • Restraintmask=':MOL加上mol
  • (
  • 上述一致。

四、3LFT_holo_cMD    (85.9) /home/databank1/xhl/3LFT_holo_cmd/

五、3LFT_apo_cMD    (85.9) /home/databank1/xhl/3LFT_apo_cmd/

蛋白配置等文件如上
 
  • cMD-amber.sh[浩夏41] 
  •  run-min.sh
  •  run-cMD.sh
  •  
  • 85.9的vmd不显示
  • 75.5的vmd显示
  •  
  •  
  • ERROR: Calculation halted.  Periodic box dimensions have changed too much from their initial values.
  •   Your system density has likely changed by a large amount, probably from
  •   starting the simulation from a structure a long way from equilibrium.
  •  
  •   [Although this error can also occur if the simulation has blown up for some reason]
  •  
  •   The GPU code does not automatically reorganize grid cells and thus you
  •   will need to restart the calculation from the previous restart file.
  •   This will generate new grid cells and allow the calculation to continue.
  •   It may be necessary to repeat this restarting multiple times if your system
  •   is a long way from an equilibrated density.
  •  
  •   Alternatively you can run with the CPU code until the density has converged
  •   and then switch back to the GPU code.[浩夏42] 
  • ·  1-min.in:最小化 1000 步,不是 ns,不能直接折算真实时间 
  • ·  02-min.in:最小化 100000 步,不是 ns 
  • ·  03-nvt.in:nstlim=2500, dt=0.001,实际只有 2.5 ps 
  • ·  04-npt.in:50000 × 0.002 ps = 100 ps 
  • ·  05-bb.in:500000 × 0.002 ps = 1000 ps = 1 ns 
  • ·  06-ca.in:500000 × 0.002 ps = 1000 ps = 1 ns 
  • ·  md-10ns.in:5000000 × 0.002 ps = 10000 ps = 10 ns 
  • ·  md.in:25000000 × 0.002 ps = 50000 ps = 50 ns 
  • ·  md-continue.in:也是 50 ns

六,分析

将拓扑文件输出为仅有溶质
  • cpptraj pro-sol.prmtop <<EOF
  • parmstrip :WAT,Na+,Cl-
  • parmwrite out pro.prmtop
  • run
  • EOF

rmsd .in

  • parm pro.prmtop
  •  
  • # 读取多条轨迹
  • trajin cmd-1.nc
  • trajin cmd-2.nc
  • trajin cmd-3.nc
  • trajin cmd-4.nc
  •  
  • # 处理 PBC 和居中蛋白
  • autoimage
  • center :1-4383 mass origin   # 以蛋白质残基 1-4383 为中心
  •  
  • # Backbone RMSD(Cα、C、N)以第一帧为参考结构
  • rms first :1-4383@CA,C,N out apo_backbone_rmsd.dat
  •  
  • run
  • quit

rmsf.in [hX43] 

  • parm pro.prmtop
  •  
  • # 读取多条轨迹
  • trajin cmd-1.nc
  • trajin cmd-2.nc
  • trajin cmd-3.nc
  • trajin cmd-4.nc
  •  
  • # PBC 处理和蛋白质居中
  • autoimage
  • center :1-4383 mass origin   # 以蛋白质残基 1-4383 为中心
  •  
  • # 对齐结构(RMS Fit),以第一帧的 CA 为参考
  • rms first :1-4383@CA
  •  
  • # 计算每个残基 Backbone 的 RMSF
  • atomicfluct :1-4383@CA,C,N byres out apo_backbone_rmsf.dat
  •  
  • # 可选:输出平均结构
  • average crdset avg_backbone.rst
  •  
  • run
  • quit

聚类,三条轨迹合并(根据口袋周围5埃的关键残基进行聚类)

  • Pymol中确定残基名称
  • # 1. 定义口袋:选择 TRP 残基周围 5 埃内的所有完整残基
  • # (请将 123 替换为 TRP 的实际残基编号)
  • select pocket, byres resn TRP and resi 123 around 5
  •  
  • # 2. 显示名称
  • label pocket and name CA, "%s-%s" % (resn, resi)
  • # 3. 打印
  • >iterate (pocket and name CA), print("Residue: %s %s" % (resn, resi))
先确定残基编号[浩伦45] 
 
  • Cpptraj
  • parm pro.prmtop
  • resinfo :1-300
  • run
  • quit

Cpptraj.in(85.24)

  • parm com-dry.prmtop
  •  
  • trajin run_cmd_1/cmd-1.nc 1 last 10
  • trajin run_cmd_1/cmd-2.nc 1 last 10
  • trajin run_cmd_1/cmd-3.nc 1 last 10
  • trajin run_cmd_1/cmd-4.nc 1 last 10
  • trajin run_cmd_2/cmd-1.nc 1 last 10
  • trajin run_cmd_2/cmd-2.nc 1 last 10
  • trajin run_cmd_2/cmd-3.nc 1 last 10
  • trajin run_cmd_2/cmd-4.nc 1 last 10
  •  
  • trajin run_cmd_3/cmd-1.nc 1 last 10
  • trajin run_cmd_3/cmd-2.nc 1 last 10
  • trajin run_cmd_3/cmd-3.nc 1 last 10
  • trajin run_cmd_3/cmd-4.nc 1 last 10
  •  
  • autoimage #PBC处理
  • cluster C1 \
  •     hieragglo epsilon 0.6 linkage epsilonplot epsilonplot.dat \
  •     rms :13,15,16,19,70,71,72,90,91,92,115,144,146,194,195,196,199,219,220,223,236 \
  •     sieve 10 random \
  •     out cnumvtime.dat \
  •     sil Sil \
  •     summary summary.dat \
  •     info info.dat \
  •         cpopvtime cpopvtime.agr normframe \
  •     repout rep repfmt pdb \
  •     singlerepout singlerep.nc singlerepfmt netcdf \
  •     avgout Avg avgfmt restart
  • run
  • EOF

MM/GBSA[浩伦46] (85.24)

  • Input file for running PB and GB
  • &general
  •   startframe=0, endframe=100000, interval=200, keep_files=0,
  • /
  • &gb
  •   igb=5, saltcon=0.150,
  • /
  • &decomp
  •    idecomp=1, csv_format=0,
  • /
  •  
  • nohup mpirun -np 16 MMPBSA.py.MPI -O -i mmgbsa.in -o mmgbsa.dat -cp native.prmtop -rp pro.prmtop -lp lig.prmtop -y dry-align.xtc -eo mmgbsa.csv &
  •  
  •  
  •  
  •  
  • molecular dynamics "你的关键词" source:Journal source:of source:the source:American source:Chemical source:Society
  • 在google scholar里用这个关键词搜
  • 我一般看jacs,你也可以看看jctc,jmc,或者子刊的methods
  •  
  •  
  •  
  •  [hX1]GaMD在老版本amber中不支持
  •  [hX2]# 1. 检查 PDB 文件中是否记录缺失残基 
  • grep "^REMARK 465" input.pdb 
  • # 2. 检查 PDB 文件中是否记录缺失原子 grep "^REMARK 470" input.pdb 
  • # 3. 提取蛋白中实际存在的残基编号,推荐使用固定列宽方式
  • awk ' substr($0,1,4)=="ATOM"{ chain=substr($0,22,1) resi=substr($0,23,4) resn=substr($0,18,3) gsub(/ /,"",resi) key=chain" "resi if(key!=prev_key){ print chain, resi, resn prev_key=key } }' input.pdb > residue_list.txt
  •  # 4. 检查同一条链内是否存在残基编号跳跃 awk ' NR>1{ if($1==prev_chain && $2!=prev_res+1){ print "Possible gap:", prev_chain, prev_res, "->", $1, $2 } } { prev_chain=$1 prev_res=$2 }' residue_list.txt
  •  
  •  [LW3]看一下这个Se是否有特殊作用,特别是是否影响配体结合,如果有需要跟合作课题组讨论一下
  •  [浩伦4]第一,231 位是否在配体口袋附近。
第二,231 位侧链是否直接参与了和配体/关键残基的接触。
 [hX6]pdb4amber把PDB清理成Amber容易接受的格式,也补了H。
 [hX7]PDB中有MSE时需要
 [hX8]根据PH和周围环境判断质子化状态,同H++网站作用。与上一步略有重合
 [zz9]可以人工再检查下这几个组氨酸的周围环境
 [zz10]二硫键可以再用pymol检查下
Show-disulfides
 [LW11]只保留6个Na+中和电荷就可以
 [zz12]建议12
 [LW13]可以12
 [zz14]你这个不是complex,命名要注意,否则后面容易搞混
 [LW15]Pro-sol
 [hX16]我的看法和经验是,GROMACS再minimization这一步,经常无法实现最大受力原子小于设定阈值,但minimization依然正常完成和收敛。此时我会把em.gro中对应的最大受力原子可视化查看,如果没有physical error,一般可以正常往后优化了-lywu
 [hX17]我建议我们课题组后续做MD模拟,在em这一步,统一为限制重原子
这一建议适用于从晶体结构建模出发,因为H是后续添加的,所有用em这一步进行优化
如果建模初始结构包含多处非晶体解析位点,可以做2次em,一次限制重原子,一次不加限制
当然,特殊的体系,比如宣烨的PPI抑制剂课题,需要专门设计em流程-lywu
 [LW18]这个参数要输出全部原子,换体系的时候注意更改
 [zz19]amber我用的少,但是想来,如果限制了溶剂,这一步就没啥意义了,全都限制了咋动呢
 [LW20]只限制溶质
 [浩夏21]restraintmask='(@1-设置的是除去水和离子外的溶质
 [zz22]就是你目前的体系中,除了蛋白(配体),重要的离子(比如有配位键)外的那些组分,每个体系不一样
 [浩夏23]310K模拟温度,此处设置100?
 [LW24]看一下我给你的文件中设置的是多少
 [浩伦25]100,下面的04为310
 [浩伦26]barostat=1也许,2比较新
 [浩伦27]此处310K
 
 [浩夏28]膜体系
 [浩伦29]Holo保留
 [浩夏30]原来为膜体系
 [浩夏31]总原子数指的是输出原子,ntwprt数目
 [浩伦32](总原子数是276566)ntcmdprep,ntebprep是体系总原子数的2倍。 ntcmd,nteb是ntave的整数倍。ntave,设置为体系总原子数的4倍。
 [浩夏33]                                                
 [浩夏34]-i md.in: 读取名为 md.in 的输入文件,配置模拟参数。
-p complex.prmtop: 使用 complex.prmtop 作为力场拓扑文件。 
 -c md-10ns.rst: 使用 md-10ns.rst 作为初始坐标文件,恢复上一次模拟的状态。 
-o gamd-1.out: 输出模拟过程的详细信息到 gamd-1.out。 
-x gamd-1.nc: 输出分子的轨迹到 gamd-1.nc。 
-r gamd-1.rst: 输出重启文件到 gamd-1.rst,保存当前的坐标和速度。 
-gamd gamd-1.log: 输出 GaMD 日志到 gamd-1.log,记录 GaMD 模拟的状态。 
-ref md-10ns.rst: 使用 md-10ns.rst 作为参考文件进行模拟过程中的比较。
 [浩夏35]gamd-restart.dat,每个跑GAMD运行文件夹下面都需要有这个文件,这样续跑的时候才是对的。不然不会报错,但跑的结果是不对的
 [hX36]  
  •  [浩伦38]Gaussian 16:  ES64L-G16RevB.01 20-Dec-2017
 
存储够的情况下, [LW40]输出全原子
 
提交超算前提前预估下需要的存储,不够的话,得让工程师再增加
 [浩夏41]原脚本里多处写成了:npt=1/应该是ntp =1吧
 [浩夏42]还是第一次跑的问题,推荐准备阶段用CPU。乐云师姐建议可以从03开始再跑一遍,但实际上次还是老老实实用来CPU
 [hX43]cpptraj -i rmsf.in
 [浩伦44]Residue: HIS 61
Residue: SER 63
Residue: LEU 64
Residue: ILE 67
Residue: ALA 118
Residue: THR 119
Residue: PRO 120
Residue: ALA 138
Residue: ILE 139
Residue: THR 140
Residue: ASP 163
Residue: GLU 192
Residue: ASN 194
Residue: ILE 242
Residue: ASP 243
Residue: ASN 244
Residue: ALA 247
Residue: SER 267
Residue: ALA 268
Residue: MSE 271
Residue: GLN 284
 Iterate: iterated over 21 atoms.
与经过处理后的残基序号不同。MSE也改为了MET
 
 [浩伦45]:13,15,16,19,70,71,72,90,91,92,115,144,146,194,195,196,199,219,220,223,236
 [浩伦46]选平衡段,3.nc或者4.nc
之前命令生成的拓扑文件
·  pro.prmtop:只有蛋白 
·  lig.prmtop:只有配体 
·  native.prmtop:蛋白 + 配体复合物