233

eMolecules:采购导向化合物库怎么筛选

eMolecules 聚合多家供应商的可采购化合物,便于把候选分子落实到现实可得与可比价。这篇讲清它的分层体系、比价逻辑与采购决策要点。

eMolecules 是化合物采购的聚合平台,把全球数百家供应商的目录整合到一个可检索的数据库里。它与 Mcule 功能相近但更偏供应链视角:同一个分子有哪些供应商、各家价格多少、交付多快、纯度如何——这些正是把虚拟筛选结果变成实验样品时要回答的问题。

分层体系

Tier 含义 交付周期
Tier 1 现货,立即发货 数天~2 周
Tier 2 供应商可快速制备 2~4 周
Tier 3 按需合成 4 周以上
Screening compounds 筛选用化合物库 视层级
Building blocks 合成砌块 多为现货

Tier 分层直接对应项目节奏:需要两周内拿到样品做验证,就只看 Tier 1;可以等一个月扩大探索范围,才纳入 Tier 2/3。

典型使用流程

  • 批量上传候选:把筛选出的 SMILES 列表批量提交,一次性查全部分子的可得性。这是最主要的用法。
  • 比价:同一化合物往往有多家供应商,价格差异可达数倍。批量采购时这笔差价不小。
  • 相似化合物检索:目标分子买不到时,搜结构相近的替代品——很多时候一个相似类似物就足以验证 SAR 假设。
  • API 集成:把可得性查询接进内部筛选流程,让计算结果自动带上采购信息。
# 把可得性作为筛选流程的一个过滤层(示意)
def enrich_with_procurement(df_hits, lookup_fn):
    """给候选分子加上可得性、价格、交付周期,用于最终排序"""
    recs = []
    for smi in df_hits["smiles"]:
        info = lookup_fn(smi)            # 调用采购平台 API
        recs.append({
            "smiles": smi,
            "available": info.get("available", False),
            "tier": info.get("tier"),
            "best_price_usd": info.get("min_price"),
            "lead_time_days": info.get("lead_time"),
            "n_suppliers": info.get("supplier_count", 0),
        })
    return df_hits.merge(pd.DataFrame(recs), on="smiles")

# 最终排序综合考虑:打分、可得性、价格、多样性
ranked = enriched[enriched["available"]].sort_values(
    ["tier", "docking_score"], ascending=[True, True])

把采购信息纳入决策

成熟的虚拟筛选流程不会只按对接分数排序,而是综合考虑分数、可得性、价格和多样性。一个实用的取舍框架:

  • 预算固定时:与其买 10 个昂贵的高分分子,不如买 30 个中高分但覆盖多个骨架的分子。首轮筛选的目标是找到「哪类骨架有戏」,而不是找到最强的那一个——化学多样性比单点分数更重要。
  • 时间紧时:Tier 1 现货优先,哪怕分数略低。两周拿到数据推动决策,胜过一个月后的完美样品。
  • 已有苗头做 SAR 时:这时反过来,围绕特定骨架买一系列类似物更有价值,可以接受更长交付周期。

注意事项

  • 目录与实际库存有滞后:显示有货不代表下单一定能拿到,尤其是冷门分子。
  • 纯度与表征差异:不同供应商的质控标准不同。关键分子应索要 NMR / LC-MS 数据。
  • 最小订购量与运费:小批量采购时运费和最低消费可能占成本大头,集中在少数供应商下单更划算。
  • 国际运输限制:某些化学品跨境运输受限,跨国采购要提前确认。
  • 结构一致性:不同供应商对同一化合物的立体化学标注可能不一致,手性分子采购要格外核对。

上手提示

  • 核心价值是比价与多供应商可得性核查,批量采购时省钱明显;
  • Tier 分层直接对应项目节奏,紧急验证只看 Tier 1;
  • 首轮筛选优先化学多样性而非单点最高分;
  • 手性分子采购务必核对立体化学标注的一致性。

延伸资源