药物研发领域中人们一直感兴趣的研究领域是利用计算机工具从头设计药物分子。伴随着人工智能的突飞猛进,利用AI进行药物从头设计的研究也越来越受到人们的重视。目前基于AI的药物从头设计工具良莠不齐。阿斯利康的研究员们发布了一个基于AI的药物从头设计工具,本文是对该工具的一个具体说明。
1 摘要
过去几年,我们目睹了分子设计药物领域的复兴。在深度学习和人工智能 (AI) 方面的进展激发了人们大量的关于如何将这些技术转化到包括药物设计在内的各种领域的想法。一系列架构被设计出来,以便寻找最佳的使用基于图形或字符串 (SMILES) 的表征来生成化合物的方法。借助本应用说明,我们旨在为相关研究团体提供一个可用的从头药物设计工具:REINVENT。REINVENT可以有效地应用药物发现项目,在化学空间定位的同时努力解决研究和探索问题,它让研究者将其注意力放在最有前途的化合物上,从而促进化合物的设计。REINVENT的代码是公开的,其地址为:
代码语言:javascript复制https://github.com/MolecularAI/Reinvent.
从头药物设计的主要目标是鉴定出能够同时满足一系列基本优化目标的新型活性化合物,如活性、选择性、理化性质和ADMET性质。由于可能的方案数量庞大,最佳地满足这么多的需求是一项非常困难的任务,这使得搜索过程即使只用计算机方式进行,也变得缓慢和昂贵。因此,拥有一个能定位化学空间并生成相关概念分子的高效解决方案至关重要。为了满足这种需求,研究界最近将研究重点转向了基于人工智能 (AI) 的能够提出有希望的小分子的生成模型。生成模型在化学空间探索中的潜力已在众多研究中得到证实。各种各样的神经网络结构被设计出来,大量的人工智能训练策略被应用到这项研究中,用来设计出更有效的化合物生成方法。许多框架,如变分自编码器 (VAEs),具有长短时记忆 (LSTM) 细胞的递归神经网络 (RNNs)、条件RNNs或生成对抗性网络,已被证明能成功地利用分子图形或SMILES数据表征来生成分子。
大多数用于从头药物设计的工具,不论其具体实现细节如何,都可以概括为三个主要组成部分:搜索空间 (SS)、搜索算法和搜索对象。在此背景下,我们可以将生成模型指称为搜索空间。我们还观察到在从头设计中使用生成模型的两个主要趋势:分布学习和目标导向生成。分布学习主要集中在产生类似于特定分子集的概念上。
目标导向的生成方法通常是在使用搜索算法的同时,旨在提出满足给定目标 (或目标) 的分子,而不必对整个搜索空间进行采样。在这两种情况下,无论是在目标驱动情况下的生成过程中,还是在分布式学习场景下对整套解决方案进行采样后,最终都通过用户定义的评分函数 (搜索对象) 来过滤结果。虽然使用目标导向方法的一个共同问题是狭隘的解决方案集,但使用分布学习的相反方法导致大量无关建议筛选的通过。这两个极端的场景代表了对搜索空间进行探索或利用的尝试。
越来越多的基于生成模型的开源解决方案旨在分别解决从头设计的这两个方面。理想情况下,在使用相同从头设计工具的同时,应允许用户在探索和开发模式下高效地导航化学空间。对于开采,用户定义了一个感兴趣的领域,并重点生成具有相似结构特征的化合物。相比之下,勘探模式使他们能够获得结构相似度较小但仍满足其他期望特征的化合物。为了以不同于普通分布学习的方式实现这一目标,我们需要将目标导向的学习存储在内存中,并在单次搜索运行过程中给出建议解决方案。这意味着不仅需要利用预测模型和结构的相似性/相异性,而且需要利用各种基于规则的评分组件来推动或远离化学空间的特定区域。此外,为了能够适当地适应现有的任何药物发现项目,对这些潜在的评分功能组件进行微调的能力至关重要。
在这个应用说明中,我们正在描述REINVENT2.0,它是用于小分子从头设计的工具。REINVENT 2.0借鉴了Olivecrona和Sutton等人关于强化学习 (RL) 的工作,Arús-Pous等人关于生成模型的架构和实现,Cummins等人关于评分函数的制定,以及Blaschke等人关于在RL循环中使用多样性过滤器 (DF) 加强探索的工作。
作为一个全新的设计应用,REINVENT2.0涵盖了分布式学习和目标导向场景。目标导向使用场景为采用生成模型作为搜索空间,RL作为搜索算法,能够将来自不同成分的分数组合起来形成奖励的柔性评分函数作为评分对象。各个组件中的计算可以并行运行。分数也可以通过一个多样性过滤器来调节,它惩罚冗余并奖励所找到的解的多样性,从而激发探索。对每个用例都实现了详细记录。此外,还提供了向远程REST端点发送日志的选项,使得应用程序可以放在Web界面后面。REINVENT2.0也可用于从零开始构建生成模型。
关于生成模型的详细信息,请参阅Arus-Pous等人的研究。为了方便用户,我们用一个预先构建的生成模型和一系列旨在说明一些最常用用例的例子来补充代码。这些例子在单独的资源库中提供:
代码语言:javascript复制https://github.com/molecularAI/ReinventCommunity
有关这些特性的更多详情见下文各节。
2 REINVENT概述
REINVENT的核心使用的是生成模型。生成模型有一个源于Arús-Pous等工作的体系架构,该体系架构又受到Segler和Olivecrona等人的启发,该模型在ChEMBL27的数据集上训练,能够生成SMILES格式的化合物。模型的架构如图1所示。
图1. REINVENT生成模型框架
REINVENT提供不同运行模式。不同运行模式的组合使得用户可以实现对化学空间的开发或探索。关于一般用例的进一步讨论可以在支持信息中找到。允许实现探索性行为的一个关键特性是多样性过滤器。
多样性过滤器
多样性过滤器 (diversity filters,DF) 可以看作是用来跟踪所有生成的骨架和共享这些骨架的化合物的桶 (buckets) 的集合。桶是共享同一骨架的化合物的集合。显然,并非所有生成的化合物都是研究者感兴趣的,只有那些被多参数目标 (MPO) 评分超过一定用户自定义阈值的化合物才会进入骨架桶。当平均分达到这个阈值以上时,我们已经达到了产出状态。这意味着每一步的化合物 (得分高于阈值的) 大部分都会被收集并存储在存储器中。一旦生成得分高于阈值的化合物,则提取其骨架并存储在骨架注册表中,化合物进入相应的桶中。
桶的容量有限,一旦给定桶中化合物的极限达到允许的阈值,任何后续的桶归属都将受到罚分。每一个进入满桶的新化合物都会被分配为零的分数,这样就告诉代理 (agent) 这个区域的化学空间已经变得不利。需要注意的是,即使桶限制已超过,也会在桶中加入化合物。唯一的影响将是对代理的,因为它将不断阻止产生类似的化合物共享给定的骨架。这将迫使代理寻求替代的解决办法,从而实现有效的化学空间探索,并将防止代理陷入局部极小并重复生成相同的化合物。所有收集的化合物都被保存和存储,直到RL运行结束,并作为csv格式的文件保存。
用户可以通过使用拓扑DF、相同的Murcko DF或骨架相似DF来选择其多样性策略。拓扑DF是最具限制性的,因为它是不确定的原子类型。它是通过去除所有侧链,然后将结构中的所有原子转换为sp3碳而产生的。另外两种DF也除去了所有侧链,但保留了原子类型。相同Murcko DF只检查是否有一个桶具有完全相同的骨架,而骨架相似度更允许,如果满足一定的骨架相似度阈值,可以将化合物纳入桶中。阈值是用户定义的,对评分函数的离散定义很敏感。将其设置为更高的值显然会导致更少的化合物通过阈值。
强化学习
生成分子过程往往需要将生成模型导向包含感兴趣化合物的化学空间。我们通过RL场景来实现这一点,同时旨在满足一组由用户定义的需求,这些需求反映了所需化合物的最重要特征。也就是说,生成模型将试图最大化包含多个组分/参数的评分函数的结果,从而计算一个MPO评分。为了从化学空间的特定部分生成化合物,REINVENT使用由不同用户定义的组件组成的复合评分函数。每个组件负责一个简单的目标属性。如Olivecrona等人所描述的,评分函数反馈被用于带有策略迭代的RL循环。
REINVENT中使用的RL循环元件如图2所示。通常,RL设置由一个行动子(actor)和一个行动子采取一组动作并获得奖励的环境 (environment) 组成。奖励反映了行动子解决手头问题的能力。动作集合称为策略,完成策略后的奖励称为策略迭代。在我们的例子中,动作是构建转译为SMILES的令牌序列所必需的单个步骤。环境的作用由评分调制块发挥,如图2所示。行动子被标记为“代理”。代理采样一批SMILES后,奖励受到几个成分的影响:评分函数、‘先验’,以及一个多样性过滤器。
图2. REINVENT强化学习周期
“先验”是一个生成模型,它与代理共享相同的体系结构和词汇。它具有巨大的生成能力和从相对广阔的化学空间中取样化合物的潜力。本质上,先验与RL开始时的代理相同。但是,代理可能会受到初始转移学习,在这种情况下,模型将具有不同的权重。
图2所示的RL循环的最终组件是工具的初始化。初始化的目的是跟踪先前评分好的化合物,并随机地将其中的一个子集暴露给代理,从而帮助指导学习。最后,在将化合物从起始的内存包含到批处理后,损失会传播回来,只有代理才会更新,从而收到其与环境交互的反馈。环境由评分调制块表示,如图2所示。另一方面,前者(代理)不会发生任何变化。
RL的持续时间由用户根据要执行的RL步数预先定义。这是非常具体的,通常是由问题的复杂性决定的。在计算成本方面,打分函数是RL环路中最昂贵的元素,因为它可能包含包括慢速预测模型、对接和/或药效团相似性等可变数量的成分(后两者不包含在当前版本中)。
打分函数
REINVENT提供两个通用评分函数公式。评分函数的个别分量既可以组合为加权和,也可以组合为加权乘积。各成分的得分贡献可以在[0,1]范围内变化。因此,总体得分也在相同的[0,1]范围内。
迁移学习(TL)
作为目标导向生成的替代,分布学习也在REINVENT中得到支持。这种方法需要预先训练好的生成模型,具有生成能力,并且有潜力从相当广阔的化学空间中取样化合物。我们把这种生成模型称为先验模型。这个先验用一组与给定项目相关的较小的化合物进行转移学习。例如,如果我们的目标是在其他组分中最大化一个预测模型,我们将使用所有被该模型认为具有活性的化合物。如果我们针对某个子系列化合物,我们只使用那些共享系列特定特性的化合物,如分子骨架。这将导致模型以更高的概率产生与目标数据集相似的化合物。我们将该模型称为‘聚焦先验’。用户随后可以对该模型进行采样,并利用重塑中的评分模式对生成的化合物进行评分。
作为替代方案,我们还可以在RL环中使用产生的"聚焦先验"作为代理。由分布学习得到的生成模型是目标定向生成的一个合适的起点。先验的这种预聚焦可以加快整个RL过程,因为与使用一般的、无聚焦的先验作为代理相比,产生相关化合物的机会要高得多。一旦聚焦,代理将有更大的概率抽样一个感兴趣的化学子空间从而更快地达到生产力状态。两种用例进一步如图3所示。
图3. REINVENT支持的生成案例
记录
对学习过程的监控至关重要的是全面日志记录系统的可用性。REINVENT利用Tensorboard通过每一步后采样并显示采样数据的似然分布,提供TL过程中代理的演化的信息。关于SMILES的有效性和最常遇到的分子的统计也显示出来。对于RL,REINVENT正在绘制评分函数的演变以及个体评分分量对整体评分的贡献。REINVENT也在显示每个RL后得分最高的化合物。作为替代,REINVENT还提供了我们用于远程日志记录的实现,这些实现可以设置为将日志记录结果发送到自定义的REST端点。
3 使用
REINVENT是开源Python应用程序。它采用PyTorch 1.3.0作为深度学习引擎,RDKit版本2019.03.3.0作为化学引擎。它完全适用于基于Scikit学习的机器学习模型,它使用了Tensorboard在PyTorch中的实现对于化学空间导航过程的详细记录。
安装
代码语言:javascript复制conda env create -f reinvent.yml
激活
代码语言:javascript复制conda activate reinvent.v3.2
使用
代码语言:javascript复制python input.py some_running_mode.json
4 总结
这里描述了一个实用和开源的用于从头生成小分子的应用程序。它既可以用来解决勘探和开采类型的问题,同时允许灵活制定复杂的MPO评分。在代码库中https://github.com/MolecularAI/ ReinventCommunity中提供了各种用例的示例。除了提供现成的解决方案外,通过释放代码,研发者希望能够为利用生成方法进行药物发现的研究提供便利,研究人员希望它可以作为未来科学合作的互动点。
参考文献
Blaschke, Thomas, et al. "REINVENT 2.0: an AI tool for de novo drug design." Journal of chemical information and modeling 60.12 (2020): 5918-5922.
--------- End ---------