项目一:基于自编码器的药靶关系预测

一. 研究背景

  药物研发领域,利用已知药物和靶标蛋白的相互作用关系建模。针对特定疾病的蛋白质可以找到与之作用的高亲和力的药物。传统方法考虑分子结构之间的相互对接,这依赖于药物分子和蛋白质的化学作用。

  本项目基于深度学习,挖掘药物分子和蛋白质之间的相互作用关系,通过特征提取和组和来完成。

二. 数据集及其描述

  本项目完成关于药物分子和靶蛋白之间的亲和力预测。属于一个(二分类问题),使用的数据集来源于BinDing DB。它提供了药物分子的结构(一种SMILES字符串),靶蛋白提供其氨基酸序列(字符串)以及两者之间的亲和力度量标准IC50,该数据集包含33777个正例、27493个负例。根据IC50的大小讲例子进行标签,>10000标记为0,其余为1.

数据处理:

1、原始药物分子的数据为SMILES字符串,本项目中,利用图卷积网络对其进行输入空间的映射。即完成原始数据到原始向量的映射

1. 图卷积模型

CNN处理具有欧几里得结构的图像具有很好的效果,而对于图数据,考虑其节点和边都包含了信息,因而其用CNN网络处理不是十分合适,而图卷积网络就是处理这一问题:

更形式化地说,图卷积网络(GCN)是一个对图数据进行操作的神经网络。给定图 G = (V, E),GCN 的输入为:

  • 一个输入维度为 N × F? 的特征矩阵 X,其中 N 是图网络中的节点数而 F? 是每个节点的输入特征数。
  • 一个图结构的维度为 N × N 的矩阵表征,例如图 G 的邻接矩阵 A。

f(H?, A) = σ(AH?W?)

而其中的A作为每一次传播的共享权值。

考虑到分子结构中,节点之间如果有连接,那么应该是相互作用的,因而将其作为无向图处理。进而考虑分子大小,因为药物分子大小不一,对其进行子图选取,即对每一张药物分子图选取100个节点,因而输入时100个节点的特征矩阵:[100 * 7],矩阵A[100 *100],

2. 节点处理举例

图卷积思考点:

1、在初期,考虑到图卷积网络的输入的为自生成的结点描述,考虑到这种这种特征描述可能不够准确,因而在组合网络中,没有对图卷积网络设置自生成的特征作为输出来生出此部分的loss function而直接在模型中进行训练。考虑到在利用空手道俱乐部训练集做GCN的测试时,一层的网络就将该社交网络处理的很好,因而初步考虑使用两层的网络层应该就很很好地完成原始图到输入空间的映射。输出层维度为400

2、经过初步试验,考虑到初期没有考虑图卷积网络那一块单独的loss function,在后期,加入其损失函数(均方误差),此时网络层变成3层,取中间网络层的维度400作为实例的输入空间向量。此处理使得准确率有了一定的提高。

但是为什么呢?(佛系炼丹)

2、靶蛋白氨基酸序列到输入向量的处理,在这一部分,由于对这一部分没有太深的了解,又考虑到已经有了专门的处理软件,因而使用Moreau-Briti Autocorrelation Descriptor,一种被称为拓扑结构自相关描述子的软件提取氨基酸序列特征,其维度为240.

考虑到,药物分子和靶细胞之间的作用,其本质是物理拓扑结构和之间各种物理力之间的作用(虽然我不太清楚是啥力),这也就是意味着对于400维度的药物输入、240维的靶蛋白输入。

思虑至此,考虑到可以直接搭建网络层进行训练了,又考虑到两层的网络层就可以拟合任何的函数,所以觉得网络层应该不用太深。

补充说明:为什么神经网络理论上可以拟合任何函数?

从一个很简单的方向解释:

一、逻辑函数:

1,直观理解:

1个感知机可模拟与或非3种运算,3个感知机组成包含1个隐层的感知机网络(姑且称其为网络吧)可以模拟异或运算。因此,理论上,神经网络可模拟任意组合的逻辑函数。

2,浅显理论:

“真值表+DNF公式”:“任意布尔运算均可通过真值表穷举,真值表每一行对应DNF公式的每一项,DNF公式的每一项对应网络隐含层的每一个节点”。因此,理论上,一层感知机网络,即可表示通用布尔运算函数。

解释完毕(还有更多的解释)

根据上述思想,开始设计网络框架,输入层为药物分子的400维,氨基酸序列240维,即每个样例输入为640维。三层全连接层,一个输出层,(输出类别1被描述为0.99,输出类别0被描述为0.01)。三层维度分别为1000、500、250,损失函数采用均方误差,使用L2正则化、十折交叉验证防止过拟合,在此操作下次,ACC在0.74波动。在此基础上,对网络层进行了加深、加宽等一系列操作,但是效果都不明显。考虑到在物理学中功 = FS,即两者的内积,对其进行对比,药物分子和药靶蛋白的结合,除了双方结构的互补,更重要的是其中其中的隐含的各种力之间的相互作用,因此可以利用分别训练两个网络,讲网络的最后一层做内积运算,再将其利用sigmoid函数映射到0-1的概率上,或许会取得更好的效果。至此,想到了利用一个混合模型来进行训练,在此基础上,效果显而易见,提高到了ACC0.86波动,之后,考虑到输入层维度过大、又需要提取其中的隐变量(各种未知的物理、化学力)

既然想到降维,又对隐变量的提取,自然而然就想到了自编码器。

Auto encoder:

1、对药物分子,使用5层的hidden layer,将400维的输入空间向量降维到100维,(1000*500*100*500*1000)

2、对氨基酸序列,使用5层的hidden layer,将240位的输入空间向量降维到50维(并提取其中特征1000*500*50*500*1000)

至此,整个神经网络框架搭建完毕:

使用图卷积网络对药物分子处理获取输入空间向量,为获取其隐变量,利用自编码器分别对药物分子和氨基酸序列降维,之后分别建立两个网络对其进行特征处理,分别获得25维的输出,对其进行内积计算,将其结果进行sigmoid,整个网络框架为混合网络,loss function为图卷积网络、自编码器、分类器的loss叠加,再加上L2正则化防止过拟合,最后获得ACC 0.92的成果,其AUC更是达到0.96.

PS:使用dropout

原文地址:https://www.cnblogs.com/rzw8023/p/10572101.html

时间: 2024-11-06 03:33:50

项目一:基于自编码器的药靶关系预测的相关文章

DreamHouse项目(基于ARM与ZIGBEE技术的智能家居)之项目展示

这是本人做的一次有关智能家居的项目,仅是用来参加比赛的!或者是我用来练手的吧!大概花费了我近2个月的时间来完成他,平台是建立在博创S3C2410的嵌入式的箱子上的,我觉得我唯一没有足够自信说是自己写的代码的话就是驱动部分了,毕竟当时的状态也是刚刚把单片机的知识全部学会罢了,因为这是基础中的基础,对于C语言,在校的学生普遍是没有完全掌握的,对于开发真的知识储备确实不够!好吧废话我不多说了,先讲讲我自己做的项目吧!学生的练手项目,大家应该不会来喷我吧! 上图先! 通用模块 我本人真的是没有做出来,但

Net 项目构建基于Jenkins + Github + Mono 的持续集成环境

Net 项目构建基于Jenkins + Github + Mono 的持续集成环境 阅读目录 1 安装 2 配置 3 测试 在Redhat enterprise 6.5 的服务器上,为在gutub 上的 .net 项目构建一个持续集成环境,用到了Jenkins和mono.因公司的服务器在内网,访问外网时要通过代理,所以在很多步骤都加上了代理,如果你的服务器可以直接访问外网,则可以去掉代理. 回到顶部 1 安装 首先要在Redhat服务器上安装必要的工具. 1.1 安装Java 先检查版本,要求1

Redhat上为java Maven项目构建基于Jenkins + Github的持续集成环境

在Redhat enterprise 6.5 的服务器上,为在gutub 上的 java mvaen项目构建一个持续集成环境,用到了Jenkins.因公司的服务器在内网,访问外网时要通过代理,所以为maven加上了代理,如果你的服务器可以直接访问外网,则可以去掉代理..net 项目可参考 <在Redhat上为.Net 项目构建基于Jenkins + Github + Mono 的持续集成环境> 1. 安装 maven wget -e "http_proxy=http://web-pr

项目三. 基于图像压缩的视频监控系统

项目三. 基于图像压缩的视频监控系统 Sprint0-产品设计与规划 基于图像压缩的视频监控系统 1. 产品功能演示 在linux系统上运行程序,弹出登录界面,输入地址.端口信息,弹出视频监控界面,实时传出视频信息. 2. 功能模块分析 采集端: 图像采集子系统 图像编码子系统 传输子系统 主程序 监控端: 传输子系统 图像编码子系统 传输子系统 主程序 Sprint1-基于Epoll架构的采集端程序框架设计 第1课-Epoll机制精通 大纲: v  为什么用Epoll? 阻塞型IO与多路复用

【Cocos2d-HTML5 开发之一】新建HTML5项目及简单阐述与cocos2d/x引擎关系

真的是有一段时间没写博了,这段时间呢,发生的事情真的挺多,另外自己呢也闲来做了一些自己的喜欢的东西,主要做的还是基于Mac系统的Cocoa框架的各种编辑器吧.(对了,今年初也出了自己第二本书<iOS游戏编程之从零开始-Cocos2d-x与cocos2d引擎游戏开发>) 百牛信息技术bainiu.ltd整理发布于博客园 废话少扯,最近又研究了下Cocos2d-HTML5相关引擎,其实说起HTML5,3.4年前Himi就接触过了,那时候的HTML5 Canvas  对我印象很深,但是不论当时还是现

使用基于Apache Spark的随机森林方法预测贷款风险

使用基于Apache Spark的随机森林方法预测贷款风险 原文:Predicting Loan Credit Risk using Apache Spark Machine Learning Random Forests 作者:Carol McDonald,MapR解决方案架构师 翻译:KK4SBB 责编:周建丁([email protected].NET) 在本文中,我将向大家介绍如何使用Apache Spark的Spark.ml库中的随机森林算法来对银行信用贷款的风险做分类预测.Spark

基于 Keras 用 LSTM 网络做时间序列预测

基于 Keras 用 LSTM 网络做时间序列预测 本文主要参考了 Jason Brownlee 的博文 Time Series Prediction with LSTM Recurrent Neural Networks in Python with Keras 原文使用 python 实现模型,这里是用 R 时间序列预测是一类比较困难的预测问题. 与常见的回归预测模型不同,输入变量之间的"序列依赖性"为时间序列问题增加了复杂度. 一种能够专门用来处理序列依赖性的神经网络被称为 递归

【CPU微架构设计】利用Verilog设计基于饱和计数器和BTB的分支预测器

在基于流水线(pipeline)的微处理器中,分支预测单元(Branch Predictor Unit)是一个重要的功能部件,它负责收集和分析分支/跳转指令的参数和执行结果,当处理新的分支/跳转指令时,BPU将根据已有的统计结果和当前分支跳转指令的参数,预测其执行结果,为流水线取指提供决策依据,进而提高流水线效率. 下面讨论提出分支预测机制的主要原因和实际意义: 在流水线处理分支跳转指令时,目标地址往往需要推迟到指令的执行阶段才能运算得出,在此之前处理器无法及时得知下一条指令的取指地址,因此无法

miRNA分析--靶基因预测(三)

miRNA分析--数据过滤(一) miRNA分析--比对(二) 根据miRNA Target Prediction in Plants, miRNA并非所有区域都要求严格匹配,其中第1位碱基和第14位以后的碱基是允许错配(以miRNA 5'为始). miRNA 文件提交不管是U或者T都是可以的 miRNA 靶基因预测我采用了3个工具 1.psRNATarget: A plant Samll RNA Target Analysis Server 进去以后,提交自己miRNA文件,fasta格式,并