from htmd.ui import *
Please cite HTMD: Doerr et al.(2016)JCTC,12,1845.
https://dx.doi.org/10.1021/acs.jctc.6b00049
Documentation: http://software.acellera.com/
To update: conda update htmd -c acellera -c psi4

You are on the latest HTMD version (unpackaged : /home/joao/maindisk/software/repos/Acellera/htmd/htmd).

Representations and Visualization

Molecule objects can be visualized either with VMD or with NGLview, a WebGL javascript molecule viewer that can only be used inside Jupyter Notebooks

By default, VMD is used as a viewer. If one wants to use NGLview, run the following:

from htmd.config import config
config(viewer='webgl')

On-the-fly molecule visualization and interaction

mol = Molecule('3PTB') # reloading the molecule
mol.view(gui=False)
2018-03-15 15:58:20,956 - htmd.molecule.readers - INFO - Using local copy for 3PTB: /home/joao/maindisk/software/repos/Acellera/htmd/htmd/data/pdb/3ptb.pdb
2018-03-15 15:58:21,671 - htmd.molecule.molecule - WARNING - Residue insertions were detected in the Molecule. It is recommended to renumber the residues using the Molecule.renumberResidues() method.
A Jupyter Widget

It is also possible to apply multiple representations to a Molecule as in VMD.

Representations use the same names as in VMD, even when using the NGL viewer. Important parameters are: style, color, and sel.

The “quick” or “transient” view

Use the Molecule.view method, specifying the representation as arguments. Use the hold parameter so that following Molecule.view calls can overlay. Otherwise, representations will be cleared on every call.

mol.view(sel='protein', style='NewCartoon', color='Index', hold=True)
mol.view(sel='resname BEN', style='Licorice', color=1)
A Jupyter Widget

The “explicit” way: using Molecule.reps

One directly manipulates elements in the reps property of Molecule objects, with the views being stored in that property.

mol.reps.remove()   # Clear representations
mol.reps.add(sel='protein', style='NewCartoon', color='Index')
mol.reps.add(sel='resname BEN', style='Licorice', color=1)
print(mol.reps)     # Show list of representations (equivalent to mol.reps.list())
mol.view()
rep 0: sel='protein', style='NewCartoon', color='Index'
rep 1: sel='resname BEN', style='Licorice', color='1'
A Jupyter Widget

Atom selection expressions work as in VMD

The following shows the molecule without a 6 Å thick slab in the middle (−3 Å ≤ x ≤ +3 Å):

mol.reps.remove() # in order to remove the previouly stored representationsb
mol.view(sel='x<-3 or x>3')
A Jupyter Widget

Visualizing a trajectory

Molecule provides wrapping and aligning functionality for working with MD trajectories and improving the visualization.

from htmd.home import home
from os.path import join
molTraj = Molecule(join(home(dataDir='dhfr'), 'dhfr.psf'))
molTraj.read(join(home(dataDir='dhfr'), 'dhfr.xtc'))
molTraj.view()
2018-03-15 16:01:53,699 - htmd.molecule.readers - WARNING - No time information read from /home/joao/maindisk/software/repos/Acellera/htmd/htmd/data/dhfr/dhfr.xtc. Defaulting to 0.1ns framestep.
A Jupyter Widget