Back to OMM Exhibits

An Introduction to Jmol Surface Displays**
David Marcey
© 2016

Note: if this tutorial is helpful in the creation of your own webpages, please explicitly acknowledge your use of this page (URL, Author, date accessed, and a link to this page) in your webpage/s. And please drop an email to marcey@callutheran.edu with a link to your page/s. This helps with funding opportunities for the OMM and helps ensure continued development of this resource. Thanks!

I. Creating Surfaces

II. Mapping Properties on Surfaces
A. Common Properties
B. Molecular Electrostatic Potential

Note: surfaces require a lot of memory and are slow to load. This is especially true now that we are using JSmol and HTML5 instead of the java-based Jmol. If you get an unresponsive script, please choose continue. you may need to do this several times, depending on the script.


** For a more comprehensive treatment, see the Jmol Interactive Scripting Docs.

I. Creating Surfaces

Molecular surfaces can be calculated by Jmol, but for large molecules this can be quite CPU intensive and time consuming to do on the fly. It is therefore not prudent to do this in web pages devoted to macromolecules, unless one is interested in displaying the surface of only a small subset of residues or atoms.

One can, however, use the Jmol applet to calculate a surface for a large molecule, save the isosurface calulations in a *.jvxl file (JVoxel format), and quickly load the pre-calculated surface view (*.jvxl) using Jmol commands in a web page. One approach for doing this is outlined below, followed by a table with sample Jmol buttons and commands used to manipulate surface views.

  • To begin, open your Jmol Applet (Jmol.jar). Versions 11.2 and up are recommended for full implementation of features below. Load a molecule of choice. Open the scripting window of the applet for command entry.
  • Select the portion of your molecule you wish to display the surface of (e.g., "select nucleic" or "select ligand").
  • Use one of the 'isosurface' commands (see below) to calculate the molecular surface of the selected molecule/s.
  • Use the 'write isosurface filename.jvxl' command to save the surface in a Jvxl file (this will save into the directory of your Jmol applet).
  • Copy the Jvxl file into the directory of the web page you are building so that the path to the Jvxl file can be easily linked. An example jvxl file can be seen here.
  • Use 'isosurface "filename.jvxl" ' to load the surface.

Different types of surfaces may be specified (for more detail, see the Jmol Interactive Scripting Docs):

  • The solvent excluded surface ('isosurface solvent') is determined by rolling a probe solvent atom on the molecule at the distance of the van der Waals radii of the atoms. Radius of the spherical probe (in Angstroms) may be specified (default is 1.2). 'isosurface molecular' sets a probe radius of 1.4.
  • The solvent accessible surface ('isosurface sasurface') is a contour of the center of the probe as it is rolled on the molecule of interest. The probe radius may be specified.
  • Cavities may be depicted ('isosurface cavity').
  • Molecular Electrostatic Potential surfaces are described below.
Buttons/Effects
code for buttons =
<script language="JavaScript" type="text/javascript">
jmolRadio('Jmol scripts here', "", false );
</script>

relevant Jmol scripts in buttons

Calculate a surface (default color is gold, name of surface = dna1), color surface red, then blue, then white, then set as translucent. Rotate 360 degrees around y axis in 4 seconds.

select nucleic; isosurface dna1 solvent; delay 1; color isosurface red; delay 1; color isosurface blue; delay 1; color isosurface translucent; move 0 360 0 0 0 0 0 0 4;
Calculate two separate isosurfaces (named A and B) for the A and B chains. Color one red, the other blue. Rotate 360 degrees, then turn one of these isosurfaces off, then the other off, then display both. Finally, turn both isosurfaces off. Note: naming the isosurfaces when you create them allows for displaying and manipulating multiple isosurfaces.
select :a; isosurface A solvent; delay 1; color isosurface red; delay 1; select :b; isosurface B solvent; color isosurface blue; move 0 360 0 0 0 0 0 0 4; delay 2; isosurface A off; delay 2; isosurface A on; isosurface B off; delay 2; isosurface A on; isosurface B on; delay 2; isosurface A off; isosurface B off;
 

Display a pre-calculated surface ("dnasurface.jvxl"). Default color is gold. Note: loading a stored surface (*.jvxl) is much faster than calculating a surface (previous two buttons).

select all; wireframe 50; spacefill 100; select hetero; spacefill off; wireframe off; isosurface "dnasurface.jvxl";
Display a pre-calculated surface ("dnasurface.jvxl"). Surface is named dna2. Color surface translucent white.
load bdna2.pdb; select all; wireframe 50; spacefill 100; select hetero; spacefill off; wireframe off; isosurface dna2 "dnasurface.jvxl"; delay 1; color isosurface translucent 6.0 white;

Compare different surfaces (using precalculated *.jvxl files):

  1. solvent excluded surface (pr=1.2=default)
  2. solvent excluded surface (pr=1.4)
  3. solvent excluded surface (pr=4)
  4. solvent excluded surface (pr=0.1)
  5. solvent accessible surface
  6. cavity surfaces

Commands used to create / load *.jvxl files:

  1. select nucleic; isosurface solvent; write isosurface sedefault; / isosurface "sedefault";
  2. select nucleic; isosurface molecular; write isosurface molecular; / isosurface "molecular";
  3. select nucleic; isosurface solvent 4.0; write isosurface sefour; / isosurface "sefour";
  4. select nucleic; isosurface solvent 0.1; write isosurface sepointone; / isosurface "sepointone";
  5. select nucleic; isosurface sasurface; write isosurface sadefault; / isosurface "sadefault";
  6. select nucleic; isosurface cavity; write isosurface cadefault; / isosurface "cadefault";

Back to An Introduction to Jmol Scripting


II. Mapping Properties on Surfaces

A. Common Properties

Jmol makes it possible to map onto a surface any property for which data are available in a file being viewed. Data on the following properties is comonly found in PDB files: temperature, surfacedistance, atomno, elemno, charge.

So, for example, temperature (~mobility), stored in the B-factor column of a PDB file, can be mapped according to a graded color scheme of choice. Graded color schemes in Jmol can be found here. The most commonly used are: roygb (red -> orange -> yellow -> green -> blue); bgyor (blue -> green -> yellow -> orange -> red); rwb (red -> tints of red-pink -> white -> tints of blue -> blue); bwr (blue -> tints of blue -> white -> tints of pink-red -> red).

Buttons/Effects
code for buttons =
<script language="JavaScript" type="text/javascript">
jmolRadio('Jmol scripts here', "", false );
</script>

relevant Jmol scripts in buttons

load a new pdb, render a surface colored according to property temperature (~mobility), using the bwr colorscheme, red being most mobile ("warmest"). Render surface translucent. Rotate.

select protein; wireframe 50; spacefill 100; select hetero; spacefill off; wireframe off; delay 1; select protein; isosurface onec9s colorscheme bwr property temperature; delay 1; color isosurface translucent 5.0; move 0 360 0 0 0 0 0 0 4;

B. Molecular Electrostatic Potential

Unfortunately, PDB files do not contain the partial charge data that would allow for the calculation of Molecular Electrostatic Potential (MEP) surfaces. Fortunately, there are ways to generate these surfaces. Here, we describe one such method.

1. Generate a "PQR" file from a PDB file.

A PQR file is like a PDB except that it contains partial charge data in what was the B-factor column and contains atomic radii data. We first recommend removing waters from your PDB, either by editing the PDB file directly in a word processor (easiest! - just remember to save your edited file as text with a pdb extension and be sure to add a REMARK line saying you removed the waters), or by using any number of molecular visualization programs (e.g. Jmol, DS Visualizer {Accelerys}, PyMol, HyperChem, etc.).

To generate a PQR, you can use the PDB2PQR server, or get the GEMSTONE application and use PDB2PQR through GEMSTONE. A GEMSTONE tutorial is available. The PDB2PQR program runs a molecular dynamics (MD) simulation. Several MD force fields are available. We normally use PARSE. If you are interested, here is a tutorial on MD.

Here is a comparison of a residue in a PDB file and the corresponding residue in a generated PQR file. Note that the last two columns are now partial charge and radius data. Note also that hydrogens have been generated.

2. Render a MEP surface in Jmol and use this surface with a PDB in your web page.

  • Open your Jmol Applet (Jmol.jar). Open the scripting window of the applet for command entry. Load your generated PQR of step 1.
  • Create a MEP surface, color coded. This can use various combinations of commands (you may want to consult the Jmol Interactive Scripting Docs). An example would be 'isosurface name molecular color absolute -.5 .5 colorscheme rwb MAP mep'. You will get a message giving the data range. For example, "isosurface full data range -0.006000088 to 2.358699." In this case you would change your data range to, for example: 'isosurface name molecular color absolute -.006 2.4 colorscheme rwb MAP mep'. The calculation takes some time for large molecules. Note: MEPs are commonly displayed with a rwb color scheme gradient (red=negative, white=neutral, blue=positive).
  • Use the 'write isosurface filename' command to save the surface in a Jvxl file (this will save into the directory of your Jmol applet).
  • Copy the Jvxl file so generated into the directory of the web page you are building so that the path to the Jvxl file can be easily linked.
  • You can now load your PDB in your web page as you normally would. Use 'isosurface "filename" ' to load the MEP surface.

Here is an example. Note how the RNA (with a negatively charged oxygens in its sugar-phosphate backbone) is wrapped around the positively charged portion of the surface of this protein.

Back to An Introduction to Jmol Scripting


Note: if this tutorial is helpful in the creation of your own webpages, please explicitly acknowledge your use of this page (URL, Author, date accessed, and a link to this page) in your webpage/s. And please drop an email to marcey@callutheran.edu with a link to your page/s. This helps with funding opportunities for the OMM and helps ensure continued development of this resource. Thanks!