📜  导出的 RDKit 图像中的分辨率不佳 - Python (1)

📅  最后修改于: 2023-12-03 15:25:12.679000             🧑  作者: Mango

导出的 RDKit 图像中的分辨率不佳 - Python

当我们使用RDKit创建化学分子结构的图像时,有时导出的图像分辨率可能不佳。这可能会影响我们对分子结构的可视化和解释。

在下面的代码片段中,我们将介绍如何通过使用Matplotlib库和RDKit的包装器函数来创建高分辨率的化学分子图像。

from rdkit import Chem
from rdkit.Chem import Draw
from matplotlib import pyplot as plt

# 创建含氟苯基的分子
mol = Chem.MolFromSmiles('c1ccccc1F')

# 使用RDKit中的包装器函数创建图像并设置其大小为(300,300)
img = Draw.MolToImage(mol, size=(300, 300))

# 将图像重新缩放到更高的分辨率
dpi = img.info['dpi']
fig = plt.figure(figsize=(mol.GetNumAtoms(), mol.GetNumAtoms()), dpi=dpi)
ax = fig.add_subplot(111)
ax.imshow(img)
plt.axis('off')

# 保存图像
plt.savefig('mol.png', bbox_inches='tight', dpi=dpi)

在上面的代码中,我们首先使用RDKit中的函数创建了一个C6H5F(含氟苯基)的分子对象。然后,我们使用RDKit的MolToImage函数生成这个分子的图像,并设置其大小为(300,300)。

为了提高图像的分辨率,我们获取了原始图像的dpi,并将其用于创建Matplotlib的图形对象。然后,我们通过将MolToImage输出的图像插入到Matplotlib的子图中来生成高分辨率的分子图像。最后,我们使用savefig方法将图像保存为PNG格式的文件。

在使用这种方法生成高分辨率的化学分子图像时,请务必检查是否需要调整图形的大小和分辨率,以获得所需的输出结果。