File size: 1,025 Bytes
81ae663 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | """Render structures used in the overview from explicit SMILES."""
from pathlib import Path
from rdkit import Chem
from rdkit.Chem.Draw import rdMolDraw2D
import cairosvg
HERE=Path(__file__).resolve().parent
structures={
'parent_acid':'O=C(O)c1ccccc1',
'parent_amine':'Nc1ccccc1',
'parent_aminoacid':'Nc1ccc(C(=O)O)cc1',
'product':'CNC(=O)c1ccc(NC(C)=O)cc1',
}
for name,smiles in structures.items():
drawer=rdMolDraw2D.MolDraw2DSVG(420,180) if name == "product" else rdMolDraw2D.MolDraw2DSVG(240,140)
options=drawer.drawOptions()
options.useBWAtomPalette()
options.clearBackground=False
options.bondLineWidth=2
options.fixedBondLength=28
options.fixedFontSize=26 if name == "product" else 24
options.fontFile=str(HERE/'fonts/Ubuntu-Regular.ttf')
drawer.DrawMolecule(Chem.MolFromSmiles(smiles))
drawer.FinishDrawing()
svg=drawer.GetDrawingText()
(HERE/f'{name}.svg').write_text(svg)
cairosvg.svg2pdf(bytestring=svg.encode(),write_to=str(HERE/f'{name}.pdf'))
|