前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >徐峻|人工智能辅助药物发现——从颠覆性思维到底层逻辑的重构

徐峻|人工智能辅助药物发现——从颠覆性思维到底层逻辑的重构

作者头像
智药邦
发布于 2022-11-16 10:22:09
发布于 2022-11-16 10:22:09
1.2K0
举报
文章被收录于专栏:智药邦智药邦

2022年9月22日,中国AI药物研发大会 (CAPR) 在上海召开。中山大学药物分子设计研究中心徐峻主任以《人工智能辅助药物发现——从颠覆性思维到底层逻辑的重构》为题演讲,从底层逻辑的角度解读了AI在制药行业的价值、挑战和未来的机会。

以下是演讲主要内容。

传统药物设计方法学的困境与悖论

药物设计方法学发轫于QSAR (Quantitative Structure and Activity Relation) 的研究。QSAR通过一些数理统计方法,建立化学结构与生物活性之间的数学关系,进而预测化合物的生理活性或某些性质。

但是在几十年的发展之后,QASR的困境日益凸显。这要从QASR的两个基本公设说起。

QSAR的两个基本公设是:一、相似的分子结构应该有相似的活性 (similarity);二、骨架上的取代基对活性的贡献有加和性 (additivity)。

这两个基本公设的建立与QSAR诞生之初科学思想界的思维逻辑是一致的。直到上世纪60年代前后,科学思想界的认识论遵从决定论的思维逻辑。即,对客观现象的预测必须基于对机理的理解,机理是用事物特征变量 (自变量与函数) 之间的数学关系来表达的。

因此,早期的QSAR研究寻求分子中的自变量 (子结构) 与分子性质 (函数) 的数学解析式,用拟合或回归的方法发现隐藏在实验数据中的函数关系。由于作为自变量的分子结构是拓扑图,QSAR方法要寻求的是泛函的解析式。

这两个基本公设奠定了QSAR迅速发展的基础,同时也为QSAR方法的发展困境埋下了伏笔。

基于QSAR的药物设计学当前面临以下重大挑战:

1 骨架/子结构划分问题没有共识

骨架/子结构划分问题是QSAR成功的关键,但是目前没有达成共识的解决方案。

QSAR假定结构相似的化合物有相似的活性,然而关于哪些子结构是共同的子结构 (或者称之为骨架结构) 并不好划分,这个问题在数学上也没有一个严谨的定义方法。

2 QSAR的取代基加和性判别问题难解

第二个问题,是没有简单可行的方法判别取代基对分子性质的贡献是否具有加和性。骨架上的两个或两个以上取代基对分子性质的贡献的加和性取决于彼此之间没有协同作用,或者协同作用可以忽略。由于实验数据存在误差,人们很难将协同作用与实验误差区别开来。而在很多情况下,如共轭体系、极性诱导效应都会导致加和性公设失效。

3 QSAR的相似性公设,受到活性断崖问题的严重挑战

活性断崖问题,即很多结构相似分子却具有迥然不同的活性的现象,直接挑战了第1个基本公设。

图1 活性断崖问题

活性断崖问题的本质是:很多情况下,分子的活性/性质与子结构密切相关,而不与分子的整体相似度相关。而当QSAR方法试图将分子的活性/性质与分子的整体相似度相关时,可能产生巨大的预测偏差。引起这类偏差的原因很多,除了上述原因,还可能有其它因素,例如因为没有充分采样而成为离群数据点、有些活性断崖问题不是配体本身的问题,而是受体被调控时发生了量变到质变的跳跃。

4 QSAR模型的预测精确性与普适性悖论

此外,QSAR预测的精确性与普适性不能兼得。

图2 QSAR模型的预测精确性与普适性悖论

药物发现领域也存在与海森堡测不准原理类似的悖论:如果要求模型预测精确,那么模型的实用性就会降低;如果要求模型能够广泛适用,那么预测又不可能精确。

5 药物开发过程的多参数决策困难

而且,药物开发过程极其复杂,涉及复杂系统的多参数决策,不能用简单的拟合法求解。

图3 多参数决策困难

总之,分子结构与性质的关系本质上是泛函关系,是多层嵌套的函数之函数,从每一层向外传递信息时都有特殊机制和测量误差,这给多参数决策增加了难度。

人工智能:泡沫还是重大进步?

工欲善其事,必先利其器。

在传统药物设计方法面临许多困难的情况下,AI方法是否能够带来新的解决方案?有人认为AI是泡沫,也有人认为是重大进步,争论不一。

为此,我们可以回顾一下深度学习背后的新思维。

1 药物设计从规则驱动转变为统计学+规则驱动

AlphaFold的成功宣告药物设计方法学新时代的到来,主要原因是现代人工智能给人类认识论带来了颠覆性的转变。

在爱因斯坦、牛顿的时代,科学认识论一直是所谓的决定论,即预测由机制决定,而机制以函数形式表达。

新思维认为,这个世界不仅由规则驱动、还有统计学。规律在统计学驱动下不断演化。因此,预测分子的性质不仅限于传统的规则驱动的方法,可以先用统计学方法发现事物之间的关系,然后解析这种关系的机理。

表1 传统的认识论与AI时代的认识论比较

传统的认识论

AI时代的认识论

规则驱动(rule-driven)

统计驱动(statistics-driven)

● 新知识基于对数据的拟合分析(逻辑推理)而获得● 新规律在机理被解析之后才被确立认可

● 新知识通过对大数据独立的统计分析(深度学习)而获得● 新知识可以随着大数据演化而演化● 对新规律机理的解析可以延后● 与QSAR的关系:预测可以基于机理尚不明确的统计学结果

2 QSAR方法从函数拟合转变为张量空间的变换

传统的QSAR是寻找一种优化的方法来产生自变量应变量的最佳拟合。

而在AI驱动的药物设计中,自变量、应变量属于两种张量空间,我们需要做的是寻找一种变换 (Transformer),将两种张量进行空间的映射,穿越离散数学空间与连续数学空间之间的壁垒。

表2 传统的QSAR方法与AI驱动的药物设计方法的比较

传统的QSAR方法

AI驱动的药物设计方法

● 寻找一种最优化方法产生自变量-应变量的最佳拟合

● AI驱动的药物设计方法在数据基础上建立属于自变量和应变量的两种张量空间,然后寻找能将两类变量在两种空间中互相映射的变换机(Transformer)● 数值回归就是连续变量到连续变量的映射● 逻辑回归就是离散变量到离散变量的映射● 深度学习实现连续变量与离散变量之间的相互映射● 于是,QSAR通过用transformer穿越离散数学空间与连续数学空间壁垒而实现重生

3 实现QSAR从整体模式识别到局部注意力机制的转变

第三个颠覆性的思维是整体模式识别到局部的注意力机制。

构效关系是关于结构与活性之间的关系,本质是局部结构 (子结构) 与活性之间的关系。但是传统的QSAR方法因为无法动态划分子结构而不能找出上述关系。传统的QSAR中的“活性断崖”问题的根源在于用分子的整体相似度关联分子的活性,而分子的活性会因为局部结构的微小变化而发生巨大变动,传统的QSAR方法难以捕捉这种变动。

而AI的注意力机制 (attention) 有可能动态地捕捉此类重要局部特征与活性的关系,从而解决了子结构划分、加和性难题和活性断崖难题。

表3 传统的QSAR方法与AI驱动的药物设计方法的比较

传统的QSAR方法

AI驱动的药物设计方法

● 寻找整体相似度方法,将相似的结构与相似的活性关联

● 注意力机制 (attention mechanism) 突出分子的重要局部特征,建立重要局部特征与活性的关系● 局部特征的重要性从输入数据中计算出的权重表示● 与QSAR的关系:解决子结构划分、加和性难题和活性断崖难题● Attention is all you need!

4 从关注分子整体(积分)到关注局部(微分)

分子的数学本质是图,属于离散数学 (不可微分),传统数学分析方法难以实现离散空间到连续可微空间的转换。AI使QSAR实现从关注分子中的原子到关注原子片段 (子结构) 的转变,解决了分子子结构动态划分问题。

图4 从关注分子整体(积分)到关注局部(微分)

基于AI,我们可以从关注分子整体 (积分) 到关注局部 (微分),即从离散数学 (不可微分) 穿越到连续空间 (可微分);从关注分子中的原子到关注原子片段 (子结构),即从关心每个原子到关心每个原子的化学环境 (周边的电子氛)。

图5 关注机制解决子结构动态划分问题

可以说,注意力机制解决了子结构动态划分问题,结构与活性的关系被改正为子结构 (局部化学环境) 与活性的关系。

AIDD的应用领域

基于深度学习技术,药物发现的端到端数据分析可以实现多种应用,例如探索药物化学多样性空间,生成小分子结构,辅助类药化合物设计,预测小分子与靶标的作用,发现与验证药物靶标,筛选化合物与发现先导物,临床前研究、设计临床实验。

AIDD当前热点主要有三个方面:小分子的发现 (面向靶标的分子生成模型、合成路线规划、合成可行性预测、先导化合物优化)、图像识别的应用 (药物和基因扰动数百万个细胞样本产生染色成像,AI分析数据发现靶标、优化先导化合物、预测毒性)、临床试验设计 (分析电子健康记录、患者人口统计、临床试验的结果、组学数据,建立患者与临床试验匹配)。值得注意的是,现代人工智能最擅长于图像识别和自然语言处理,在药学领域的许多数据分析问题可以借助于图像识别和自然语言处理所用到的人工智能方法。

定义合理的期待:AIDD的本质性局限

我们看到人工智能的颠覆性思维带来的影响的同时,也应当看到它的局限性。只有看到它的局限性,才能用好人工智能技术。AIDD存在以下局限性:

Box1 AIDD的局限性

机器学习的目标是最大程度地发现数据所呈递出来的特征

● 导致创新的数据特征往往具有小众性 (常常被当作离群数据处理),不能被AI方法所捕捉

● 看似“奇葩”的离群数据点却很可能是通往新发现的入口

● 机器学习的本质是守旧的,创新是对守旧的颠覆

● 哲学上讲,单靠机器学习发现创新药物是不现实的

AIDD的本质性局限,内在地规定了AI药物设计可能会出现的问题,比如结构新颖性问题 (以Exscientia的DSP-1181为例)。

展望:学科的大分化与大综合——学科递归与底层逻辑的重构

要了解AI药物发现的未来,就应当注意到科学发展的大背景与大趋势。

当代人工智能的发展给整个学科未来的方向产生了巨大的影响,这包括:机器学习的底层逻辑——神经网络已经渗入到各种学习的过程中;在人工智能的推动下,自从人类基因组计划完成以后产生的学科大分化,开始向学科大综合发展 (大综合有个标志性的前缀,叫做meta);而数据与程序之间的递归演变,引出了元数据 (Meta-data) 的概念 (即数据之数据),其中,元数据的研究与实现是科学技术底层逻辑的重构的标志性事件。它促进了人类知识体系 (Humanities) 的演化,引发了元-革命 (Meta-revolution)。以学科内部和学科之间的递归演变为特征的人类知识体系大综合时代已经到来,产生了重构现代科学技术版图的各种元-学科。

Box2 重构现代科学技术版图的各种元-学科

● 元语言 (Meta-language):语言之语言

形式语言 (Formal language),如巴科斯-诺尔范式 (Backus–Naur form, BNF)位于数理语言的顶端,它规范化一切计算机语言,如C、Pascal、C++等一切计算机高级语言和其它人类发明的语言;

脚本语言 (scripting language) 如PythonPerl等,它们是高级语言 (如C语言) 的元语言;

文本标记语言 (document mark-up language) 和数据标记语言 (data mark-up language) 如HTML (hypertext markup language)、X-ML (extensible markup language),它们规范数据结构,将各种不同类型的数据任意组装、自由表达;它们也是可被计算机执行的程序代码,是现代数据库大数据处理技术的新形态。

● 元学习 (Meta-learning):学习之学习

元学习是机器学习技术的递归演变,它研究计算机如何自组装学习技术、编程自改进。

● 元科学 (Meta-science):科学之科学

研究科学本身发展规律的科学,它研究科学研究过程的各部分及其相互关系,构建科学鸟瞰图、研究科学结论的有效性、科学研究方法学的可重复性、效率问题、和缺陷,以及科学方法的过程、评估、和同行审查程序等。

● 元 (荟萃) 分析 (Meta-analysis):分析之分析

分析分析过程的各种技术/参数之间的关系,综合多项科学研究结果所得结论的有效性、严谨性、可信度。当用多学科研究解决同一问题时 (例如选择候选药物),每个研究报告的测量值都有误差,用统计方法识别误差以求最接近真值的总评估,循证医学认为荟萃分析结果是最可靠的证据来源。例如对千例以上的弥漫性脑胶质瘤和其他儿童胶质瘤进行荟萃分析,从文献中提炼出有关突变以及一般结果的信息。

● 元药物 (Meta-drug):药物之药物

代谢物 (Meta-bolite) 可以视为药物的药物,它们可以被分为前药 (pro-drug),非药物在体内被快速变成药物发挥疗效;软药 (soft-drug),药物发挥疗效后被体内快速变成非药物;和抗药 (ante-drug),药物进入体循环时被转化成易排泄的非药物。元药物的研究涉及生命体系中超复杂的化学反应拓扑网络,它将是药物颠覆性创新的新维度。

元革命产生的学科大综合将不胜枚举,例如元程序 (Meta-program, 程序之程序)、元基因组学 (Meta-genomics, 基因之基因)、元哲学 (Meta-philosophy, 研究哲学发展规律的哲学)、元方法学 (Meta-mathematics, 数学之数学)、元物理/形而上学 (Meta-physics, 研究物理学发展规律的科学)、元材料学 (Meta-material,超材料学)、元宇宙/超现实(Metaverse)。这些学科已经带给世界巨大的惊喜,各种元科学/技术正方兴未艾。

可以预期,上述各学科将引领新的科技革新,它们的兴起离不开人工智能的支持,而人工智能有赖于高质量大数据资源的建立与更新。

结语:AI的重要之处在于对底层逻辑的重构

当前,AI正在通过多种方式、多种途径应用于药物发现。在这些令人眼花缭乱的应用背后,是AI对于药物发现的底层逻辑的重构。底层逻辑的研究,是我们未来研究的重要方向。

我们已经看到,注意力机制建立了重要局部特征与活性的关系,使QSAR获得重生 (修补了子结构划分等先天缺陷);AIDD在发现大数据中隐藏的关系方面,超过了人类智慧。不过需要注意的是,在药物原创方面,AI可以辅助,但不能替代人的智慧。

AI药物发现的技术发展,将在学科的大分化与大综合的时代背景下,遵循其底层逻辑,螺旋式上升,波浪式前进。

--------- End ---------

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 智药邦 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【C++】类和对象之拷贝构造函数篇
在前面学习了6个默认成员函数中的构造函数和析构函数 【C++】构造函数和析构函数详解,接下来继续往后看拷贝构造函数。
zxctscl
2024/02/25
1380
【C++】类和对象之拷贝构造函数篇
【C++】拷贝构造函数与赋值的区别
将一个类拷贝到另一个类中,自然是需要对应的参数的,参数就是类,这里可以传递指针,引用更好,只是传值形参的话,会造成无限递归。
啊QQQQQ
2024/11/19
1150
【C++】拷贝构造函数与赋值的区别
C++奇迹之旅:深入思考拷贝构造函数
拷贝构造函数:只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用。
学习起来吧
2024/04/20
1220
C++奇迹之旅:深入思考拷贝构造函数
C++的拷贝构造函数
空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。
鲜于言悠
2024/05/24
690
C++的拷贝构造函数
C++之拷贝构造函数的浅copy和深copy
当类中没有定义构造函数时,编译器默认提供一个无参构造函数,并且其函数体为空;换句话来说,就是我们在类中,不用我们程序猿自己写,编译就自动提供了无参构造函数(只是我们肉眼看不到!)
用户6280468
2022/03/21
4080
C++之拷贝构造函数的浅copy和深copy
【OpenCV教程】core 模块 - Mat - 基本图像容器
从真实世界中获取数字图像有很多方法,比如数码相机、扫描仪、CT或者磁共振成像。无论哪种方法,我们(人类)看到的是图像,而让数字设备来“看“的时候,都是在记录图像中的每一个点的数值。
小白学视觉
2019/07/15
8320
【OpenCV教程】core 模块 - Mat - 基本图像容器
【c++】类和对象(四)深入了解拷贝构造函数
拷贝构造函数是构造函数的一个重载形式,拷贝构造函数的参数只有一个且必须是类类型对象的引用,使用传值方式编译器直接报错,因为会引发无穷递归调用,这个我们后面进行讲解
用户11029103
2024/04/02
1150
【c++】类和对象(四)深入了解拷贝构造函数
拷贝构造函数剖析【C++】
拷贝构造函数 知识点: 解释:拷贝构造函数是一种特殊的构造函数,它具有一般构造函数的所有特性,但其形参是本类对象的引用。 作用:使用一个已经存在的对象(由拷贝构造函数参数指定)去初始化同类的一个新对象。 定义格式:构造函数名 (&类名); 三种使用情况: 用一个对象去初始化同类的另一个对象; 函数的形参是类的对象,调用函数时形参与实参的结合; 函数返回值是类的对象,函数执行返回调用; 注意: 拷贝构造函数的参数采用引用方式。若把一个真实的类对象作为参数传到拷贝构造函数,引起无穷
攻城狮杰森
2022/07/09
5650
从零开始学C++之构造函数与析构函数(二):初始化列表(const和引用成员)、拷贝构造函数
文章主要讲述了在C++中,拷贝构造函数和赋值运算符的调用顺序,以及临时对象和右值引用的使用情况。具体来说,拷贝构造函数和赋值运算符的调用顺序是:首先调用拷贝构造函数,然后调用赋值运算符。如果一个对象被声明为右值引用,则其拷贝构造函数和赋值运算符会被调用两次。同时,如果一个对象被声明为右值引用,则其拷贝构造函数和赋值运算符会被调用两次。
s1mba
2017/12/28
1.4K0
从零开始学C++之构造函数与析构函数(二):初始化列表(const和引用成员)、拷贝构造函数
c++ 构造函数详解
上述程序崩溃。在使用t1复制t2时,进行的是浅拷贝,只是将成员的值进行赋值。此时,t1.p = t2.p, 即两个指针指向了堆里的同一个空间。这样,析构函数会被调用两次,这就是错误出现的原因。此问题的解决方法是“深拷贝”。
ruochen
2021/05/20
5790
c++ 构造函数详解
OpenCV 应用边缘检测与霍夫线变换实现旋转角度检测
使用opencv的图片旋转功能,把它旋转一个角度,旋转方法参考: http://blog.csdn.net/chaipp0607/article/details/63263347
chaibubble
2022/05/07
9730
OpenCV 应用边缘检测与霍夫线变换实现旋转角度检测
EasyC++71,拷贝构造函数
我们上一篇文章当中聊了面向对象中的一些坑,有的时候我们命名重载了构造函数和析构函数,但还是有问题。
TechFlow-承志
2022/08/26
2480
拷贝构造函数,深拷贝,浅拷贝
深浅拷贝的区别:     浅拷贝是将原始对象中的数据型字段拷贝到新对象中去,将引用型字段的“引用”复制到新对象中去,不把“引用的对象”复制进去,所以原始对象和新对象引用同一对象,新对象中的引用型字段发生变化会导致原始对象中的对应字段也发生变化。
zhangjiqun
2024/12/16
580
c++拷贝构造函数
拷贝构造函数是一种特殊的构造函数,它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象。拷贝构造函数通常用于:
全栈程序员站长
2021/09/30
1.1K0
c++拷贝构造函数
拷贝构造函数 浅拷贝与深拷贝
上一期中我们讲述了构造函数的相关内容,谈到构造函数在形式上有几种分类,即带参数的、不带参数的以及参数列表初始化的,还有一种传引用的构造函数,称为拷贝构造函数,顾名思义,就是起到拷贝的功能,通过一个已经存在的类对象的相关数据初始化一个新的类对象。
叶茂林
2023/07/30
2770
OpenCV进行图像相似度对比的几种办法
PSNR(Peak Signal to Noise Ratio),一种全参考的图像质量评价指标。
流川疯
2019/01/18
6.7K0
OpenCV学习笔记:MAT解析
但手动地做还是可以的:大多数OpenCV函数仍会手动地为输出数据开辟空间。当传递一个已经存在的 Mat 对象时,开辟好的矩阵空间会被重用。也就是说,我们每次都使用大小正好的内存来完成任务。
bear_fish
2018/09/19
7920
OpenCV学习笔记:MAT解析
C++拷贝构造函数
假定有类T 则下列情况调用的函数是不一样的: T a = b; a=b; 第一种情况调用的是拷贝构造函数 第二种情况调用的是赋值运算符。 默认的拷贝构造函数执行的是浅拷贝,在对象涉及到动态分配的存储空间时,会出现问题。 在a中修改变量值后,b中的也发生改变。 出现内存泄漏(只new但是没有delete就会出现这样的问题) 一个地址被多次释放也会出错 要解决上面的问题,就要执行深拷贝 深拷贝使得每一个对象成员都有自己的内存空间。 要执行深拷贝,那么就要自己定义拷贝构造函数。 主要操作在于,对于动态分配的空间,
灯珑LoGin
2022/10/31
5950
C++之拷贝构造函数
拷贝构造函数最常见的是当我们创建的对象是用该类的另一个对象来进行初始化的,此时调用的构造函数就是拷贝构造函数。拷贝构造函数实质上就是构造函数的重载。当你不显式定义拷贝构造函数的时候,C++会给你提供一个默认拷贝构造函数,这和它提供默认构造函数是一样的。但是当你一旦显式定义了构造函数和拷贝构造函数,那么C++将不再提供默认构造函数和默认拷贝构造函数。
zy010101
2020/04/08
7350
基于opencv的gpu与cpu对比程序,代码来自opencv的文档中
http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/gpu/gpu-basics-similarity/gpu-basics-similarity.html
流川疯
2019/01/18
1.6K0
相关推荐
【C++】类和对象之拷贝构造函数篇
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文