确认了一个苗头之后,下一步是围绕它拓展:找结构相关的类似物,建立初步构效关系,判断这个化学系列值不值得深入。
拓展的三个目的
- 1. 验证 SAR 是否合理:如果一系列类似物的活性毫无规律,说明原始命中可能是非特异性效应;
- 2. 快速提升活性:初步 SAR 常能带来几倍到几十倍的活性提升;
- 3. 判断系列潜力:这个骨架有没有优化空间?性质能不能改善?专利空间如何?
拓展策略
| 策略 | 做法 | 速度 |
|---|---|---|
| 相似性检索 | 在商业库中搜类似物直接购买 | 最快(1~2 周) |
| 子结构检索 | 搜含相同核心的化合物 | 快 |
| SAR by catalog | 系统性地买覆盖各取代位点的类似物 | 快 |
| 快速类似物合成 | 用可靠反应做小规模平行合成 | 中(数周) |
| 片段生长 | 从片段苗头向外生长 | 中 |
| 虚拟筛选聚焦库 | 以苗头为查询做形状/药效团筛选 | 快(计算) |
「SAR by catalog」是最被低估的策略:在商业库中系统性地找出覆盖不同取代位点的类似物,两周内就能拿到几十个数据点,快速勾勒出 SAR 轮廓——而这在自己合成的路径下需要数月。
计算辅助的类似物检索
from rdkit import Chem, DataStructs
from rdkit.Chem import rdFingerprintGenerator, AllChem
from rdkit.Chem.Scaffolds import MurckoScaffold
gen = rdFingerprintGenerator.GetMorganGenerator(radius=2, fpSize=2048)
def find_analogs(hit_smiles, library_smiles, min_sim=0.6, max_sim=0.95):
"""在库中找类似物
max_sim 上限是为了排除几乎相同的分子(信息量低)"""
hit = Chem.MolFromSmiles(hit_smiles)
hit_fp = gen.GetFingerprint(hit)
hit_scaffold = MurckoScaffold.MurckoScaffoldSmiles(mol=hit)
results = []
for smi in library_smiles:
m = Chem.MolFromSmiles(smi)
if m is None:
continue
sim = DataStructs.TanimotoSimilarity(hit_fp, gen.GetFingerprint(m))
if min_sim <= sim <= max_sim:
sc = MurckoScaffold.MurckoScaffoldSmiles(mol=m)
results.append({
"smiles": smi, "similarity": sim,
"same_scaffold": sc == hit_scaffold,
})
return sorted(results, key=lambda x: -x["similarity"])
# 关键:既要同骨架的(探索取代基 SAR),
# 也要不同骨架但相似的(探索骨架容忍度)
analogs = find_analogs(hit_smiles, commercial_library)
same_scaffold = [a for a in analogs if a["same_scaffold"]][:30]
diff_scaffold = [a for a in analogs if not a["same_scaffold"]][:20]
系统性覆盖取代位点
from rdkit.Chem import rdRGroupDecomposition as rgd
# 1) 定义核心,看类似物覆盖了哪些位点
core = Chem.MolFromSmarts("c1ccc2c(c1)[nH]c(n2)[*:1]")
res, unmatched = rgd.RGroupDecompose([core], analog_mols,
asSmiles=True, asRows=False)
import pandas as pd
rg_df = pd.DataFrame(res)
# 2) 检查覆盖情况
for col in rg_df.columns:
if col.startswith("R"):
print(f"{col}: {rg_df[col].nunique()} 种不同取代基")
# 覆盖不足的位点 = 需要补充的方向
# 3) 设计补充:每个位点都要有
# - 小 vs 大
# - 极性 vs 疏水
# - 供体 vs 受体
# - 有电荷 vs 中性
# 这样才能勾勒出该位点的 SAR 轮廓
# 4) 包含「预期失活」的对照
# 如果假设某个基团是关键氢键供体,
# 就做一个把它甲基化的分子验证
结构信息加速拓展
如果能拿到苗头与靶点的共晶结构,拓展效率会大幅提升:
- 看清结合模式:哪些基团参与关键相互作用(用 PLIP/ProLIF,见 338《用 ProLIF 提取相互作用指纹》、339《用 PLIP 生成蛋白-配体相互作用报告》);
- 识别可生长方向:口袋中还有哪些未被占据的空间;
- 识别可保留部分:形成关键相互作用的部分不要动;
- 指导取代基选择:口袋是疏水的就加疏水基团,有氢键供体就加受体。
获取共晶结构应该是苗头阶段的高优先级投入:它把后续的优化从「盲目试错」变成「有依据的设计」。
判断系列值不值得深入
| 信号 | 好 | 坏 |
|---|---|---|
| SAR 规律性 | 结构变化与活性变化有合理关联 | 活性随机、无规律 |
| 活性提升 | 初步优化就能提升数倍以上 | 怎么改都在同一水平 |
| 配体高效性 | LE 保持或提升 | 活性靠加大分子堆出来 |
| 亲脂高效性(LLE) | 提升 | 活性提升全靠增加 logP |
| 性质 | 有改善空间 | 已经在边缘且无法改善 |
| 选择性 | 有可利用的差异 | 与脱靶无法区分 |
| 合成可及性 | 易衍生化 | 每个类似物都要重新设计路线 |
| 专利空间 | 有自由度 | 被严密覆盖 |
LLE 是特别有价值的指标:如果活性提升完全来自 logP 增加,说明只是在增加非特异性疏水结合,这条路走不远——后期必然遇到溶解度、代谢、hERG 问题。
并行推进多个系列
- 不要把宝押在一个系列上:苗头阶段应该有 2~3 个结构不同的系列同时推进;
- 不同系列的失败原因往往不同(一个卡在选择性、一个卡在溶解度),并行能降低整体风险;
- 资源有限时,可以主推一个、维持一到两个备份;
- 系列的「化学多样性」比数量重要:三个骨架相近的系列,等于只有一个。
关键要点
- 「SAR by catalog」是最快的拓展方式,两周就能拿到几十个数据点;
- SAR 是否有规律,是判断苗头真伪与系列潜力的关键信号;
- LLE 提升说明优化是实质的,只靠 logP 涨活性走不远;
- 获取共晶结构是苗头阶段最值得的投入;并行推进 2~3 个系列。
延伸资源
- 上一步:402《Hit Identification》;下一步:404《Hit-to-Lead》;
- R 基团替换:353《R-group Replacement 实战》;采购:401《合成与采购决策》、232《Mcule》。