文章目录

  • 一、引入所需库
  • 二、增删H原子
    • 2.1 增加H原子函数解析
    • 2.2 增加H原子
    • 2.3 删除H原子函数解析
    • 2.4 删除H原子
  • 三、芳香共轭键和库里单双键
    • 3.1 将芳香键的类型修改为单双建的类型

一、引入所需库

#! /usr/bin/python
# coding: utf-8
# rdkit 修改分子from rdkit import Chem
from rdkit.Chem import Draw

二、增删H原子

mol = Chem.MolFromSmiles('OC1C2C1CC2')
# 画分子结构
Draw.MolToImageFile(mol,'/Users/zeoy/st/drug_development/st_rdcit/img/mol5.jpg'
)

分子结构图:

2.1 增加H原子函数解析

将氢添加到分子图上

rdkit.Chem.rdmolops.AddHs((Mol)mol   # 要修饰的分子[,(bool) explicitOnly = False # (可选)如果设置了此切换,则仅将显式Hs添加到分子中。默认值为0(添加隐式和显式Hs)。[,(bool) addCoords = False # (可选) 如果设置了此开关,则Hs将设置3D坐标。默认值为0(无3D坐标)。[,(AtomPairsParameters) onlyOnAtoms = None  # (可选)如果提供了此序列,则仅将这些原子视为具有添加的Hs[,(bool)addResidueInfo = False # (可选)如果为true,则将残基信息添加到氢原子(对PDB文件有用)。]]]]
)

2.2 增加H原子

注:3D构象优化的时候,需要采用显式H原子

mol2 = Chem.AddHs(mol)
# 画分子结构
Draw.MolToImageFile(mol2,'/Users/zeoy/st/drug_development/st_rdcit/img/mol6.jpg'
)
print('mol smiles:', Chem.MolToSmiles(mol))  # mol smiles: OC1C2CCC12
print('mol2 smiles:', Chem.MolToSmiles(mol2)) # mol2 smiles: [H]OC1([H])C2([H])C([H])([H])C([H])([H])C12[H]
print('num ATOMs in mol:', mol.GetNumAtoms()) # num ATOMs in mol: 6
print('num ATOMs in mol:', mol2.GetNumAtoms()) # num ATOMs in mol: 14

加氢后的分子结构图:

2.3 删除H原子函数解析

从分子图中除去所有氢。

rdkit.Chem.rdmolops.RemoveHs((Mol)mol  # 要修饰的分子[,(bool)implicitOnly = False # hiddenOnly :(可选)如果设置了此切换,则只会从图中删除隐式Hs。默认值为0(删除隐式和显式Hs)。[,(bool)updateExplicitCount = False  #(可选)如果设置了此切换,则将更新具有Hs的原子的显式H计数。默认值为0(不更新显式H计数)。[,(bool)sanitize = True  # (可选)如果设置了此切换开关,则去除Hs后将对分子进行消毒。缺省值为1(进行消毒)。] ] ])

笔记:
未与重原子连接的氢将不会被去除。这样可防止分子[H] [H]除去所有原子。
标记的氢(例如原子序数= 1,但同位素> 1的原子)将不会被去除。
两个坐标Hs,例如C [H-] C中的中心H,将不会被删除
连接到虚拟原子的Hs将不会被移除
属于双键立体化学定义的Hs将不会被移除
未连接到其他任何对象的HS将不会被删除

2.4 删除H原子

mol3 = Chem.RemoveHs(mol2)
print('mol3 smiles:', Chem.MolToSmiles(mol3))  # mol3 smiles: OC1C2CCC12
print('num ATOMs in mol3:', mol3.GetNumAtoms()) # num ATOMs in mol3: 6

三、芳香共轭键和库里单双键

RDKit 默认把芳香体系的键的类型识别为芳香键。

# 以苯为例
mol4 = Chem.MolFromSmiles('c1ccccc1')
# 画分子结构
Draw.MolToImageFile(mol4,'/Users/zeoy/st/drug_development/st_rdcit/img/mol7.jpg'
)


键类型

for bond in mol4.GetBonds():print(bond.GetBondType())
# AROMATIC
# AROMATIC
# AROMATIC
# AROMATIC
# AROMATIC
# AROMATIC

3.1 将芳香键的类型修改为单双建的类型

Chem.Kekulize(mol4)
# 画分子结构
Draw.MolToImageFile(mol4,'/Users/zeoy/st/drug_development/st_rdcit/img/mol8.jpg'
)

for bond in mol4.GetBonds():print(bond.GetBondType())# DOUBLE
# SINGLE
# DOUBLE
# SINGLE
# DOUBLE
# SINGLE# bond 1 is aromatic True
print('bond 1 is aromatic', mol4.GetBondWithIdx(1).GetIsAromatic())
# atom 1 is aromatic True
print('atom 1 is aromatic', mol4.GetAtomWithIdx(1).GetIsAromatic())

rdkit 修改分子相关推荐

  1. RDKit 操作分子对象

    文章目录 1 引入所需库 2 获取分子中的原子 3 获取原子的坐标信息 4 访问单个原子的信息 4.1 访问所有原子: 5 分子中的键操作 5.1 也可以通过索引获取键: 6 获取分子中所有的环 1 ...

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

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

  3. rdkit 绘制分子【可视化分子】

    rdkit 内置了Draw模块,用于绘图,把一些经常用到的方法直接放在Draw下面. 文章目录 一.引入所需库 二.分子对象转化为图片 2.1 分子对象转图片文件函数解析 2.2 分子对象转图片函数解 ...

  4. rdkit 读写分子操作

    让计算机识别化学分子是计算化学的必备技能,也是对分子进行各种操作的基础. 文章目录 一.简介 二.读分子操作 2.1 引入所需库 2.2 读入smiles 2.3 读入mol文件 2.4 读入sdf文 ...

  5. RDKit|摩根分子指纹计算、提取与可视化

    文章目录 一.摩根分子指纹计算 1.简介 2.SparseIntVects 3.ExplicitBitVects 4.FCFPs 5.更多泛化 二.摩根分子指纹提取 1.提取方法一 2.提取方法二 三 ...

  6. RDKit | 基于RDKit从分子中提取3D药效团特征

    从分子中提取3D药效团特征 导入库 import os from rdkit import Geometry from rdkit import RDConfig from rdkit.Chem im ...

  7. RDKit | 基于RDKit获取分子3D距离矩阵

    获取分子的3D距离矩阵时,使用Get3DDistanceMatrix方法. 导入库 from rdkit import Chem from rdkit.Chem import AllChem from ...

  8. RDKit | 基于RDKit输出分子结构图(Image)的方法

    RDKit内置功能绘制分子结构的函数,可根据rdkit.Chem.Draw包创建分子图像 方法一:基于SMILES输出分子2D图(2D image) 导入库 from rdkit import Che ...

  9. RDKit | 基于分子形状的比对

                                         基于分子形状的比对对于虚拟筛选和骨架跃迁都是非常有用的. 导入库 import os from rdkit import Ch ...

  10. RDKit | 基于分子指纹的相似性图

    Similarity Maps 相似性图是一种可视化原子对分子和参考分子之间相似性的贡献的方法.相似性图可用于可视化和确认相似区域. 导入库 from rdkit import Chem from r ...

最新文章

  1. 陆奇要离职?先看看百度财报吧
  2. MFC List Control 控件添加单元格编辑,实现可编辑重写
  3. IE6、IE7、IE8、Firefox兼容性CSS
  4. 戴尔win10插耳机还外放_通州附近戴尔笔记本电脑维修哪家强-北京信维佳业科技有限公司...
  5. android h5选择图片上传,js-微信H5选择多张图片预览并上传(兼容ios,安卓,已测试)...
  6. (13)ISE14.7bit文件生成mcs文件(FPGA不积跬步101)
  7. C#下载大文件并实现断点续传
  8. Java接口自动化之Maven工具使用
  9. db_cxx.h: No such file or directory
  10. 汽车方向盘电子助力转向器如何接线_案例 | 看3D打印如何助力汽车电子连接器模具冷却水路的设计优化...
  11. SQL注入漏洞 攻击
  12. 盘点开发人员都应该了解的7种JavaScript设计模式
  13. 网易云游戏王者荣耀服务器无响应,玩王者荣耀为什么不能听网易云,王者荣耀与网易云无法同时发声...
  14. mysql analyze_MySQL 案例:analyze,慢查询,与查询无响应
  15. Jxl解析Excel表格数据
  16. 华为畅享10与10s有什么区别?哪个更好
  17. JSP+JDBC案例代码(数据维护)
  18. 数字图像处理01:imadjust函数的Pyhton实现
  19. 数据结构使用c语言第5版答案,数据结构(c语言版)第五章答案.doc
  20. 寄东西怕快递丢件?往里扔个AirTag能追踪吗?

热门文章

  1. Arm中国合资公司具体布局浮出水面
  2. [人工智能]动物专家系统work
  3. cad道路里程桩号标注_CAD道路桩号自动编号插件
  4. iftables 官方文档
  5. VINS_Fusion学习01——官方教程翻译解读
  6. 一、matpower安装流程
  7. 永磁同步电机矢量控制(二)——控制原理与坐标变换推导
  8. Linux tar 打包
  9. [C++] 导入FLTK几乎所有头文件
  10. 【MySQL源码】01 MySQL源码总述