药效团(pharmacophore)是「产生生物活性所必需的三维结构特征的集合」。它把具体的分子结构抽象成「什么类型的相互作用、在什么空间位置」——这个抽象让不同化学骨架的分子可以被统一比较。
药效团特征类型
| 特征 | 缩写 | 对应的相互作用 |
|---|---|---|
| 氢键供体 | HBD / D | 与蛋白的受体形成氢键 |
| 氢键受体 | HBA / A | 与蛋白的供体形成氢键 |
| 疏水中心 | H | 疏水接触 |
| 芳环中心 | R / AR | π 堆积 |
| 正电中心 | P / PI | 与酸性残基的静电作用 |
| 负电中心 | N / NI | 与碱性残基的静电作用 |
| 排除体积 | XVOL | 蛋白占据的空间,配体不能进入 |
「排除体积」是常被忽略但很重要的特征:只定义「必须有什么」而不定义「不能有什么」,会筛出大量因为空间冲突而不可能结合的分子。加上排除体积能显著提高筛选的特异性。
两种建模路径
| 基于结构(structure-based) | 基于配体(ligand-based) | |
|---|---|---|
| 输入 | 蛋白-配体复合物结构 | 一组已知活性分子 |
| 方法 | 从相互作用直接读出特征 | 叠合分子,找共有特征 |
| 优势 | 特征位置准确;可加排除体积 | 不需要蛋白结构 |
| 难点 | 需要好的复合物结构 | 叠合的正确性难以保证 |
| 适用 | 有共晶结构时 | 只有 SAR 数据时 |
基于结构的药效团构建
# 从共晶结构提取药效团特征
#
# 1) 用 PLIP 或 ProLIF 分析相互作用(见 108、109)
# 得到:哪些配体原子与哪些蛋白残基形成什么相互作用
#
# 2) 把每个相互作用转成药效团特征
# 配体的氢键供体 → HBD 特征,位置在该原子
# 配体的芳环与蛋白芳环堆积 → R 特征
# ...
#
# 3) 设置容差半径
# 通常 1.0~1.5 Å
# 太小则筛不出任何分子,太大则失去特异性
#
# 4) 添加排除体积
# 在蛋白原子位置放置排除球
#
# 5) 决定哪些特征是「必需」的
# → 通常保留 3~5 个核心特征
# → 特征太多会过度限制,筛不出新骨架
# → 特征太少则特异性不足
#
# 关键判断:
# 哪些相互作用是活性必需的?
# → 用 SAR 验证:去掉该基团的类似物是否失活(见 073)
用 RDKit 做基础的药效团特征识别
from rdkit import Chem, RDConfig
from rdkit.Chem import AllChem, ChemicalFeatures
import os
fdef = os.path.join(RDConfig.RDDataDir, "BaseFeatures.fdef")
factory = ChemicalFeatures.BuildFeatureFactory(fdef)
mol = Chem.AddHs(Chem.MolFromSmiles("CC(=O)Nc1ccc(O)cc1"))
AllChem.EmbedMolecule(mol, randomSeed=0xf00d)
AllChem.MMFFOptimizeMolecule(mol)
feats = factory.GetFeaturesForMol(mol)
for f in feats:
pos = f.GetPos()
print(f"{f.GetFamily():12s} {f.GetType():20s} "
f"({pos.x:.2f}, {pos.y:.2f}, {pos.z:.2f}) "
f"原子 {f.GetAtomIds()}")
# 输出示例:
# Donor SingleAtomDonor (1.23, -0.45, 2.10) 原子 (5,)
# Acceptor SingleAtomAcceptor (2.34, 1.02, -0.55) 原子 (3,)
# Aromatic Arom6 (0.12, 0.88, 1.33) 原子 (7,8,9,10,11,12)
# Hydrophobe ...
# 药效团指纹(2D,用于相似性比较)
from rdkit.Chem import rdMolDescriptors
from rdkit.Chem.Pharm2D import Generate, Gobbi_Pharm2D
fp = Generate.Gen2DFingerprint(mol, Gobbi_Pharm2D.factory)
# 编码「特征对 + 拓扑距离」,可用于虚拟筛选
药效团筛选的实践
- 需要构象集合:药效团匹配是三维的,每个候选分子需要生成多个构象(见 279《OpenEye Omega》)。构象覆盖不足是漏检的主要原因;
- 速度快:药效团匹配比对接快得多,适合超大库的第一道筛;
- 能发现新骨架:这是它最大的价值——只要满足特征的空间排布,化学骨架可以完全不同。这正是骨架跃迁的原理(见 352《Scaffold Hopping 实战》);
- 常与对接联用:药效团粗筛 → 对接精化。
局限与注意事项
- 过度简化:药效团只描述几个点,忽略了分子的整体形状、静电分布、去溶剂化等因素;
- 特征定义有主观性:什么算「疏水中心」、容差设多大,不同软件的定义不同;
- 不考虑构象能量:能匹配药效团的构象可能是高能构象,实际不太占据;
- 基于配体的模型依赖叠合:如果分子叠合方式错了,整个模型都是错的。有共晶结构时应优先用基于结构的方法;
- 假阳性率不低:匹配药效团不等于能结合,需要后续对接与实验验证。
与其它三维方法的关系
| 方法 | 抽象层次 | 特点 |
|---|---|---|
| 药效团 | 少数特征点 | 抽象度最高;速度快;易发现新骨架 |
| 形状匹配(见 093《形状互补 Shape Complementarity》) | 整体体积 | 关注形状互补 |
| 分子场(见 280《Cresset Flare》) | 连续的场分布 | 更细致的静电与疏水描述 |
| 对接 | 原子级 | 最详细;最慢 |
关键要点
- 排除体积是常被忽略但显著提高特异性的特征;
- 特征数量要平衡:太多筛不出新骨架,太少特异性不足(通常 3~5 个);
- 药效团筛选需要充分的构象采样,覆盖不足是漏检主因;
- 它最大的价值是能发现化学骨架完全不同的分子。
延伸资源
- 口袋分析:091《蛋白口袋 Protein Pocket》;形状互补:093《形状互补 Shape Complementarity》;
- 骨架跃迁:352《Scaffold Hopping 实战》;构象生成:279《OpenEye Omega》。