机器学习打分函数在分子对接中的应用系列-GB_Score

news2025/1/16 4:48:53

欢迎浏览我的CSND博客! Blockbuater_drug …点击进入


前言

分子对接是计算机辅助药物设计(CADD)中广泛使用的基本工具之一,主要过程可分为两部,首先是是探索到配体-受体结合的结合的正确姿势(pose identification),然后采用打分函数对其进行评估(pose Scoring)。
近年来,由于计算机硬件和数据集可用性的进步,数据驱动的机器学习方法已成为药物设计框架的重要组成部分之一。基于机器学习和深度学习构建打分函数,可以预测对接过程中生成的蛋白质-配体位姿或晶体复合物的结合得分,已成为CADD领域一个活跃的研究命题。

本文解读了一种先进的机器学习打分函数GB-Score的发展及原理,介绍相应验证环境的部署,以及如何使用,便于感兴趣的朋友作进一步优化。

一、GB-Score是什么?

GB-Score是一种最先进的基于机器学习的评分函数,利用包含23496组数据的PDBbind-v2019 general sets作为数据集,使用距离加权的原子间接触特征和梯度提升树算法来预测结合亲和力。
距离加权原子间接触特征化方法使用不同配体和蛋白质原子类型之间的距离来数值表示蛋白质-配体复合物。
GB-Score在CASF-2016基准测试中的得分能力指标非常优异,实现Pearson相关性0.862和RMSE 1.190。

Github代码:https://github.com/miladrayka/GB_Score
介绍文章:https://onlinelibrary.wiley.com/doi/10.1002/minf.202200135 原文自由下载:GB_Score.pdf

在这里插入图片描述
前期研究已经证明,配体和蛋白质原子之间的距离加权原子间接触可以作为机器学习过程中蛋白质-配体复合物数学表示的特征。本研究作者通过使用更好的特征选择、扩展的训练集和不同的学习算法来改进以前的评分函数ET Score。在特征选择上,采用了更合理的特征选择方法来缩小描述蛋白质-配体复合物的特征向量的尺寸,以变得更符合奥卡姆的剃刀规则。此外,在严格的环境中仔细检查新生成的评分函数GB Score,以评估其在新数据中的泛化能力。

对于配体,是基于元素划分原子类型(H、C、N、O、F、P、S、Cl、Br、I)。
对于蛋白质原子类型,根据侧链的化学性质将氨基酸残基分为四类(带电(c)、极性(p)、两亲性(a)、疏水性(h)),然后将相同的基于元素的原子类型归于每个组。通过这个分类,产生的蛋白质原子类型将反映蛋白质原子的局部化学环境。
下一步,计算特定原子类型对的所有原子间距离。大小低于预定义截止值(dcutoff)的距离由自然数(n)的逆幂加权并相加。之前的研究证明了12A和2分别是dcutoff和n的适当选择。对所有可能的原子类型对重复上述算法,并产生具有400维的特征向量作为蛋白质-配体复合物的表示。
在预处理步骤中,消除了所有静态、准静态(方差低于0.01)和相关(相关性高于95%)特征,这导致不同训练集的特征维度不同。此外,由于平均值和标准偏差,对其余特征进行了归一化。
数据集及处理后的特征向量维数Nf, 以及不同元素特征总和的权重,如下所示。
在这里插入图片描述

在这里插入图片描述

作者建立的三种机器学习算法RF,ERT,GBT,也是常见的机器学习算法类型。Scikit学习机器学习包用于训练。
在RF和ERT中,n_estiques设置为500,并且只有mtry(max_features)超参数做了优化。对于GBT,所有超参数都设置为参考论文中的值。
由于上述算法的随机性,训练过程重复十次,并且通过对十个以上的模型进行平均来报告模型的均方根误差(RMSE)和皮尔逊相关性(Rp)。相应的超参数如下所示:在这里插入图片描述
以下是CASF2016(core sets)数据集上的打分效果,看起来已经相当不错。
在这里插入图片描述GBT算法整体优于其他两种算法的效果。
进一步在更大的数据集PDBbind 2019版的refined general sets上做了训练,Rp 和RMSE分别达到 0.862 和1.19,该模型被称为 GB-score。
在这里插入图片描述
显示GB score预测了pKi/d值大于10的蛋白质配体结构的错误值。这一观察结果可归因于所使用的训练集,因为只有1.80%的训练集数据
具有大于10的pKa(Ka的负对数值),因此GB score预测偏向于中间范围pKi/d。所以,后续研究可以增加具有高pKi/d范围的数据作为解决方案。
为了验证模型的健壮性,在PDBbind 2019v数据集上做了5折交叉验证,Rp和RMSE分别为 0.764 (0.001) and 1.205 (0.007),有所下降,认为是数据数量增加和多样性增加所致。调整CASF2016数据集中的数量作为训练集,以及控制数据相似性均能证明GBT算法的稳健性。总之,即便测试集与训练集相似数据减少,机器学习算法仍然能很好的发挥作用。

core sets 2016分身按照蛋白家族分为57种,75%的家族预测结果相关系数可以达到0.7以上的可接受范围。
ECIF::LD-GBT,ECIF,AGL-Score ,ETScore ,EIC-Score,RosENet,KDEEP,PLEC-nn ,OnionNet ,DvinaRF20,RI-Score 和X-score. ECIF::LD-GBT表现最优Rp =0.866,GBscore表现次之(Rp =0.862).

在这里插入图片描述
不足与改进:更其他研究一样,缺少真实场景中的应用;而且打分函数本身依赖于对接pose。另外,应该完善机器学习打分函数的评估方法,目前的机器学习打分函数都得到非常接近的效果,难以辨别优劣,或许可以通过划分不同的适用范围来处理这个问题。

二、文献复现 -训练和验证环境

安装环境:Ubuntu 22.04。

1. GB score验证虚拟环境的配置

conda create -n gb_score_env python=3.8.8 numpy=1.21.2 pandas=1.2.4 seaborn=0.11.1 joblib=1.0.1 matplotlib=3.3.4 
conda activate gb_score_env
python -m pip install biopandas==0.2.8 scipy==1.7.1 scikit-learn==0.24.1 progressbar2==3.53.1
conda install jupyter

2. Usage

1- Preparing ligand and protein file

a. Ligand and protein structure should be saved in .mol2 and .pdb format files respectively.
b. Each ligand and protein files for a specific complex must be placed in a same folder.

for example:

./1a1e/1a1e_ligand.mol2
./1a1e/1a1e_protein.pdb
./1a4k/1a4k_ligand.mol2
./1a4k/1a4k_protein.pdb

2- Generating features

运行generate_features.py 生成GB-Score的特征文件,类型为.csv文件:

-d 定义输入文件所在文件夹的路径; -f 定义输出特征的文件名。

python generate_features.py -d score/score_in/ -f feature.csv

3 - Repeat and extend current report

文件analysis.ipynb提供了复现整个设计及验证的过程,有明确的注释,感兴趣可以查看。
.csv 和.joblib文件需要提前下载解压到files和saved_model文件夹。


总结

本文解读了机器学习算法GB-Score的建立和验证工作。
机器学习算法有望显著提升对接pose打分的性能,但仍有多个方面问题亟待解决:
(1)缺少系统的机器学习打分函数评价方式;
(2)打分性能与对接pose质量紧密相关也是需要考虑的因素
(3)如何找到不同算法\不同原理打分函数的适用场景?

参考资料

  1. https://github.com/miladrayka/GB_Score
  2. https://onlinelibrary.wiley.com/doi/10.1002/minf.202200135

欢迎浏览我的CSND博客! Blockbuater_drug …点击进入

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

打印水仙花数---c语言刷题

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 题述 求出0~100000之间的所有“水仙花数”并输出。 “水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153&#…

openssl3.2 - crypto-mdebug被弃用后, 内存泄漏检查的替代方法

文章目录 openssl3.2 - crypto-mdebug被弃用后, 内存泄漏检查的替代方法概述笔记查看特性列表openssl3.2编译脚本 - 加入enable-crypto-mdebug看看有没有替代内存诊断的方法?main.cppmy_openSSL_lib.hmy_openSSL_lib.c备注备注END openssl3.2 - crypto-mdebug被弃用后, 内存泄…

sonar-java 手写一个规则-单元测试分析

前言 最近做项目,定制sonar规则,提高Java代码质量,在编写的sonar规则,做验证时,使用单元测试有一些简单的心得感悟,分享出来。 自定义规则模式 sonar的自定义规则很简单,一般而言有2种模式可…

解决vulhub漏洞环境下载慢卡死问题即解决docker-valhub漏洞环境下载慢的问题

解决vulhub环境下载慢/卡 当前环境为:ubuntu20 1.在 cd /etc/docker/目录下创建或修改daemon.json文件 sudo touch daemon.json编辑daemon.json文件 sudo vim daemon.json2.填写阿里云镜像地址: { "registry-mirrors":["https://6kx…

UE5 C++ Gas开发 学习记录(三)

添加AuraPlayerState,AuraAbilitySystemComponentBase和AuraAttributeSet 在Build.cs里添加 // Copyright Epic Games, Inc. All Rights Reserved. using UnrealBuildTool; public class MyGas : ModuleRules { public MyGas(ReadOnlyTargetRules Target) : base(Target) { P…

Android pixel6网页线刷官方镜像

背景 p6-7系pixel更新Android 13,首次引入了防回滚机制,Android13系统检测到属于Android12版本的旧bootloader就会直接红字警告拒绝引导,多次引导就会成为收藏品!(除非充钱) 今天收到了新的pixel6,想着以后刷机刷内核肯定频繁,就先打个预防针。 网页线刷官方镜像 查…

RabbitMQ-消息队列:优先级队列、惰性队列

20、优先级队列 在我们系统中有一个订单催付的场景,我们的客户在天猫下的订单,淘宝会及时将订单推送给我们,如果在用户设定的时间内未付款那么就会给用户推送一条短信提醒,很简单的一个功能对吧。 但是,天猫商家对我…

如何增加层次厚度?

Q 老师,我在做一个斧头武器,如何在平面上增加厚度和层次呢? A 选中这几个线,点连接就会出现中线,把中线稍作调整即可~

[嵌入式系统-35]:RT-Thread -20- 新手指南:在Keil MDK-ARM 模拟器上运行RT-Thread

目录 前言: 一、Keil MDK-ARM 模拟器概述 1.1 Keil概述 1.2 Keil MDK-ARM 1.3 Keil MDK-ARM软件仿真模拟器 1.4 Keil模拟器支持的CPU类型 二、Keil MDK ARM安装 前言: 一般嵌入式操作系统因为它的特殊性,往往和硬件平台密切相关连&am…

【C++精简版回顾】12.友元函数

1.友元函数 1.class class MM { public:MM(int age,string name):age(age),name(name){}friend void print(MM mm); private:int age;string name;void print() {cout << age << "岁的" << name << "喜欢你" << endl;} }; f…

DAY31--learning English

一、积累 1.stiff 2.curve 3.pungent 4.mellow 5.marinate 6.drain 7.corrupt 8.magnet 9.liver 10.stew 11.maid 12.sonogram 13.folk 14.anecdote 15.altar 16.spaghetti 17.ammunition 18.shield 19.beacon 20.hanger 二、练习 1.牛津原译 stiff /stɪf/ ( stiffer stiff…

编程的基础:理解时间和空间复杂度

编程的基础&#xff1a;理解时间和空间复杂度 时间复杂度空间复杂度示例常数时间复杂度 O(1)线性时间复杂度 O(n)线性对数时间复杂度 O(n log n)二次时间复杂度 O(n^2)指数时间复杂度 O(2^n) 空间复杂度示例常数空间复杂度 O(1)线性空间复杂度 O(n)线性对数空间复杂度 O(log n)…

流浪动物救助平台:Java开发的实践与思考

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

获取tensorflow lite模型指定中间层的输出

以mobilenet v2为例子&#xff0c;我已经训练好了模型&#xff0c;有tflite格式和onnx格式两种模型的权重文件&#xff0c;我想获取tflite模型在推理阶段neck部分的输出。 查看onnx模型得到neck最后一层位置 使用netron查看onnx模型结构 从name中能知道Reshape是neck的最后一…

【蓝桥杯】拓扑排序

一.拓扑排序 1.定义&#xff1a; 设G&#xff08;V&#xff0c;E&#xff09;是一个具有n个顶点的有向图&#xff0c;V中的顶点序列称为一个拓扑序列&#xff0c;当且仅当满足下列条件&#xff1a;若从顶点到有一条路径&#xff0c;则在顶点序列中顶点必在之前。 2.基本思想…

前端学习---- 前端HTML基本元素的介绍

一&#xff1a;显示相关的HTML基础知识 1. 推荐的前端编写工具 2. VScode的html速写规则&#xff08;从a标签开始再用&#xff09; ①、&#xff01;&#xff1a;代表生成html的基本框架元素 ②、html元素&#xff1a;直接书写html,不需要加<>,按回车会自动生成 ③、{}…

社交媒体变革者:剖析Facebook对在线互动的贡献

随着数字化时代的蓬勃发展&#xff0c;社交媒体已经成为人们日常生活中不可或缺的一部分。在这个领域的发展中&#xff0c;Facebook作为先行者和领导者&#xff0c;对在线互动的演变和发展产生了深远的影响。本文将深入剖析Facebook在社交媒体领域的贡献&#xff0c;以及它对在…

✅鉴权—cookie、session、token、jwt、单点登录

基于 HTTP 的前端鉴权背景cookie 为什么是最方便的存储方案&#xff0c;有哪些操作 cookie 的方式session 方案是如何实现的&#xff0c;存在哪些问题token 是如何实现的&#xff0c;如何进行编码和防篡改&#xff1f;jwt 是做什么的&#xff1f;refresh token 的实现和意义ses…

探索水下低光照图像检测性能,基于YOLOv6全系列【n/s/m/l】参数模型开发构建海底生物检测识别分析系统

底这类特殊数据场景下的检测模型开发相对来说比较少&#xff0c;在前面的博文中也有一些涉及&#xff0c;感兴趣的话可以自行移步阅读即可&#xff1a; 试探索水下目标检测&#xff0c;基于yolov5轻量级系列模型n/s/m开发构建海底生物检测系统》 《基于YOLOv5C3CBAMCBAM注意力…

查看笔记本电池健康状态-windows11

在 Windows 11 中获取详细的电池报告 Windows 11 中内置的 Powerfg 命令行选项来生成电池报告。 在任务栏上选择“搜索”&#xff0c;键入“cmd”&#xff0c;长按&#xff08;或右键单击&#xff09;“命令提示符”&#xff0c;然后选择“以管理员身份运行” ->“是”。 …