We're headed for 12.2, and the latest release has some very powerful features some users might be interested in. I'm still in the process of documenting these, but here is a run-down of what's new from our  summer work so far. The focus is on ligand/receptor binding visualization.

set pdbAddHydrogens

This flag, set prior to Jmol's loading of a PDB file, tells Jmol to add hydrogens to the model and also adds all the necessary multiple bonds. It's not perfect, but it's very very good. While there are other programs, of course, that add hydrogen atoms, I'm not aware of ones that also add the multiple bonding. Correct me if I'm wrong!
   One has to realize that any program adding hydrogens to HIS or OH or SH groups runs the risk of putting those hydrogens in the wrong spot. Jmol doesn't do any  in-depth analysis to place those atoms (other than to get the correct CH2 and CH3 prochirality correct, which some programs have trouble with). For HIS, Jmol adds H to both atoms (as though the HIS were protonated), and for OH and SH, the algorithm doesn't try to find hydrogen bond donors. For everything else, the placement should be very good.
   I for one am done showing my organic-level students biological models without  hydrogens or multiple bonds.

load ==XXX

Jmol will now load ligand files from RCSB in their CIF format. The flag is to use two equal signs and three characters. When Jmol is adding hydrogens using set pdbAddHydrogens it uses this method to check for stereochemistry and multiple bonding.

MolProbity/Kinemage file reading

The ISOSURFACE command of Jmol now reads the .KIN files created at http://molprobity.biochem.duke.edu, allowing you to use Jmol to display the contact dots that are generally shown in KiNG from that site. The advantages to this is that all the power of the ISOSURFACE command is at your disposal, including  reading only dots within some range of a point or set of atoms, or reading only dots of a certain type (main chain-main chain, side chain-main chain, side chain-side chain or HET), or reading only dots of a certain  value range (clash, vdw, H-bond), or displaying only some of the dots by slabbing, using  different color schemes, etc.


A new command, CONTACT, is huge. It allows a variety of methods to show contacts between ligands and receptors or between chains or between separate molecules. Some examples are at  http://chemapps.stolaf.edu/jmol/docs/examples-12/new.htm

isosurface slabbing

Jmol 12.2 has substantially improved capabilities for isosurface slabbing. You can slab an isosurface any which way, any number of times, either tranparently  or translucently, based on planes, points, or groups of atoms. it's really very very powerful.

set measurementUnits VDW

OK, this is interesting.  Rather than using angstroms or nanometers, the  measurement will be listed as % of the sum of the two atoms' van der Waals radii. We're finding this especially useful.


Jmol 12.2 allows quick display of measurements with the added filter of the requirement of the atoms being in the same or different molecules.

select within(VDW,....)

The new VDW option to select allows quick selection of atoms that are "clashing" with a specific set of atoms.

display GROUP ....

If the first parameter of select/hide/display type commands is GROUP, it means "within(group, ......)". It's just a short-cut, but we find it very handy. It's sort of along the lines of the PyMOL byres ("by residue") keyword.

display ADD/REMOVE ...
display ADD/REMOVE GROUP ...

Another handy short-cut is a more natural way of expressing how to add or remove atoms from the current selection or displayed set. "display  add" is equivalent to "display displayed or (...)", and "display remove" is equivalent to "display displayed and not(...)". Again, just a short-cut, but we have really liked having it.

PICKED variable

Jmol now collects the atoms picked into a set as you pick them. This allows simple commands like, "display add picked" or "display remove group picked." This set is cleared when you issue the command "set picking" by itself or with any additional parameters. So, for example, in the Jmol application, if you click the toolbar icon for picking, that resets this variable.


If you want to see all the properties of an atom, just use

print {xxxx}.?

or, if you want a subset, perhaps:

print {xxxx}.a?

It's an array that you can use for whatever purposes you want if you need it.

@ for "atomno="

I got tired of entering "atomno=" so often.  Now you can just use @:

print @345.xyz

is the same as

print @{{atomno=345}.xyz}


contact @34

shows that contacts to that particular atom.

getProperty ligandInfo
getProperty isosurfaceInfo

Two new getProperty options allow access to information on a web page that wasn't previously available.

zoom 0

another shortcut -- just does "zoom {visible} 0"

set VDW Jmol

the "set VDW" option allows quick changing of VDW setting to other programs' defaults. In this case it is to the PROBE program, which is used at the MolProbity site,  as per Word, et al, J. Mol. Biol. (1999) 285, 1711-1733:
      {_H}.vdw = 1.0;
      {_H and connected(_C) and not connected(within(smiles,'[a]'))}.vdw = 1.17;
      {_C}.vdw = 1.75;
      {_C and connected(3) and connected(_O)}.vdw = 1.65;
      {_N}.vdw = 1.55;
      {_O}.vdw = 1.4;
      {_P}.vdw = 1.8;
      {_S}.vdw = 1.8;


-- new (actually USEFUL) "ligand" definition  -- excludes water and urea solvents, protein, and nucleic acids.

That's pretty much the story of the last two months of my life!


Robert M. Hanson
Professor of Chemistry
St. Olaf College
1520 St. Olaf Ave.
Northfield, MN 55057
phone: 507-786-3107

If nature does not answer first what we want,
it is better to take what answer we get.

-- Josiah Willard Gibbs, Lecture XXX, Monday, February 5, 1900