Zhang Xin's Tech Blog

Back

分子动力学模拟:Gromacs教程3-蛋白质-配体复合物#

概述#

本文是对Gromacs官方教程第三课Tutorial 3: Protein-Ligand Complex的中文翻译,是蛋白质-配体复合物模拟。包含了:

  • 小分子配体的参数化
  • 复合物体系的构建
  • 结合模式分析
  • 相互作用能计算

本教程将指导你完成蛋白质-配体复合物的分子动力学模拟。与单纯的蛋白质模拟相比,配体的处理需要额外的步骤,特别是力场参数的准备。


第一阶段:准备工作#

1. 环境要求#

确保你已经安装了以下软件:

  • GROMACS(版本2020或更高)
  • ACPYPE 或 CGenFF(用于配体参数化)
  • PyMOL 或 VMD(用于结构可视化)
  • Open Babel(用于化学文件格式转换)

2. 获取结构文件#

  1. 从PDB数据库下载蛋白质-配体复合物结构,例如:1OYT ↗(HIV-1蛋白酶与抑制剂)
  2. 或者使用你自己的蛋白质-配体复合物结构

第二阶段:蛋白质-配体复合物模拟流程#

流程图
100%

正在加载流程图;也可展开下方源码查看。

查看流程图源码
graph TD
    A[蛋白质-配体复合物结构] --> B[分离蛋白质和配体];
    B --> C[蛋白质预处理];
    B --> D[配体参数化];
    C --> E[合并拓扑文件];
    D --> E;
    E --> F[构建溶剂盒子];
    F --> G[溶剂化和添加离子];
    G --> H[能量最小化];
    H --> I[NVT平衡];
    I --> J[NPT平衡];
    J --> K[成品MD模拟];
    K --> L[结合自由能分析];

步骤 1: 准备结构文件#

下载示例结构

# 下载示例结构
wget https://files.rcsb.org/download/1OYT.pdb
bash

使用PyMOL分离蛋白质和配体,以下是python脚本示例:

# PyMOL脚本:prepare_complex.py
# 加载结构
cmd.load('1OYT.pdb')

# 选择蛋白质(删除水分子和无关离子)
cmd.remove('resn HOH')
cmd.remove('not (polymer or organic)')

# 选择配体(假设配体残基名为INH)
cmd.select('ligand', 'resn INH')

# 保存蛋白质和配体
cmd.save('protein.pdb', 'not ligand')
cmd.save('ligand.pdb', 'ligand')

# 保存复合物
cmd.save('complex.pdb', 'all')
python

以下是PyMOL运行的命令:

# 使用PyMOL打开pdb文件
# 移除水分子
remove resn HOH
# 移除无关离子
remove not (polymer or resn UNK)
# 选择蛋白质(删除水分子和无关离子)
save protein.pdb, not resn INH
# 选择配体(假设配体残基名为INH)
save ligand.pdb, resn INH
plaintext

步骤 2: 配体参数化#

方法一:使用ACPYPE(基于GAFF力场)

# 打开软件Open Babel,将配体转换为mol2格式
obabel -ipdb ligand.pdb -omol2 -O ligand.mol2

# 使用ACPYPE生成配体拓扑
acpype -i ligand.mol2 -n 0 -a gaff2
bash

方法二:使用CGenFF(适用于CHARMM力场)

  1. 访问 CGenFF服务器 ↗
  2. 上传配体结构文件
  3. 下载生成的str文件
  4. 转换为GROMACS格式:
# 转换CGenFF输出为GROMACS格式
python cgenff_charmm2gmx.py ligand ligand.mol2 ligand.str charmm36.ff
bash

步骤 3: 蛋白质拓扑生成#

# 生成蛋白质拓扑(使用与配体兼容的力场)
gmx pdb2gmx -f protein.pdb -o protein_processed.gro -p protein_topol.top -water tip3p -ff charmm36
bash

步骤 4: 合并拓扑文件#

# 创建主拓扑文件
cat > topol.top << EOF
#include "charmm36.ff/forcefield.itp"
#include "protein_topol.top"
#include "ligand.itp"

[ system ]
Protein-Ligand Complex

[ molecules ]
; Compound        nmols
Protein_A         1
LIG               1
EOF

# 将蛋白质分子信息添加到主拓扑
grep -A 1000 "molecules" protein_topol.top | grep -v "molecules" >> topol.top
bash

步骤 5: 构建复合物结构#

# 使用editconf调整配体位置(如果需要)
gmx editconf -f ligand.gro -o ligand_new.gro

# 组合蛋白质和配体结构
cat protein_processed.gro ligand.gro > complex.gro

# 需要手动调整原子数(编辑complex.gro文件的第二行)
bash

步骤 6-10: 标准模拟流程#

后续步骤与基础教程类似,但需要特别注意参数设置:

# 定义模拟盒子
gmx editconf -f complex.gro -o complex_box.gro -c -d 1.2 -bt cubic

# 溶剂化
gmx solvate -cp complex_box.gro -cs spc216.gro -o complex_solv.gro -p topol.top

# 添加离子(特别注意总电荷)
gmx grompp -f ions.mdp -c complex_solv.gro -p topol.top -o ions.tpr
gmx genion -s ions.tpr -o complex_ions.gro -p topol.top -pname NA -nname CL -neutral

# 能量最小化
gmx grompp -f em.mdp -c complex_ions.gro -p topol.top -o em.tpr
gmx mdrun -deffnm em -v

# NVT平衡
gmx grompp -f nvt.mdp -c em.gro -r em.gro -p topol.top -o nvt.tpr
gmx mdrun -deffnm nvt

# NPT平衡
gmx grompp -f npt.mdp -c nvt.gro -r nvt.gro -t nvt.cpt -p topol.top -o npt.tpr
gmx mdrun -deffnm npt

# 成品模拟
gmx grompp -f md.mdp -c npt.gro -t npt.cpt -p topol.top -o md.tpr
gmx mdrun -deffnm md
bash

第三阶段:蛋白质-配体相互作用分析#

1. 配体位置稳定性(RMSD)#

# 配体相对于蛋白质的RMSD
gmx rms -s md.tpr -f md.xtc -o rmsd_ligand.xvg -tu ns -fgroup LIG -rgroup Backbone
bash

2. 蛋白质-配体接触分析#

# 计算配体与蛋白质残基的距离
gmx mindist -f md.xtc -s md.tpr -od contacts.xvg -on contacts_num.xvg -group1 "resname LIG" -group2 "Protein"
bash

3. 氢键分析#

# 蛋白质与配体间的氢键
gmx hbond -f md.xtc -s md.tpr -num hbonds.xvg -ac hbond_angles.xvg -dist hbond_dist.xvg -hbm hbond_matrix.xvg -hbn hbond_index.ndx -don "resname LIG and name O1 O2 N1 N2" -acc "Protein and name O N"
bash

4. 结合自由能计算(MM-PBSA)#

# 使用g_mmpbsa计算结合自由能
gmx mm-pbsa -f md.xtc -s md.tpr -i polar.mdp -p topol.top -n index.ndx -apol apolar.xvg -pcon pcon.xvg -pcomp pcomp.xvg
bash

5. 相互作用能分解#

# 使用gmx energy分析非键相互作用能
gmx energy -f md.edr -o energy.xvg
bash

关键参数文件说明#

配体专用的mdp参数#

; md_complex.mdp - 蛋白质-配体复合物模拟参数
integrator               = md
dt                       = 0.002
nsteps                   = 5000000    ; 10 ns

; 温度耦合
tcoupl                   = V-rescale
tc-grps                  = Protein LIG SOL NA CL
tau-t                    = 0.1 0.1 0.1 0.1
ref-t                    = 300 300 300 300

; 压力耦合
pcoupl                   = Parrinello-Rahman
pcoupltype               = isotropic
tau-p                    = 2.0
compressibility          = 4.5e-5
ref-p                    = 1.0

; 非键相互作用
cutoff-scheme            = Verlet
nstlist                  = 20
rlist                    = 1.2
rcoulomb                 = 1.2
rvdw                     = 1.2
coulombtype              = PME
pme-order                = 4
fourierspacing           = 0.16

; 约束算法
constraints              = h-bonds
constraint-algorithm     = LINCS
txt

配体位 restraints(可选)#

; position_restraints.mdp - 用于初始平衡阶段
define                   = -DPOSRES_LIG

; 在ligand.itp文件中添加:
#ifdef POSRES_LIG
[ position_restraints ]
; atom  type      fx      fy      fz
   1      1      1000    1000    1000
   2      1      1000    1000    1000
   ; ... 其他配体原子
#endif
txt
分子动力学模拟:Gromacs教程3-蛋白配体复合物
https://blog.zxmath.top/blog/gromacs3
Author Zhang Xin
Published at 2025年11月30日
Comment seems to stuck. Try to refresh?✨