RDKit 不绘制 Chlorin

Posted

技术标签:

【中文标题】RDKit 不绘制 Chlorin【英文标题】:RDKit not drawing Chlorin 【发布时间】:2021-08-28 13:57:25 【问题描述】:

我正在研究 pdb 数据库中的这个分子。 https://pubchem.ncbi.nlm.nih.gov/compound/65106

当我使用 MoltoSMILES 模块时,我没有得到任何回报,或者它似乎不一致。这是我在 Jupyter Notebook 中使用的代码。我遇到的另一个问题是次要的,但我想使用 Spyder。我注意到这个数字永远不会在 Spyder 中绘制,所以我切换到了 Jupyter。无论如何,这是代码,我将展示我发现的不同的 SMILES 格式:

#%% Modules
import pandas as pd
from rdkit import Chem
from rdkit.Chem.Draw import IPythonConsole
from rdkit.Chem import Draw
from rdkit.Chem import rdDepictor
from rdkit.Chem import PandasTools
IPythonConsole.ipython_useSVG=True
from rdkit.Chem import rdRGroupDecomposition
from rdkit import RDLogger
RDLogger.DisableLog('rdApp.warning')
import rdkit
print(rdkit.__version__)
#%% Create Chlorin Scaffold

scaffold=Chem.MolFromSmiles('C1CC2=NC1=CC3=CC=C(N3)C=C4C=CC(=N4)C=C5C=CC(=C2)N5')  
scaffold

我还尝试了我在 pdb 数据库、wikipedia 中找到的其他几个 SMILES 字符串,这些字符串是我用 OpenBable 生成的。他们在这里:

C1CC2=NC1=CC3=CC=C(N3)C=C4C=CC(=N4)C=C5C=CC(=C2)N5

C(N1)(/C=C2N=C(C=C\2)/C=C3N/C(C=C\3)=C\4)=CC=C1/C=C5CCC4=N/ 5

[nH]1/c/2=C\C3=N/C(=C\c4ccc([nH]4)/C=C\4/C=CC(=N4)/C=c\1 /cc2)/C=C3

他们都没有返回正确的图纸。我不确定如何解决这个问题。 RDKit 是否对 SMILES 格式有偏好?我会提到键合和原子是正确的,但最终的形状是唯一错误的。

这是我希望看到的图像:

谢谢,

【问题讨论】:

请添加正确结构的图片,以便我们看到您希望看到的内容。 我添加了一个编辑来包含这个,它现在应该是可见的。谢谢。 【参考方案1】:

让 RDKit 计算二维坐标并使用 CoordGen 库。

from rdkit import Chem
from rdkit.Chem import rdDepictor
rdDepictor.SetPreferCoordGen(True)
from rdkit.Chem.Draw import IPythonConsole

smiles = 'C1CC2=NC1=CC3=CC=C(N3)C=C4C=CC(=N4)C=C5C=CC(=C2)N5'

scaffold = Chem.MolFromSmiles(smiles)

rdDepictor.Compute2DCoords(scaffold)

要使用 Spyder,请在执行代码后在控制台中输入 scaffold

【讨论】:

以上是关于RDKit 不绘制 Chlorin的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 pip 从 Conda 安装软件包 rdkit?

RDKit 安装教程

在 jupyter notebook 中安装 Rdkit,使用 Anaconda 环境

RDKit化学式 分子式搜索

尝试绘制波形但不绘制任何数据

如何创建一个 Spark 数据框以从 np.arrays 列表(由 RDKit 生成)提供给 sparks 随机森林实现?