利用umap画出分子化学空间分布图
安装

pip install umap-learn

下面是用一个数据集举的例子

import torch
import umap
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.manifold import TSNE
from rdkit.Chem import AllChem as Chem
from sklearn.preprocessing import StandardScalerdef get_fp(list_of_smi):""" Function to get fingerprint from a list of SMILES"""fingerprints = []mols = [Chem.MolFromSmiles(x) for x in list_of_smi]# if rdkit can't compute the fingerprint on a SMILES# we remove that SMILESidx_to_remove = []for idx,mol in enumerate(mols):try:fprint = Chem.GetMorganFingerprintAsBitVect(mol, 2, useFeatures=False)fingerprints.append(fprint)except:idx_to_remove.append(idx)smi_to_keep = [smi for i,smi in enumerate(list_of_smi) if i not in idx_to_remove]return fingerprints, smi_to_keep
def get_embedding(data):""" Function to compute the UMAP embedding"""            data_scaled = StandardScaler().fit_transform(data)embedding = umap.UMAP(n_neighbors=10,min_dist=0.5,metric='correlation',random_state=16).fit_transform(data_scaled)return embedding
def draw_umap(embedding_hp1):fig, ax = plt.subplots(figsize=(50, 40))contour_c='#444444'plt.xlim([np.min(embedding_hp1[:,0])-0.5, np.max(embedding_hp1[:,0])+1.5])plt.ylim([np.min(embedding_hp1[:,1])-0.5, np.max(embedding_hp1[:,1])+0.5])labelsize = 40plt.xlabel('UMAP 1', fontsize=labelsize)plt.ylabel('UMAP 2', fontsize=labelsize)ax.spines['right'].set_visible(False)ax.spines['top'].set_visible(False)plt.scatter(embedding_hp1[:, 0], embedding_hp1[:, 1], lw=0, c='#D55E00', label='HPK1', alpha=1.0, s=180, marker="o", edgecolors='k', linewidth=2) leg = plt.legend(prop={'size': labelsize}, loc='upper right', markerscale=2.00)leg.get_frame().set_alpha(0.9)    plt.setp(ax, xticks=[], yticks=[])plt.show()
def main():hpk1 = pd.read_csv("/y/Aurora/Fergie/data/preprocessed/HPK1_preprocess.csv")smiles_h1 = hpk1["SMILES"]fp_hp1, sm_for_hp1 = get_fp(smiles_h1)fp_hp1 = np.array(fp_hp1)embedding_hp1 = get_embedding(fp_hp1)draw_umap(embedding_hp1)if __name__ == '__main__':main()

在jupyter notebook上运行成功,结果如下:
可用于对比不同数据集的化学空间,以下是三个数据集化学空间的分布图
Reference:
https://github.com/ETHmodlab/virtual_libraries

python画出分子化学空间分布(UMAP)相关推荐

  1. python 画出决策边界_python 画出使用分类器得到的决策边界

    python 画出使用分类器得到的决策边界 发布时间:2020-09-25 21:10:09 来源:脚本之家 阅读:113 作者:星之空殇 获取数据集,并画图代码如下: import numpy as ...

  2. python怎么画人像_教你如何用Python画出心目中的自己

    原标题:教你如何用Python画出心目中的自己 引言:人脸图像的生成在各个行业有着重要应用,例如刑事调查.人物设计.教育培训等.然而一幅逼真的人脸肖像,对于职业画家也要至少数小时才能绘制出来:对于从未 ...

  3. echarts词云图形状_怎么用Python画出好看的词云图?

    相信很多人在第一眼看到下面这些图时,都会被其牛逼的视觉效应所吸引,这篇文章就教大家怎么用Python画出这种图. 前期准备 上面的这种图叫做词云图,主要用途是将文本数据中出现频率较高的关键词以可视化的 ...

  4. python画动态爱心-使用Python画出小人发射爱心的代码

    我就废话不多说了,直接上代码吧! #2.14 from turtle import * from time import sleep def go_to(x, y): up() goto(x, y) ...

  5. python编程爱心-使用Python画出小人发射爱心的代码

    我就废话不多说了,直接上代码吧! #2.14 from turtle import * from time import sleep def go_to(x, y): up() goto(x, y) ...

  6. python画曲线-利用python画出AUC曲线的实例

    以load_breast_cancer数据集为例,模型细节不重要,重点是画AUC的代码. 直接上代码: from sklearn.datasets import load_breast_cancer ...

  7. python中词云图怎样变成特殊图案_如何利用python画出一个多变的词云图?(1)...

    问题描述: 如何利用python画出一个多变的词云图? 解决方法:import numpy as np import matplotlib import matplotlib.pyplot as pl ...

  8. 频谱分析:基于python画出时域频域波形

    一,FFT解释 FFT(Fast Fourier Transformation)是离散傅氏变换(DFT)的快速算法.即为快速傅氏变换.它是根据离散傅氏变换的奇.偶.虚.实等特性,对离散傅立叶变换的算法 ...

  9. 【深度学习】通过python画出loss曲线

    通过python画出loss曲线 将训练过程中的running loss保存到文件 1.读取txt文件 2.取出相应列的数据作为绘图的x和y 3.先创建一幅图,再在这幅图上添加一个小图 4.画出整体的 ...

  10. python怎么画出圆润的曲线_利用python画出AUC曲线的实例

    以load_breast_cancer数据集为例,模型细节不重要,重点是画AUC的代码. 直接上代码: from sklearn.datasets import load_breast_cancer ...

最新文章

  1. 我的jquery之路
  2. linux 实时功能,linux – 什么是同时具有实时循环和非实时功能的更好方法
  3. jenkins没安装git报错
  4. P2580-于是他错误的点名开始了【Trie,字符串】
  5. 剑指offer题目汇总
  6. 20155327实践二
  7. 欧易OKEx交易大数据:BTC合约多空持仓人数比0.98,合约持仓总量为24.90亿美元
  8. 信息技术产业的黄金十年?听听他怎么说
  9. 华为 HR 内网 5000 字实名控诉:研发兄弟一个月加班 160 小时却被说不努力...
  10. c++自底向上算符优先分析_Python语言元素之运算符
  11. 联想如何在桌面显示计算机和网络图标,联想电脑桌面图标字体变小怎么办
  12. FLTK--轻量级C++跨平台GUI库
  13. python姿态识别_基于深度学习的人体姿态识别算法总结
  14. avaya CM查看VDN指向的技能组
  15. 三维模型格式总结整理
  16. Makefile伪目标
  17. vim/gvim 主题配色方案下载 安装修改配置
  18. Python字符串前缀u、r、b、f含义
  19. 智能抠图工具 TeoreX PhotoScissors 5.0 汉化
  20. “无法访问此网站”的一些原因

热门文章

  1. Project: cosmo ical4j
  2. 时序数据库介绍和使用
  3. 【数据分析】快速获取微博用户数据,图片,视频
  4. MTK G-sensor
  5. sqlserver导入mdf文件
  6. 使用Weka进行数据挖掘(Weka教程三)Weka数据之Instances和Instance
  7. linux系统安装firefox的flash player插件
  8. 如何在手机上查银行卡号?进来手把手教你!
  9. OpenFeign简介
  10. 软件测试——126邮箱网页注册和登陆功能测试