4. 靶点与化合物库准备
分子对接的结果质量,在上机运行之前就已经被两件事决定了大半:受体(靶点)结构是否干净、构象与质子化状态是否合理,以及配体库是否格式统一、去重彻底、参数可解析。本节把这两条准备链路拆开讲清楚,并给出可直接照做的操作细节与判断依据。
一、蛋白结构获取:优先实验结构,缺失处再补
靶点结构的首选来源是 RCSB PDB 中的实验结构(X 射线晶体或冷冻电镜)。选择时不要只看分辨率,还要看几个关键点:是否包含目标活性位点的完整残基、是否有共结晶配体或辅因子、是否有缺失环区(missing residues)、以及突变或标签是否影响结合口袋。例如某激酶靶点,PDB 条目分辨率 1.8 Å 但 ATP 结合口袋的甘氨酸富集环缺失 6 个残基,这种结构直接对接会得到假阳性极高的结果,应优先换用同源结构中口袋完整的条目,或用同源建模补齐。
若没有实验结构,可用 AlphaFold DB 预测模型,但要注意 pLDDT 置信度:口袋区域残基 pLDDT 低于 70 时,侧链朝向不可靠,建议只做初步筛选,不做精确打分排序。获取结构后统一转成 PDB 或 mmCIF,并记录来源、分辨率/置信度、缺失残基范围,作为后续可追溯的元数据。
二、清洗、加氢与质子化状态
清洗的目标是去掉对接软件不认识的“噪声”,同时不破坏口袋化学环境。典型处理顺序如下:
- 去水:多数对接需移除结晶水,但若某个水分子与口袋残基形成稳定氢键桥且在多条结构中保守,可保留为“结构水”,在部分软件中作为可旋转/固定水处理。
- 去配体与辅因子:移除共结晶配体;金属离子(如 Zn²⁺、Mg²⁺)通常保留,因为它们常参与配位,删除会导致口袋电荷分布错误。
- 补缺失原子与残基:用 PDBFixer、Modeller 或 Schrödinger Prime 补齐缺失侧链与环区,补全后检查是否与邻近残基产生原子碰撞。
- 加氢与质子化:生理 pH 7.4 下,Asp/Glu 去质子化(−1)、Lys/Arg 质子化(+1)、His 需按局部环境判断。可用 PROPKA 预测 pKa,或用 H++、PDB2PQR 生成质子化状态。His 的 Nδ/Nε 选择直接影响氢键网络,建议对口袋内 His 逐一确认。
- 能量最小化:仅对氢原子和侧链做约束最小化(如 500 步最陡下降 + 1000 步共轭梯度),避免整体骨架漂移。
三、活性位点定义:三种常用方式
活性位点定义决定了搜索空间(grid box / binding site),直接影响采样效率与假阳性率。常用方式有三类:
- 基于共结晶配体:以原配体几何中心为盒中心,盒边长通常取配体最大跨度 + 8~10 Å 余量。例如原配体跨度约 12 Å,可取 22 Å × 22 Å × 22 Å 的立方盒。
- 基于已知关键残基:如激酶取 hinge 区与 DFG 基序,蛋白酶取催化三联体,用这些残基的 Cα 或侧链原子计算质心。
- 基于口袋检测:用 fpocket、SiteMap 等自动识别,再人工核对是否覆盖关键氢键供受体。
盒过大(如 40 Å 以上)会显著增加搜索空间与计算量,且容易把配体引到非特异表面;盒过小则可能截断配体构象。建议先用原配体做一次重对接(redocking),RMSD ≤ 2.0 Å 视为参数合理,再用于大规模筛选。
四、大规模化合物库的格式转换与去重
真实筛选场景中,化合物库常来自多个供应商,格式混杂:SDF、SMILES、MOL2、CSV 各占一部分,且同一分子可能以盐、不同互变异构体或不同立体异构形式重复出现。处理流程建议如下。
格式统一:以 SMILES 或 SDF 作为中间格式,用 RDKit 或 Open Babel 批量转换。示例命令:
# SDF 转 SMILES,并保留标题
obabel input.sdf -osmi -O output.smi
# 用 RDKit 批量标准化并生成 3D
from rdkit import Chem
from rdkit.Chem import AllChem
suppl = Chem.SDMolSupplier('raw.sdf', removeHs=False)
writer = Chem.SDWriter('clean.sdf')
for mol in suppl:
if mol is None:
continue
mol = Chem.RemoveHs(mol)
Chem.SanitizeMol(mol)
mol = Chem.AddHs(mol)
AllChem.EmbedMolecule(mol, randomSeed=42)
writer.write(mol)
writer.close()
去重策略:最可靠的是用 InChIKey 的前 14 位(骨架层)加后段立体层共同判断。仅用分子量或 SMILES 字符串去重会漏掉互变异构体和盐形式。实际操作中,先按 InChIKey 完全匹配去重,再对骨架相同但立体不同的分子保留全部(若对接需要考虑立体选择性),对盐形式统一去盐后合并。
过滤与拆分:按类药性规则过滤,常用阈值为分子量 150~600、logP −2~5、可旋转键 ≤ 10、氢键供体 ≤ 5、受体 ≤ 10。过滤后按每批 1000~5000 个分子拆分,便于并行调度与失败重跑。每个分子保留唯一 ID(如 ZINC ID 或自增编号),并记录来源库、原始 SMILES、标准化后 SMILES,保证结果可追溯。
五、准备阶段的验收清单
| 检查项 | 合格标准 | 不合格的后果 |
|---|---|---|
| 受体口袋完整性 | 关键残基无缺失,无原子重叠 | 假阳性升高,打分失真 |
| 质子化状态 | His/Asp/Glu/Lys 与 pH 7.4 一致 | 氢键网络错误 |
| 盒尺寸 | 原配体重对接 RMSD ≤ 2.0 Å | 采样不足或非特异结合 |
| 配体去重 | InChIKey 唯一,盐形式已合并 | 重复计算,浪费算力 |
| 格式与字段 | 统一 PDBQT/SDF,含唯一 ID | 调度失败,结果无法回溯 |
把上述两条链路都走通之后,受体文件与配体批次就具备了进入对接引擎的条件。准备阶段多花的一小时,往往能省下后续几天的无效计算与人工复核。