让计算机识别化学分子是计算化学的必备技能,也是对分子进行各种操作的基础。

文章目录

  • 一、简介
  • 二、读分子操作
    • 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 读写分子操作相关推荐

  1. RDKit入门教程(2)——利用RDKit获取分子指纹

    基于RDKit 获取分子指纹 分子指纹(化学指纹,Chemical Fingerprinting): 将化学分子的特征利用二进制表示,如MDL公司开发的MACCSkeys指纹. MACCSkeys共有 ...

  2. python怎么读取文件-python怎么读写文件操作

    本节内容:I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一.I/O操作概述 I/O在计算机中是指Input/ ...

  3. python怎么保存文件代码_Python文件读写保存操作的实现代码

    本篇文章给大家带来的内容是关于Python文件读写保存操作的实现代码 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 记录下第一次使用Python读写文件的过程,虽然很简单,第一次实 ...

  4. [C++调试笔记]执行声明的读写文件操作

    FILE* fp_init, * fp_aver, * fp_flux_aver, * fp_ener_flux_aver, * fp_dura; FILE* fp_who[SHOWNUMB]; // ...

  5. python pickle库_Python使用Pickle库实现读写序列操作示例

    本文实例讲述了Python使用Pickle库实现读写序列操作.分享给大家供大家参考,具体如下: 简介 pickle模块实现了用于对Python对象结构进行序列化和反序列化的二进制协议."Pi ...

  6. python中数据读写_【循序渐进学Python——文件中数据的读写以及操作】

    [循序渐进学Python--文件中数据的读写以及操作] [循序渐进学Python--文件中数据的读写以及操作] [循序渐进学Python--文件中数据的读写以及操作] 相信大家都想过自己有一天,可以用 ...

  7. python怎么读写文件-python怎么读写文件操作

    本节内容:I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一.I/O操作概述 I/O在计算机中是指Input/ ...

  8. python读conf配置文件_python读写配置文件操作示例

    本文实例讲述了python读写配置文件操作.分享给大家供大家参考,具体如下: 在用编译型语言写程序的时候,很多时候用到配置文件,作为一个约定的规则,一般用 ini 文件作为配置文件,当然不是绝对的,也 ...

  9. STC15系列单片机通过串口多字节数据读写EEPROM操作

    STC15系列单片机通过串口多字节数据读写EEPROM操作

最新文章

  1. Java JDBC批处理插入数据操作
  2. 快速了解Scala技术栈
  3. C#模拟最简单的交通信号灯
  4. Linux系统中如何添加自己的库文件路径
  5. STM32系统定时器SysTick(只能向下递减)延时闪烁灯
  6. 重新解读DDD领域驱动设计(一)
  7. parted工具详解
  8. 一步一步学python爬虫_初学Python之爬虫的简单入门
  9. 帆软按钮控件变查询_如何设置finereport按钮控件的可用时间
  10. html5 原生 弹窗,HTML5 Popmotion.js实现的弹窗控件
  11. C#中常用字符串操作
  12. 获取两个数组的差 php,php-获取2个数组之间的差
  13. [2018.09.12 T1] 下落的圆盘
  14. mysql-connector-java-8.0.26-bin.jar 包含bin的jar下载
  15. 空间直角坐标系(xyz)与大地坐标系(经纬高)的转换
  16. Visual Studio Code启动时提示“Code安装似乎损坏。请重新安装。”、标题栏显示“不受支持”信息的解决办法
  17. 匿名方法和Lambda表达式
  18. 【DCANet2022】DCANet: Differential Convolution Attention Network for RGB-D Semantic Segmentation
  19. Linux原理与应用A卷广东科技,Linux操作系统应用选择题附答案(广东开放大学)...
  20. “大力神”正式由欧派接管

热门文章

  1. 全球化商家平台技术探索与演进
  2. springboot大学生时间管理分析系统毕业设计源码130930
  3. 文件名变成蓝色了怎么办?
  4. dot画图的一点实践
  5. javaFX学习之Accordion和TitledPane组件的配合使用
  6. cocos2d-iphone之魔塔20层第十一部分
  7. GDI+中发生一般性错误的解决办法
  8. 发力LPWAN 升哲打磨数智城市物联网通信之“芯”
  9. linux用yum安装QQ教程,不是程序员也能用的Linux,QQ,微信都能安装
  10. Visual Studio Code 代码不会自动提示