Rdkit|分子可视化

news2024/11/28 8:40:03

Rdkit|分子可视化

Github: 地址

单个展示

mol对象到图片:MolToImage(mol, size, kekulize, wedgeBonds, fitImage, …)
mol:mol对象
size:图片尺寸,默认(300, 300)
kekulize:是否展示kekule形式,默认True(True:芳香系统用实线表示,False:虚线表示)
wedgeBonds:是否展示楔形键,即立体构型,默认True

import pandas  as pd
from rdkit.Chem import PandasTools
from rdkit import Chem
from rdkit.Chem import Draw
from rdkit.Chem import AllChem

mol = Chem.MolFromSmiles("C[C@H](O)c1ccccc1")
image = Chem.Draw.MolToImage(mol, size=(150,150), kekulize=True, highlightBonds=[0,1])
## 保存
image.save("./data/im.png")

新窗口中展示图片

在新窗口中展示图片:ShowMol()

Draw.ShowMol(mol, size=(150,150), kekulize=False)

保存图片

保存图片MolToFile(mol, filename, size, kekulize, wedgeBonds, …)
参数基本同上

Draw.MolToFile(mol, 'data/output.png', size=(150, 150))

批量展示

从DataFrame中展示

从df中展示:FrameToGridImage(frame, column, molsPerRow, subImgSize, legendsCol, …)
frame:DataFrame对象
column:rdkit mol对象所在列
molsPerRow,:每行显示的分子数
subImgSize:图片大小
legendsCol:标题所在列

df = pd.read_csv('./data/batch.csv')
PandasTools.AddMoleculeColumnToFrame(df,'SMILES','mol',includeFingerprints=True)
PandasTools.FrameToGridImage(df, column='mol', molsPerRow=5, subImgSize=(200,200), legendsCol='Name')

从mol列表中展示

从列表生成分子结构:MolsToGridImage(mols, maxMols, molsPerRow, subImgSize, legends, …)
部分参数和上面的一致
mols:mol对象列表
maxMols:最多显示的分子数
molsPerRow,:每行显示的分子数
subImgSize:图片大小
legends:图题

mols = df.mol.tolist()
legends = df.Name.tolist()
legends = [str(l) for l in legends]
Draw.MolsToGridImage(mols, molsPerRow=2, subImgSize=(300,300), legends=legends)  

3D展示

转换3D时,为了得到靠谱的三维构象,一般先加氢:AddHs(mol)
通过距离几何算法计算3D坐标:EmbedMolecule(mol, randomSeed, …)
mol:mol对象
randomSeed:随机种子
转换完后再进行一步力场优化,比如MMFF94:MMFFOptimizeMolecule(mol)

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

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

相关文章

Apikit 自学日记:新建 API 请求

进入流程测试用例详情页,点击添加测试步骤,在下拉菜单中选择 添加API请求 ,系统会自动进入API测试步骤编辑页面,接下来你可以编辑API的请求参数、返回结果、校验规则等内容。 设置 API 测试步骤 API测试步骤设置分为以下几个部分…

react笔记_07类组件

目录 复习展开运算符 组件什么叫做组件?分类类组件es6新增构造函数语法类组件渲染类组件的this指向类组件的三大属性state作用语法-初始化数据语法-修改state数据语法-获取state中的数据案例 propspropTypes属性(prop-types库)defaultProps属性 refs[1] 字符串形式的…

搞定HashMap

搞定HashMap 1.Map是个啥? HashMap隶属于Java中集合这一块,我们知道集合这块有list,set和map,这里的HashMap就是Map的实现类,那么在Map这个大家族中还有哪些重要角色呢? 上图展示了Map的家族,…

Cernox 温度传感器碳陶瓷基体结构

Cernox 温度传感器具有高灵敏度、稳定性好、遵循单一电阻与温度曲线,磁场性能优良和耐辐射等特性。适用于低温系统中1.5-375K范围内的测量。传感器在及其严格的质量控制下制造,并在强磁场、中子伽马辐射、热循环和机械耐久条件下证明长期稳定性。与其他可…

基于springboot+mysql+jsp高校社团管理系统

基于springbootmysqljsp高校社团管理系统 一、系统介绍二、所用技术三、功能展示三、其它系统四、获取源码 一、系统介绍 管理员:登录注册、个人中心(个人信息、密码修改、注销)、近期活动(所有活动、文体类活动、学术类活动、公…

微服务学习1——微服务环境搭建

微服务学习1——微服务环境搭建 (参考黑马程序员项目) 个人仓库地址:https://gitee.com/jkangle/springboot-exercise.git 微服务就是将单体应用进一步拆分,拆成更小的服务,拆完之后怎么调用,主流的技术有…

【分布式】zabbix 6.0部署讲解

目录 一、 序章二、zabbix概念2.1 zabbix是什么?2.2 zabbix 监控原理2.3 zabbix 6.0 新特性2.4 zabbix 6.0 功能组件 三、zabbix 6.0 部署部署服务端3.1 部署 Nginx PHP 环境并测试3.1.1 安装nginx3.1.2 安装php3.1.3 修改 Nginx 配置3.1.4 修改 php 配置3.1.5 创建…

Python +selenium 自动化之元素定位

selenium之八大元素定位: 1、通过ID的方式定位 id是页面的唯一标识 例如:找到百度的搜索输入框 driver.findElement(By.id("kw")) 2、通过tagName的方式定位 用标签名定位非常少 ---一般会重复 driver.findElements(By.tagName(&qu…

Vue2 Diff 算法简易版

背景 最近复习的过程中,准备对比一下Vue2和Vue3的diff算法区别,好知道两者直接的差异和优缺点。刚好看了网上的文章,但是对方写的代码不太正确,所以特意记录一下我的学习过程~ 双端比较法 Vue2采用的双端比较法,即新…

MBD开发 STM32 Timer

开两个定时器 一快一慢 两个中断都要使能 没有自动更新,切换下timerx就好了,但是触发UP要手动勾选

剑指offer27.二叉树的镜像

这道题很简单,写了十多分钟就写出来了,一看题目就知道这道题肯定要用递归。先交换左孩子和右孩子,再用递归交换左孩子的左孩子和右孩子,交换右孩子的左孩子和右孩子,其中做一下空判断就行。以下是我的代码:…

爬虫入门指南(8): 编写天气数据爬虫程序,实现可视化分析

文章目录 前言准备工作爬取天气数据可视化分析完整代码解释说明 运行效果完结 前言 天气变化是生活中一个重要的因素,了解天气状况可以帮助我们合理安排活动和做出决策。本文介绍了如何使用Python编写一个简单的天气数据爬虫程序,通过爬取指定网站上的天…

Pandas+Pyecharts | 双十一美妆销售数据分析可视化

文章目录 🏳️‍🌈 1. 导入模块🏳️‍🌈 2. Pandas数据处理2.1 读取数据2.2 数据信息2.3 筛选有销量的数据 🏳️‍🌈 3. Pyecharts数据可视化3.1 双十一前后几天美妆订单数量3.2 双十一前后几天美妆销量3.3…

【Linux】线程终结篇:线程池以及线程池的实现

linux线程完结 文章目录 前言一、线程池的实现二、了解性知识 1.其他常见的各种锁2.读者写者问题总结 前言 什么是线程池呢? 线程池一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着…

智能、安全、高效,看移远如何助力割草机智能化升级

提到割草机,大家可能首先会想到其噪声大、费人力、安全性不足等问题。智能割草机作为一种便捷、高效的智能割草设备,能够自主完成草坪修剪工作,很好地解决传统割草机的痛点问题。 随着人们对家庭园艺以及生活质量要求的逐步提高,割…

向量数据库:新一代的数据处理工具

在我们的日常生活中,数据无处不在。从社交媒体的帖子到在线购物的交易记录,我们每天都在产生和处理大量的数据。为了有效地管理这些数据,我们需要使用数据库。数据库是存储和管理数据的工具,它们可以按照不同的方式组织和处理数据…

python实现简单贪吃蛇

import math import pygame import time import numpy as np # 此模块包含游戏所需的常量 from pygame.locals import *# 设置棋盘的长宽 BOARDWIDTH 90 BOARDHEIGHT 50 # 分数 score 0# 豆子 class Food(object):def __init__(self):self.item (4, 5)# 画出食物def _draw(…

qtav源码包编译(qt5.15+msvc2019)、使用vlc media player串流生成rtsp的url并且在qml客户端中通过qtav打开

QTAV源码包编译 下载源码 下载依赖库(里面有ffmepg等内容) https://sourceforge.net/projects/qtav/files/depends/QtAV-depends-windows-x86x64.7z/download下载源码包 https://github.com/wang-bin/QtAV更新子模块 cd QtAV && git submod…

vmware postgresql大杂烩

Vmware 窗口过界: https://blog.csdn.net/u014139753/article/details/111603882 vmware, ubuntu 安装: https://zhuanlan.zhihu.com/p/141033713 https://blog.csdn.net/weixin_41805734/article/details/120698714 centos安装: https://w…

【Go】短信内链接拉起小程序

一、 需求场景 (1) 业务方,要求给用户发送的短信内含有可以拉起我们的小程序指定位置的链接; 【XXX】尊敬的客户,您好,由于您XX,请微信XX小程序-微信授权登录-个人中心去XX,如已操作请忽略,[…