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

欢迎浏览我的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://xiahunao.cn/news/2808655.html

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

相关文章

【线程池项目(四)】项目的死锁问题分析和资源回收机制的改善

在上一篇 【线程池项目(三)】线程池CACHED模式的实现中我们大概说了说cached模式的基本实现,对于多线程编程,我们需要考虑的问题也较于单线程更多、更复杂,经常存在线程同步、资源竞争等复杂的并发控制问题&#xff0c…

响应式资源素材源码图库下载平台整站系统,附带系统搭建教程

响应式资源素材源码图库下载平台整站系统,可用于做娱乐网 资源网,功能非常的齐全无任何加密也无任何后门!支持支付宝接口。 页面很美观,堪比大型网站的美工,而且页面做的也很人性 化, 用户主要分为两类&am…

【MATLAB源码-第143期】基于matlab的蝴蝶优化算法(BOA)机器人栅格路径规划,输出做短路径图和适应度曲线。

操作环境: MATLAB 2022a 1、算法描述 蝴蝶优化算法(Butterfly Optimization Algorithm, BOA)是基于蝴蝶觅食行为的一种新颖的群体智能算法。它通过模拟蝴蝶个体在寻找食物过程中的嗅觉导向行为以及随机飞行行为,来探索解空间&a…

Python习题详解

练习&#xff1a; 1&#xff0c;计算100以内奇数的和 #计算100以内所有奇数的和 sum 0 # n 1 # while n < 100: # # sum sum n # sum n # # n n 2 # n 2 # print(sum) n 99 #求偶数时n 100 while n > 0:sum n# n n - 2n - 2 print(sum)2&#xff0c;打印直…

MySQL锁三部曲:临键、间隙与记录的奇妙旅程

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 MySQL锁三部曲&#xff1a;临键、间隙与记录的奇妙旅程 前言临键锁的奥秘间隙锁记录锁 前言 在数据库世界中&#xff0c;锁是维护数据完整性的一种关键机制。而MySQL中的临键锁、间隙锁和记录锁则是锁…

Python零基础安装教程(包含各种安装方案)以及PyCharm安装步骤

文章目录 安装方案介绍安装Python解释器安装Pycharm安装Anaconda方案参考 安装方案介绍 方案1&#xff1a;只安装Python解释器&#xff08;适合小型开发&#xff09; 方案2&#xff1a;安装集成开发环境Anaconda&#xff08;集成了Spyder&#xff0c;JupyterNotebook等编辑器&…

cmd命令开启windows桌面远程控制并设置防火墙允许远程

cmd命令开启桌面远程控制 1、开启之前&#xff1a; 2、使用管理员身份运行cmd 3、执行cmd命令 reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlset\Control\Terminal server" /v fDenyTSConnections /t REG_DWORD /d 0 /f4、如果这台电脑的防火墙打开&#xff…

【buuctf-我吃三明治】

看到这个题&#xff0c;我忽然感觉答案就在中间&#xff0c;三明治笑死了。这张原始 flag 图片包含两张图&#xff0c;为什么是两张图见下&#xff1a; 以FF D9结尾是第一张图片结束&#xff0c;FF D8 FF是第二张图片开始。 两张图片拆出来分别是下面两张&#xff08;当然没什…

Spring Boo项目中方法参数对象中字段上存在的自定义注解如何进行拦截解析

一、前言 在Spring Boot项目开发过程中&#xff0c;我们经常会使用到自定义注解的方式进行业务逻辑开发&#xff0c;此时注解我们一般是放在方法或者类上面&#xff0c;通过AOP切面拦截的方式进行自定义业务逻辑填充。但是如果自定义注解放在类的字段上&#xff0c;此时应该如…

平头哥IP核C906的JTAG调试器DIY教程(一)

背景 最近买了一块基于平头哥C906核&#xff0c;SOC为全志的D1s&#xff0c;的核心板&#xff0c;手工焊接在白嫖的底板上&#xff08;此处感谢百问网老师的友情支持&#xff0c;手动狗头&#xff09;。在焊接完成后&#xff0c;进行点亮跑程序的时候&#xff0c;发现没有优雅…

Makefile静态库动态库的构建和链接之工程实用篇

静态库和动态库的构建和链接 现有C工程目录结构如下&#xff1a; add.h int add(int a, int b);add.cpp #include "add.h"int add(int a, int b) {return ab; }main.cpp #include <iostream> #include "add.h"int main() {std::cout << a…

GEE必须会教程—曾“几何”时(Geometry类型)

几何图形组成了世界万物&#xff0c;在数学史具有重要地位&#xff0c;将几何图形迁移到地理空间信息的处理上&#xff0c;我们我们得到就是研究区域的边界范围&#xff0c;因此&#xff0c;在学习矢量数据和栅格数据之前&#xff0c;我们有必要了解几何图形在GEE上的编辑。 1…

C语言——结构体——(第21篇)

坚持就是胜利 文章目录 一、结构体类型的声明1、结构的基础知识2、结构的声明3、结构成员的类型 二、结构体变量的定义和初始化结构体中包含结构体 三、结构体成员访问问题一&#xff1a;t.name "张三"&#xff0c;对吗&#xff1f;问题二&#xff1a;set_Stu(s);应…

C#与VisionPro联合开发——跳转页面

1、跳转页面并打开相机 From1 所有代码展示 using System; using System.IO; using System.Windows.Forms; //引入VisionPro命名空间 using Cognex.VisionPro;namespace ConnectCamera {public partial class Form1 : Form {public Form1() {InitializeComponent();}CogAcqFif…

Java核心-核心类与API(3)

话接上回&#xff0c;继续核心类与API的学习&#xff0c;这次介绍一下枚举类以及与系统、交互有关的类&#xff0c;需要了解并能使用即可。 一、枚举类 1、概述 枚举也称穷举&#xff0c;简单理解就是把所有可能一一列举出来&#xff08;穷尽所有可能&#xff09;。枚举是一…

前端学习——JS学习

文章目录 1. 定义变量&#xff0c;关键字 var、let、const2. 定义变量&#xff0c;数据类型3. 数组变量的操作4. 对象的操作5. JSON 字符串 1. 定义变量&#xff0c;关键字 var、let、const 这里主要是对var、let做比较 /** 1. var存在变量提升、let不存在变量提升 **/ cons…

【C语言基础】:操作符详解(一)

文章目录 操作符详解1. 操作符的分类2. 二进制和进制转换2.1 什么是二进制、八进制、十进制、十六进制2.1.1 二进制和进制转换2.1.2 二进制转十进制2.2.3 二进制转八进制2.2.4 二进制转十六进制 3. 源码、反码、补码4. 移位操作符4.1 左移操作符4.2 右移操作符 5. 位操作符&…

【域适应论文汇总】未完结

文章目录 DANN&#xff1a;Unsupervised Domain Adaptation by Backpropagation (2015)TADA&#xff1a;Transferable Attention for Domain Adaptation&#xff08;2019 AAAI&#xff09;1 局部注意力迁移&#xff1a;Transferable Local Attention2 全局注意力迁移&#xff1…

调度服务看门狗配置

查看当前服务器相关的sqlserver服务 在任务栏右键&#xff0c;选择点击启动任务管理器 依次点击&#xff0c;打开服务 找到sqlserver 相关的服务&#xff0c; 确认这些服务是启动状态 将相关服务在看门狗中进行配置 选择调度服务&#xff0c;双击打开 根据上面找的服务进行勾…

打开 Camera app 出图,前几帧图像偏暗、偏色该怎样去避免?

1、问题背景 使用的安卓平台&#xff0c;客户的应用是要尽可能快的获取到1帧图像效果正常的图片。 但当打开 camera 启动出流后&#xff0c;前3-5帧图像是偏暗、偏色的&#xff0c;如下图所示&#xff0c;是抓取出流的前25帧图像&#xff0c; 前3帧颜色是偏蓝的&#xff0c;…