RDKit中的分子3D构象生成

本文介绍了RDKit库中用于分子3D构象生成的方法,包括基于距离和基于知识的算法。首先,通过Chem.AddHs()添加氢原子,然后利用AllChem.EmbedMolecule()结合距离几何算法和ETKDG(Effective Torsion Angle Knowledge-based Generator)生成3D结构。通过示例代码展示了如何操作,最后展示生成的3D构象图像。
摘要由CSDN通过智能技术生成

一、构象生成算法概述

1.基于距离

  1. 生成分子的连接边界矩阵
  2. 对边界矩阵进行平滑处理
  3. 根据边界矩阵,随机产生一个距离矩阵。
  4. 把产生的距离矩阵映射到三维空间中,并为每个原子计算坐标。
  5. 对计算的坐标结果使用力场和边界矩阵进行粗略的优化。

2.基于知识

代码实现

>>> from rdkit import Chem
>>> from rdkit.Chem import AllChem
>>> from rdkit.Chem import Draw
>>> m = Chem.MolFromSmiles('c1ccccc1')
>>> m3d=Chem.AddHs(m)
>>> AllChem.EmbedMolecule(m3d, randomSeed=1)
>>> Draw.MolToImage(m3d, size=(250,250)

二、代码实现

1.添加氢原子

  • 加氢:Chem.AddHs()
    在rdkit中,分子在默认情况下是不显示氢的,但氢原子对于真实的几何构象计算有很大的影响,所以在计算3D构象前,需要使用Chem.AddHs()方法加上氢原子。

2.距离几何算法生成3D结构

  • 生成3D构象:AllChem.EmbedMolecule(mol, randomSeed, clearConfs, useExpTorsionAnglePrefs, useBasicKnowledge, …)
    mol:传入mol对象
    randomSeed:随机种子,方便结果重复
    clearConfs:清除已有构象,默认True
    useExpTorsionAnglePrefs和useBasicKnowledge两个参数即控制是否使用ETKDG,默认都为True

3.距离几何+ETKDG生成3D构象

代码实现

>>> AllChem.EmbedMolecule(m3d, randomSeed=10)
>>> Draw.MolToImage(m3d, size=(250,250))

查看结果
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值