pychemcurv.vis¶
The pychemcurv.vis
module implements the CurvatureViewer
class in order to visualize a molecule or a periodic structure in a jupyter
notebook and map a given properties on the atoms using a color scale.
This class needs, nglview and uses ipywidgets in a jupyter notebook to display the visualization. Run the following instructions to install nglview and achieve the configuration in order to be able to use nglview in a jupyter notebook
conda install nglview -c conda-forge
jupyter-nbextension enable nglview --py --sys-prefix
or
pip install nglview
jupyter-nbextension enable nglview --py --sys-prefix
CurvatureViewer class¶
-
class
pychemcurv.vis.
CurvatureViewer
(structure, bond_tol=0.2, rcut=2.5, bond_order=None)[source]¶ This class provides a constructor for a NGLView widget in order to visualize the wanted properties using a color scale mapped on the 3D structure of the molecule or the structure.
The class needs a pymatgen.Structure or pymatgen.Molecule object as first argument. The other arguments are used to defined if two atoms are bonded or not.
Parameters: - structure (Structure, Molecule) – A Structure or Molecule pymatgen objects
- bond_tol (float) – Tolerance used to determine if two atoms are bonded. Look at pymatgen.core.CovalentBond.is_bonded.
- rcut (float) – Cutoff distance in case the bond is not not known
- bond_order (dict) – Not yet implemented
-
get_view
(representation='ball+stick', radius=0.25, aspect_ratio=2, unitcell=False, width='700px', height='500px')[source]¶ Set up a simple NGLView widget with the ball and stick or licorice representation of the structure.
Parameters: - representation (str) – representation: ‘ball+stick’ or ‘licorice’
- radius (float) – bond (stick) radius
- aspect_ratio (float) – ratio between the balls and stick radiuses
- unitcell (bool) – If True and structure is periodic, show the unitcell.
- width (str) – width of the nglview widget, default ‘700px’
- height (str) – height of the nglview widget, default ‘500px’
Returns: Return a
NGLWidget
object
-
map_view
(prop, radius=0.25, aspect_ratio=2, unitcell=False, cm='viridis', minval=None, maxval=None, orientation='vertical', label=None, width='700px', height='500px')[source]¶ Map the given properties on a color scale on to the molecule using a ball and stick representations. The properties can be either the name of a column of the data computed using the CurvatureAnalyzer class, or, an array of values of a custum property. In the last case, the size of the array must be consistent with the number of atoms in the system.
Parameters: - prop (str or array) – name of the properties or values you want to map
- radius (float) – bond (stick) radius
- aspect_ratio (float) – ratio between the balls and stick radiuses
- unitcell (bool) – If True and structure is periodic, show the unitcell.
- cm (str) – colormap from
matplotlib.cm
. - minval (float) – minimum value to consider for the color sacle
- maxval (float) – maximum value to consider for the color sacle
- orientation (str) – orientation of the colorbar
'horizontal'
or'vertical'
- label (str) – Name of the colorbar. If None, use prop.
- width (str) – width of the nglview widget, default ‘700px’
- height (str) – height of the nglview widget, default ‘500px’
Returns: Returns an ipywidgets
HBox
orVBox
with theNGLWidget
and a color bar associated to the mapped properties. TheNGLWidget
is the first element of the children, the colorbar is the second one.