【2021研电赛】基于深度学习的蛋白质与化合物结合性质预测
本作品介绍参与极术社区的有奖征集|分享研电赛作品扩大影响力,更有重磅电子产品免费领取!

获奖情况:三等奖
1.作品简介
针对药物发现过程中的药物筛选问题,本设计基于深度学习提出新的神经网络结构和数据处理方式用于预测蛋白质与化合物之间的结合性质。与其他预测方法相比,在数据编码方式上,我们对氨基酸的单独特征和氨基酸处于氨基酸序列中表现出的特征分别进行了建模,使用了多组可学习的特征嵌入对氨基酸进行编码,并使用类似注意力机制的方式从多组特征嵌入获得氨基酸序列的特征嵌入,在网络结构上,我们利用卷积网络、图卷积网络、transformer和多层感知机在处理不同类型数据时所拥有的优势,将不同类型的网络相结合从而充分发挥不同网络的各自优势,建模了蛋白质化学性质与其氨基酸序列的关系、化合物的化学性质与其分子三维空间结构之间的关系以及蛋白质与化合物之间的结合关系。
2.算法介绍
我们利用深度学习技术,训练神经网络完成对蛋白质和化合物的结合性质预测。所设计的神经网络整体结构如图2-1所示。整个神经网络可以被分为三个部分,分别为蛋白质特征提取模块、化合物特征提取模块以及预测模块。其中,蛋白质特征提取模块从氨基酸序列中提取蛋白质的化学性质,得到蛋白质的全局描述;化合物特征提取模块从化合物的图中提取化合物的化学性质,得到化合物的全局性描述;预测模块则根据蛋白质的全局描述和化合物的全局描述判断蛋白质与化合物是否能够相互结合。
3.作品创新
① 为了能够表达氨基酸自身特征以及氨基酸相互组合的特征,我们将蛋白质编码直接编码为可学习的query、key和value,通过类似自注意力(self-attention)的方式完成对具体蛋白质的编码。
② 为了适配化合物分子的图结构,我们使用图卷积网络从化合物中提取特征,并且在图卷积层之间增加残差连接以防止图卷积对图信号的过平滑效应。
③ 使用线性与双线性将结合的方式完成对蛋白质特征和化合物特征的整合。
4.算法流程图

5.未来展望
本设计基于深度学习提出了新的神经网络结构和数据处理方式用于预测蛋白质与化合物之间的结合性质。我们首先使用合适的方式对蛋白质和化合物进行编码,尽量在特征编码中反映出蛋白质和化合物的关键特点,然后针对拥有不同数据结构蛋白质特征和化合物特征,应用不同类型的神经网络对数据进行适配,以尽量从数据中提取关键信息,最后我们使用ROC曲线与AUC对最终模型的预测性能进行了评估。
我们的设计实现了预期功能,完成了以下目标:
① 对于蛋白质和化合物的编码方式能够成功应用于神经网络的训练,说明所提出的特征编码方式是有效的。
② 神经网络在经过训练后,在测试数据集中又有一定的泛化能力,说明我们所提出的多种类型结合的神经网络能够从蛋白质和化合物中提取关键特征并用于判断两者的结合性质。
我们的设计虽然达成了与其功能,但是仍存在一些缺点和有待进一步探究的问题:
① 我们设计的神经网络虽然具有一定的泛化性能,但是仍然有待提高,因为在实际应用过程中,蛋白质与化合物之间能够反映的几率很小,也就是正负样本比例非常低,因此如果需要将模型投入实际应用,需要模型对于正样本具有很强的识别能力。
② 虽然间接的证明了我们对蛋白质和化合物的编码方式以及数据处理方式是有效的,但是无法分析这些编码方式和处理方式奏效的原因,如果能够分析这些原因,就可以有根据的对神经网络进行改进,从而提高性能,增加实际应用价值。
更多研电赛作品请查看2021年研电赛获奖作品合集
相关文章:
【2021研电赛】基于深度学习的蛋白质与化合物结合性质预测
本作品介绍参与极术社区的有奖征集|分享研电赛作品扩大影响力,更有重磅电子产品免费领取! 获奖情况:三等奖 1.作品简介 针对药物发现过程中的药物筛选问题,本设计基于深度学习提出新的神经网络结构和数据处理方式用于预测蛋白质与化合物之…...
物联网中的毫米波雷达:连接未来的智能设备
随着物联网(IoT)技术的飞速发展,连接设备的方式和效能变得越来越重要。毫米波雷达技术作为一种先进的感知技术,正在为物联网设备的连接和智能化提供全新的可能性。本文将深入探讨毫米波雷达在物联网中的应用,以及它是如…...
软件外包开发需求文档编写
软件外包开发需求文档是指导整个外包项目开发流程的关键文件,外包开发需求文档可能还包括修订历史记录、项目术语表、附录等其他有助于项目团队理解和实现需求的信息。它通常包含以下内容,希望对大家有所帮助。北京木奇移动技术有限公司,专业…...
Java算法(五):手写数组逆置API方法,实现数组逆置。 while实现 for循环实现
Java算法(五) while 循环实现 需求: 已知一个数组,arr {11, 22, 33, 44, 55};使用程序实现把数组中的元素交换位置。 交换后的数组为 arr {55, 44, 33, 22, 11}; 并在控制台输出交换后的数组元素。 代码示例 package com.…...
Vue el-table序号与复选框hover切换
效果图下: <template><div class"container"><el-tableref"multipleTable"id"multipleTable":data"person.tableData"cell-mouse-enter"cellEnter"cell-mouse-leave"cellLeave"selecti…...
【Bug】Access to the path ‘xxx‘ is denied.
文章目录 问题问题代码原因解决拓展处理Bug的具体步骤 问题 exception has been thrown by the target of an invocation.System.UnauthorizedAccessException: Access to the path ‘D:\WebSiteStaging\02Maint\wwwroot\Upload\XXX\Tables\Other\1d2724af-9584-4fee-b828-6f8…...
郑州市管城回族区政协副主席张惠云一行莅临中创算力调研指导工作
为促进企业健康发展,服务管城区企业。2023年11月8日,郑州市管城区政协副主席、工商联主席张惠云带队赴河南中创算力信息科技有限公司进行走访调研。 中创算力董事长许伟威、技术总监刘朝阳陪同考察。此次调研旨在深入了解中创算力的发展情况,…...
SAE 2.0,让容器化应用开发更简单
云原生容器化应用托管模式的演变 云原生这个概念从提出,到壮大,再到今天的极大普及,始终处于一个不断演进和革新的过程中。云原生体系下应用的托管形态是随着企业应用架构在不断演进的。最早的应用大多是集中式、单体式的,应用通…...
Apache Storm 2.5.0 单机安装与配置
1、下载storm 2.5.0 2、需要安装python3,并且设置python3的环境变量 3、修改storm.yaml配置 storm.zookeeper.servers:- "node4" # - "server2" # # nimbus.seeds: ["host1", "host2", "host3"] # nimbus…...
4-爬虫-selenium(等待元素加载、元素操作、操作浏览器执行js、切换选项卡、前进后退异常处理)、xpath、动作链
1 selenium等待元素加载 2 selenium元素操作 3 selenium操作浏览器执行js 4 selenium切换选项卡 5 selenium前进后退异常处理 6 登录cnblogs 7 抽屉半自动点赞 8 xpath 9 动作链 10 自动登录12306 上节回顾 # 1 bs4 解析库---》xml(html)-遍历文档树-属性 文本 标签名-搜索文…...
矩阵键盘独立接口设计(Keil+Proteus)
前言 实验:通过4*4的矩阵键盘,按下某个按钮之后会在数码管上面显示对应的键号。(0~F) 基础操作参考这篇博客: LED数码管的静态显示与动态显示(KeilProteus)-CSDN博客https://blog.csdn.net/w…...
国产猫罐头可以作为长期主食吗?口碑好的顶级猫罐头推荐
我一直在分析和尝试国产猫罐头,我家猫已经吃了几十款了。今天,我想和大家分享一些关于国产猫罐头的经验和心得。 近年来,国产宠粮市场呈现出爆发趋势,各个猫粮商在配方、营养数据和包装上展开了激烈的角逐,无一不让我…...
大数据毕业设计选题推荐-营业厅营业效能监控平台-Hadoop-Spark-Hive
✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...
CSS的Grid布局与Flex布局
Grid布局 Grid布局是一种CSS布局模式,它使用一个二维的网格系统来定位元素。它允许您将容器分为行和列,然后将元素放置在特定的行和列中。Grid布局非常适合创建复杂的网页布局和对齐元素。 以下是grid布局的基本语法: .container { displ…...
常见React Hooks 钩子函数用法
一、useState useState()用于为函数组件引入状态(state)。纯函数不能有状态,所以把状态放在钩子里面。 import React, { useState } from react import ./Button.cssexport function UseStateWithoutFunc() {const [name, setName] useStat…...
AlGaN/GaN HEMT 中缓冲区相关电流崩溃的缓冲区电位模拟表征
标题:Characterization of Buffer-Related Current Collapse by Buffer Potential Simulation in AlGaN/GaN HEMTs 来源:IEEE TRANSACTIONS ON ELECTRON DEVICES (18年) 摘要 - 在本文中,通过使用脉冲 I-V 测量和二维漂移扩散模拟研究了 Al…...
深入理解ClickHouse跳数索引
一、跳数索引 影响ClickHouse查询性能的因素很多。在大多数场景中,关键因素是ClickHouse在计算查询WHERE子句条件时是否可以使用主键。因此,选择适用于最常见查询模式的主键对于表的设计至关重要。 然而,无论如何仔细地调优主键ÿ…...
ElasticSearch中实际操作细节点
ElasticSearch中的细节点 文章目录 ElasticSearch中的细节点1、提示:1.1 ElasticSearch相关文档:1.2 Kibana的常用快捷键1.3 kibana的注释方式 2、term与terms的用法以及区别3、ElasticSearch中"index":"false","doc_values&qu…...
VCG 获取指定面片与顶点的索引
文章目录 一、介绍二、实现代码三、实现效果参考资料一、介绍 VCG Lib存在许多中方式对Mesh数据进行编码,其中最为常用的为顶点+三角形(比如三角形网格以及四面体网格)。VCG关于Mesh的定义如下所示: vcg::tri::TriMesh 包含顶点的容器类型(通常是std::vector),具体的顶点…...
开发知识点-Django
Django 1 了解简介2 Django项目结构3 url 地址 和视图函数4 路由配置5 请求及响应6 GET请求和POST请求查询字符串 7 Django设计模式及模板层8 模板层-变量和标签9 模板层-过滤器和继承继承 重写 10 url反向解析11 静态文件12 Django 应用及分布式路由创建之后 注册 一下 13 模型…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...
前端调试HTTP状态码
1xx(信息类状态码) 这类状态码表示临时响应,需要客户端继续处理请求。 100 Continue 服务器已收到请求的初始部分,客户端应继续发送剩余部分。 2xx(成功类状态码) 表示请求已成功被服务器接收、理解并处…...
电脑桌面太单调,用Python写一个桌面小宠物应用。
下面是一个使用Python创建的简单桌面小宠物应用。这个小宠物会在桌面上游荡,可以响应鼠标点击,并且有简单的动画效果。 import tkinter as tk import random import time from PIL import Image, ImageTk import os import sysclass DesktopPet:def __i…...
