RDKit一个用于化学信息学的python库。使用支持向量回归(SVR)来预测logP。 分子的输入结构特征是摩根指纹,输出是logP。


代码示例:


  1. #导入依赖库

  2. import numpy as np

  3. from rdkit import Chem

  4. from rdkit.Chem.Crippen import MolLogP

  5. from rdkit import Chem, DataStructs

  6. from rdkit.Chem import AllChem

  7. from sklearn.svm import SVR

  8. from sklearn.metrics import mean_squared_error, r2_score

  9. from scipy import stats

  10. import matplotlib.pyplot as plt

载入smile分子库,计算morgan指纹和logP

  1. num_mols = 5000

  2. f = open('smiles.txt', 'r')

  3. contents = f.readlines()

  4. fps_total = []

  5. logP_total = []

  6. for i in range(num_mols):

  7. smi = contents[i].split()[0]

  8. m = Chem.MolFromSmiles(smi)

  9. fp = AllChem.GetMorganFingerprintAsBitVect(m,2)

  10. arr = np.zeros((1,))

  11. DataStructs.ConvertToNumpyArray(fp,arr)

  12. fps_total.append(arr)

  13. logP_total.append(MolLogP(m))

  14. fps_total = np.asarray(fps_total)

  15. logP_total = np.asarray(logP_total)

划分训练集和测试集

  1. num_total = fps_total.shape[0]

  2. num_train = int(num_total*0.8)

  3. num_total, num_train, (num_total-num_train)

  1. fps_train = fps_total[0:num_train]

  2. logP_train = logP_total[0:num_train]

  3. fps_test = fps_total[num_train:]

  4. logP_test = logP_total[num_train:]

将SVR模型用于回归模型

https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVR.html

  1. _gamma = 5.0

  2. clf = SVR(kernel='poly', gamma=_gamma)

  3. clf.fit(fps_train, logP_train)

完成训练后,应该检查预测的准确性。对于评估,将使用r2和指标的均方误差。

  1. logP_pred = clf.predict(fps_test)

  2. r2 = r2_score(logP_test, logP_pred)

  3. mse = mean_squared_error(logP_test, logP_pred)

  4. r2, mse

模型结果可视化

  1. slope, intercept, r_value, p_value, std_error = stats.linregress(logP_test, logP_pred)

  2. yy = slope*logP_test+intercept

  3. plt.scatter(logP_test, logP_pred, color='black', s=1)

  4. plt.plot(logP_test, yy, label='Predicted logP = '+str(round(slope,2))+'*True logP + '+str(round(intercept,2)))

  5. plt.xlabel('True logP')

  6. plt.ylabel('Predicted logP')

  7. plt.legend()

  8. plt.show()

参考:

https://github.com/SeongokRyu/CH485---Artificial-Intelligence-and-Chemistry

https://blog.csdn.net/zb123455445/article/details/78354489

支持向量回归代码_RDKit:基于支持向量回归(SVR)预测logP相关推荐

  1. python实现逻辑回归代码_python如何实现逻辑回归 python实现逻辑回归代码示例

    python如何实现逻辑回归?本篇文章小编给大家分享一下python实现逻辑回归代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 代码如下: i ...

  2. 【SVR预测】基于matlab EMD优化SVR预测【含Matlab源码 1403期】

    ⛄一.EMD及SVM简介 1 引言 时间序列预测是将预测目标的历史数据按照时间的顺序排列成为时间序列,然后分析它随时间的变化趋势,外推预测值.时间序列预测,尤其是非平稳.非线性时间序列的预测在 经济. ...

  3. 基于支持向量回归的数学模型分析疫情现状并对其进行预测

    前言: 在这里通过分析过去52天的疫情数据,将各类型数据进行了可视化展示,能够直观的看出过去52天人数的变化情况,同时使用支持向量回归模型对未来三天的确诊人数进行预测,并对预测曲线和原始确证病例进行可 ...

  4. RDKit:基于支持向量回归预测logP

    RDKit一个用于化学信息学的python库.使用支持向量回归(SVR)来预测logP. 分子的输入结构特征是摩根指纹,输出是logP. SVR(Support Vactor Regerssion)支 ...

  5. ❤️解决非线性回归问题的机器学习方法总结:多项式线性模型、广义线性(GAM)模型、回归树模型、支持向量回归(SVR)模型

    文章目录 前言 多项式回归模型 概念解释: sklearn实现多项式回归模型: 广义线性可加(GAM)模型 概念解释: pygam实现广义线性可加模型: GAM模型的优点与不足: 回归树模型 概念解释 ...

  6. 大功率双伺服电机驱动板,包含原理图,PCB和原代码,基于STM32F4方案,支持霍尔,编码器,无感

    大功率双伺服电机驱动板,包含原理图,PCB和原代码,基于STM32F4方案,支持霍尔,编码器,无感. 需要有一定的基础,无基勿扰. :9450639029711075枫叶蓝.

  7. python日常记账本源代码,基于PySide6,支持快速查询、绘制图表

    python日常记账本源代码,基于PySide6(Qt for Python 6)的账本,界面简洁.功能强大,支持保存文件.快速查询.绘制图表等,是平时记账的不错选择.账目查询.账本编辑.添加/删除. ...

  8. 【嵌入式开发】ARM 异常向量表 ( 异常概念 | 异常处理流程 | 异常向量 | 汇编代码 )

    一. 异常向量表 1. 异常相关概念 (1) 异常 (2) 异常类型简介 2. 异常处理 (1) 异常处理 二. 异常向量表代码编写 1. 初始化异常向量表模块代码 2. 链接器脚本 3. Makef ...

  9. 代码提示_PHPStorm 支持 Laravel Facades 的代码提示

    好久没用 Laravel 和 PHPStorm 了,最近开发了小项目,用的时候发现 Laravel 的 Facades 是没有代码补全提示的,原因是 Facades 是基于 静态方法重载 __call ...

最新文章

  1. ubuntu16 18 用着速度不错的apt源
  2. SQL Server统计信息:问题和解决方式
  3. 23. Leetcode 86. 分隔链表 (链表-基础操作类-分隔链表)
  4. oracle的一些常使用命令,Oracle 经常使用命令小结
  5. mysql选取最小值_MySQL:选择x最小值
  6. android studio 分页,Android Paging codelab
  7. markdown编辑数学公式
  8. 【c++ primer】第八章 函数探幽
  9. Android Google Map –两点之间的绘图路线
  10. 程序员实用算法 源码_程序员必须知道的十大基础实用算法综述
  11. Express框架学习笔记-get请求中参数的获取
  12. GMSK调制解调(一)
  13. 用C语言学习高中数学:补集
  14. oracle 9i告警日志,Oracle 9i,10g,11g各自alert日志的位置
  15. rocketmq 消息删除_RocketMq Topic创建和删除
  16. centos 7重置密码
  17. js中使用jQuery读/写cookie的值
  18. base64格式转为二进制流
  19. PDF改背景和字体颜色
  20. 卸载并安装NVIDIA显卡驱动

热门文章

  1. ASP.NET Core Razor页面禁用防伪令牌验证
  2. UnitOfWork知多少
  3. SQL注入(SQL Injection)
  4. asp.net core 中间件详解及项目实战
  5. layui弹出层使用(layer.alert / layer.open / layer.prompt )
  6. linux脚本打印循环次数,shell脚本编程基础(3)——循环用法
  7. C# RichTextBox 做简单的HTML代码编辑器 ---------左侧显示行号
  8. ArcGIS实验教程——实验五:空间数据编辑
  9. C#委托、事件学习之(一)——委托事件描述
  10. Android之升级OkHttp编译提示错误如下Using ‘body(): ResponseBody?’ is an error. moved to val