Greg Landrum, curator of the invaluable open source cheminformatics API, RDKit, recently blogged about viewing molecules in a 3D window within a Jupyter-hosted iPython notebook (as long as your browser supports WebGL, that is).
The trick is to use py3Dmol
. It’s easy to install:
pip install py3Dmol
This is built on the object-oriented, webGL based JavaScript library for online molecular visualization 3Dmol.js
(Rego & Koes, 2015); here's a nice summary of the
capabilities of 3Dmol.js. It's features include:
- support for pdb, sdf, mol2, xyz, and cube formats
- parallelized molecular surface computation
- sphere, stick, line, cross, cartoon, and surface styles
- atom property based selection and styling
- labels
- clickable interactivity with molecular data
- geometric shapes including spheres and arrows
I tried a simple example and it worked beautifully:
import py3Dmol view = py3Dmol.view(query='pdb:1hvr') view.setStyle({'cartoon':{'color':'spectrum'}}) view
The 3Dmol.js website summarizes how to view molecules, along with how to choose representations, how to embed it, and even how to develop with it.
References
Nicholas Rego & David Koes (2015). “3Dmol.js: molecular visualization with WebGL”.
Bioinformatics, 31 (8): 1322-1324. doi:10.1093/bioinformatics/btu829