4. 结构清洗与标准化

从 PDB 下载得到的结构文件,本质上是一份“实验记录”,而不是一份可直接用于对接或建模的“计算输入”。它记录了结晶实验里出现过的所有东西:水、缓冲液成分、冷冻保护剂、金属离子、辅因子、共结晶配体、多条链、甚至同一蛋白的多个构象副本。结构清洗与标准化的任务,就是把这些“实验痕迹”按可成药位点分析的需要逐类甄别、取舍,并把保留下来的部分整理成编号一致、质子化状态明确、化学修饰可解释的规范对象。这一步做得好不好,直接决定后续口袋检测、对接打分和相互作用分析是否可信。

一、先分类,再决定去留

清洗不是“一律删掉非蛋白原子”,而是按对象类别做差异化决策。工程上通常把结构中的非目标内容分为五类,每类的处理原则不同:

  • 水分子(HOH/WAT):多数对接流程会删除,但桥接水、与关键残基形成稳定氢键网络的水可能参与口袋塑形,应单独标记后再决定。
  • 添加剂与冷冻保护剂:如甘油(GOL)、硫酸根(SO4)、乙二醇(EDO)、聚乙二醇(PEG)、二甲亚砜(DMSO),几乎都是结晶副产物,默认删除。
  • 金属离子:如 Zn²⁺、Mg²⁺、Ca²⁺、Mn²⁺、Fe,既可能是结构必需的催化/稳定离子,也可能是缓冲液带入的杂质,需结合配位残基和文献判断。
  • 冗余链与冗余副本:同一蛋白的多条相同链、NMR 多模型、交替构象(altLoc),需保留代表性的一份。
  • 配体与辅因子:共结晶配体、底物类似物、辅酶(NAD、FAD、ATP)等,是判断可成药位点位置与形状的最重要信息,通常保留并单独提取。
判断依据的核心是“该对象是否参与目标位点的几何与化学定义”。参与则保留,不参与则删除;不确定时先保留并加注释,而不是直接丢弃。

二、冗余链与交替构象的取舍

以常见的二聚体酶结构为例,文件中可能同时存在 A、B 两条链,二者序列相同、构象略有差异。若目标是分析单体上的可成药位点,应只保留一条链,选择标准通常是:分辨率更高、缺失残基更少、配体占据更完整、B-factor 更合理。若目标是研究二聚界面,则两条链都必须保留,并检查界面处是否有对称相关分子需要补全。

交替构象(altLoc)的处理原则是:对每个残基只保留占据率(occupancy)最高的构象,删除其余 altLoc;若两个构象占据率接近且都参与口袋,应保留并记录,避免人为抹平口袋的柔性。NMR 结构的多模型(MODEL)则通常取第 1 个模型或做系综平均,具体取决于后续是否要做柔性对接。

三、残基编号、质子化状态与化学修饰

编号统一是清洗中最容易被忽视、却最容易导致下游错误的一步。不同 PDB 条目对同一蛋白可能采用不同的起始编号,甚至存在插入编号(如 100A、100B)或负编号。标准化时应把编号重设为从 1 开始的连续整数,并保留一份“原始编号 ↔ 新编号”的映射表,便于回溯文献位点。

质子化状态决定氢键供受体和电荷,必须在清洗阶段明确。常用做法是:在 pH 7.4 条件下,Asp/Glu 去质子化带负电,Lys/Arg 质子化带正电,His 默认中性但需根据其周围氢键环境判断是否质子化在 Nδ1 或 Nε2。半胱氨酸尤其关键:游离 Cys 为中性硫醇,形成二硫键的 Cys 不参与氢键,而金属配位 Cys 常以硫醇盐形式存在。

化学修饰包括磷酸化(SEP/TPO/PTR)、糖基化(NAG、MAN)、甲基化、乙酰化等。处理原则是:若修饰直接位于目标口袋内或影响口袋构象,应保留并作为独立残基处理;若位于远端且不影响位点,可简化为对应标准残基或直接删除,但必须在日志中记录。

结构清洗与标准化决策图 按对象类别分流 → 保留/删除 → 编号与质子化统一 PDB 原始结构 含全部实验成分 对象分类 水 / 添加剂 / 金属 冗余链 / 配体 水分子 HOH/WAT 默认删;桥接水标记保留 添加剂 / 冷冻保护剂 GOL/SO4/EDO/PEG 删除 金属离子 看配位残基与文献判断 冗余链 / altLoc / MODEL 保留代表性一份 配体 / 辅因子 保留并单独提取 标准化处理 残基编号重设为连续整数 pH 7.4 质子化状态赋值 化学修饰保留或简化 清洗后计算输入 目标链 + 关键配体 + 必要金属/水 编号映射表 + 处理日志 处理日志示例(片段) DEL HOH A 201-345 # 体相水,无桥接作用 DEL SO4 A 401 # 结晶缓冲液成分 KEEP ZN A 501 # 与 His142/His146/Asp120 配位,催化必需 KEEP LIG A 601 # 共结晶抑制剂,定义口袋 RENUM A 1-256 # 原编号 25-280 → 新编号 1-256 PROT HIS57 Nε2-H # 催化三联体,需质子化

四、可执行的处理流程与判断依据

把上述原则落成可复现的操作,通常借助 PyMOL、UCSF Chimera、或 Python 的 Biopython/PDBFixer 等工具。一个典型的处理顺序是:先删水与添加剂,再处理冗余链与 altLoc,然后判断金属与配体去留,最后统一编号与质子化。下面给出一段可直接参考的 PyMOL 命令示例,用于删除水、硫酸根和甘油,并只保留 A 链:

# 载入结构
load 1abc.pdb, raw

# 删除水、硫酸根、甘油、乙二醇
remove resn HOH
remove resn SO4
remove resn GOL
remove resn EDO

# 只保留 A 链(若研究二聚界面则改为保留 A+B)
remove chain B
remove chain C

# 删除占据率低于 0.5 的交替构象
remove altLoc B
remove altLoc C

# 保存清洗后结构
save cleaned.pdb, raw

执行后应检查三件事:一是目标链的残基是否连续、有无意外断裂;二是关键配体与金属是否仍在;三是编号是否已重排。若使用 PDBFixer,可在清洗后直接调用其加氢与质子化模块,按 pH 7.4 自动赋值,再人工复核 His、Cys 两类敏感残基。

不要用“删除所有 HETATM”这种一刀切命令。HETATM 里既有需要删除的添加剂,也有必须保留的配体、辅因子和金属离子。正确做法是按 resn 精确指定删除对象。

五、常见陷阱与复核清单

实践中几个高频错误值得单独提醒。第一,把金属离子当杂质删掉,结果口袋形状和静电分布完全改变;第二,忽略 altLoc,导致同一残基出现两个侧链,口袋体积被高估;第三,编号未统一就与文献位点比对,造成位点错位;第四,His 质子化状态随意指定,影响氢键网络判断;第五,磷酸化残基被当作普通 Ser/Thr 处理,丢失关键电荷与氢键。

清洗完成后,建议用一份简短清单做最终复核:目标链是否唯一且完整;水与添加剂是否已按规则处理;金属与配体是否保留并记录理由;残基编号是否连续且映射表已保存;His/Cys 质子化状态是否明确;化学修饰是否保留或已记录简化方式。这份清单不需要复杂,但每一项都对应一个可能影响下游结果的决策点。只有把清洗阶段的选择显式记录下来,后续的口袋分析与对接结果才具备可解释性和可复现性。