设计出一批分子后,第一个决策是:哪些去买,哪些自己做?这个看似琐碎的决定,实际上显著影响项目的速度与成本。
决策框架
| 情况 | 建议 | 理由 |
|---|---|---|
| 分子在商业库中现货 | 买 | 几天到两周到货,成本远低于合成 |
| 按需合成库(如 REAL)中 | 买(若时间允许) | 3~4 周,成本可控 |
| 需要多步定制合成 | 视情况 | 比较内部产能与 CRO 报价 |
| 首轮探索、要覆盖多个骨架 | 优先买 | 快速验证假设,不值得投入合成资源 |
| 已有苗头、做精细 SAR | 优先自研 | 需要特定取代基,商业库覆盖不到 |
| 需要大量(体内实验) | 自研或 CRO 定制 | 商业库通常只有毫克级 |
| 需要保密 | 自研 | 避免结构外泄 |
| 需要特定立体异构体 | 自研 | 商业库常只有消旋体 |
成本对比的完整视角
# 买的成本:
# - 化合物单价(现货通常数百元级/几毫克,
# 按需合成常达数百美元级)
# - 运费与清关
# - 到货周期的时间成本
#
# 自研的成本(常被低估):
# - 化学家人力(这是大头)
# - 起始原料与试剂
# - 分析表征
# - 失败尝试的成本 —— 不是每条路线都能走通
# - 机会成本:化学家做这个就不能做别的
#
# 关键提醒:
# 自研的真实成本常被低估,因为人力成本容易被视为「已经付了」
# 正确的算法是看机会成本:
# 「这位化学家两周做这个分子,vs 两周做别的分子」哪个价值更高
可得性检查要前置
# 常见错误:设计完一大批分子,最后才发现大部分买不到
# 正确做法:把可得性检查放进筛选流程的中期
def enrich_with_availability(candidates, lookup_fn):
"""给候选分子加上采购信息,用于最终排序"""
enriched = []
for smi in candidates:
info = lookup_fn(smi) # 调用 Mcule/eMolecules API(见 232、233)
enriched.append({
"smiles": smi,
"available": info.get("available", False),
"tier": info.get("tier"), # 现货 / 按需 / 不可得
"price_usd": info.get("min_price"),
"lead_time_days": info.get("lead_time"),
"n_suppliers": info.get("supplier_count", 0),
})
return enriched
# 综合排序时同时考虑:
# 预测活性、可得性、价格、多样性
# 而不是只按预测活性排序
def procurement_aware_rank(df, weight_score=1.0, weight_speed=0.5):
import numpy as np
# 归一化打分
df["score_norm"] = (df["pred_score"] - df["pred_score"].min()) / \
(df["pred_score"].max() - df["pred_score"].min() + 1e-9)
# 交付速度得分(越快越好)
df["speed_norm"] = 1 - (df["lead_time_days"] /
df["lead_time_days"].max().clip(min=1))
df["combined"] = (weight_score * df["score_norm"] +
weight_speed * df["speed_norm"])
return df.sort_values("combined", ascending=False)
首轮筛选:买比做更合理
虚拟筛选或生成模型的首轮输出,绝大多数应该买而非自己做。理由:
- 目的是验证假设而非优化:首轮要回答的是「这个口袋能不能被小分子结合」「哪类骨架有戏」,需要的是化学多样性覆盖而非特定分子;
- 命中率低:首轮的命中率通常在个位数百分比,投入合成资源做一批大概率无活性的分子不划算;
- 速度:两周拿到 30 个商业分子的数据,比三个月拿到 10 个定制分子更能推动项目;
- 选择策略:优先化学多样性而非单点最高分——买 30 个覆盖多个骨架的中高分分子,比买 10 个最高分的同系列分子信息量大得多。
采购的实际考量
- 纯度:确认供应商标称纯度(通常 ≥90% 或 ≥95%)。生物测试对纯度敏感,杂质可能造成假阳性。
- 数量:初筛 1~5 mg 足够,别一开始就买大量;
- 比价:同一分子不同供应商价格可能差数倍(见 233《eMolecules》);
- 备选:标称现货也可能缺货,下单时多选 20%~30% 的备选分子;
- 结构确认:收到后建议做 LC-MS 或 NMR 核对。商业化合物的结构错误率虽低但非零,一个错误结构会污染整轮 SAR 结论;
- 立体化学:手性分子要确认是单一对映体还是消旋体,供应商标注可能不一致。
CRO 外包的考量
| 维度 | 关注点 |
|---|---|
| 交付周期 | 报价周期与实际周期常有差距 |
| 成功率 | 复杂分子的交付失败率 |
| 质量 | 纯度、表征数据完整性 |
| 知识产权 | 结构信息外泄风险、成果归属 |
| 沟通成本 | 路线讨论、问题处理 |
| 规模弹性 | 能否快速扩大或缩减 |
知识产权条款是外包最需要谨慎的部分:把候选化合物结构交给外部机构,涉及保密与成果归属,必须在合同中明确。
后期阶段的转变
随着项目推进,决策天平会向自研倾斜:
- 先导优化阶段:需要的是特定位置的特定取代基,商业库覆盖不到;
- 需要构效关系的系统性:要一系列只差一个基团的分子,只能自己做;
- 保密性要求提高:接近候选化合物时,结构信息更敏感;
- 需要量增大:体内实验、毒理研究需要克级甚至更多。
关键要点
- 首轮筛选优先买——目的是覆盖化学多样性验证假设,不是优化;
- 把可得性检查前置到筛选中期,避免在买不到的分子上浪费分析时间;
- 自研的真实成本是化学家的机会成本,容易被低估;
- 下单多备 20%~30%,收货后做结构确认,避免污染 SAR 结论。
延伸资源
- 采购平台:232《Mcule》、233《eMolecules》;化合物库:230《ZINC》、231《Enamine REAL》;
- 自动化合成:400《从设计到合成的闭环》;DMTA:355《建立 DMTA 闭环》。