受体预处理:移除配体和水、加氢、添加电荷、分配原子类型、合并非极性氢
其实很多做虚拟筛选的朋友,第一步就容易栽跟头。你从PDB数据库下载下来的蛋白文件,说白了就是一份很粗糙的原始数据。
里面包含了结晶时留下的配体、水分子、金属离子,还有一些不完整的残基。直接用这样的文件去跑对接,结果基本不能用。
我个人习惯,在做受体预处理的时候,会严格走五步流程。每一步都踩过坑,今天我把经验一次性告诉你。
第一步:移除原始配体和水分子
你下载下来的PDB文件,比如4DFR这种,里面既有蛋白结构,也有结晶时共晶的小分子配体。嗯,这里要注意:对接的时候,受体口袋必须是空的。
我在项目中遇到过,有人没删掉原配体就直接跑对接,结果药物分子怎么都放不进口袋。浪费时间不说,还得出假阳性结果。
操作上我一般这样处理:
- 删除配体:用PyMOL或AutoDock Tools选中HETATM,直接移除。
# PyMOL中移除配体 remove resn MTX # 删除甲氨蝶呤 remove solvent # 删除所有水分子 - 处理水分子:不是所有水都要删掉。有些水分子参与了氢键网络,删了会影响活性位点环境。
- 保留关键水:如果某个水分子在多个晶体结构中反复出现,且与蛋白残基形成保守性氢键,建议保留。我一般会查PDBsum或文献确认。
我的经验:对于新手,我建议把所有水分子全删掉。等你有经验了,再尝试保留一些关键水分子。全删是最安全的起点。
第二步:加氢——纠正质子化状态
X射线晶体学是看不见氢原子的。所以从PDB拿到的蛋白,所有氢都是缺失的。你必须手动补上。
但单纯加氢还不够。为什么?因为组氨酸(HIS)有3种质子化状态,天冬氨酸(ASP)和谷氨酸(GLU)在特定pH下会去质子化。你随便加个单键氢,分子间相互作用就全错了。
在AutoDock Tools里面,我用的是这个流程:
- 用Edit → Add Hydrogen → Polar Only 先加极性氢(只加连接到N、O、S上的氢)。
- 再用Edit → Add Hydrogen → All Hydrogen 加上所有氢原子。
- 手动调整关键残基的质子化状态,比如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分钟做预处理,对接结果的质量会高一个档次。