第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

rdkit:如何繪制高分辨率化學(xué)結(jié)構(gòu)

rdkit:如何繪制高分辨率化學(xué)結(jié)構(gòu)

慕碼人2483693 2022-11-09 17:04:32
我正在使用 jupyter 實驗室繪制化學(xué)結(jié)構(gòu)。但輸出圖像分辨率太低。我該如何改進(jìn)它?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貢獻(xiàn)1744條經(jīng)驗 獲得超4個贊

對于那些尋找具有更高分辨率分子輸出和輸出的解決方案的人。該cairosvg庫(也是命令行程序)具有文件類型的導(dǎo)出選項,包括 .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")


查看完整回答
反對 回復(fù) 2022-11-09
?
慕仙森

TA貢獻(xiàn)1827條經(jīng)驗 獲得超8個贊

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


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))


查看完整回答
反對 回復(fù) 2022-11-09
  • 2 回答
  • 0 關(guān)注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號