222

GuacaMol:分子生成模型评测工具

GuacaMol 提供分布学习与目标导向两类基准,用于客观评测分子生成模型。这篇讲清两类任务、各指标含义,以及这套基准已知的局限。

GuacaMol(BenevolentAI,JCIM 2019)是分子生成模型的标准评测框架。在它出现之前,各家生成模型各报各的指标,无法比较。它把评测分成两大类——分布学习目标导向生成——并给出统一的实现和基线。

安装与使用

pip install guacamol

# 下载标准数据集(ChEMBL 衍生,已做时间划分)
wget https://ndownloader.figshare.com/files/13612760 -O guacamol_v1_train.smiles
from guacamol.assess_distribution_learning import assess_distribution_learning
from guacamol.distribution_matching_generator import DistributionMatchingGenerator

class MyGenerator(DistributionMatchingGenerator):
    def generate(self, number_samples):
        return my_model.sample(number_samples)     # 返回 SMILES 列表

assess_distribution_learning(
    MyGenerator(),
    chembl_training_file="guacamol_v1_train.smiles",
    json_output_file="dist_results.json",
)

分布学习基准

指标 衡量什么 说明
Validity 生成的 SMILES 有多少能被 RDKit 解析 基本门槛,现代模型普遍接近 1.0
Uniqueness 不重复的比例 低说明模式坍塌
Novelty 不在训练集中的比例 低说明在背诵训练数据
KL divergence 多种理化性质分布与训练集的接近程度 越接近 1 越好
Fréchet ChemNet Distance 神经网络特征空间中的分布距离 综合性最强的一个

这五个指标要一起看:单看 validity 没意义(输出同一个分子一百万次也是 100% 有效);novelty 很高但 FCD 很差,说明生成的是分布外的怪东西。

目标导向基准

这部分更贴近实际应用:给定 20 个优化目标,看模型能否找到满足条件的分子。目标包括:

  • Rediscovery:从训练集中移除某个已知药物(如西地那非),看模型能否重新发现它;
  • Similarity:生成与某个目标分子相似度高的分子;
  • Isomers:生成符合指定分子式的分子;
  • Median molecules:同时与两个不相似分子都相似(多目标折中);
  • MPO 任务:多参数优化,如「类似奥沙尼喹但 logP 更低、TPSA 更高」——最接近真实先导优化的一类。
from guacamol.assess_goal_directed_generation import assess_goal_directed_generation
from guacamol.goal_directed_generator import GoalDirectedGenerator

class MyOptimizer(GoalDirectedGenerator):
    def generate_optimized_molecules(self, scoring_function, number_molecules,
                                     starting_population=None):
        return my_rl_agent.optimize(scoring_function, number_molecules)

assess_goal_directed_generation(MyOptimizer(),
                                json_output_file="goal_results.json")

已知局限:别把分数当能力

  • 目标函数可以被钻空子:多数目标基于 RDKit 描述符和指纹相似性,优化算法容易找到分数极高但化学上荒谬的分子。GuacaMol 排行榜上分数最高的方法,有些产出的分子并不像真实药物。
  • 不考虑合成可及性:基准里没有合成难度这一维,而这在真实项目中是硬约束。
  • 与真实药物发现的差距:真实优化目标是活性、选择性、ADMET、专利空间等,远比这些代理目标复杂且噪声大。
  • 简单方法竞争力很强:后续研究发现,遗传算法等经典方法在 GuacaMol 上能击败很多深度生成模型——这本身就说明基准的区分度有限。

正确的使用姿势

把 GuacaMol 当作基本体检而非能力认证:validity/uniqueness/novelty/FCD 明显异常说明模型有问题,值得排查;但分数高不代表在真实项目中好用。选型时,务必在自家任务和自家打分函数上再评估一遍,并人工审查生成分子的化学合理性

上手提示

  • 五个分布指标必须一起看,单看 validity 毫无意义;
  • 目标导向任务里的 MPO 最接近真实先导优化,重点看这几项;
  • 基准目标可被钻空子,高分不等于产出像药;
  • 当体检用,不当能力认证;选型要在自家任务上重测。

延伸资源