Python量子生成对抗网络QGAN神经网络药物发现、多方法乳腺癌药物筛选应用

全文链接:https://tecdat.cn/?p=37975

分析师:Chenhao Wu

在当今的医学领域,乳腺癌作为一种严重威胁女性健康的疾病,其治疗一直是科研工作者们关注的焦点。乳腺癌的发展与雌激素受体密切相关,其中 ERα 被视为治疗乳腺癌的重要靶标。能够拮抗 ERα 活性的化合物有望成为治疗乳腺癌的候选药物。然而,药物筛选是一个复杂而艰巨的过程点击文末“阅读原文”获取完整代码数据)。

一方面,在传统的药物筛选中,面临着诸多难点。各类化合物具有繁多的特征属性,如 ADMET 特性和化合物生物活性等。如何从众多特征中挑选出影响化合物活性的关键特征,以及确定这些关键特征的取值范围以保证药物具有较高的生物活性,同时在 ADMET 五个特性中至少有三个表现良好的情况下使化合物活性最大化,这些都是极具挑战性的问题。

另一方面,随着科技的不断进步,人工智能和机器学习技术为药物研发带来了新的机遇。主成分分析、机器学习和多目标优化等方法在药物筛选中展现出了巨大的潜力。通过这些方法,可以有效地处理复杂的药物数据,挖掘出关键特征,预测药物的生物活性和参数范围,实现多目标的优化。

与此同时,量子计算的发展也为药物发现提供了新的思路。量子生成对抗网络(Quantum GAN)结合了量子计算和生成对抗网络的优势,能够处理高维数据,为药物研发提供了新的途径。通过量子电路和经典神经网络的结合,有望生成具有特定药物特性的分子,为新药研发带来新的突破。

本文将围绕主成分分析、机器学习和多目标优化在化合物特征药物筛选中的应用,以及量子生成对抗网络在药物发现(附数据代码)中的研究展开,旨在探索更加高效、准确的药物筛选和发现方法,为乳腺癌的治疗提供新的候选药物。

主成分分析、机器学习、多目标优化对化合物特征进行药物筛选

乳腺癌的发展与雌激素受体密切相关。目前抗激素治疗常用于ERα表达的乳腺癌患者。因此ERα被认为是治疗乳腺癌的重要靶标,能够拮抗ERα活性的化合物可能是治疗乳腺癌的候选药物。

在该项目中出现了各种难点,例如,各类化合物的特征属性繁多,比如有ADMET(Absorption,Distribution,Metabolism,Excretion,Toxicity)特性和化合物生物活性等。该如何选择关键特征是大问题。

选择了关键特征,如何确定该特征的取值大小才能保证该药品具有生物活性,首先要保证药物有效,才能讨论药性。

针对五个关键的特性ADMET如何在尽量让五个特性表现良好的情况下,让化合物活性尽量的高,这样的化合物的分子描述符的取值范围的寻找较为困难。

解决方案

任务/目标

  1. 在众多特征中找到影响化合物活性的关键特征。

  2. 找到关键特征的取值范围使得药物的生物活性较高。

  3. 找到在使得药效达标(ADMET五个特性至少有三个表现良好)的情况下生物活性较高

数据源准备

该项目的数据源由其他企业提供

数据清洗

在数据中将大量字段为空的药物删除,少量字段为空的补0。针对第一个问题给他贴好标签,将化合物活性贴好标签,分为1-10,10个等级,在5以上的为活性较高,5以下的活性较低,更进一步,在5以上就贴上1,在5以下就贴上0。便于后续对其进行主成分分析。

针对第二个难题,是一个定量预测问题。我们将数据中需要的药物提取出来。

第三个问题是一个多目标优化的问题。我们同样给药物贴好标签,在ADMET属性中,满足3个或以上的我们给他贴1标签,否则贴0标签,后续对其进行多目标优化。

构造模型

针对问题1.我们使用了不同的主成分分析,包括相关性分析,随机森林 特征选择,基于相关性的特征子集选择算法,基于分类器的属性价值评估算法,Relief 算 法,基于分类器的特征子集选择算法,信息增益排序等。发现RReliefF算法更优秀,这里我们选择了RReliefF方法。

第二个问题采用了多种机器学习方法。包括极限随机树(ET),多层感知机(MLP),支持向量机回归(SVR),并对其进行模型评价,发现ET效果最好,并可以预测所有参数的范围。

第三个问题是多目标优化的问题,针对这类问题,我们使用的是粒子群算法,通过调节超参,达到近似全局最优解。

划分训练集和测试集

所有的药物是独立的样本,所以我们直接采用十折交叉验证即可。

上线之后的迭代,在得到所有化合物参数性能指标之后,我们要交给专业人士去临床验证这些药物。

部分模型预测结果:

428fe57bde8b51a85e5decf025da0c10.png

4dbf27f914ae7c1923cb4792b2111a90.png

eb0a9e161890dfd7d833d4cbd0cc7aea.png

afe118dfdae90b610d822cb14627d67a.png

5306458ed960652daf09c9d5cf9f9dd3.png

该项目涉及到分类模型,回归模型,优化问题。是个综合的项目,都达到了不错的性能。

Python量子生成对抗网络QGAN神经网络的药物发现研究|附数据代码

开发新药是一项极具挑战性的工作,传统方法耗时漫长且成功率较低。随着人工智能和机器学习的发展,为新药研发带来了新的机遇。本文介绍了一种基于量子生成对抗网络(Quantum GAN,QGAN)的方法在药物发现中的应用,通过利用量子计算的优势处理高维数据,为药物研发提供了新的思路和方法。

新药开发是一个复杂而漫长的过程,从靶点发现到临床试验,往往需要数年甚至数十年的时间。而且,经过重重筛选和测试,最终能够成功上市的药物寥寥无几。近年来,人工智能和机器学习技术在各个领域取得了显著的进展,也为药物研发带来了新的希望。其中,生成对抗网络(GAN)在图像生成等领域表现出色,而将量子计算与 GAN 相结合,有望在药物发现中发挥更大的作用。

量子相关术语

(一)量子电路
量子电路是由一系列门组成的有序集合,用于改变量子比特的状态以执行特定的量子运算。

(二)量子噪声
量子噪声是指任何可能导致量子计算机出现故障的因素。当量子比特暴露于噪声源时,量子计算机中的信息会受到干扰和降级。

(三)量子 GAN
在量子 GAN 中,GAN 模型的生成器和判别器在量子计算机或设备上进行训练,这些设备能够轻松处理高维数据(即量子数据)。

(四)带混合发生器的 Quantum GAN
QGAN-HG 由参数化量子电路组成,可提供量子比特大小维度的特征向量。需要一个经典的神经网络来生成所需的原子向量和键矩阵,以构建分子的图形表示,其中节点表示原子,边表示键。

QGAN量子电路

该电路在量子层的帮助下提供特征向量,其计算时间为 O(poly(log(M)))。量子层由初始化、参数化和测量三个阶段组成。在初始化部分,从 [-π, π] 中均匀采样两个参数 z1 和 z2,然后将其转换为数学形式,并对所有层重复操作,以生成酉矩阵 U(θ)。最后,通过对最终量子态应用量子运算来获取特征向量。图中提到的 Ry 和 Rz 是旋转门。

f149d08745252dd3255774778a227b5a.png


点击标题查阅往期内容

629d7d9043266e430d9bb7ec7a8a241c.png

【视频讲解】线性时间序列原理及混合ARIMA-LSTM神经网络模型预测股票收盘价研究实例

outside_default.png

左右滑动查看更多

outside_default.png

01

0a866143785ecaf9db11facce4917453.jpeg

02

9a206a685786cdc2d379603352559de9.png

03

3f656d830c08bd53004f8a09196c8c29.png

04

c084a5b1f1db67c94e27803f42c6e2ec.png

QGAN-神经网络

从 QGAN电路生成特征向量后,这些向量被输入到经典神经网络中。此神经网络的输出包含原子层和键层,用于生成原子向量和键矩阵。

用于计算的指标

(一)Frechet 距离
它用于测量真实分子和合成分子分布之间的相似性。

(二)药物特性
药物性质包括药物可能性、溶解度、合成性等。这些特性与其他属性一起使用 RDKit 进行测量。

模型架构

如图所示:

0a732a600c579c3e62b5639819e9e616.png

  1. 第一张图片由药物片段和结合位点(受体)组成。药物的形状若适合受体,则有可能治愈疾病,这可以用锁和钥匙的概念来解释,受体如同锁,药物如同钥匙。

  2. 第二张图像由量子阶段和经典阶段组成,以虚线分隔。

  3. 第三张图片由原子和键矩阵组成,用于构建合成分子的图形结构。

  4. 在最后一步中,将真实分子和合成分子输入经典判别器以区分两者,并使用 RDKit 包评估 Frechet 距离和药物特性。最终预测将反馈到两个神经网络和量子电路,以便在每个训练周期更新所有参数。

用于训练模型的数据集

本研究使用的数据集由 134K 个稳定的有机小分子和多达 9 个重原子组成。

依赖

此模型依赖于以下框架:

  1. python>=3.5

  2. pytorch>=0.4.1

模型实现

(一)导入所需库和包
首先,导入所有必需的库和包,为后续的模型构建和训练做准备。

(二)设置量子比特单元并生成量子电路
初始化两个随机均匀噪声参数 z1 和 z2,然后为原子向量和节点矩阵生成一个电路。

08d427c4b4245dfd0ff0af69c8fe87ce.png

以下是生成量子电路的代码及解释

\# 这里 a 是邻接矩阵,x 是节点  
mols, _, _, a, x, _, _, _, _ = self.data.next\_train\_batch(self.batch_size)  
a = torch.from_numpy(a).to(self.device).long()  # 邻接矩阵。
x = torch.from_numpy(x).to(self.device).long()  # 节点。
\# "将标签索引转换为独热向量  
a\_tensor = self.label2onehot(a, self.b\_dim)  
x\_tensor = self.label2onehot(x, self.m\_dim)  
z = torch.stack(tuple(ibm\_sample\_list)).to(self.device).float()  
  
\# Z-to-target  
\#  计算假图像的损失。
edges\_logits, nodes\_logits = self.G(z)  
\# 用 Gumbel softmax 进行后处理  
(edges\_hat, nodes\_hat) = self.postprocess((edges\_logits, nodes\_logits), self.post_method)  
logits\_fake, features\_fake = self.D(edges\_hat, None, nodes\_hat)  
g\_loss\_fake = - torch.mean(logits_fake)  
  
\# 计算真图像的损失  
\# 真实奖励  
rewardR = torch.from_numpy(self.reward(mols)).to(self.device)  
\# 假图像奖励  
(edges\_hard, nodes\_hard) = self.postprocess((edges\_logits, nodes\_logits), 'hard_gumbel')  
edges\_hard, nodes\_hard = torch.max(edges\_hard, -1)\[1\], torch.max(nodes\_hard, -1)\[1\]  
mols = \[self.data.matrices2mol(n_.data.cpu().numpy(), e_.data.cpu().numpy(), strict=True)  
        for e_, n_ in zip(edges\_hard, nodes\_hard)\]  
rewardF = torch.from_numpy(self.reward(mols)).to(self.device)  
  
\# 价值损失  
value\_logit\_real,_ = self.V(a\_tensor, None, x\_tensor, torch.sigmoid)  
value\_logit\_fake,_ = self.V(edges\_hat, None, nodes\_hat, torch.sigmoid)  
g\_loss\_value = torch.mean((value\_logit\_real - rewardR) ** 2 + (  
                        value\_logit\_fake - rewardF) ** 2)

这段代码主要进行模型的推理和损失计算。首先从数据集中获取训练批次的数据,然后对生成器和判别器的输出进行处理,计算真假图像的损失和价值损失,并通过 Frechet 距离计算键和原子的距离损失,最后将这些损失存储在一个字典中。

分子评估
最后一步是通过 RDKit 评估所有分子,并输出评估结果。

0798c43dbe2e0977cc910f25b19f070b.png 

12da22ac91aa828a544daaae2edcd4cc.png

结论

本文介绍了一种基于量子生成对抗网络的药物发现方法,通过量子电路和经典神经网络的结合,能够生成具有特定药物特性的分子。该方法在数据集上进行了训练和测试,取得了较好的结果。然而,该方法仍处于研究阶段,需要进一步的改进和优化。未来,可以通过增加数据集的规模、改进模型架构和优化算法等方式,提高模型的性能和泛化能力,为药物发现提供更有力的支持。

关于分析师 

在此对 Chenhao Wu 对本文所作的贡献表示诚挚感谢,他在上海海事大学完成了计算机应用技术专业的硕士学位,专注机器学习、数据处理领域。擅长 WEKA、Python、Java。

49cc2dd955661626d3940c8ae6b0cb96.jpeg

本文中分析的数据、代码分享到会员群,扫描下面二维码即可加群! 

ea370108a469f814be992d30c641e54e.png


资料获取

在公众号后台回复“领资料”,可免费获取数据分析、机器学习、深度学习等学习资料。

f4d614c0b8c711632d508455f229bc8c.jpeg

点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《Python量子生成对抗网络QGAN神经网络药物发现、多方法乳腺癌药物筛选应用》。

点击标题查阅往期内容

Python用CNN+LSTM+Attention对新闻文本分类、锂离子电池健康、寿命数据预测

视频:Python深度学习量化交易策略、股价预测:LSTM、GRU深度门控循环神经网络|附代码数据

【视频讲解】Python用LSTM长短期记忆网络GARCH对SPX指数金融时间序列波动率滚动预测

【视频讲解】Python用LSTM、Wavenet神经网络、LightGBM预测股价|数据分享

Python股票预测:注意力多层Attention RNN LSTM应用

Python TensorFlow双向Bi-LSTM长短期记忆神经网络深度学习可视化用户传感器活动数据

【视频讲解】LSTM神经网络模型在微博中文文本评论情感分析和股市预测应用附代码数据

Python用GAN生成对抗性神经网络判别模型拟合多维数组、分类识别手写数字图像可视化

【视频讲解】Python量子计算聚类Q-means:量子k-means算法分析电路数据实现可视化

11275ee8e32180ccf4752a01ee4bc688.jpeg

a8a4762e114b37e78de0a44744f98480.png

7715093a6d439a9b25c57d99113bf2a0.png

b8ee5f4d431fb0ede0dbaca92c5063b3.jpeg

7332740c8c25f60d4c4193a0b58f2b7f.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/902562.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

还愁布线呢?那是你没看过这篇

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 上午好,我的网工朋友 综合布线作为网工工作中的基础部分,其设计和实施的质量直接影响到整个系统的稳定性和可靠性。对于咱…

面了 minimax 大模型算法岗,问的贼细!

不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。 最近,我们又陆续整理了很多大厂的面试题,帮助一些球友解惑答疑,分享技术面试中的那些弯弯绕绕。 今天…

【架构】Service Mesh

文章目录 概述微服务架构对比Rainbond与ServiceMesh来源 概述 Service Mesh 公认的定义,是用以处理服务与服务之间通信的专用基础设施层。更本质的理解,它是服务治理平台,是业务逻辑解耦的必然产物,是数字经济背景下企业对研发效…

基于flask和neo4j的医疗知识图谱展示问答系统

如果你仍在为毕业设计的选题发愁,或者想通过技术项目提升专业实力,这个基于Flask和Neo4j的医疗知识图谱展示与问答系统,绝对是个不错的选择! 项目亮点大揭秘: 知识图谱与问答结合:我们采用了医疗场景下的知…

remote: HTTP Basic: Access denied

解决方法 输入: git config --system --unset credential.helper 再次进行 Git 操作,输入正确的用户名,密码即可。

STM32硬件平台

STM32 系列是 STMicroelectronics 设计的高度灵活、广泛应用的微控制器(MCU)系列,支持从低功耗应用到高性能处理的需求,适用于工业、汽车、消费电子和物联网等广泛领域。STM32 系列具有广泛的硬件种类和丰富的功能,以下…

OpenCV视觉分析之运动分析(5)背景减除类BackgroundSubtractorMOG2的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 基于高斯混合模型的背景/前景分割算法。 该类实现了在文献[320]和[319]中描述的高斯混合模型背景减除。 cv::BackgroundSubtractorMOG2 类是 O…

基于GPT的智能客服落地实践

📍前言 在日常生活中,「客服」这个角色几乎贯穿着我们生活的方方面面。比如,淘宝买东西时,需要客服帮你解答疑惑。快递丢失时,需要客服帮忙找回。报名参加培训课程时,需要客服帮忙解答更适合的课程…… 基…

通过AWS Bedrock探索 Claude 的虚拟桌面魔力:让 AI 代替你动手完成任务!

前言 大家好,昨夜Anthropic 发布了更新。现在 Claude 3.5 Sonnet(V2) 和 Claude 3.5 Haiku,以及名为 computer use 的新功能已经作为公开测试版发布了。 Introducing computer use, a new Claude 3.5 Sonnet, and Claude 3.5 Ha…

【JavaEE】【多线程】线程池

目录 一、线程池二、ThreadPoolExecutor类讲解2.1 构造方法2.1.1 corePoolSize和maximumPoolSize2.1.2 KeepAliveTime和unit2.1.3 workeQueue2.1.4 threadFactory2.1.5 handler 三、简易构造线程池四、自己实现一个简单线程池 一、线程池 线程池:线程池可以简单理解…

DC-2靶机通关详解以及可能问题的解决

靶机下载地址:https://www.vulnhub.com/entry/dc-2,311/ 可能问题 出现如图的问题最大的可能是因为我们的VMware的版本过高,我们只需要降低一下版本就可以了。 找到虚拟机选项,点开其中的管理选项,然后选择更改兼容性。 直接下一…

双11买什么最划算?盘点双11必买好物合集

2024的“双11”购物狂欢节也是正式拉开帷幕,大家有没有物色到心仪的好物呢?每年的双11,都是数码家电爱好者的盛宴。在这个时候,各大品牌纷纷推出优惠活动,各种新品也层出不穷,正是入手这些商品的绝佳时机。…

SpringCloud Alibaba-03 Sentinel服务熔断与限流

与CircuitBreaker功能类似 后台默认8719端口 前台默认8080端口 在jar包所在目录下打开CMD,执行 java -jar sentinel-dashboard-1.8.6.jar 命令即可 网址http://localhost:8080 账号密码都是sentinel 1.Sentinel微服务8401纳入Sentinel监控 1.1 建Module&#…

javascript-基础 (三)

循环-for for 循环-基本使用 1. for循环语法 作用: 重复执行代码 好处: 把声明起始值、循环条件、变化值写到一起,让人一目了然 , 它是最常使用的循环形式 for (变量起始;终止条件;变量变化量) {//循环体 } 例子: f…

论文阅读(二十六):Dual Attention Network for Scene Segmentation

文章目录 1.Introduction3.DANet3.1Position Attention Module3.2Channel Attention Module 论文:Dual Attention Network for Scene Segmentation   论文链接:Dual Attention Network for Scene Segmentation   代码链接:Github 1.Intr…

基于SSM+小程序民宿短租管理系统(民宿1)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM小程序民宿短租管理系统实现了管理员、用户及房主 1、管理员可以管理民宿信息和订单信息用户管理、房主管理、房间类型管理、预定管理等。 2、房主可以管理自己的民宿和订单 3、…

图论基础复习【并查集 | 图遍历 | 最小生成树 | 3种最小路径算法】

博客主页:花果山~程序猿-CSDN博客 文章分栏:高阶数据结构_花果山~程序猿的博客-CSDN博客 关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长! 目录 一,并…

JAVA Maven 的安装与配置

一、下载地址 官方网站:Maven – Download Apache Maven 我这里是3.8.6版本 二、安装步骤 maven安装之前要先安装jdk,请确保你的系统已经安装了jdk环境。 1.将下载好的 Maven 进行解压 apache-maven-3.6.8-bin.zip 2.配置本地仓库:修改 conf/settin…

C++设计模式创建型模式———单例模式

文章目录 一、引言二、懒汉模式三、饿汉模式四、C11 的线程安全单例五、与其他模式的关系六、总结 一、引言 单例模式是一种创建型设计模式, 让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。 在一个项目中,全局范围内&a…

HTML+CSS实现超酷超炫的3D立方体相册

效果演示 HTML和CSS实现一个简单的3D立方体加载动画的相册。它使用了HTML来构建立方体的结构&#xff0c;并通过CSS来添加样式和动画效果。 HTML <div class"loader3d"><div class"cube"><div class"face"><img src&qu…