受体预处理:移除配体和水、加氢、添加电荷、分配原子类型、合并非极性氢

其实很多做虚拟筛选的朋友,第一步就容易栽跟头。你从PDB数据库下载下来的蛋白文件,说白了就是一份很粗糙的原始数据。

里面包含了结晶时留下的配体、水分子、金属离子,还有一些不完整的残基。直接用这样的文件去跑对接,结果基本不能用。

我个人习惯,在做受体预处理的时候,会严格走五步流程。每一步都踩过坑,今天我把经验一次性告诉你。

受体预处理五步流程 原始PDB 移除配体 移除水分子 保留关键水 加氢加电荷 Autodock Tools 分配原子类型 合并非极性H 输出文件:受体.pdbqt 包含完整原子坐标、电荷、原子类型 可直接用于AutoDock对接计算

第一步:移除原始配体和水分子

你下载下来的PDB文件,比如4DFR这种,里面既有蛋白结构,也有结晶时共晶的小分子配体。嗯,这里要注意:对接的时候,受体口袋必须是空的。

我在项目中遇到过,有人没删掉原配体就直接跑对接,结果药物分子怎么都放不进口袋。浪费时间不说,还得出假阳性结果。

操作上我一般这样处理:

  • 删除配体:用PyMOL或AutoDock Tools选中HETATM,直接移除。
    # PyMOL中移除配体
    remove resn MTX   # 删除甲氨蝶呤
    remove solvent    # 删除所有水分子
  • 处理水分子:不是所有水都要删掉。有些水分子参与了氢键网络,删了会影响活性位点环境。
  • 保留关键水:如果某个水分子在多个晶体结构中反复出现,且与蛋白残基形成保守性氢键,建议保留。我一般会查PDBsum或文献确认。

我的经验:对于新手,我建议把所有水分子全删掉。等你有经验了,再尝试保留一些关键水分子。全删是最安全的起点。

第二步:加氢——纠正质子化状态

X射线晶体学是看不见氢原子的。所以从PDB拿到的蛋白,所有氢都是缺失的。你必须手动补上。

但单纯加氢还不够。为什么?因为组氨酸(HIS)有3种质子化状态,天冬氨酸(ASP)和谷氨酸(GLU)在特定pH下会去质子化。你随便加个单键氢,分子间相互作用就全错了。

在AutoDock Tools里面,我用的是这个流程:

  1. 用Edit → Add Hydrogen → Polar Only 先加极性氢(只加连接到N、O、S上的氢)。
  2. 再用Edit → Add Hydrogen → All Hydrogen 加上所有氢原子。
  3. 手动调整关键残基的质子化状态,比如HIS的HIE/HID/HIP三种形式。

曾经犯过的错:我有一次做对接,全程结果都很差。查了三天才发现,HIS64处于活性位点中心,本来应该是HID(δ氮质子化),我默认用了HIE(ε氮质子化),导致氢键方向全反了。从那以后,每次加氢我都会逐残基检查关键位点。

第三步:添加电荷与分配原子类型

加完氢之后,蛋白还是中性的。但实际的生物环境是有pH、有离子强度的。你需要给每个原子一个电荷值,这样AutoDock才能计算静电相互作用。

AutoDock Tools使用Gasteiger电荷:

# 在ADT中执行
Grid → Macromolecule → Choose
选择受体文件
自动计算Gasteiger电荷
检查总电荷:确保为整数(非整数需手动调整)

分配原子类型,说白了就是告诉AutoDock:每个原子属于什么元素、什么杂化状态。比如芳香碳、脂肪碳、氮的sp3/sp2等等。这些信息会决定对接时的范德华参数。

关键操作:ADT会自动完成原子类型分配。你只需要确保这一步没有报错。如果遇到未知原子类型(比如硒代甲硫氨酸中的硒),程序会报错,你需要手动指定类型或修改PDB。

第四步:合并非极性氢

这一步是AutoDock特有的优化技巧。你把所有非极性氢(也就是连接在碳原子上的氢)合并到邻近的重原子上。

为什么不保留所有氢?因为AutoDock4的评分函数,算范德华力的时候,用的是融合原子模型。说白了,把C-H作为一个整体去算,既能提高计算速度,又不会显著降低精度。

具体操作:

# 在ADT中
Edit → Hydrogens → Merge Non-Polar
确认合并后的原子数量减少

我刚开始做的时候不太理解,觉得合并氢会损失信息。后来发现,对于虚拟筛选这种大规模计算,速度比细节更重要。而且大量实证表明,合并非极性氢对结合模式预测的影响微乎其微。

第五步:保存为pdbqt格式

所有预处理完成后,最后一步就是把文件保存为pdbqt格式。这个格式是AutoDock专用的,除了坐标信息,还包含了原子类型、电荷、可旋转键等额外字段。

# 保存受体pdbqt
File → Save → Write PDBQT
选择保存路径,命名为 receptor.pdbqt

你想想看,如果你的pdbqt文件只有几百KB,但原始pdb文件有几MB,说明氢合并做得不错。精简后的文件跑对接会快很多。

预处理步骤 具体操作 常见错误
移除配体和水 PyMOL删HETATM、删溶剂 误删保守水分子
加氢 先极性氢,再全氢 HIS质子化状态选错
添加电荷 Gasteiger电荷计算 总电荷非整数
分配原子类型 ADT自动分配 未知原子类型报错
合并非极性氢 Merge Non-Polar 误合极性氢
保存pdbqt Write PDBQT 路径含中文或空格

避坑指南:保存pdbqt的时候,千万不要用中文路径,也不要用空格。AutoDock Tools对路径解析很敏感。我建议直接用英文数字组合,比如receptor_4dfr.pdbqt。

好了,这就是完整的受体预处理流程。每次我做虚拟筛选的时候,都会严格执行这五步。多花10分钟做预处理,对接结果的质量会高一个档次。