221

REINVENT4:分子生成平台部署与任务配置

REINVENT4 通过配置文件定义生成模式与多目标打分,是目标导向分子生成的工程化平台。这篇给出配置结构、打分函数设计与实际使用要点。

REINVENT4 是阿斯利康开源的分子生成平台,用强化学习驱动生成模型朝目标性质优化。它是少数真正被工业界用于实际项目的开源生成工具,工程完成度高:多种生成模式、可组合的多目标打分、完整的日志与断点续跑。

安装

git clone https://github.com/MolecularAI/REINVENT4.git
cd REINVENT4
pip install -r requirements-linux-64.lock
pip install --no-deps .

reinvent --help
reinvent config.toml

四种生成模式

模式 输入 用途
Reinvent 从头生成全新分子
LibInvent 骨架 + 连接点 R 基团枚举,做类似物库
LinkInvent 两个片段 设计连接子,适合片段生长、PROTAC linker
Mol2Mol 起始分子 相似性约束下的分子优化

实际项目里 LibInvent 和 Mol2Mol 用得最多——先导优化阶段通常不需要天马行空的新骨架,而是要在已有系列上做受控改造。从头生成看着惊艳,但产出往往难合成、偏离已知 SAR。

配置文件结构

run_type = "staged_learning"
device = "cuda:0"

[parameters]
prior_file = "priors/reinvent.prior"
agent_file = "priors/reinvent.prior"
batch_size = 128
use_checkpoint = false

[[stage]]
chkpt_file = "stage1.chkpt"
termination = "simple"
max_score = 0.7
max_steps = 300

[stage.scoring]
type = "geometric_mean"

[[stage.scoring.component]]
[stage.scoring.component.QED]
[[stage.scoring.component.QED.endpoint]]
name = "QED"
weight = 1.0

[[stage.scoring.component]]
[stage.scoring.component.custom_alerts]
[[stage.scoring.component.custom_alerts.endpoint]]
name = "Alerts"
params.smarts = ["[*;r8]", "[#7;!n][S;!$(S(=O)=O)]", "[#16][#16]"]

[[stage.scoring.component]]
[stage.scoring.component.MolecularWeight]
[[stage.scoring.component.MolecularWeight.endpoint]]
name = "MW"
weight = 0.6
transform.type = "double_sigmoid"
transform.high = 500.0
transform.low = 250.0
transform.coef_div = 500.0

打分函数:整个系统的成败所在

生成模型只会优化你写下的分数。打分函数设计不当,模型会精确地钻空子,产出得分很高但化学上荒谬的分子。几条实践经验:

  • 务必加合成可及性与结构警报:只优化活性预测分,模型会产出高分但完全没法合成的怪物。SA score、custom_alerts、PAINS 过滤是必备的护栏。
  • 用 transform 把硬阈值变软:直接卡 MW < 500 会造成优化悬崖,用 double_sigmoid 这类平滑变换,模型更容易学。
  • 几何平均而非算术平均geometric_mean 下任一项接近 0 就整体接近 0,能防止「牺牲一个性质换其它高分」。
  • 分阶段(staged learning):先优化基本性质,再逐步加入更严格的目标。一次性上全部约束往往学不动。
  • QSAR 组件要看适用域:接入自己训练的活性模型时,生成分子很可能落在训练分布之外,此时预测值不可信。务必配合不确定性或相似性约束,否则模型会专门找模型的漏洞。

结果怎么评估

  • 看的不是「最高分」而是分布整体的移动,以及生成分子的多样性有没有崩塌(mode collapse)。
  • 用 GuacaMol / MOSES 的指标(有效性、唯一性、新颖性、内部多样性)做基本体检,见 222《GuacaMol》223《MOSES》
  • 务必人工过一遍:用 mols2grid(见 217《Mols2grid》)把 top 分子渲染出来,让药化同事看。这一步几乎总能发现自动指标漏掉的问题。
  • 最终判据是可合成、可验证:挑出的分子要能真正做出来并测活性,否则整轮生成没有实际价值。

上手提示

  • 先导优化优先用 LibInvent / Mol2Mol,从头生成的产出往往难合成;
  • 打分函数决定一切,必须加 SA score 与结构警报做护栏;
  • 用几何平均 + 平滑 transform,避免模型钻空子;
  • 自训 QSAR 组件要配不确定性约束,否则模型专挑模型漏洞。

延伸资源