化学空间可视化(chemical space visualization)开源软件ChemPlot的安装及使用

文章目录

  • 前言
  • 一、ChemPlot是什么?
  • 二、conda环境安装ChemPlot
    • 1. 创建conda环境
    • 2. 安装chemplot及需要的包
    • 3. 检验安装
  • 三、使用步骤
    • 1. 化合物数据库可视化使用方法
      • BBBP数据库的t-SNE降维后可视化:
      • BBBP数据库的PCA降维后可视化:
      • BBBP数据库的UMAP降维后可视化:
      • BBBP数据库的t-SNE降维后Hexagonal Bin Plot:
      • LOGP数据库的聚类后可视化:
    • 2. 实例:小分子上市药物与临床药物化学空间可视化
  • 总结
  • 参考资料


前言

在当前人工智能(AI)引导的化学设计时代,可视化经常被用来描述数据驱动模型的适用范围。在分子数据科学中,存储在由图形、文本表示、原子坐标或其任何组合形成的化学分子表示的高维空间是的分子数据库的可视性变得复杂而不可琢磨,因此,开发化学信息数据可视化方法和工具非常必要。

数据可视化提供了将高维分子数据减少到二维(2D)或三维(3D)空间的实用手段。在低维化学空间中的数据的视觉检查使得能够更真实地筛选具有用户期望的性质的分子,用于化学库设计,高通量筛选,多样性分析和离群值检测。

本文介绍开源化学空间可视化工具ChemPlot从conda环境在本地安装及使用方法,避免化学信息数据上传,帮助化学工作者使用不同的降维方法可视化数据库。


一、ChemPlot是什么?

ChemPlot
ChemPlot是一个开源的Python库工具(用户手册),可以通过多种降维实现化学空间的可视化,支持按相似性展示、多种降维方法、静态和动态可视化等。
ChemPlot提供在线网页版本,但需要上传分子数据库,上传规模有5000条的限制;对于商业用户数据上传其保密性也存在担忧。

ChemPlot具有结构和定制的相似性方法,包括分子指纹structural similarity(当基于结构相似性) 和 描述符tailored similarity(基于定制的相似性)。通过定制的相似性,化学空间以考虑目标特性的监督方式构建。
当基于结构相似性计算化学空间可视化时,分子列表被转换为扩展连接指纹(ECFP)。ECFP是位向量,其中每个位表示特定子结构的存在或不存在。从主结构中提取子结构,从每个非氢原子开始,延伸到相邻原子,直到达到指定的距离。提取的子结构被散列并映射到固定大小的位向量ChemPlot使用RDKit库将SMILES和InChI符号转换为位向量长度为2048位、半径为2个相邻原子的ECFP。在转换每个分子之后,对于所有分子,从位向量中移除仅包含0或仅包含1的位。 剩余的位数决定了维度的总数,它们被用作降维阶段的输入。
当基于定制的相似性计算化学空间可视化时,分子列表被转换为通过使用Mordred库计算的一组描述符。最初,总共计算了201个物理化学描述符。在无法成功计算描述符的情况下,从数据集中删除分子。描述符列表然后用于形成矩阵,其中行表示化合物,列表示描述符。接下来,通过使用用于数字目标值的套索回归或通过使用用于分类目标值的逻辑回归来选择与目标属性相关的描述符。Lasso回归使用0.05 alpha(正则化乘数)的L1正则化,最大迭代次数为10000。逻辑回归使用L1正则化,C为0.3(正则化强度的倒数),liblinear作为优化方法。所选描述符的所得矩阵用作降维阶段的输入。

ChemPlot以三种不同的降维方法PCA,t-SNE和UMAP
PCA 主成分分析:PCA 是一种线性降维算法,通过最大化方差将数据点投影到主成分上。ChemPlot使用scikit-learn 库中的PCA和默认参数。在可视化步骤中,两个最重要的主成分被用作减少的维度。
t-SNE t-分布式随机邻域嵌入:t-SNE 是一种非线性降维算法,可将数据点之间的相似性转换为联合概率。然后,它最小化高维数据和低维嵌入的联合概率分布之间的差异。这是一个随机过程,不同的初始化参数会产生不同的结果。除了复杂度参数,ChemPlot使用其默认参数应用scikit-learn 库中的t-SNE。如下所述,困惑度参数由预训练模型自动计算。
UMAP 一致流形逼近与投影:UMAP 是一种非线性降维算法,它为给定的数据点构建一个特定的加权k-近邻图,然后计算该图的低维布局。它是基于一个随机过程,产生不同的结果,从不同的初始化参数。ChemPlot使用UMAP库提供的默认参数应用UMAP,除了由下面描述的预训练模型自动计算的n_neighbors和min_dist。

ChemPlot聚类:允许您通过使用sklearn中实现的KMeans 算法来识别数据中的不同聚类。

ChemPlot使用户能够以静态和交互式方式可视化分子数据集的化学空间,动态展示可以看到分子结构信息;也可以使用Kernel Density Estimate Plot(只支持Static Plot)和Hexagonal Bin Plot。

二、conda环境安装ChemPlot

1. 创建conda环境

需要指定python=3.9或者3.8:

conda create -n chemplot_env python=3.9
conda activate chemplot_env

2. 安装chemplot及需要的包

将以下内容保存进 requirements.txt文件:

pandas>=1.1.3
numpy>=1.19.2
matplotlib==3.3.2
seaborn==0.11.1
umap-learn>=0.5.1
scikit-learn==0.24.2
bokeh==2.4.3
scipy>=1.5.2
mordred>=1.2.0
networkx>=2.5
pytest>=6.2.5
pytest-cov>=3.0.0
rdkit

安装chemplot,及需要的包:

pip install -r requirements.txt
pip install chemplot

NOTE: bokeh版本过高(bokeh≥3.0),会有错误提示:ImportError: cannot import name ‘Panel’ from ‘bokeh.models’

3. 检验安装

检验pip安装:

pip show chemplot

在这里插入图片描述

用chemplot中test文件检验安装:

python -m pytest --pyargs chemplot

在这里插入图片描述**NOTE:**结果会显示有5项未通过,来自于SMILES读取的fromsmiles_test.py和打印interactive_plot_test.py,忽略。

三、使用步骤

感兴趣的小伙伴可查看:ChemPlot用户手册

1. 化合物数据库可视化使用方法

这里使用ChemPlot test数据库:BBBP:blood-brain barrier penetration,数据为药物分子的血脑屏障可透过性,1代表可以,0代表透过性低。该文件位于conda环境的chemplot/data/目录下。
激活conda环境(conda activate chemplot_env),交互式打开Python:

import chemplot as cp
data_BBBP = cp.load_data("BBBP")
plotter = cp.Plotter.from_smiles(data_BBBP["smiles"], target=data_BBBP["target"], target_type="C")

降维并交互式展示:

plotter.tsne()
plotter.interactive_plot(show_plot=True)

plotter.interactive_plot(show_plot=True)之后,Bokeh Plot将打开,示例如下。
如果不能生效,可尝试切换默认浏览器到Chrome。

BBBP数据库的t-SNE降维后可视化:

在这里插入图片描述

BBBP数据库的PCA降维后可视化:

plotter.pca()
plotter.interactive_plot(show_plot=True)

在这里插入图片描述

BBBP数据库的UMAP降维后可视化:

plotter.umap()
plotter.interactive_plot(show_plot=True)

在这里插入图片描述

BBBP数据库的t-SNE降维后Hexagonal Bin Plot:

使用Interactive Plot模式:

plotter.tsne(random_state=0)
plotter.interactive_plot(kind="hex", show_plot=True) 

在这里插入图片描述

LOGP数据库的聚类后可视化:

加载数据LOGP:(数据库文件位置与BBBP相同,是化合物酯水分配系数log P数值,与BBBP分类不同,LOGP属于连续的数值,需要设置 target_type=“R”)

from chemplot import Plotter, load_data
data_LOGP = load_data("LOGP")
plotter = Plotter.from_smiles(data_LOGP["smiles"], target=data["target"], target_type="R")

UMAP降维,聚类:

plotter.umap(random_state=500)
plotter.cluster()

使用Interactive Plot模式:

plotter.interactive_plot(clusters=True, show_plot=True)

在这里插入图片描述六边形箱图

2. 实例:小分子上市药物与临床药物化学空间可视化

利用ChemPlot,这里展示了2325个上市小分子药物(Target 1)与9350个正在临床研究中的药物(Target 0)的化学空间,展示两者在化学空间中的情况。

在这里插入图片描述在这里插入图片描述在这里插入图片描述
从t-SNE和UMAP降维方法能直观看到,临床药物的化学空间都是围绕上市药物展开,可以看出来临床药物与上市药物有接近的化学空间;
同时也可以看到有空白区,代表仍有一些化学空间未被探索,是目前来看尚未成药的化学空间,或者是不可成药的空间,亦或是目前化学合成不能探索到的空间。
不禁想到一个问题:药物的化学空间是有限的,或是无限的?进一步,类药的化学空间是有限或无限的?


总结

数据可视化是化学家揭示隐藏在高维数据中的信息内涵,以及解释这些信息,并将其传达给其他专家或者非专业人士的重要工具。
本文介绍化学空间可视化开源工具ChemPlot的安装及应用,帮助化学工作者对化学数据库进行降维、聚类以及可视化展示。

参考资料

  1. https://chemrxiv.org/engage/chemrxiv/article-details/617180aaff3ba991f99af550

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Photoshop 2023(Ps)下载安装及详细安装教程

Photoshop(Ps)的介绍 Adobe Photoshop,简称“PS”,是由AdobeSystems开发和发行的图像处理软件。Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地进行图片编辑和创造工作。PS有很多功能,在图像、…

如何用 Moodle 和 ONLYOFFICE 创建在线学习平台

在教学过程中使用现代在线学习软件,已不再是什么稀奇事。在世界各地,越来越多的教师和学生都在使用现代技术,应用新的学习场景,包括学生在传统课堂之外更积极的参与、更密切的互动。 Moodle 支持各类学校和大学充分利用在线教育过…

手持三防平板丨国产化加固平板丨国产三防平板发展的意义是什么?

随着现代科技的快速发展,平板电脑在我们的生活中扮演着越来越重要的角色。然而,传统的平板电脑只能在普通的环境中使用,而无法在恶劣的环境中使用,例如在高海拔、高温、高湿度、沙漠等环境中,传统平板电脑往往会出现故…

MacBook的nginx出现13: Permission denied 的问题分析和解决办法

同样的项目代码,电脑从Windows更换到了MacBook,发现网站的样式都没有了,直接访问CSS文件 http://crm.ms-test.cc/toolstatic/css/bootstrap.min.css 发现无法访问。查看Nginx错误日志: 说明是nginx没有权限访问这个CSS文件&#…

163邮箱发邮件

1、Jenkins安装Email Extension Plugin 2、网易邮箱里获取授权码:qa_jenkins_robot@163.com 开启POP3/SMTP 我已经配置过了,所以这里会有一个使用设备 3、配置Jenkins邮箱通知 Manage Jnekins-Configuration System Jenkins Location: Extended E-mail Notification: …

机器人十大前沿技术(2023-2024年)

2023-2024年机器人十大前沿技术 1. 具身智能与垂直大模型 具身智能是指拥有自主感知、交互和行动能力的智能体,能够与环境进行实时互动,从而实现对环境的理解和适应。 “大模型”是指在深度学习和人工智能领域中,使用大量参数和数据进行训…

爬虫知识--01

爬虫介绍 # 爬虫的概念: 通过编程技术(python:request,selenium),获取互联网中的数据(app,小程序,网站),数据清洗(xpaht,lxml)后存到库中(mysql,redis,文件,excel&#x…

Elasticsearch:什么是搜索引擎?

搜索引擎定义 搜索引擎是一种软件程序或系统,旨在帮助用户查找存储在互联网或特定数据库中的信息。 搜索引擎的工作原理是对各种来源的内容进行索引和编目,然后根据用户的搜索查询向用户提供相关结果列表。 搜索引擎对于希望快速有效地查找特定信息的用…

《最新出炉》系列初窥篇-Python+Playwright自动化测试-19-处理鼠标拖拽-中篇

1.简介 上一篇中,主要是介绍了拖拽的各种方法的理论知识以及实践,今天宏哥讲解和分享一下划取字段操作。例如:需要在一堆log字符中随机划取一段文字,然后右键选择摘取功能。 2.划取字段操作 划取字段操作就是在一段文字中随机选…

java面试题之redis篇

1.redis 中的数据类型有哪些 随着 Redis 版本的更新,后面又支持了四种数据类型: BitMap(2.2 版新增)、HyperLogLog(2.8 版新增)、GEO(3.2 版新增)、Stream(5.0 版新增&am…

【Azure 架构师学习笔记】- Azure Databricks (7) --Unity Catalog(UC) 基本概念和组件

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (6) - 配置Unity Catalog 前言 在以前的Databricks中,主要由Workspace和集群、SQL Warehouse组成, 这两年Databricks公…

如何理解景深

直观理解 先看两幅图片: 图片虽然是二维的,但描述的是三维的场景。 近处的场景较为清晰,而远处的却逐渐模糊。但是景深大的排出的图片前后清晰的范围越大! 所以,初步理解景深就是图片清晰的前后范围,景深…