研究背景

药物相互作用(DDI)是指病人在同时服用两种或两种以上的药物时,一种药物的药效受到另一种药物、食物或者环境的影响而发生改变,从而导致药效下降,或是药效增强导致明显毒副作用。例如,乙酰水杨酸(俗称:阿司匹林)本身具有抗炎解热、抑制血小板聚集、预防血栓和心肌梗塞的作用,但是当它与1-苄基咪唑相结合时会使高血压的风险增加。所以,对于药物相互作用的预测研究是有重要意义的,不仅能够减少非预期药物相互作用的情况,还能降低药物开发成本,以及优化药物设计过程。

目前的DDI预测模型,主要基于DrugBank、KEGG、PharmGKB等数据,使用基于特征的、基于相似性度量的方法,取得了一定效果,但这些预测模型存在以下局限性:(1)在DDI预测中缺少对药物表示形式的具体设计(2)模型仅仅是依赖有标签数据进行预测,不能很好地将模型泛化到新药或者DDI中(3)模型的参数多,难以提供可解释性。

针对这些局限性,近期哈佛大学的Kexin Huang等人提出了CASTER(ChemicAl SubstrucTurE Representation)模型,根据给定药物化学结构预测DDI,并且能对预测提供可解释性。

方法

CASTER通过三个模块很好地缓解之前计算模型的局限性:(1)基于DDI机制的序列模式挖掘模块,有效地描述药物的功能子结构(2)自编码模块 ,利用标签数据和无标签的化学结构数据来提高模型的准确性和通用性(3)字典学习模块,测量每个输入子结构与DDI结果的相关性的一组系数来解释预测 。

序列挖掘模块(SPM, sequential pattern mining module)

将药物的SMILES字符串按照层次分解为子结构、更小的子结构和原子。具体算法如下:

根据SPM算法生成离散的频繁子结构的集合,将用于推导所有有标签和无标签数据集中药物对的功能表示(Functional Representations )。

自编码模块(auto-encoding module)

Encoder使用神经网络(Neural Network)将药物-药物、药物-食物的功能表示成潜在特征嵌入z,映射到隐空间中。

Decoder根据潜在特征嵌入,使用另一个神经网络(NN)重构功能表示。

重构损失(Reconstruction Loss)只需要用无标签的药物对作为训练数据进行优化,能够利用更多的无标签药物数据源来提取更多相关的特征。

字典学习模块(dictionary learning module)

可以通过该模块了解CASTER如何进行预测,并确定哪些子结构可能导致药物间的交互。

深度字典表示(Deep Dictionary Representation)

深度字典表示是将每一个频繁子结构使用single-hot向量生成功能表示,再通过上述的encoder生成潜在特征向量,最后生成矩阵形式B。

将生成的药物对的潜在特征向量z投影到由span(B)定义的子空间,将投影系数r通过损失函数进行计算:

使用闭式解进行解析求解,找到产生最小投影损失的有意义的系数r:

最后得到的投影系数作为对应药物对的字典表示。

计算药物对的概率分数

基于投影系数r来计算药物对相互作用的分数,评估药物间交互的可能性,并通过交叉熵损失函数进行优化。

训练过程

使用无标签的药物-药物和药物-食物对来对自编码模块和字典学习模块进行预训练,编码器可以学习任意化学结构的最有效的表示。

使用有标签的数据集微调DDI预测的整个学习流水线。

可解释性预测

投影系数r用来评估基特征向量b和预测结果之间的相关性,而每个基向量b和频繁的子结构C有关联, r系数越大表示在DDI预测中对应的功能子结构对药物交互起作用,从而可以解释CASTER预测的合理性。

实验

数据集和评价指标

使用DrugBank数据库包括1850已批准药物,提取221,523有标签 DDI;使用BIOSNAP数据库包括1322已批准药物,提取41520 有标签DDI;随机生成220,000药物-药物对和220,000药物-食物对作为预训练的无标签数据。使用ROC-AUC、PR-AUC、F1 Score作为评价指标。

DDI预测中CASTER实现更高的精度

作者将CASTER模型与5种经典的端到端算法进行比较,包括有:LogisticRegression(LR) 、Nat.Prot(Vilar et al. 2014) 、Mol2Vec: (Jaeger, Fulle, and Turk 2018)、MolVAE(Gómez-Bombarelli et al. 2018) 、DeepDDI(Ryu, Kim, and Lee 2018) ,实验证明CASTER能够捕捉重要的交互机制。实验结果如下图:

CASTER利用无标签数据可以成功提高预测性能

使用少量的标签数据,调整无标签数据的数量进行实验,实验证明随着无标签数据的增加,CASTER能够利用无标签数据中的更多信息,并不断提高其对两个数据集的DDI预测的准确性。实验结果如下图:

CASRTER能够生成可解释性预测

以西地那非(Sildenafil)和其他硝酸盐类药物(如IM)为例,二者同时服用会引起血压下降,从而导致心脏病发作。实验测试CASTER在预测二者相互作用时是否将高系数分配给硝酸盐组。

实验结果很明显显示出由CASTER识别的21种功能子结构中硝酸盐结构系数(8.25)最高,从而对CASTER预测结果中可能导致DDI的子结构提出合理线索。

结论

本文在药物相互作用的化学机制的启发下,提出了一个新的DDI预测计算框架CASTER,它是一个端到端的字典学习框架,包含了DDI预测的具体表示。证明了比先前使用通用药物表示的方法能够提供更准确并且具有可解释的DDI预测。

参考资料

  • 论文链接:https://arxiv.org/abs/1911.06446
  • 数据链接:http://snap.stanford.edu/biodata

欢迎关注微信公众号:DrugAI

损失函数的意义和作用_哈佛CASTER | 基于化学子结构表征预测药物相互作用相关推荐

  1. 哈佛CASTER | 基于化学子结构表征预测药物相互作用

    作者 | 陈雨洁 指导 | 曾湘祥教授 单位 | 湖南大学 研究方向 | 药物相互作用 研究背景 药物相互作用(DDI)是指病人在同时服用两种或两种以上的药物时,一种药物的药效受到另一种药物.食物或者 ...

  2. 损失函数的意义和作用_损失函数的可视化:浅论模型的参数空间与正则

    点击蓝字  关注我们 作者丨土豆@知乎来源丨https://zhuanlan.zhihu.com/p/158857128本文已获授权,不得二次转载 前言 在深度学习中,我们总是不可避免会碰到各种各样的 ...

  3. python的用途实例-python中pass语句意义与作用(实例分析)

    想必大家都是刚刚才开始接触python这门语言的,今天这篇文章就来带大家来了解一下python这门语言之中常常会用到的一个语句pass语句.想必大家都很好奇python中pass作用是什么,接下来我就 ...

  4. 【OS学习笔记】十七 保护模式五:保护模式下如何进行内存保护 与 别名段的意义与作用

    上一篇文章学习了如何进入保护模式,以及如何在保护模式下进行内存访问.点击链接查看上一篇文章:进入保护模式与在保护模式下访问内存 首先说明本片文章有对应的汇编代码,点击链接查看:点击查看 本篇文章接着学 ...

  5. 试述hadoop生态系统以及每个部分的具体功能_Hadoop在大数据分析中的意义和作用...

    什么是Hadoop? Apache Hadoop是一个开放源代码软件框架,用于开发在分布式计算环境中执行的数据处理应用程序. 使用HADOOP构建的应用程序可在分布在商用计算机群集上的大型数据集上运行 ...

  6. 浅谈计算机教学论文,浅谈计算机在教学中的作用_优秀论文

    <浅谈计算机在教学中的作用_优秀论文>由会员分享,可在线阅读,更多相关<浅谈计算机在教学中的作用_优秀论文(5页珍藏版)>请在人人文库网上搜索. 1.浅谈计算机在教学中的作用论 ...

  7. 数据中台对企业意义和作用有哪些

    随着数据浪潮席卷全球,数数据中台应运而生.众所周知,数据中台的主要功能是统一标准和口径后对数据进行存储和处理,使企业能够提供更高效的服务.总之,数据中台的目标是节约企业成本,实现精细化运营.那么数据中 ...

  8. 泛型的意义和作用是啥?

    简单的说,意义和作用有: 类型的参数化,就是可以把类型像方法的参数那样传递.这一点意义非凡. 泛型使编译器可以在编译期间对类型进行检查以提高类型安全,减少运行时由于对象类型不匹配引发的异常. 泛型方法 ...

  9. 数据分析的目的和意义(作用)是什么?

    很多人会问数据分析目的是什么?它有什么作用?让我们看看亿信华辰如何看待数据分析的目的和意义.仅仅谈论数据分析的作用实际上并不重要,因此在谈论该作用之前,我们首先要考虑受众,打个比方:对于个人而言,由于 ...

最新文章

  1. 报错解决:ninja: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ninja)
  2. 应用程序进程(二):启动线程池
  3. Oracle架构入门级基础
  4. 通信网络基础期末复习-第六章-拥塞控制
  5. keil查看程序运行时间_Keil系列教程05_工程目标选项配置(一)
  6. 电脑突然无法播放html音频,电脑无法播放音频怎么办
  7. YUV格式学习:NV16和YUV422P格式互换
  8. 免费计算机网络同传系统,使用网络同传功能批量完成系统安装
  9. Picsee 1.3.0 (48) 中文版 (可能是最好的图片管理查看工具)
  10. 训练集和测试集损失函数
  11. ping服务器响应39ms,美国服务器的ping值多少网速才算快?
  12. python 流水作业调度_动态规划——流水作业调度问题
  13. HTML网页设计:一、HTML的基本结构
  14. adb shell bugreport分析
  15. c语言-大小顺序排列
  16. php发送邮件 企业邮箱,ThinkPHP如何企业邮箱通过PHPMailer发送邮件
  17. 浅谈fastText中的N-gram特征
  18. 【文献阅读】MSPM: A multi-agent reinforcement learning-based system for financial portfolio management
  19. NX/UG二次开发—装配—克隆相关知识总结
  20. NAT 2 - 利用Rotary NAT实现TCP流量负载均衡 [译] + GNS3实现

热门文章

  1. 组合数函数-快速提取所有可能的组合数
  2. 面向Agent的系统架构
  3. Linux010 Miniconda安装及使用
  4. Android实例开发中如何创建第一个项目(android studio)
  5. 实验四 数据库SQL语言基础编程
  6. php屏蔽审查元素,前端:屏蔽F12审查元素,禁止修改页面代码
  7. tf.keras.losses.categorical_hinge 分类铰链 损失函数 示例
  8. 集成算法-Xgboost
  9. 在Windows上使用LaTeX
  10. nginx配置文件及工作原理详解