除了 RDKit,还有几个其他的Python库可以用来将SMILES(Simplified Molecular Input Line Entry System)字符串转换为分子图片。这些库通常用于化学信息学和分子建模领域。一些常见的选项包括:
rdkit
Open Babel
Open Babel 命令行使用 + 利用Open Babel将smiles转为image(分子图像)-CSDN博客
Pybel:
Pybel 是 Open Babel 的 Python 封装,提供了一种更Pythonic的方式来访问 Open Babel 的功能。它可以方便地处理分子和化学数据。
Indigo
Indigo 是一个化学信息学工具集,包括用于分子和反应的渲染、转换和查询等工具。Indigo 提供了Python绑定,使其可以在Python中使用。
pip install epam.indigo
官网教程:Options
给个示例:
from indigo import Indigo
from indigo.renderer import IndigoRenderer# 初始化 Indigo 对象
indigo = Indigo()
renderer = IndigoRenderer(indigo)# 定义一个 SMILES 字符串
smiles = "NC(=O)[C@]12CC3CC(C1)[C@@H](NC(=O)CN1CCCN(c4ccccc4F)S1(=O)=O)C(C3)C2"
# 将 SMILES 字符串转换为 Indigo 分子对象
molecule = indigo.loadMolecule(smiles)# 设置渲染选项
indigo.setOption("render-output-format", "png")
indigo.setOption("render-margins", 10, 10)
indigo.setOption("render-coloring", True)
indigo.setOption("render-stereo-style", "none") # 关闭手性标记# 文件名和路径
filename = "molecule.png"# 渲染并保存图像
renderer.renderToFile(molecule, filename)
print(f"Image saved to {filename}")