2. 受体结构准备:从PDB获取、修复、加氢到能量最小化

受体结构准备——说白了,就是给你的蛋白质“梳妆打扮”。

很多刚入门的朋友会问:PDB数据库里不是已经有现成的结构了吗?为什么还要折腾?

我刚开始做分子对接时也这么想。直到有一次,我用一个晶体结构直接跑对接,结果出来的结合模式全都不对……后来才发现,那个结构里的残基有缺失,质子化状态也是错的。

这一章,我们就来聊聊这个环节的四个关键步骤。

2.1 从PDB获取:不只是下载那么简单

PDB(Protein Data Bank)是最权威的蛋白质结构数据库。但下载结构时,有几个坑你要注意。

选择分辨率。我个人习惯只选分辨率 ≤ 3.0 Å 的结构。分辨率越高(数值越小),电子密度图质量越好,侧链位置的确定性就越高。

检查配体信息。一个结构文件里可能包含小分子配体、水分子、金属离子、辅因子等。你得确定这些是不是你需要的。

优先选择同源结构。如果目标蛋白有多个PDB条目,我会优先选与实验条件(pH、温度、突变状态)最接近的那个。

常用的获取方式有两种:通过PDB官网手动下载,或者用程序自动拉取。

# 使用 Biopython 下载 PDB 文件
from Bio.PDB import PDBList

pdbl = PDBList()
# 下载 4K24 这个结构
pdbl.retrieve_pdb_file("4K24", pdir="./pdb_files", file_format="pdb")
小提示:很多PDB结构是旧的X射线晶体学数据,现在更推荐使用cif格式。但传统对接工具还是偏好pdb格式,所以下载后可以转格式。

2.2 缺失残基修复:补全残缺的“手臂”

PDB结构里,缺失残基非常常见。

为什么会这样?因为某些区域(尤其是loop区)柔性太大,电子密度图看不清楚,实验人员就在建模时跳过了它们。

但这些缺失的残基如果位于结合位点附近,直接影响对接结果。我见过有人直接拿残缺结构跑对接,结果配体钻到了不该去的缝隙里。

修复方法主要有三种:

方法 原理 推荐场景
MODELER 基于空间约束的同源模建 缺失片段较长(大于5个残基)
SBROD 基于loop数据库的快速替换 短loop缺失(1-5个残基)
SWISS-MODEL 在线自动模建 需要快速获取模板

我用Chimera(UCSF Chimera)来做这件事,因为它集成了MODELER接口。你甚至可以写脚本批量处理。

# Chimera 中调用 MODELER 修复缺失残基的简化命令
chimera --nogui fixed_missing_residues.py

修复后,我会检查一下omega角度的顺反异构。有时候自动补全的残基二面角是错误的。

注意:千万不要对修复后的结构盲目信任。最好将修复的区域与相近长度的模板结构对比一下,尤其是主链的phi、psi角度。

2.3 加氢与质子化状态:解决“看不见的原子”

X射线晶体学几乎看不到氢原子。所以在做对接前,我们必须手动加上。

但加氢不是简单的“H”原子。酸性残基(Asp、Glu)和碱性残基(Lys、Arg)的质子化状态取决于pH环境。

我曾经因为加氢策略不对,导致一个对接结果完全矛盾——配体本该结合在深槽里,结果却跑到了表面。排查才发现,某个His残基的质子化状态搞错了。

判断质子化状态的基本原则:

  • His:pH 7.4 时,未配位的His通常以中性形式存在(Hid或Hie)。参与配位的His可能带正电(Hip)。
  • Asp/Glu:通常去质子化(带负电)。但如果位于疏水口袋深处,可能以质子化形式存在。
  • Lys:几乎永远带正电,除非环境极度疏水或pH>10。
  • Cys:形成二硫键的Cys不带电,游离Cys在生理pH下以中性形式为主。

我推荐用PDB2PQR进行pKa预测,然后根据预测结果决定质子化状态。

# 使用 PDB2PQR 插件计算 pKa
python /path/to/pdb2pqr/pdb2pqr.py --ff=AMBER --ph=7.4 input.pdb output.pqr

加氢完成后,我还会做一步极性加氢,即只增加有极性的氢原子(N-H、O-H),非极性氢原子(C-H)留给对接引擎处理。

关键点:加氢与质子化状态,直接决定了受体表面的静电势分布,进而影响配体的结合亲和力预测。这一步绝不能跳过。

2.4 能量最小化:让结构“冷静”下来

加氢后的结构,原子之间有严重的空间冲突。尤其是人工添加的氢原子,可能跟附近的重原子靠得太近。

你想想看,当你把一个完整的三维结构构建出来,如果直接用它跑对接,配体碰到这些冲突位置就会报错。

能量最小化的目的,就是释放这些张力,让结构稳定下来。

常用的力场:

  • AMBER ff14SB:适合生物大分子
  • CHARMM36:适合膜蛋白
  • OpenMM:适合GPU加速的大规模体系

最小化算法:

  1. 先做最速下降法(Steepest Descent)——快速从高能量区跑到低能量区。
  2. 再做共轭梯度法(Conjugate Gradient)——精细收敛到局部极小值。

我习惯的流程是:固定主链原子,只对侧链和氢原子做500步最速下降,然后解除约束再用共轭梯度做500步。

# GROMACS 中做能量最小化的基本命令
gmx grompp -f minim.mdp -c input.gro -p topol.top -o minim.tpr
gmx mdrun -deffnm minim

# minim.mdp 文件内容示例
integrator  = steep
nsteps      = 500
emtol       = 10.0
nstxout     = 50

最小化之后,我会检查一下体系的总能量有没有明显下降。如果下降幅度超过一个数量级,说明初始结构问题很大。

个人经验:如果受体有多个结构域,我建议只对结合位点周边10 Å内的区域进行完全柔性最小化,其他部分保持刚性。这样可以保留整体的折叠结构。
受体结构准备核心流程 1. 从PDB获取 选择高分辨率结构 2. 缺失残基修复 MODELER/SBROD 3. 加氢与质子化 pKa预测 + 极性加氢 4. 能量最小化 最速下降→共轭梯度 检查点:结构总能量 & 空间冲突 如果能量下降不足,回溯至步骤2或3 质控:对接前必须确认受体结构无断裂链、正确质子化、无残余张力 推荐工具:Chimera + PDB2PQR + GROMACS 组合

这张图总结了我们这一章的核心逻辑。我个人习惯把这四个步骤称为“受体的清洗与配置”。每一步都有独立的工具和方法,但它们之间是串联依赖关系——你跳过了其中任何一步,后续的对接结果都可能不可靠。