rdkit 读写分子操作
让计算机识别化学分子是计算化学的必备技能,也是对分子进行各种操作的基础。
文章目录
- 一、简介
- 二、读分子操作
- 2.1 引入所需库
- 2.2 读入smiles
- 2.3 读入mol文件
- 2.4 读入sdf文件
- 三、写分子操作
- 3.1 写将分子对象存储为mol文件
一、简介
rdkit支持从Smiles、mol、sdf文件中读入分子获取分子对象。Smiles、mol通常用于保存单个分子;而sdf格式是作为分子库形式设计的。
因此读入sdf得到的是分子迭代器,读入Smiles、mol文件得到分子对象。
二、读分子操作
2.1 引入所需库
#! /usr/bin/python
# coding: utf-8
# rdkit 读写分子from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit.Chem import Draw
2.2 读入smiles
smi='CC(C)OC(=O)C(C)NP(=O)(OCC1C(C(C(O1)N2C=CC(=O)NC2=O)(C)F)O)OC3=CC=CC=C3'
mol = Chem.MolFromSmiles(smi) # 将Smiles转换为mol对象
# 将Mol分子画出结构图,并存储在相应地址
Draw.MolToImageFile(mol, # mol分子对象"/Users/zeoy/st/drug_development/st_rdcit/img/mol2.jpg" # 分子结构图存储地址
)
# mol的类型=<class 'rdkit.Chem.rdchem.Mol'>
print('mol的类型=',type(mol))
mol分子结构
2.3 读入mol文件
moL文件
# 将mol文件转换为mol对象
mol3 = Chem.MolFromMolFile('/Users/zeoy/st/drug_development/st_rdcit/952883.mol')
# 将Mol分子画出结构图,并存储在相应地址
Draw.MolToImageFile(mol3, # mol分子对象# 分子结构图存储地址"/Users/zeoy/st/drug_development/st_rdcit/img/mol3.jpg"
)
# mol3的类型=<class 'rdkit.Chem.rdchem.Mol'>
print('mol3的类型=',type(mol))
mol分子结构
2.4 读入sdf文件
mols_suppl = Chem.SDMolSupplier('/Users/zeoy/st/drug_development/st_rdcit/2d.sdf')
print('类型=',type(mols_suppl))
for _mol in mols_suppl:# mol3的类型=<class 'rdkit.Chem.rdchem.Mol'>print('类型=',type(_mol))
三、写分子操作
RDKit可以把分子对象保存成Smiles、molBlock、mol文件
3.1 写将分子对象存储为mol文件
注:
print(*objects, sep=’ ‘, end=’n’, file=sys.stdout, flush=False)
python的print函数file参数支持定义输出位置。
smi4='CC(C)OC(=O)C(C)NP(=O)(OCC1C(C(C(O1)N2C=CC(=O)NC2=O)(C)F)O)OC3=CC=CC=C3'
mol4 = Chem.MolFromSmiles(smi4)
smi4 = Chem.MolToSmiles(mol4)
print('mol分子对象=',smi4)
molblock = Chem.MolToMolBlock(mol4)
print(molblock)
print(molblock,file=open('/Users/zeoy/st/drug_development/st_rdcit/stock.mol','w+')
)
rdkit 读写分子操作相关推荐
- RDKit入门教程(2)——利用RDKit获取分子指纹
基于RDKit 获取分子指纹 分子指纹(化学指纹,Chemical Fingerprinting): 将化学分子的特征利用二进制表示,如MDL公司开发的MACCSkeys指纹. MACCSkeys共有 ...
- python怎么读取文件-python怎么读写文件操作
本节内容:I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一.I/O操作概述 I/O在计算机中是指Input/ ...
- python怎么保存文件代码_Python文件读写保存操作的实现代码
本篇文章给大家带来的内容是关于Python文件读写保存操作的实现代码 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 记录下第一次使用Python读写文件的过程,虽然很简单,第一次实 ...
- [C++调试笔记]执行声明的读写文件操作
FILE* fp_init, * fp_aver, * fp_flux_aver, * fp_ener_flux_aver, * fp_dura; FILE* fp_who[SHOWNUMB]; // ...
- python pickle库_Python使用Pickle库实现读写序列操作示例
本文实例讲述了Python使用Pickle库实现读写序列操作.分享给大家供大家参考,具体如下: 简介 pickle模块实现了用于对Python对象结构进行序列化和反序列化的二进制协议."Pi ...
- python中数据读写_【循序渐进学Python——文件中数据的读写以及操作】
[循序渐进学Python--文件中数据的读写以及操作] [循序渐进学Python--文件中数据的读写以及操作] [循序渐进学Python--文件中数据的读写以及操作] 相信大家都想过自己有一天,可以用 ...
- python怎么读写文件-python怎么读写文件操作
本节内容:I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一.I/O操作概述 I/O在计算机中是指Input/ ...
- python读conf配置文件_python读写配置文件操作示例
本文实例讲述了python读写配置文件操作.分享给大家供大家参考,具体如下: 在用编译型语言写程序的时候,很多时候用到配置文件,作为一个约定的规则,一般用 ini 文件作为配置文件,当然不是绝对的,也 ...
- STC15系列单片机通过串口多字节数据读写EEPROM操作
STC15系列单片机通过串口多字节数据读写EEPROM操作
最新文章
- Java JDBC批处理插入数据操作
- 快速了解Scala技术栈
- C#模拟最简单的交通信号灯
- Linux系统中如何添加自己的库文件路径
- STM32系统定时器SysTick(只能向下递减)延时闪烁灯
- 重新解读DDD领域驱动设计(一)
- parted工具详解
- 一步一步学python爬虫_初学Python之爬虫的简单入门
- 帆软按钮控件变查询_如何设置finereport按钮控件的可用时间
- html5 原生 弹窗,HTML5 Popmotion.js实现的弹窗控件
- C#中常用字符串操作
- 获取两个数组的差 php,php-获取2个数组之间的差
- [2018.09.12 T1] 下落的圆盘
- mysql-connector-java-8.0.26-bin.jar 包含bin的jar下载
- 空间直角坐标系(xyz)与大地坐标系(经纬高)的转换
- Visual Studio Code启动时提示“Code安装似乎损坏。请重新安装。”、标题栏显示“不受支持”信息的解决办法
- 匿名方法和Lambda表达式
- 【DCANet2022】DCANet: Differential Convolution Attention Network for RGB-D Semantic Segmentation
- Linux原理与应用A卷广东科技,Linux操作系统应用选择题附答案(广东开放大学)...
- “大力神”正式由欧派接管