Hi Vin, If you are running the IPython console on a terminal emulator that supports graphics, you could display the molecule by printing out the necessary terminal escape codes followed by the image buffer. The solution is terminal-specific; here's an example that works using the Kitty terminal:
from base64 import standard_b64encode import io def serialize_gr_command(cmd, payload=None): cmd = ','.join('{}={}'.format(k, v) for k, v in cmd.items()) ans = [] w = ans.append w(b'\033_G'), w(cmd.encode('ascii')) if payload: w(b';') w(payload) w(b'\033\\') return b''.join(ans) def write_chunked(cmd, data): data = standard_b64encode(data) while data: chunk, data = data[:4096], data[4096:] m = 1 if data else 0 cmd['m'] = m sys.stdout.buffer.write(serialize_gr_command(cmd, chunk)) sys.stdout.flush() cmd.clear() def cat_mol(mol): img = Chem.Draw.MolToImage(mol) buf = io.BytesIO() img.save(buf, format='png') write_chunked({'a': 'T', 'f': 100}, buf.getvalue()) And then you can do something like this: [image: image.png] I'm sure the above could be adapted to work with iterm2 or other terminals that support graphics, but that's left as an exercise to the reader. An alternative I often use when graphics are not available is to render the structure as ASCII art, but that may be an acquired taste. The above would look like this: [image: image.png] I'll leave the code that does that for some other day. Best, Ivan On Tue, Sep 1, 2020 at 9:57 AM Scalfani, Vincent <vfscalf...@ua.edu> wrote: > Hello, > > Is it possible to display a molecule image directly in an IPython console > (not a Jupyter Notebook)? Or maybe I need to send the image file directly > to my image viewer? I would like to be able to quickly view the molecules > without using a Jupyter Notebook or having to save the PNGs. For example: > > In [6]: from rdkit import Chem > ...: from rdkit.Chem.Draw import IPythonConsole > ...: from rdkit.Chem import Draw > > > In [7]: m = Chem.MolFromSmiles('c1ncncc1C(=O)[O-]') > > > In [8]: m > > Out[8]: <rdkit.Chem.rdchem.Mol at 0x....> > > In [9]: Chem.Draw.MolToImage(m) > > Out[9]: <PIL.PngImagePlugin.PngImageFile image mode=RGB size=300x300 at > 0x...> > > > Thanks for your help. > > Vin > > --- > > Vincent F. Scalfani > The University of Alabama > > <vfscalf...@ua.edu> > > _______________________________________________ > Rdkit-discuss mailing list > Rdkit-discuss@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/rdkit-discuss >
_______________________________________________ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss