为了账号安全,请及时绑定邮箱和手机立即绑定

rdkit:如何绘制高分辨率化学结构

rdkit:如何绘制高分辨率化学结构

慕码人2483693 2022-11-09 17:04:32
我正在使用 jupyter 实验室绘制化学结构。但输出图像分辨率太低。我该如何改进它?from rdkit import Chemfrom rdkit.Chem import Drawsmiles = 'C1=CC(=C(C=C1C2=C(C(=O)C3=C(C=C(C=C3O2)O)O)O)O)O'm = Chem.MolFromSmiles(smiles)Draw.MolToImage(m)
查看完整描述

2 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

对于那些寻找具有更高分辨率分子输出和输出的解决方案的人。该cairosvg库(也是命令行程序)具有文件类型的导出选项,包括 .svg、.pdf、.png、.eps ( https://cairosvg.org/ )。


from rdkit import Chem

from rdkit.Chem import Draw

from rdkit.Chem.Draw import rdMolDraw2D

import cairosvg

import io



def molecule_to_pdf(mol, file_name, width=300, height=300):

    """Save substance structure as PDF"""


    # Define full path name

    full_path = f"./figs/2Dstruct/{file_name}.pdf"


    # Render high resolution molecule

    drawer = rdMolDraw2D.MolDraw2DSVG(width, height)

    drawer.DrawMolecule(mol)

    drawer.FinishDrawing()


    # Export to pdf

    cairosvg.svg2pdf(bytestring=drawer.GetDrawingText().encode(), write_to=full_path)


# Example

m = Chem.MolFromSmiles('Cn1cnc2n(C)c(=O)n(C)c(=O)c12')

molecule_to_pdf(m, "myfav")


查看完整回答
反对 回复 2022-11-09
?
慕仙森

TA贡献1827条经验 获得超7个赞

我找到了解决方案,更多信息可以在这里找到


from rdkit import Chem

from rdkit.Chem.Draw import IPythonConsole

from rdkit.Chem import rdDepictor

from rdkit.Chem.Draw import rdMolDraw2D

from IPython.display import SVG


smiles = 'C1=CC(=C(C=C1C2=C(C(=O)C3=C(C=C(C=C3O2)O)O)O)O)O' 

m = Chem.MolFromSmiles(smiles)


def moltosvg(mol, molSize = (300,300), kekulize = True):

    mc = Chem.Mol(mol.ToBinary())

    if kekulize:

        try:

            Chem.Kekulize(mc)

        except:

            mc = Chem.Mol(mol.ToBinary())

    if not mc.GetNumConformers():

        rdDepictor.Compute2DCoords(mc)

    drawer = rdMolDraw2D.MolDraw2DSVG(molSize[0],molSize[1])

    drawer.DrawMolecule(mc)

    drawer.FinishDrawing()

    svg = drawer.GetDrawingText()

    return svg.replace('svg:','')


SVG(moltosvg(m))


查看完整回答
反对 回复 2022-11-09
  • 2 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信