建立RDKit环境并在jupyter-notebook上显示苯


总览

当使用jupyter-notebook的chemoinfomatics中使用的python模块的RDKit时,我在这里写它是因为很难构建环境。

环境

macOS Mojave版本10.12.2

建立使用RDKit的虚拟环境

根据RDKit的官方文档,创建一个可以通过conda命令使用RDKit的虚拟环境。

1
conda create -c rdkit -n my-rdkit-env rdkit # my-rdkit-env は任意の環境名

一段时间后

1
Proceed ([y]/n)?

系统会询问您

,因此继续y。将开始安装各种模块。安装后

1
conda activate my-rdkit-env

输入

。您应该在终端行的左侧看到(my-rdkit-env)。这意味着您处于称为my-rdkit_env的虚拟环境中。您可以使用conda deactivate走出虚拟环境。

现在安装该虚拟环境所需的模块。
在这里,我们将安装经常与rdkit一起使用的pubchempy

1
pip install pubchempy

输入

python3进入python控制台。

1
2
3
>>> from rdkit import Chem
>>> Chem.MolFromSmiles('C1=CC=CC=C1') # 'C1=CC=CC=C1'はbenzeneのsmiles表記
<rdkit.Chem.rdchem.Mol object at 0x109bc6030>

如果变为

,则暂时完成虚拟环境的构建。

在jupyter-notebook中使用虚拟环境

这篇文章很容易理解,因此我将参考它。

退出python控制台

1
$ pip install environment_kernels

键入

并安装软件包以在Jupyter上切换内核。然后

1
jupyter notebook --generate-config

使用

创建jupyter配置文件。

将以下代码添加到

~/.jupyter/jupyter_notebook_config.py的最后一行。

1
2
c.NotebookApp.kernel_spec_manager_class = 'environment_kernels.EnvironmentKernelSpecManager'
c.EnvironmentKernelSpecManager.env_dirs=['C:/Program Files/Anaconda3/envs/']
1
pip install jupyter

使用

安装jupyter

1
jupyter notebook

开始jupyter-notebook。
然后,您可以选择my-rdkit-env

スクリーンショット 2019-01-28 21.27.02.png

抽苯

现在,我终于到了可以用杉杉笔记本电脑抽出苯的地步!
您可以使用以下代码制备苯。

1
2
3
4
from rdkit import Chem
from rdkit.Chem import Draw
benzene = Chem.MolFromSmiles('C1=CC=CC=C1')
Draw.MolToImage(benzene)

benzene.png

但是,显示屏有点脏...
最初,这是一种显示多个分子的方法,但是如果使用MolsToGridImage,则可以整齐地显示它。

1
Draw.MolsToGridImage([benzene])

benzene2.png

也可以使用从

pubchempy获得的信息来绘制结构式。
但是,通过pcp.get_compounds获得的是一个pubchempy.Compound类型的列表,该列表与rdkit.Chem.rdchem.Mol不同。因此,我们采用元素并将其通过微笑符号转换为rdkit.Chem.rdchem.Mol

1
2
3
4
import pubchempy as pcp
tmp = pcp.get_compounds('benzene', 'name')[0]
benzene = Chem.MolFromSmiles(tmp.isomeric_smiles)
Draw.MolsToGridImage([benzene])

benzene2.png

使用此方法,如果您具有化合物名称,则可以显示各种分子而无需以微笑符号指定。

1
2
3
tmp = pcp.get_compounds('anthracene', 'name')[0]
anthracene = Chem.MolFromSmiles(tmp.isomeric_smiles)
Draw.MolsToGridImage([anthracene])

anthracene.png

您也可以保存png文件。
但是,显示有点呆板(Chem.Draw.NolTOImage)...
您可能需要将图像保存在木星笔记本上。

1
Draw.MolToFile(benzene, 'benzene.png')

benzene.png

参考

RDKit官方文档
PubChemPy官方文档
如何在木星笔记本

中使用Anaconda创建的虚拟环境