Click on a link below to see what it does. You can also type a command in the box below the model to see its effect. The script run in this case was load caffeine.mol.
Jmol 12.2.RC6 extends the LOAD trajectory option to vibrations. This saves memory in the case of large systems such as surfaces and crystals with hundreds or thousands of modes.
Jmol 12.2.RC6 allows writing of transparent-background images. Simply use "PNGT" instead of "PNG" for the image type, or give the image the .pngt extension. set ANTIALIASEIMAGES false to avoid a slight trim issue, and use an unusual color, such as [x010101], for the background color to ensure that only the background is turned transparent.
Jmol 12.2.RC5 adds set minPixelSelRadius, which sets the number of pixels away from a click that an atom must be within to be considered a click. The default value is 6 pixels.
Jmol 12.2.RC5 reads CRYSTAL09 property files and displays tensor quantities as ellipsoids. As for thermal ellipsoids, scaling is in percent, from 0 to 100, with a default of 50.
Jmol 12.2.RC5 adds an option to unitcell that allows for the display of a block of unit cells in 555 notation. The three components are the starting cell, the ending cell, and the scale.
Jmol 12.2.RC5 adds application (not applet) console-only commands undo and redo that do the same as the Undo/Redo buttons -- fully restore previous states.
Jmol 12.2.RC5 adds script commands undoMove and redoMove specifically when moving atoms. These commands acat like CTRL-Z and CTRL-SHIFT-Z (or CTRL-Y). The parameter n specifies the number of moves to undo or redo; 0 indicates "all"; undoMove -1 clears the undoMove history; redoMove -1 clears the redoMove history; undoMove/redoMove -2 clears both histories.
Jmol 12.2.RC4 adds a "surface tool" to allow selection and modification of surfaces (application only). Under the Tools menu, the surface tool allows the user to slice surfaces in a variety of ways.
Jmol 12.2.RC1 adds the ability to read the .kin files created by MolProbity. These files are Kinemage files that contain vector graphics in the form of points and lines representing molecular contacts as produced by the PROBE program from the David and Jane Richardson group at Duke. You can read all the dots or specific subsets using the parameters keyword to the isosurface command. The second and third parameters set the minimum value and maximum value, respectively, where the values are set for each contact type: bad overlap (-1 to -0.4), small overlap (-0.3 to -0.1), van der Waals contact (0 to 0.35), and H-bond (4). In addition, you can adjust the point size using set dotScale.
Jmol 12.1.51 adds the ability to select atoms that "clash" with a given set of atoms - that have intersecting van der Waals surfaces. You can specify what percent of VDW you want.
Jmol 12.1.51 adds a variable "picked" that can be set by the user and accumulates the atoms picked. The list is cleared by issuing set picking or a new file is loaded. This feature makes for easy editing of scenes when preparing images for publication.
Jmol 12.1.51 adds the GROUP (or GROUPS) keyword, which must be the first keyword or follow ADD or REMOVE immediately. Their function is similar to the PyMOL "byres" (by residue) keyword, expanding the selection to include entire groups. The GROUP keyword is a shortcut for within(group,...) in these contexts.
Jmol 12.1.51 adds keywords ADD and REMOVE for the SELECT, DISPLAY, and HIDE commands. These keywords are shortcuts to "select selected or" and "select selected and not" and similar commands for hide and display. They are just a convenience. Note that "display add" and "hide remove" are the same, as are "display remove" and "hide add". ADD and REMOVE must be the first keyword.
Starting with version 12.1.51, Jmol will add hydrogens to proteins along with proper multiple bonding when a protein is loaded using set pdbAddHydrogens TRUE. In fact, Jmol will add hydrogens to ALL groups, including ligands. Full functionality requires the signed applet, but basic functionality for the common amino acids and nucleic acids is available for the unsigned applet as well; it's just that ligands and any HETATM groups are not looked up during the load process. click here to load the signed applet.) Try this command first without, then with, the signed applet. If you have a relay on your server, then you can point set loadLigandFormat to your server, and then the unsigned applet would add hydrogens to ligands as well. No attempt is made to place hydrogens on oxygen atoms in the best possible location. The algorithm places all waters in the same orientation. Carboxylate groups of standard amino acids are not protonated, but LYS, HIS, and ARG residues as well as the N-terminus amino acid are protonated. HIS receives two protons, one on each N. If there are alternative locations indicated, it is suggested that you filter for a specific conformation, such as load xxxx FILTER "CONF 1". For more examples, or just to try it out yourself on any protein, go to simple.htm.
Jmol 12.1.50 will read RCSB ligand CIF files (for example, for AMU). This information is used during file loading when the set pdbAddHydrogen flag is set. A short-cut, two equal signs, allows quick checking of ligands. The signed applet is required for this functionality. The directory used for the ligand files is determined by the parameter ligandLoadFormat. By default it points to http://www.rcsb.org/pdb/files/ligand/%FILE.cif. click here to load the signed applet.
Jmol 12.1.51 adds isosurface slabbing independent of the overall slab setting, but similar to that. Turn this slabbing off with isosurface slab OFF. This allows visualization of the interacting atoms near an isosurface without complicating the issue with translucency.
Jmol 12.1.50 adds the .count and .count(x) functions. .count is equivalent to .size, but .count() produces an array of [value count] pairs. .count(x) gives the number of "x" in the array or string.
This new feature in Jmol 12.1.50 allows the creation of isosurfaces that are combinations of VDW surfaces based on a specific function. It is the basis for the new contact command in Jmol 12.1.51.
Jmol 12.1.50 allows coloring specific sections of an isosurface specific colors based on selecting atoms with specific properties. This is similar to the PyMOL command "set surface_color, (color), (selection)".
Jmol 12.1.50 adds reversible model-coordinate-based slabbing of isosurfaces. Any number of slab operations can be given after an isosurface is created. isosurface slab NONE removes the slabbing and starts again.
Jmol 12.1.50 adds a way of creating a plane based on spherical coordinates. plane(r, theta, phi) specifies the plane through a point of distance r from the origin perpendicular to the vector Rot[z,theta]Rot[x,phi]{0 0 1}. Angles are specified in degrees.
Jmol 12.1.50 adds support for displaying results of NCIPLOT "noncovalent interactions" calculations. See "Revealing Noncovalent Interactions", Erin R. Johnson, Shahar Keinan, Paula Mori-Sanchez, Julia Contreras-Garcia, Aron J. Cohen, and Weitao Yang, J. Am. Chem. Soc., 2010, 132, 6498-6506 and "NCIPLOT: A Program for Plotting Noncovalent Interaction Regions" Julia Contreras-Garcia, Erin R. Johnson, Shahar Keinan, Robin Chaudret, Jean-Philip Piquemal, David N. Beratan, and Weitao Yang, J. of Chemical Theory and Computation, 2011, 7, 625-632. For consistency with the mapping colors of these articles, the specific color scheme shown below is recommended. By itself, the calculation runs in promolecular mode. However, if the two output files from NCIPLOT are available, they can be visualized as well. See the interactive documentation for details.
Jmol 12.1.49 adds the quaternion() function, with no parameters, to give the "current molecular quaternion" -- same as quaternion(script("show rotation"))
Jmol 12.1.48 adds a new callback that indicates when the applet is ready for scripting. parameters include the applet ID, the full unique applet name, and either TRUE (ready) or FALSE (destroyed). On this page, we are sending this information to the document title. The callback is fired after any script included in the JmolApplet() call is executed.
Jmol 12.1.48 adds a new callback indicating atoms that have been moved. The two parameters are applet ID and the Java BitSet for the atoms moved. On this page, we are sending this information to the document title.
There are occasions when one might want to move atoms and have an associated isosurface move along with them. To effect this, Jmol 12.1.48 introduces the CONNECT option for isosurface. Only the first atom of the set is used for the connection, but after that if you rotate or translate the atoms, the isosurface will follow. Note that there is a caveate! Isosurfaces moved in this way may not be reproduced exactly as they were before from a saved state. This is because isosurfaces are created in the state after all atoms have been moved to new locations. If an isosurface depends upon proximity to other atoms (for example, for mapping data), then that may be different in the restored state.
Jmol 12.1.48 adds curved mechanistic arrows that originate and end at bonds and/or atoms. The command to use is DRAW ARROW. Rather than indicating a set of coordinates or atoms, add the parameters ATOM {xxx} or BOND {xxx} {xxx} twice, once for the origination of the arrow and once for the termination. The diameter of the arrow determines its exact placement, and OFFSET is also an option. DIAMETER should roughly match the wireframe setting for the model for best results.
Jmol 12.1.47 can display molecular orbitals the way the ORBITAL.EXE program displays atomic orbitals. The keyword is POINTS followed by the number of points you want and an optional random number seed to reproduce previous results.
Jmol 12.1.47 can display atomic orbitals the way the ORBITAL.EXE program (which also uses Jmol) does. The keyword is POINTS followed by the number of points you want and an optional random number seed to reproduce previous results.
Jmol 12.1.43 adds the capability to get a structure from a name in IUPAC name format (not necessarily the exactly correct name) using the NIH CACTUS server in conjunction with the OPSIN server at the University of Cambridge. (For the most part, application and signed applet only. -- to test these, click here to load the signed applet.)
Jmol 12.1.43 adds the capability to get a structure's name, InChI, or InChIKey from the NIH CACTUS server. (Application and signed applet only. -- to test these, click here to load the signed applet.)
Jmol 12.1.41 adds a simple way to iterate through a set of atoms. This little example is not particularly interesting, but it illustrates the idea at least.
Jmol 12.1.41 fixes a bug that while SpartanStudent reports EPS charges, Jmol was using Mulliken charges by default. Now charges read from SPARTAN files by default are ESPCHARGES, and one needs to apply filter "MULLIKEN" to read those charges instead.
Jmol 12.1.41 adds mass as an atom property. As for all atom properties, the function by itself calculates an average value. To calculate the total mass of a set of atoms, use xxxx.mass.sum. Isotope masses are rounded to their nominal value.
Jmol 12.1.40 allows setting a set of frame titles based on an array. Only the frames that are currently displayed are affected, and only until the array is exhausted.
Jmol 12.1.38 adds a convenient way of writing multimodel XYZ files, including vibrational frequences if present. Note that the standard write COORD XYZ filename writes a file with all selected atoms in the same model. The XYZVIB option, even if there are no vibrations, provides an alternative.
Jmol 12.1.38 adds the capability to set the maximum distance for property mapping. This speeds up calculation, but is not always appropriate (as for the case of electrostatic potential from charges). Defaults to 5.0 when isosurfacePropertySmoothing is set FALSE.
Jmol 12.1.37 allows placement of element numbers for element symbols in XYZ files. In addition, you can indicate a desired van der Waals radius in the sixth column, after the charge or "-".
Jmol 12.1.35 allows construction of any linear combination of molecular orbitals using the syntax mo [c1, mo1, c2, mo2, c3, mo3...] where the c values are coefficients and mo1, mo2,... are integers. Coefficients will automatically be normalized such that SUMi(ci*ci) = 1.00. If variables are involved, one needs @{...}. See motest.
Jmol 12.1.32 adds sort and reverse options for arrays. These operations act in place, meaning the array operated upon itself is sorted or reversed, not copied, and the function also returns that array. sort(n) sorts a two-dimensional array by the nth element. 0 indicates "last", -1 indicates "next to last."
Jmol 12.1.31 adds the XYZRN write option -- coordinates, radius, and name -- creating the input format for MSMS. It is suggested that set DEFAULTVDW BABEL is issued first.
Jmol 12.1.29 allows smooth spherical slabbing based on a distance from a point. A negative distance implies "not within" and creates a circular hole at this position. The option requires regeneration of the surface.
Jmol 12.1.27 adds the capability to read isosurfaces from MSMS output files. Both the .vert and the .face files must be in the same directory, or only dots will be generated.
Jmol 12.1.27 allows checking information about a DRAW or ISOSURFACE object such as $draw1. $draw1.length returns a point {{a b c}} where a is the index of the object in the set of DRAW/ISOSURFACE objects, b is the total number of such objects, and c is the number of vertices.
Jmol 12.1.26 adds two new file writing options. write SDF creates multi-model SDfile based on models of the selected atoms. write V3000 creates a V3000 file
Jmol 12.1.26 adds measure LIST, same as show measurements, but more similar in sytax to isosurface LIST, MO LIST, draw LIST, etc.
34. CIF file load defaults and load FILTER "MOLECULAR"
Jmol 12.1.25 changes the default for loading CIF files that have GEOM_BOND records to make it more similar to the way Mercury opens files. Such files are now loaded as full molecules based on the idea that a "molecule" is "symop=1 or connected(symop=1)". The model is displayed WITHOUT a unit cell, and no unit cell information is made available. The standard load xxx.cif {1 1 1} is still available if a unit cell is desired. In addition, one can load standard CIF files that do not contain GEOM_BOND records in "molecular" form using FILTER "molecular"
Jmol 12.1.24 adds a variation of the point() function to round a value down (toward 0) to the nearest integer (similar to JavaScript's parseInt function).
Jmol 12.1.22 adds the capability to label atoms based on the name of a set of data from the DATA command. The data name is case-sensitive, and data are read sequencially as string data, one per data line. If data are not found, Jmol looks for data of that name in the auxiliaryInfo and in that case bases the index relative to the model.
Added in Jmol 12.1.21, setting this parameter TRUE automatically sets also allowRotateSelected and dragSelected, thus allowing rotation of a selected set of atoms using ALT-LEFT drag and dragging of the set using ALT-SHIFT-LEFT drag.
Jmol 12.1.17 adds to the capability to offset an isosurface introduced in Jmol 11.9.17 the capability to rotate an isosurface about an arbitrary axis based on a quaternion. ROTATE is a display option -- like MESH, FILL, DISPLAY, OFFSET, and SCALE3D -- and thus does not require recreation of the isosurface. Subsequent rotations are cumulative, and are about {0 0 0}, not the centroid of the isosurface. isosurface ROTATE NONE returns the isosurface to its initial orientation.
Jmol 12.1.17 adds the capability to offset atoms in a file by a given amount at load time. The offset can be expressed in fractional coordinates, such as {1/2 1/2 1/2}, and although primarily intended for CIF file reading, can be applied to any file type. If a spacegroup and/or unit cell are specified, the OFFSET parameter must follow that specification.
Jmol 12.1.16 allows calling functions as though they were standard commands, without parentheses. This allows for overloading of standard Jmol commands. In that case, within the function itself, any reference to the actual Jmol command results in calling of the original command.
Jmol 12.1.15 allows setting of this parameter FALSE to revert to prior Jmol behavior and not use DSSP to calculate structure. In the case of loading structures, this calculation is only done when the PDB header does not contain HELIX/SHEET records.
Jmol 12.1.14 adds HELIX310 and HELIXPI to the list of structures that can be set using the STRUCTURE command. select helix310 and select helixPI are also available. Note that select HELIX, as previously, only selects "4-turn" aka "alpha" helices.
Jmol 12.1.14 adds an option to the string modulus (which generally gives a subset of the string). 9999 generates upper case; -9999 generates lower case.
Jmol 12.1.14 allows quick inspection of a Jmol state based on a simple line-based search of the state script. The search is not case-sensitive. If spaces are present, the phrase must be enclosed in single or double quotes.
Jmol 12.1.14 adds a full and faithful implementation of the DSSP algorithm for the determination of secondary structure of proteins described so supremely well in W. Kabsch and C. Sander, Biopolymers, vol 22, 1983, pp 2577-2637. The overall result is to be able to calculate "authentic DSSP" structure from PDB files with no header information or, if header HELIX and SHEET records are present, to override those with DSSP analysis, which includes turns, 3/10 helix, pi-helix, ladder-based (i.e. CORRECT!) sheet assignments that allow for beta-bulges, depiction of anti-parallel and parallel ladder hydrogen bonding as different colors (using COLOR HBONDS TYPE), and more.
Jmol 12.1.14 adds the ability to report a (somewhat detailed) DSSP analysis. You can report to the console or messageCallback using show DSSP, and you can log that to a file (application and signed applet) using Var x = script("show dssp");write VAR x "xxxx.txt". See, for example, 1gua-dssp-jmol.txt
Jmol 12.1.14 can calculate hbonds using the DSSP method and display specifically those hydrogen bonds that determine the DSSP turn, helix, bridge, ladder, and sheet structures.
Jmol 12.1.14 introduces the SUPERCELL load option, which allows reassigning the unit cell as any multiple of the actual unit cell. If this option is used, the final loaded symmetry is automatically set to P1, and cell parameters a, b, and c will be modified. A larger lattice can still be indicated, in which case they refer to how many supercells will be loaded. For example: load "quartz.cif" {2 2 2} supercell {5 5 1} will create a supercell that is 5x5x1 standard unit cells in size and then load a set of eight of those. A second format, SUPERCELL "axisFormula", allows creating a supercell using a linear combination of the x, y, and z vectors of the file-based unit cell. If this option is used, the final loaded symmetry is automatically set to P1, and cell parameters a, b, c, alpha, beta, and gamma will be modified. For example, load "quartz.cif" packed supercell "2x, x + 2y, z" will load a rectangular unit cell instead of the hexagonal cell indicated in the file.
PDB files often contain header information provided by the authors relating to helix, sheet, or turn locations. When this information is not present, or if you wish to override that using the calculate structure command, Jmol 12 uses DSSP to generate the secondary structure. Alternatively, you can use calculate structure RAMA to generate secondary structure based on Ramachandran angle ranges. Starting with Jmol 12.1.13, the set STRUCTURE command allows setting those Ramachandran angle ranges for helix, sheet, and turn. [phi-psi range] is a set of angles in groups of four. Each group of four numbers includes the minimum and maximum phi values followed by the minimum and maximum psi values that would be valid for this structure type. For example, set structure HELIX [-160, 0, -100, 45] sets "helix" to be defined as phi >= -160 and phi <= 0 and psi >= -100 and psi <= 45 (the Jmol default). The default setting for sheet (really just a strand, since we are not requiring cross-strand hydrogen bonding) and turn are set SHEET [-180, -10, 70, 180, -180, -45, -180, -130, 140, 180, 90, 180]; set TURN [30, 90, -15, 95]. It is recommended that this command be followed immediately with calculate structure RAMACHANDRAN;cartoons only.
Jmol 12.1.13 adds the capability to hide and display bonds without setting their radius to 0. The best way to designate bonds is with the connected function. "Raw" bond sets can also be used and are bracketed by [{...}]. This is similar to the way atom sets are designated using ({...}).
Jmol 12.1.13 documents the capability to color specific bonds using the connected function along with COLOR. This capability to target specific bonds has been in Jmol for several versions, just not documented. It largely removes any need for set bondModeOR, since it allows selecting specific bonds.
12. set multipleBondSpacing and set multipleBondRadiusFactor
Jmol 12.1.11 adds the capability to adjust the spacing of the lines in a multiple bond and also the relative widths of the cylinders in multiple bonds vs. single bonds. The spacing parameter also switches to multiple bonds in the plane of the double bond. Negative values are multiples of the Jmol 11 default, which changes with viewing angle. Positive values are in Angstroms. Zero indicates "no multiple bonds". For the factor, 0 is the default (for now) -- which means "ignore".
Jmol 12.1.10 adds the capability to set a slab based on the range of the window in Angstroms. This produces a possibly very useful effect quite similar to navigation mode.
Jmol 12.1.9 adds the atom property shape. This property displays the sigma-hybridization geometry around an atom. Atoms with only one bond are given no shape even though, technically, they could be in principle be assigned a hybridization based on the hybridization of the atom connected to them. Multiple bonding is not part of the consideration, only atom position counts. The analysis is based solely on the number and magnitude of bond angles around a center. The criteria are purposely quite loose; it is possible that some structures are ambiguous and might be assigned a geometry that is questionable.
Jmol 12.1.9 adds trigonal bipyramidal and octahedral electron configurations for lcaoCartoon. In addition, for all hybridations -- sp2 through sp3d2 -- lobes are now ordered by atom index of the attached atoms.
Jmol 12.1.6 adds two new parameters, zSlab and zDepth, which allow setting the range for "fog" -- set zShade TRUE -- rather than just assuming the values of brightest to dimmest across the slab/depth settings. When zSlab equals zDepth they are both ignored, and the fog ranges is based on the settings of slab and depth, as in previous versions. (This is the default.) In addition, slab and depth are now simple variables, so that you can inspect and change them just using Jmol math. Note that slab and depth are always left such that slab > depth.
Jmol 12.1.6 sets the load SMILES default to the NIH Cactus server. This server has an exceptionally fast SMILES-to-3D and chemical name-to-3D service. The examples below need to be run using the Jmol application or the SIGNED APPLET.
5. new color() function and getProperty shapeInfo.isosurface[n].colorKey
Jmol 12.1.5 adds the capability to check and work with color schemes, including standard Jmol color schemes such as "roygb" or "Jmol", custom color schemes such as "myScheme", the propertyColorScheme value, or -- especially -- the color scheme associated with an isosurface. The capability should make it easy to write a visual color key for any isosurface. The function has several forms that allow getting all the details or getting a specific color associated with a value. In addition, getProperty shapeInfo is expanded to include the color key for each mapped isosurface. This could be of interest for building JavaScript widgets that graphically display an isosurface color key next to or within the applet.
Jmol 12.1.4 adds a new option for isosurface that allows you to select parts of the isosurface for viewing AFTER isosurface creation. isosurface display all redisplays all points. The setting does NOT apply to contour lines.
Just a note: In this context we are checking a 3D model to see if it matches the designated SMILES string. The match will be good as long as the SMILES string matches the structure in all respects, including connections and stereochemistry. You can check only connections by prepending "/nostereo/" on to the beginning of the SMILES string.
Jmol 12.1.3 adds the capability to check both 3D models and SMILES strings for isomeric relationships -- that is, for configurational isomers, enantiomers, diastereomers, identical compounds, or conformational isomers. Conformational testing depends upon a standard deviation match and so is not available with SMILES matching. Order in the comparison is important. When comparing two SMILES strings, always show the DESIRED stereochemistry as the second parameter if you are specifically checking to see if someone has created a structure with exactly that stereochemistry. However, note that Jmol over-expresses chirality centers in some cases -- for example, although the isopropyl group, -CH(CH3)2, will get translated to -C(C)C without stereochemistry indicated, the group -CH(CH2CH3)2 will be translated to -[C@H](CC)CC despite the fact that it is not a "real" stereocenter. THIS IS INTENTIONAL. The SMILES schema is designed to be local. The algorithm should not have to follow two paths to see if somewhere along those paths the groups are different. In addition, while it is possible with drawn 2D structures to ignore stereochemistry, it is not generally possible to do the same when constructing a SMILES string from a 3D structure. Thus, the model atoms (or, less optimally) Jmol SMILES string) should always be the first parameter, not the second, if you are just answering the question, "Does this Jmol structure agree with this SMILES string.
Jmol allows setting the unit cell with the LOAD command using values for a, b, c, alpha, beta, and gamma. Jmol 12.1.3 adds to this capability by letting you specify the unit cell vectors directly. The format is rather loose -- the values themselves can be expressed as integers, decimals, points, using brackets or braces, and with or without commas. Array format brackets are recommended. If the b vector is {0 0 0}, then polymer (1D) periodicity is implied; otherwise, if the c vector is {0 0 0}, then slab (2D) periodicity is implied. Note that slab and polymer periodicity can also be indicated using the older notation as well using 0 for b and/or c