//newCmd('command','examples','flags/xrefs','description','sortorder','param1','param2','param3','param4+')
lastupdate='Nov 20, 2009'
jmolversion='Jmol Version 11.8'
newCmd('.[Jmol command s\yntax]','','*v+11.8 -- introduces multi-line free-format commands and brace syntax;math','In general, commands in Jmol start with a command word and continue with a set of parameters separated by white space and terminated by an end of line character or a semicolon. A backslash just prior to the end of a line indicates a line continuation. However, starting in Jmol 11.8, commands can "wrap" to the next line in a more JavaScript-like or Java-like fashion. In general, any unclosed (, [, or {{ on a line indicates that the command continues on to the next line. In addition, with {#.print~} and {#.set~}, lines can continue just after or before a mathematical operator such as +, -, * or /. This results in a more natural line formatting, which has strong similarities to Java and JavaScript. For example:<br /><br />function processInfo(f, i) {{<br />&nbsp;&nbsp;&nbsp;&nbsp;var pdbid = (i ? f[i] : f)<br />&nbsp;&nbsp;&nbsp;&nbsp;load @{{"="+pdbid}}<br />  <br />&nbsp;&nbsp;&nbsp;&nbsp;var molinfo = ({{protein}} == 0 ? "nonprotein"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: {{protein and not *.ca}} == 0 ? "alpha carbon model"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: {{*}}[0].model != {{*}}[1].model ? "multi-model"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: "OK")<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if (molinfo != "OK") {{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print pdbid+"\t"+molinfo; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br />&nbsp;&nbsp;&nbsp;&nbsp;}}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;var chaincount = script("select protein; show chain").trim().lines.length<br />&nbsp;&nbsp;&nbsp;&nbsp;var helixcount = script("show structure").lines.find("HELIX").length<br />&nbsp;&nbsp;&nbsp;&nbsp;var sheetcount = script("show structure").lines.find("SHEET").length<br />&nbsp;&nbsp;&nbsp;&nbsp;print pdbid+"\t"+molinfo<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+"\t"+{{*.ca}}.size<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+"\t"+chaincount<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+"\t"+helixcount<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+"\t"+sheetcount<br />}}','0|1','','')
newCmd('.[Jmol math]','','*v+11.2 -- new;math','Jmol 11.2 introduces a rich math environment including multiple variable types and a wide variety of {#.functions~}. <br /><br />Variables may be used throughout Jmol, in virtually any script command, to substitute for parameters:<br /><br /> <b>x = 0.2; wireframe @x</b> <br /><br />Variables may be combined with {#.set~"settings"} to adjust parameters: <br /><br /><b>x = bondModeOR; bondModeOr = ! bondModeOr</b> <br /><br />or<br /><br /> <b>if (showBoundBox);showBoundBox = false;endif</b><br /><br />Variables may be used to extract information from a model: <br /><br /><b>x = {{carbon}}.bonds.length.min</b><br /><br />Variables may be used to introduce atom-related property data from external files into the model: <br /><br /><b>x = load("chargeData.txt");select 2.1;data "property_charges @x";select 2.1 and property_charges < 0.5</b><br /><br />Variables may be inspected using <b>show x</b> or <b>message @x</b> where <b>x</b> is a variable name. You can use {#.message~} or {#.echo~} to transmit this information to the user or to the web page via a JavaScript {#.set(callback)~callback} function or use the Jmol.js function jmolEvaluate(). If using the Jmol Java application, you can write a variable to a file using the {#.write~} command. Starting with Jmol 11.3.17, variables and math expressions can be checked using the {#.print~} command. <br /><br />You may do math with Jmol parameters that are set, and you can create variables of your own. Some variables have preset meanings, as shown in the table below. A subset of these variables can be used in math expressions. If you create your own variables, their  names must not begin with an underscore. These expressions can include standard operators for string, floating point, integer, and boolean operations (+, -, *, /, and, or, not, and all standard comparison operators). For example:  <br /><br /><b>twoPI = 3.14159 * 2;<br />minBondDistance = minBondDistance * 0.5;</b><br /><br /> In addition, you can set variables to be the number of atoms that match an atom expression. For example: <br /><br /><b>nNC = {{_N and */1 and connected(_C)}}.size<br />nAtoms = {{*}}.size;<br />nCH = {{_H}} + {{_C}};</b>','0|1','','')
newCmd('','','*v+11.2;','Variables starting with underscore are defined by Jmol and can be used but not set in a script. These include: <br />[||<b>_animating</b>|whether or not Jmol is currently running through the frames as a result of <b>animation on</b> or <b>animation play</b> (true or false)||<b>_applet</b>|whether or not Jmol is running as an applet (Jmol 11.6)||<b>_atomHovered</b>|the overall atom index of the atom that was most recently hovered over (or -1)||<b>_atomPicked</b>|the overall atom index of the atom that was most recently picked (or -1). Can be used, for example, with <b>select atomIndex = _atomPicked</b>||<b>_currentFileNumber</b>|the number of the currently displayed file, starting with 1 (value will be 0 if more than one file is displayed) ||<b>_currentModelNumberInFile</b>|the number of the currently displayed model in its file (or 0 if more than one model is displayed) ||<b>_firstFrame</b>|The first frame in the current animation frame range expressed in x.y notation (Jmol 11.4)||<b>_height</b>|the height of the applet or application window in pixels ||<b>_lastFrame|The last frame in the current animation frame range expressed in x.y notation (Jmol 11.4)||<b>_memory</b>|the amount of memory allocated to the applet or application ||<b>_modelFile</b>|the filename of the model (or "" if more than one model is displayed)  ||<b>_modelName</b>|the name of the model (or "" if more than one model is displayed)  ||<b>_modelNumber</b>|the current model number <b>as a string</b> in file.model notation (or "file1.model1 - file2.model2" if more than one model is currently displayed)  ||<b>_modelTitle</b>|information from the file reader interpreted as a title||<b>_pickInfo</b>|information about the last atom picked, including a description of the atom, its atom number, and its x y z coordinates. For example: <br /><b>[GLN]25:A.O/2.1 #175 40.271 8.524 2.615</b> ||<b>_signedApplet</b>|whether or not Jmol is running as an signed applet (Jmol 11.6)||<b>_spinning</b>|whether or not the model is currently spinning (true or false). The _spinning variable can be used, for example, to toggle spinning on and off: <br /><b>if (_spinning);spin off;else;spin on;endif;</b> ||<b>_version</b>|the version of Jmol expressed as an integer: vvrrxxx for Jmol vv.rr.xxx. For example, for Jmol 11.1.38, _version = 1101038||<b>_width</b>|the width of the applet or application window in pixels ||]','TEXT','Read-Only Variables','')
newCmd('','','*v+11.4;','Jmol math allows for several distinct variable types, some of which are common types (boolean, integer, decimal, string), and some of which are special types of particular use in molecular calculations (point, plane, quaternion, atom bitset, bond bitset). Array types may include any number of any combination of these eight basic types. Examples include: <br /><br />[||array| xlist = array(true,3,3.5,"testing",{{2.3,3.4,4.5}});<br />xlist = [true,3,3.5,"testing",{{2.3,3.4,4.5}}]<br /><br />Arrays may contain a mix of any variable type. However, when they are stored internally, each element of an array is a simple text string. Arrays within arrays are stored as text strings with new-line characters between elements. The square bracket format is available starting with Jmol 11.8.||atom bitset| x = {{atomno < 30}};<br /> x = ({{0:28}})||bond bitset| x = {{atomno < 30}}.bonds;<br /> x = [{{0:4,6,9:12}}]|| boolean |isOK = TRUE; if(isOK);print "all is good";end if;||decimal|x = {{atomno < 10}}.x * 10.0; || integer| for(var i = 1; i < 10; i = i + 1); print i;end for;||point | pt = {{3.2,3.3,3.4}};|| plane | xyPlane = {{0 0 1 0}};<br /><br /> Planes are defined as {{a b c d}}, where the equation of the plane is <b>ax + by + cz + d = 0</b>.|| quaternion | q = quaternion({{1 0 0}}, 30);<br /> q = {{0.25881904 0.0 0.0 0.9659258}};<br /><br />Quaternion math was introduced in Jmol 11.5.43. All quaternions in Jmol are <b>unit</b> quaternions. This means that they represent rotations and can be used to rotate points around the origin (see the % operator, below). Note that quaternions are saved internally in the same format as planes, as single-precision floating point four-element vectors, with parameter order {{x y z w}} or {{q1 q2 q3 q0}}. Ordering the parameters in this way is consistent with {http://java.sun.com/javase/technologies/desktop/java3d/forDevelopers/J3D_1_3_API/j3dapi/javax/vecmath/Quat4f.html~Java Quat4f} format and allows both quaternions and planes to contain axis information in the first three parameters. The common storage format for planes and quaternions works because typical quaternion operations are not common to operations involving planes.||string| myLabel = "this is a test"; <br /><br />Starting in Jmol 11.7.45, strings may be enclosed in either single or double quotes.||]<br /><br />Variable types may be combined in mathematical expressions. In general, expressions are evaluated from left to right using standard operator precedence (*,/,\\ before +/-; +/- before AND/OR/NOT). ','TEXT','Jmol Math Variable Types','')
newCmd('','','*v+11.4;','Since Jmol math does not include strict typecasting, it uses a relatively complex set of rules to determine the result of operations on mixed variable types. When two different variables are operated upon, the resulting variable type depends upon the operator used, the order of the variables, and sometimes the value of the variables. See {misc/operations.txt~misc/operations.txt} for details. In general, when conversion is required for a string, point, plane, bitset, or array, Jmol will attempt to convert it to a variable type compatible with the left-hand operand prior to operating. These conversions generally involve:<br />[||string            |to boolean|The strings "FALSE", "0", and decimal strings such as "0E1" and "0.0" that equal 0 are converted to FALSE; all other strings are converted to TRUE.||string|to integer|A string evaluating to an integer is converted to that integer; all other strings are converted to 0.||string|to decimal|A string evaluating to a number is converted to that number; all other strings are converted to the decimal value "not a number", or "NaN".||string|to other|Jmol saves all states as simple strings, so certain character sequences are automatically turned back into other variable types when operated upon. Jmol automatically converts:<br/>[||{{x y z}}| to a point ||{{x y z w}}| to a plane or quaternion||({{i j k l:m ... }})| to an atom bitset ||[{{i j k l:m ... }}]| to a bond bitset||]||point|to integer|The distance from the point to {{0 0 0}} rounded DOWN to the nearest integer. Note that this allows rounding a positive decimal number x down to the nearest integer (a "floor" operation) using <b>0 + {{x 0 0}}</b>.||point|to decimal|The distance from the point to {{0 0 0}}; same as x.distance({{0 0 0}})||plane|to integer|The distance from the plane to {{0 0 0}} rounded DOWN to the nearest integer||plane|to decimal|The distance from the plane to {{0 0 0}}; same as x.distance({{0 0 0}})||quaternion|to decimal|cotangent(abs(theta)/2), where theta is the angle of the rotation associated with this quaternion ||bitset|to decimal or integer|The number of selected atoms or bonds in the bitset; same as x.size||array|to decimal or integer|The number of elements in the array; same as x.size||]','TEXT','Operators and Operands','')
newCmd('','','*v+11.4;','Rules for operations with the given types include:<br />[||             <br />+|addition|a + b produces a decimal number EXCEPT:<br />[||array + b|array|b added to end of a ||a + array|array|b added to beginning of a ||integer + b|integer| unless b is a decimal or an array ||x + plane or quaternion|varies|{{x y z}} are extracted from the plane or quaternion and then added to x ||quaternion + (decimal)x|quaternion| addition of x to the angle of rotation associated with this quaternion||string + b|string| unless b is an array ||point + b|point| unless b is an array||]||                                                            <br />                  -|subtraction|a - b produces a decimal number EXCEPT:<br />[||integer - b|integer| unless b is a decimal ||x - plane or quaternion|varies|{{x y z}} are extracted from the plane or quaternion and then subtracted from x ||quaternion - (decimal)x|quaternion| subtraction of x to the angle of rotation associated with this quaternion||string - integer|integer| string a is converted to integer, then b is subracted ||point - b|point| subtraction of {{b b b}} from point a||]||                         <br />*|multiplication|a * b produces a decimal number EXCEPT:<br />[||integer * b|integer | unless b is a decimal ||point * b|point | unless b is a point (dot product, producing a decimal)||quaternion * quaternion|quaternion|quaternion multiplication q2 * q1 results in a composite rotation resulting from first rotating by q1, then by q2.||quaternion * (decimal)x|quaternion| multiplication of the angle associated with this quaternion by x ||]||                  <br />                       /|division|a / b produces a decimal number EXCEPT:<br />[||integer / integer|integer ||point / b|point| if b is a point, then a is scaled by the magnitude of b; thus <b>a/a</b> when a is a point produces a normalized vector in the direction from {{0 0 0}} to point a||quaternion / (decimal)x| quaternion| division of the angle associated with this quaternion by x ||quaternion / quaternion|quaternion| q2 / q1 = q2 * q1<sup>-1</sup> (absolute difference in rotation, in the molecular frame)||]||                  <br />                       \\|left division|a \\ b produces integer division EXCEPT:<br />[||quaternion \\ quaternion|quaternion| q1 \\ q2 = q1<sup>-1</sup> * q2 (relative difference in rotation, in the q1 frame)||]||                     <br />                  %|modulus|a % b is fully defined only for integer b and produces an integer EXCEPT:<br />[||decimal % 0|integer | decimal a rounded to nearest integer, with n.5 rounding to (n + 1) and -n.5 rounding to -(n + 1)||decimal % b|string | decimal a rounded to b digits after the decimal point when b > 0; decimal a rounded to b significant digits in scientific notation when b < 0||quaternion % 0|decimal|extract q0||quaternion % 1|decimal|extract q1||quaternion % 2|decimal|extract q2||quaternion % 3|decimal|extract q3||quaternion % -1|point|extract the rotational axis ({{q1 q2 q3}} or {{x y z}}) as a point (vector from {{0 0 0}})||quaternion % -2|decimal|extract the angle in degrees for the rotation associated with this quaternion||quaternion % -3|point|extract the first column of the rotation matrix associated with this quaternion (what {{1 0 0}} is transformed to)||quaternion % -4|point|extract the second column of the rotation matrix associated with this quaternion (what {{0 1 0}} is transformed to)||quaternion % -5|point|extract the third column of the rotation matrix associated with this quaternion (what {{0 0 1}} is transformed to)||quaternion % {{x y z}}|point|transform {{x y z}} by the rotation associated with this quaternion||string % b|string| when b > 0, right-justified in a field b characters wide; when b < 0, left-justified in a field b characters wide; no effect when b = 0||point % b|point|generates the unitcell coordinate corresponding to the point, offset from {{0 0 0}} by {{b/1 b/1 b/1}}. ||bitset % b|bitset|a truncated to first b items; same as a[1][b]||array % b|array|each element treated as a string and justified individually||]||                           <br />&amp;&amp;&nbsp;&brvbar;&brvbar;&nbsp;! |AND/OR/NOT|In Jmol the following are equivalent: [|| AND | &amp; | &amp;&amp;||OR | &brvbar;&brvbar;| &brvbar;||NOT | &nbsp;!&nbsp;||] <br />a AND/OR b as well as NOT b produce a boolean unless both a and b are bitsets, in which case the result is a bitset, or when using !a and a is a quaternion:<br />[||bitset AND bitset|bitset| the intersection of the two bitsets ||bitset OR bitset|bitset| including all selections from both bitsets ||NOT bitset|bitest|the inverse of the bitset, based on the total atom count for an atom bitset or the total bond count for a bond bitset||!q|quaternion|quaternion inverse, {{-x -y -z w}}||]||                         <br />==&nbsp;&nbsp;!=|equal/not equal |== (or just "=") and != generally convert values to decimal values and then test these values are within 1E-6 of each other. The following cases are exceptions (Jmol 11.5.45): <br />[||point == point| true if the distance between the points is less than 1E-6. ||plane == plane </ br>quaternion == quaternion| true if the four-vector distance between the quaternions or planes is less than 1E-6. ||]||]','TEXT','Operation Rules','')
newCmd('.[Jmol parameters]','','*v+11.2 -- new;math','Many parameters in Jmol can be {#.set~}, and in Jmol 11.2 and 11.4 many (but not all) may also be checked using Jmol math. ','0|1','','')
newCmd('','','*v+11.2;','TABLE1','TEXT','Jmol Math Parameters','')
newCmd('','','*v+11.2;','TABLE2','TEXT','Set-Only Parameters','')
newCmd('','','*v+11.2;','TABLE3','TEXT','Deprecated Parameters','')
newCmd('','','*v+11.2;','TABLE4','TEXT','Reserved Names','')
newCmd('.[using the clipboard]','','*v+11.0 -- new;clip','Model data that has been clipped from local sources, such as a return from {http://www.rcsb.org/pdb/files/1crn.pdb~the RCSB PDB file directory}, can be loaded into Jmol directly. From the application, simply use Edit…Paste; if using the applet, simply right-click on the applet and select Show...Console. Then paste the data into the lower (input) frame and click <b>Load</b>.','1|2','','')

newCmd('.animation','','*v+11.0 -- adds greatly expanded frame animation control;anim','Sets selected animation parameters or turns animation on or off. Note that there are four distinct animation types that can be employed using Jmol: (1) files may contain multiple structures that are "played" sequencially, (2) models may contain vibrational modes that can be animated, (3) certain Jmol script commands (namely {#.move~}, {#.moveTo~}, {#.navigate~}, {#.restore~restore ORIENTATION} and {#.zoomTo~}), can create the illusion of motion over a period of time, and (4) Jmol scripts can be run through in a predefined way, involving {#.loop~} and {#.delay~}. The "animation" command only refers to method (1).  See also {#.set(misc)~set backgroundModel}.','1|2|4','','')
newCmd('','','*v+11.0;','Turns on or off animation. With <b>animation ON</b>, the {#.frame~} range is also reset to all frames. (An implicit <b>frame range ALL</b> command is executed. This functionality is for backward compatibility with Chime.) If this resetting is not desired because the frame range has been set, then <b>frame PLAY</b> or <b>frame PLAYREV</b> should be used instead of <b>animation ON</b>.','*10','._on_off{"ON"}','')
newCmd('','','*v+11.0;','Sets the animation direction to be from last frame to first frame.','*20','.direction','-1')
newCmd('','','*v+11.0;','Sets the animation direction to be first frame to last frame.','*30','','+1')
newCmd('','','*v+11.0;','Sets the animation frames per second.','*40','.fps','._anim_fps')
newCmd('','','*v+11.0;','<b>animation frame</b>, <b>frame</b>, and <b>model</b> are synonymous. See options at the {#frame~} command. ','*50','.frame','')
newCmd('','','*v+11.0;','Sets the animation mode to restart the sequence automatically when the last frame has played.','*90','.mode','LOOP')
newCmd('','','*v+11.0;','Allows for a time delay at the start and end of the loop.','*91','','LOOP','._time_delay1','._time_delay2')
newCmd('','','*v+11.0;','Sets the animation to play once through and then stop (the default mode).','*92','','ONCE')
newCmd('','','*v+11.0;','Sets the animation to play forward and back endlessly.','*93','','PALINDROME')
newCmd('','','*v+11.0;','Allows for a time delay at the start and end of the palindrome.','*94','','PALINDROME','._time_delay1','._time_delay2')















newCmd('.[atom expressions]','','*v+11.0 adds cell, hidden, site, surfacedistance, symop, and symmetry -- also support for D (deuterium), T (tritium), and _Xx;*v-11.8;atoms','An increasing number of commands, including {#.center~}, {#.connect~}, {#.define~}, {#.dipole~}, {#.display~}, {#.draw~}, {#.hide~}, {#.isosurface~}, {#.measure~}, {#.polyhedra~}, {#.restrict~}, and {#.select~} take for parameters one or more expressions that represent collections of atoms in one or more models. All terms can be preceeded by the keyword NOT and joined by AND, OR, or XOR. [||general terms|all, bonded, clickable, none, selected, visible||subset|the currently defined {#.subset~}. Note that if a subset is currently defined, then <b>select/display all</b> is the same as <b>select/display subset</b>, <b>restrict none</b> is the same as <b>restrict not subset</b>. In addition, <b>select not subset</b> selects nothing. ||chemical elements|element_name (including "deuterium and tritium"), _Xx (an element symbol preceeded by underscore, possibly with isotope number listed, such as _Cu, _Fe, _2H, _31P)||non-protein groups|carbohydrate, dna, hetero, ions (specifically the PDB designations "PO4" and "SO4"), ligand (hetero and not solvent), nucleic, purine, pyrimidine, rna, sidechain||protein residues|[||acidic|ASP, GLU||acyclic| amino and not cyclic||aliphatic|ALA GLY ILE LEU VAL||amino|all twenty standard amino acids, plus ASX, GLX, UNK||aromatic|HIS PHE TRP TYR||basic|ARG, HIS, LYS||buried| ALA CYS ILE LEU MET PHE TRP VAL||charged|acidic or basic||cyclic|HIS PHE PRO TRP TYR||helix|secondary structure-related||hetero|PDB atoms designated as HETATM||hydrophobic| ALA GLY ILE LEU MET PHE PRO TRP TYR VAL||large |ARG GLU GLN HIS ILE LEU LYS MET PHE TRP TYR||medium|ASN ASP CYS PRO THR VAL||negative|acidic||neutral| amino and not (acidic or basic)||polar| amino and not hydrophobic||positive|basic||protein| defined as a group that contains PDB atom designations C, N, and CA||sheet|secondary structure-related||small|ALA GLY SER||surface| amino and not buried||turn|secondary structure-related||]||protein-related|alpha, backbone, base, mainchain, sidechain (backbone and mainchain are synonymous)||solvent-related|solvent, PDB "HOH", water, also the connected set of H-O-H in any model||]<br/>The comparison operators &lt;, &lt;=, =, &gt;, &gt;=, and != operate with the following keywords: [|| ATOMNO |sequential 1 - # of atoms||CELL=abc<br/>CELL={{i j k}}|Indicates a specific unit cell either in lattice integer notation (111-999) or as a coordinate in ijk space, where {{1 1 1}} is the same as 555. ANDing two cells, for example <b>cell=555 and cell=556</b> selects the atoms on the common face. (Note: in the specifc case of CELL, only "=" is allowed as a comparator.)||ELEMNO |atomic number of the element||FORMALCHARGE|The formal charge on the atom (which may be {#.set (misc)~set})||MODEL|model (frame) number||MOLECULE|covalently bonded set||OCCUPANCY|PDB site occupancy between 0 and 1; decimal number = PDB file columns 55-60; integer = this number as a percentage from 0 to 100||PARTIALCHARGE|The partial charge on the atom, for applicable file types||POLYMERLENGTH |number of residues|| RADIUS |currently DISPLAYED radius; decimal number = Angstroms; integer = RasMol units (Angstroms * 250)||RESNO |residue number||SITE|crystallographic site||SURFACEDISTANCE|a value related to the distance of an atom to the molecular surface. 0 indicates at the surface. Positive numbers are minimum distances in Angstroms from the given atom to the nearest surface atom.||SYMOP=n|crystallographic symmetry operator that generated this atom; an integer starting with 1. This operator is only present if the file contains space group information and the file was loaded using the {{i, j, k}} option so as to generate symmetry-based atoms. To select only the original atoms prior to application of symmetry, you can either use "SYMOP=n", where n is the symmetry operator corresponding to "x,y,z", or you can specify instead simply "NOT symmetry" the way you might specify "NOT hydrogen". Note that atoms in special positions will have multiple operator matches. These atoms can be selected using the keyword SPECIALPOSITION.  ||SYMOP=nijk|selects a specific translation of atoms from the given crystallographic symmetry operation. Comparators  &lt;, &lt;=, >, >=, and != can be used and only apply to the ijk part of the designation. The ijk are relative, not absolute. Thus, symop=n555 selects for atoms that have been transformed by symop=n but not subjected to any further translation. All other ijk are relative to these selections for 555. If the model was loaded using <b>load "filename.cif" {{444 666 1}}</b>, where the 1 indicates that all symmetry-generated atoms are to be packed within cell 555 and then translated to fill the other 26 specified cells, then <b>select symop=3555</b> is nearly the same as <b>select symop=3 and cell=555</b>. (The difference being that cell=555 selects for all atoms that are on any edge of the cell, while symop=3555 does not.) However, the situation is different if instead the model was loaded using <b>load "filename.cif" {{444 666 0}}</b>, where the 0 indicates that symmetry-generated atoms are to be placed exactly where their symmetry operator would put them (x,-y,z being different then from x, 1-y, z). In that case, <b>select symop=3555</b>  is for all atoms that have been generated using symmetry operation 3 but have not had any additional translations applied to the x,y,z expression found in the CIF file. If, for example, symmetry operation 3 is -x,-y,-z, then <b>load "filename.cif" {{444 666 0}}</b> will place an atom originally at {{1/2, 1/2, 1/2}} at positions {{-1/2, -1/2, -1/2}} (symop=3555) and {{-3/2, -3/2, -3/2}} (symop=3444) and 24 other sites. || TEMPERATURE |PDB temperature factor; PDB file columns 61-66||]','0','','')
newCmd('.[atom expressions]','','*v+11.8;atoms;math;prop','An increasing number of commands, including {#.center~}, {#.connect~}, {#.define~}, {#.dipole~}, {#.display~}, {#.draw~}, {#.isosurface~}, {#.measure~}, {#.polyhedra~}, {#.restrict~}, and {#.select~} take for parameters one or more expressions that represent collections of atoms in one or more models. All terms can be preceeded by the keyword NOT and joined by AND, OR, or XOR. [||general terms|all, bonded, clickable, none, selected, visible||file.model|as, for example, <b>select 3.2</b>, a specific model in a specific file. Note that <b>select 3.0</b> selects all atoms in all models of the third file of the most recent {#.load~}. ||subset|the currently defined {#.subset~}. Note that if a subset is currently defined, then <b>select/display all</b> is the same as <b>select/display subset</b>, <b>restrict none</b> is the same as <b>restrict not subset</b>. In addition, <b>select not subset</b> selects nothing. ||unitcell|atoms within the current {#.unitcell~}, which may be offset. This includes atoms on the faces and at the vertices of the unitcell. ||chemical elements|element_name (including "deuterium and tritium"), _Xx (an element symbol preceeded by underscore, possibly with isotope number listed, such as _Cu, _Fe, _2H, _31P)||isaromatic|atoms connected with the AROMATIC, AROMATICSINGLE, or AROMATICDOUBLE bond types (Jmol 11.3.29)||non-protein groups|carbohydrate, dna, hetero, ions (specifically the PDB designations "PO4" and "SO4"), ligand (hetero and not solvent), nucleic, purine, pyrimidine, rna, sidechain||protein residues|[||acidic|ASP, GLU||acyclic| amino and not cyclic||aliphatic|ALA GLY ILE LEU VAL||amino|all twenty standard amino acids, plus ASX, GLX, UNK||aromatic|HIS PHE TRP TYR (see also "isaromatic" for aromatic bonds)||basic|ARG, HIS, LYS||buried| ALA CYS ILE LEU MET PHE TRP VAL||charged|acidic or basic||cyclic|HIS PHE PRO TRP TYR||helix|secondary structure-related||hetero|PDB atoms designated as HETATM||hydrophobic| ALA GLY ILE LEU MET PHE PRO TRP TYR VAL||large |ARG GLU GLN HIS ILE LEU LYS MET PHE TRP TYR||medium|ASN ASP CYS PRO THR VAL||negative|acidic||neutral| amino and not (acidic or basic)||polar| amino and not hydrophobic||positive|basic||protein| defined as a group that contains PDB atom designations C, N, and CA||sheet|secondary structure-related||small|ALA GLY SER||surface| amino and not buried||turn|secondary structure-related||]||protein-related|alpha, backbone, base, mainchain, sidechain (backbone and mainchain are synonymous)||solvent-related|solvent, PDB "HOH", water, also the connected set of H-O-H in any model||]<br/>The comparison operators &lt;, &lt;=, =, &gt;, &gt;=, and != operate with may keywords. These are summarized under {#.atomproperties|atom properties}.','0','','')
newCmd('','','*v+11.2;','An atom expression is simply a list of atoms. Starting with Jmol 11.2 you can select a single atom or a range of atoms from an atom expression. The way to do this is simply to suround the atom expression with parentheses and follow it with one or two numbers in brackets: <b>select (carbon)[3][5]</b>.This says, "Select the third through fifth carbon atoms." If the second selector is not present, then only a single atom is selected; the selector [0] indicates the last atom in the set, and negative numbers count back from that atom. Thus, <b>select (*)[0]</b> selects the last atom, and <b>select (carbon and 2.3)[-1][0]</b> selects the last two carbon atoms in model 2.3. Atom selectors can be used for any expression embedded in another command. In that case an additional set of parentheses or braces is required around the whole expression: <b>measure {{(_O)[1]}}  {{(_O)[2]}}</b>.','TEXT','Atom selectors','')
newCmd('','','*v+11.0;','The following functions are also supported:[||CONNECTED()| allows for selection of specific atoms based on their connectivity to other atoms. The general format is: <b>connected([optional min # bonds], [optional max # bonds], [optional bond type], [optional atom expression])</b> Bond type may be any described for {#.connect~}. See {misc/groups.txt~groups.txt} for many examples of using connected() with {#.define~} || SUBSTRUCTURE()| atoms within a given substructure of the model. The <b>substructure()</b> function takes a quoted {http://www.daylight.com/smiles~smiles string} for its argument.||WITHIN(setName,atomExpression)|any atom within a given set. The setName can be any one of the words <b>BOUNDBOX</b>, <b>CHAIN</b>, <b>ELEMENT</b>, <b>GROUP</b>, <b>MODEL</b>, <b>MOLECULE</b>,  <b>SITE</b>, or <b>STRUCTURE</b>, or it can be a protein or nucleic acid sequence expressed in single-letter notation surrounded by quotation marks as, for example, "GGCCCTT" or "MAACYXV" (in which case the sequence is found within the expression).  (SITE refers to all crystallographic sites common to the specified atom set; BOUNDBOX refers to the smallest box containing the atom set.)||WITHIN(distance, withinAllModels, atomExpression)|any atom within the specified distance of any atom in the atomExpression. The optional TRUE/FALSE flag withinAllModels (by default FALSE) may be set TRUE to allow finding atoms in one model that may be within some distance of another model. (Jmol 11.3.24) Starting with Jmol 11.7.37, if the distance is negative, then the operation applies to all atoms having normalize unit cell coordinates within -distance of the designated atoms.|| WITHIN(distance, {{x y z}})|(New in Jmol 11.1.12) any atom within the specified distance of the given fractional or Cartesian coordinate.  Starting with Jmol 11.7.37, if the distance is negative, then the operation applies to all atoms having normalize unit cell coordinates within -distance of the designated atoms.||WITHIN(0,planeType, planeDesignation)| selects for any atoms within 0.01 Angstroms of a plane. If planeType is HKL, then planeDesignation is in the form {{h k l}}, where h, k, and l are Miller indices. If planeType is PLANE, then planeDesignation should be of the form @{{plane(a,b,c)}}, where a, b, and c are atom expressions or coordinates. ||WITHIN(distance,planeType, planeDesignation)|selects for atoms within the given distance in Angstroms from the plane. Positive distances are on one side; negative distances are on the other side. Experimentation may be necessary to determine which side is which for these purposes. In all cases the atoms in the plane itself (within 0.01 Angstroms of the plane on either side) are included. ||WITHIN(ATOMNAME,"aa,bb,ccc")|any atom having a listed atom name (Jmol 11.7.8)||WITHIN(ATOMTYPE, "atomType,atomType,..."| selects for atoms of one or more atom type. Atom type is defined in certain file types, including MOL2 model files and AMBER topology files. For other file types, atom types are the same as atom names. For example, <b>select within(ATOMTYPE,"HW,OW")</b> selects all water atoms an AMBER topology file. (Jmol 11.7.8)||WITHIN(BOUNDBOX)|(Jmol 11.3.62) selects all atoms within the currently defined {#.boundbox~}||WITHIN(BRANCH,{{first atom}}, {{second atom}})| selects the second atom and all atoms in the molecular branch starting with the second atom but not including the first atom. (Jmol 11.5.46)||WITHIN(HELIX)|Selects groups  that would be selected using <b>select helix</b> but are not at either end of a helix section. (Jmol 11.7.47)||WITHIN(SHEET)|Selects groups that would be selected using <b>select sheet</b> but are not at either end of a sheet section. (Jmol 11.7.47)||]','TEXT','Functions','')
newCmd('','','*v+11.0;','The general specification of atoms in PDB "residues" follows the method used in RasMol. While the order of specifiers is somewhat flexible, the following order is generally applicable:<br /><br />[residueType]seqRange ^insertionCode :chainLetter .atomName  %altLoc /modelNumber<br /><br />[||[residueType]|[ALA] [G] [2E1] [L??] When used without any other specifiers it is possible <b>in some but not all cases</b> to leave off the brackets around the residue type. However, leaving off the brackets is not recommended and is <b>known to fail</b> when the residue type begins with a number.||seqRange| 1  1-30  40-   Note that ranges refer to physical ranges of data in the file. If residues corresponding to both the starting and ending residue numbers are not present in the file, selection returns no atoms. If residues with numbers between the starting and ending numbers are out of place in the file -- not physically between those two file positions -- they will not be included in the selection. If there is a desire to include such residues, or the selection should allow starting or ending residues to not be present, then use the <b>resno</b> comparison method instead. In this case, for example: <b>select resno >=1 and resno <=30</b> or <b>select resno >= 40</b>. ||^insertionCode | ^A ^B ^? ||:chainLetter | :A :B :? ||.atomName |.Ca .C? .? .?? ||%altLoc | %1 %A %? ||/modelNumber| /1 /2 /* refer to the number on the MODEL record in multimodel PDB files or the sequential number of the model in the file otherwise. When multiple files are loaded, these numbers refer to the file number, indicating "all models in that file." Specific models in specific files can be specified using a decimal notation: <b>file.model</b> as, for example, <b>select *.CA/2.1</b> -- all alpha carbons in the first model of the second file listed in the {#.load~} command (Jmol 11.1).||]','TEXT','RasMol biomolecular residue specifications','')
newCmd('','','*v+11.0;','Unspecified components of the atom specification are indicated in some cases using a question mark and in others using an asterisk. The wildcard * can be used in place of [residueType]seqRange to indicate "any." For example: <b>select *.CA</b>. Wildcards can be used elsewhere in the specification, but it is preferred simply to not include a specifier altogether. Thus, <b>select [ALA].*</b> is the same as <b>select [ALA]</b>. Note that in the case of PDB files and MOL2 files with residues indicated, * may be used in the form x* only in the case of residue names, not atom names. Thus, <b>select AS*</b> selects aspartate and asparagine. When used for an atom, for example, with the unremediated PDB file 1bkx <b>select A.O?*</b> the * is not wild and selects atoms A.O1* and A.O4*. (In remediated PDB files, this * becomes a single quote or "prime" character -- AO1\', AO4\'.) For other file types, * can be used at the end of an atom name fragment. Asterisks cannot be used in place of insertionCode or altLoc.  <br /><br />Question marks are used to indicate "some character": <b>select *.C??</b>. Note that the number of question marks is significant. ".?" only finds atoms with single-letter names such as "O" and "C"; ".??" finds atoms with single-letter or double-letter names.  The specification :?, ^?, and %? mean SOME chain, SOME insertion code or SOME alternate location; use :, ^, and % alone to indicate "atoms without chain indication," "atoms without insertion code," and "atoms without alternate location," respectively.<br /><br /> Starting with Jmol 11.7.34, you can use \\? to match an actual ? in an atom name. For instance, if there are two atoms, one with the name "O1" and one with the name "O1?" then <b>select O1?</b> will select both atoms, but <b>select O1\\?</b> will select only the second atom. You cannot use \\* to escape an actual * in an atom name.','TEXT','Wildcards','')
newCmd('','','*v+11.0;','Atom names can also be used for some non-PDB file types. For example, in CIF files, the atom_site_label field is used for the atom name. If an atom has the label "C34" you can select it using <b>select *.C34</b> or <b>select C34</b> or even <b>select C*</b>. Note that in this case, the wildcard * is no problem, since non-PDB file types do not include residue names, which might conflict with atom names. Similarly, Jaguar, NWChem, Tripos MOL2, Wavefunction Odyssey, SHELX, and Wavefunction Spartan files list atoms as "H3" and "O2". Atoms for these file types can be selected using these names, and the names can be displayed in {#.label~labels} using the format code %a. For file types such as XYZ that do not indicate a number with the atom symbol, Jmol constructs an atom name from the element symbol and the sequential number of the atom in the file.','TEXT','Atom names for other file types','')
newCmd('','','*v+11.4;*v-11.8;prop;math','Several atom properties can be set directly using the syntax<br /><br />{{atomExpression}}.xxxx = value<br /><br />The value may be an {#.[Jmol Math]~array}, in which case atoms in the atom expression are matched with elements of the array until one or the other is exhausted. (See also the {#.data~} command.) Settable properties include:<br />[||<b>atomName</b>|the atom name, as displayed using the {#.label~} format %a (Jmol 11.8)||<b>atomType</b>|the force field atom type, as found in AMBER topology and MOL2 files and as displayed using the {#.label~} format %B (Jmol 11.8)||<b>element</b>|the chemical element for the atom. The element can be expressed as an element symbol in quotes or an atomic number (Jmol 11.8)||<b>formalCharge</b>|formal charge||<b>fx</b>, <b>fy</b>, <b>fz</b>|specific fractional coordinate||<b>fxyz</b>|fractional coordinate in the form {{x y z}}||<b>occupancy</b>|PDB occupancy (decimal, 0 to 1)||<b>partialCharge</b>|partial charge, allowing for adding or modifying charges for use in, for example, {#.isosurface~isosurface molecular map MEP}.||<b>temperature</b>|PDB temperature (B-factor) data||<b>valence</b>|the valence of the atom -- used in {#.calculate~calculate aromatic}.||<b>vanDerWaals</b>|the van der waals radius for the atom ||<b>ux</b>, <b>uy</b>, <b>uz</b>|fractional coordinate normalized to the currently specified {#.unitcell~}. (Jmol 11.8)||<b>uxyz</b>|unit cell location. (Jmol 11.8)||<b>vx</b>, <b>vy</b>, <b>vz</b>|specific vibrational mode vector coordinate||<b>vxyz</b>|vibrational mode vector in the form {{x y z}}||<b>x</b>, <b>y</b>, <b>z</b>|specific Cartesian coordinates||<b>xyz</b>|Cartesian coordinate in the form {{x y z}}||] ','TEXT','Setting atom properties','')
newCmd('.[atom properties]','','*v+11.8;prop;math','Over 60 atom properties can be selected or retrieved from model data, and many of these can be set as well. The older, more limited Rasmol notation <b>[group].atomName^insertion:chain%altloc</b> can still be used, but equally well one can combine any subsets of those using a more natural notation. For example, <b>select group="ARG" and atomname="CA" and chain="A"</b> is equivalent to <b>select [ARG].CA:A</b>. Mostly, the newer <b>xxxx=y</b> notation generalizes better in terms of additional parameters not unique to Rasmol. The capability of setting atom properties using <b>{{atom expression}}.xxxx = y</b> was introduced in Jmol 11.2. The <b>label %[xxx]</b> notation was introduced in Jmol 11.8; prior to that version a more limited range of properties could be put in a {#.label~} using % and a single- or double-character code. Within labels, <b>%%</b> can be used to "escape" the percent sign and have it not be a special character. The full list of atom properties is given below.<br />[||<b>property</b>|<b>select xxx=y</b>|<b>label %[xxx]</b>|<b>label %x</b>|<b>print {{*}}.xxx</b>|<b>{{*}}.xxx = y</b>|<b>description</b>||adpmax|yes|yes|&nbsp;|yes|&nbsp;|the maximum anisotropic displacement parameter for the selected atom||adpmin|yes|yes|&nbsp;|yes|&nbsp;|the minimum anisotropic displacement parameter for the selected atom||altloc|yes|yes|A|yes|&nbsp;|PDB alternate location identifier||atomID|yes|yes|&nbsp;|yes|yes|special atom IDs for PDB atoms assigned by Jmol||atomIndex|yes|yes|D|yes|&nbsp;|atom 0-based index; a unique number for each atom regardless of the number of models loaded||atomName|yes|yes|a|yes|yes|atom name||atomno|yes|yes|i|yes|&nbsp;|sequential number||atomType|yes|yes|B|yes|yes|atom type (mol2, AMBER files) or atom name (other file types) -- Jmol 11.8||atomX|yes|yes|x|yes|yes|Cartesian X coordinate||atomY|yes|yes|y|yes|yes|Cartesian Y coordinate||atomZ|yes|yes|z|yes|yes|Cartesian Z coordinate||bondcount|yes|yes|&nbsp;|yes|&nbsp;|covalent bond count||cell|yes|&nbsp;|&nbsp;|&nbsp;|&nbsp;|crystallographic unit cell, expressed either in lattice integer notation (111-999) or as a coordinate in ijk space, where {{1 1 1}} is the same as 555. ANDing two cells, for example <b>select cell=555 and cell=556</b> selects the atoms on the common face. (Note: in the specifc case of CELL, only "=" is allowed as a comparator.)||<b>property</b>|<b>select xxx=y</b>|<b>label %[xxx]</b>|<b>label %x</b>|<b>print {{*}}.xxx</b>|<b>{{*}}.xxx = y</b>|<b>description</b>||chain|yes|yes|c/s|yes|&nbsp;|protein chain||color|yes|yes|&nbsp;|yes|yes|the atom color||covalent|yes|yes|&nbsp;|yes|&nbsp;|covalent bonding radius||element|yes|yes|e|yes|yes|element symbol. The value of this parameter depends upon the context. Used with <b>select structure=x</b>, x can be either the quoted element symbol, "H", "He", "Li", etc. or atomic number. In all other contexts, the value is the element symbol. When the atom is a specific isotope, the string will contain the isotope number -- "13C", for example.||elemno|yes|yes|l (<em>el</em>)|yes|yes|atomic element number||file|yes|yes|&nbsp;|yes|&nbsp;|file number containing this atom||formalCharge|yes|yes|C|yes|yes|formal charge||format|yes|yes|&nbsp;|yes|yes|format (label) of the atom. (Jmol 11.8)||fracXyz|&nbsp;|yes|&nbsp;|yes|yes|fractional XYZ coordinates||fX|yes|yes|X|yes|yes|fractional X coordinate||fY|yes|yes|Y|yes|yes|fractional Y coordinate||fZ|yes|yes|Z|yes|yes|fractional Z coordinate||group|yes|yes|n|yes|&nbsp;|3-letter residue code||group1|yes|yes|m|yes|&nbsp;|single-letter residue code (amino acids only)||groupID|yes|yes|&nbsp;|yes|&nbsp;|group ID number: A unique ID for each amino acid or nucleic acid residue in a PDB file. <br /> [|| 0 | noGroup||  1-5  |ALA, ARG, ASN, ASP, CYS|| 6-10|  GLN, GLU, GLY, HIS, ILE|| 11-15|  LEU, LYS, MET, PHE, PRO|| 16-20 | SER, THR, TRP, TYR, VAL || 21-23 | ASX, GLX, UNK||  24-29|  A, +A, G, +G, I, +I || 30-35|  C, +C, T, +T, U, +U||]<br />Additional unique numbers are assigned arbitrarily by Jmol and cannot be used reproducibly. ||<b>property</b>|<b>select xxx=y</b>|<b>label %[xxx]</b>|<b>label %x</b>|<b>print {{*}}.xxx</b>|<b>{{*}}.xxx = y</b>|<b>description</b>||groupindex|yes|yes|G|yes|&nbsp;| overall group index (Jmol 11.6)||identify|yes|yes|U|yes|&nbsp;|for a  PDB/mmCIF file, same as [%[group]]%r:%[chain] %%%[altloc]/%[model]  #%[atomno]. For non-PDB data, same as %[atomName]/%[model]  #%[atomno]||insertion|yes|yes|E|yes|&nbsp;|protein residue insertion code||ionic|yes|yes|I|yes|&nbsp;|radius used for bonding (<b>i</b>onic radius when a formal charge is defined)||label|yes|yes|&nbsp;|yes|yes|current atom label (same as <b>format</b> starting with Jmol 11.8)||model|yes|yes|M|yes|&nbsp;|model number||modelindex|yes|yes|&nbsp;|yes|&nbsp;|a unique number for each model, starting with 0 and spanning all models in all files (Jmol 11.8)||molecule|yes|yes|N|yes|&nbsp;|molecule number||occupancy|yes|yes|q/Q|yes|yes| CIF file site occupancy. In SELECT command comparisons ("select occupancy < 90"), an integer n implies measurement on a 0-100 scale; also, in the context %[occupancy] or %q for a label, the reported number is a percentage. In all other cases, such as when %Q is used in a label or when a decimal number is used in a comparison, the scale is 0.0 - 1.0.||partialCharge|yes|yes|P|yes|yes|partial charge||phi|yes|yes|f|yes|&nbsp;|protein group PHI angle for atom\'s residue  (Jmol 11.4)||polymerLength|yes|yes|L|yes|&nbsp;|polymer length||property_xx|yes|yes|&nbsp;|yes|yes|a property created using the DATA command||psi|yes|yes|p|yes|&nbsp;|protein group PSI angle for the atom\'s residue  (Jmol 11.4)||radius|yes|yes|I|yes|yes|currently displayed radius -- In SELECT command comparisons ("select radius=n"), integer n implies Rasmol units 1/250 Angstroms; in all other cases or when a decimal number is used, the units are Angstroms.||<b>property</b>|<b>select xxx=y</b>|<b>label %[xxx]</b>|<b>label %x</b>|<b>print {{*}}.xxx</b>|<b>{{*}}.xxx = y</b>|<b>description</b>||resno|yes|yes|R|yes|&nbsp;|PDB residue number, not including insertion code||sequence|yes|yes|&nbsp;|yes|&nbsp;|PDB one-character sequence code, as a string of characters, with "?" indicated where single-character codes are not available||site|yes|yes|S|yes|&nbsp;|crystallographic site number||spacefill|yes|yes|&nbsp;|yes|yes|currently displayed radius||straightness|yes|yes|T|yes|&nbsp;|quaternion-derived straightness (second derivative of the quaternion describing the orientation of the residue. This quantity will have different values depending upon the setting of <b>quaternionFrame</b> as "C" (alpha-carbon based), "P" (carbonyl-carbon based), or "N" (amide-nitrogen based). The default is alpha-carbon based, which corresponds closely to the following combination of Ramachandran angles involving three consecutive residues i-1, i, and i+1: -psi<sub>i-1</sub> - phi<sub>i</sub> + psi<sub>i</sub> + phi<sub>i+1</sub>.||strucno|yes|yes|&nbsp;|yes|&nbsp;|a unique number for each helix, sheet, or turn in a model, starting with 1.||structure|yes|yes|&nbsp;|yes|&nbsp;|The value of this parameter depends upon the context. Used with <b>select structure=x</b>, x can be either the quoted keyword "none", "turn", "sheet", "helix", "dna", or "rna" or a respective number 0-5. In the context <b>{{*}}.structure</b>, the return value is a number; in the context <b>label %[structure]</b>, the return is one of the six keywords. ||surfacedistance|yes|yes|u|yes|&nbsp;|A value related to the distance of an atom to a nominal molecular surface. 0 indicates at the surface. Positive numbers are minimum distances in Angstroms from the given atom to the surface. ||symop|yes|&nbsp;|&nbsp;|yes|&nbsp;|symmetry operation code that generated this atom by Jmol; an integer starting with 1. This operator is only present if the file contains space group information and the file was loaded using the {{i, j, k}} option so as to generate symmetry-based atoms. To select only the original atoms prior to application of symmetry, you can either use "SYMOP=n", where n is the symmetry operator corresponding to "x,y,z", or you can specify instead simply "NOT symmetry" the way you might specify "NOT hydrogen". Note that atoms in special positions will have multiple operator matches. These atoms can be selected using the keyword SPECIALPOSITION.  The special form <b>select SYMOP=nijk</b> selects a specific translation of atoms from the given crystallographic symmetry operation. Comparators  &lt;, &lt;=, >, >=, and != can be used and only apply to the ijk part of the designation. The ijk are relative, not absolute. Thus, <b>symop=2555</b> selects for atoms that have been transformed by symop=2 but not subjected to any further translation. <b>select symop=1555</b> is identical to <b>select not symmetry</b>. All other ijk are relative to these selections for 555. If the model was loaded using <b>load "filename.cif" {{444 666 1}}</b>, where the 1 indicates that all symmetry-generated atoms are to be packed within cell 555 and then translated to fill the other 26 specified cells, then <b>select symop=3555</b> is nearly the same as <b>select symop=3 and cell=555</b>. (The difference being that cell=555 selects for all atoms that are on any edge of the cell, while symop=3555 does not.) However, the situation is different if instead the model was loaded using <b>load "filename.cif" {{444 666 0}}</b>, where the 0 indicates that symmetry-generated atoms are to be placed exactly where their symmetry operator would put them (x,-y,z being different then from x, 1-y, z). In that case, <b>select symop=3555</b>  is for all atoms that have been generated using symmetry operation 3 but have not had any additional translations applied to the x,y,z expression found in the CIF file. If, for example, symmetry operation 3 is -x,-y,-z, then <b>load "filename.cif" {{444 666 0}}</b> will place an atom originally at {{1/2, 1/2, 1/2}} at positions {{-1/2, -1/2, -1/2}} (symop=3555) and {{-3/2, -3/2, -3/2}} (symop=3444) and 24 other sites.||<b>property</b>|<b>select xxx=y</b>|<b>label %[xxx]</b>|<b>label %x</b>|<b>print {{*}}.xxx</b>|<b>{{*}}.xxx = y</b>|<b>description</b> || symmetry|&nbsp;|yes|o|yes|&nbsp;|list of crystallographic symmetry operators generating this atom||temperature|yes|yes|b/t|yes|yes|temperature factor (B-factor)||unitXyz|&nbsp;|yes|&nbsp;|yes|&nbsp;|unit cell XYZ coordinates||uX|yes|yes|&nbsp;|yes|&nbsp;|unit cell X coordinate normalized to [0,1)||uY|yes|yes|&nbsp;|yes|&nbsp;|unit cell Y coordinate normalized to [0,1)||uZ|yes|yes|&nbsp;|yes|&nbsp;|unit cell Z coordinate normalized to [0,1)||valence|yes|yes|&nbsp;|yes|yes|the valence of an atom (sum of bonds, where double bond counts as 2 and triple bond counts as 3||vanderwaals|yes|yes|V|yes|yes|van der Waals radius||vibXyz|&nbsp;|yes|v|yes|yes|vibration vector, or individual components as %vx %vy %vz||vibX|yes|yes|&nbsp;|yes|yes|vibration vector X coordinate||vibY|yes|yes|&nbsp;|yes|yes|vibration vector Y coordinate||vibZ|yes|yes|&nbsp;|yes|yes|vibration vector Z coordinate || volume|yes|yes|&nbsp;|yes|&nbsp;|approximate van der Waals volume for this atom. Note, {{*}}.volume gives an average; use {{*}}.volume.sum to get total volume. (Jmol 11.9.2)||xyz|&nbsp;|yes|&nbsp;|yes|yes|Cartesian XYZ coordinates||&nbsp;|&nbsp;|&nbsp;|g|&nbsp;|&nbsp;|group index in chain||&nbsp;|&nbsp;|&nbsp;|r|&nbsp;|&nbsp;|PDB residue number, including insertion code||&nbsp;|&nbsp;|&nbsp;|W|&nbsp;|&nbsp;|PDB residue designator with x, y, z included: [%n]%r %x %y %z (Jmol 11.4)||]','0|1','','')
newCmd('.axes','','*v+11.0 -- new;set','Turns on or off displayed axes, and determines their line style and line width (as a decimal number, in Angstroms).','0|1','','')
newCmd('','','*v+11.0;','Turns axes on or off','*1','._on_off{"ON"}','')
newCmd('','','*v+11.0;','Sets the axes diameter in Angstroms. ','*2','(decimal)','')
newCmd('','','*v+11.0;','Sets the axes style to a thin dotted line.','*3','DOTTED','')
newCmd('','','*v+11.0;','Sets the axes diameter in pixels (1 to 19).','*4','(integer)','')
newCmd('','','*v+11.2;','Sets the axes to be based on the molecular coordinate {{0 0 0}}','*51','MOLECULAR','')
newCmd('','','*v+11.2;','Sets the axes to be based on the center of the bounding box (default if not fractional coordinates)','*8','WINDOW','')
newCmd('','','','Sets the axes to align with the a, b, and c axes of the unit cell (default if fractional coordinates)','*55','SCALE','(decimal)')
newCmd('','','*v+11.2;','Sets the axes to align with the a, b, and c axes of the unit cell (default if fractional coordinates)','*7','UNITCELL','')
newCmd('','','*v+11.8;','Sets the axes to be positioned at a specific screen coordinate or fractional position along the horizontal and vertical screen dimensions. Must be preceded by <b>axes on</b>.','*6','POSITION','[x y] or [x y %]')
newCmd('.backbone','~structure','disp','Shows the backbone of a protein or nucleic acid macromolecule by connecting the alpha carbons. The selection of backbone units to display depends upon the currently selected atoms and the {#.set (bond styles)~bondmode} setting.','0|1','','')
newCmd('','','','Turns the backbone on or off','*10','._on_off{"ON"}','')
newCmd('','','*v+11.6;','Turns backbone rendering on and all other rendering off.','*11','ONLY','')
newCmd('','','','Backbone radius can be specified in angstroms using a decimal number (1.0, 2.0, etc.)','*2','._backbone_radius','')
newCmd('.background','','*v+11.6 -- image support;disp;color','Sets color of the background or, starting with Jmol 11.6, sets the background image. For color specifications, see {#.color~}.','1|2','','')

newCmd('','','','Sets the background color of the applet/application window.','*1','._colorRGB','')
newCmd('','','','Sets the background of the most recently defined {#.echo~} text and subsequent user-defined echo text to be the given color.','*21','ECHO','._color_or_none')
newCmd('','','','Sets the background of the applet/application window to the specified image file, which can be of format JPG, PNG, or GIF. The image is stretched to fit the size of the window.','*23','IMAGE','&quot;filename&quot;')
newCmd('','','','Sets the background color of the atom labels that appear with the "label" command. "NONE" results in there being no label background. Operates globally, not on selected atoms.','*4','LABELS','._color_or_none')
newCmd('','','','Sets the background color for the pop-up label box that appear when the mouse "hovers" over an atom.  "NONE" results in there being no hover backgrounds. Operates globally, not on selected atoms.','*3','HOVER','._color_or_none')
newCmd('.bind','','*v+11.10;bind','The <b>bind</b> and {#.unbind~} commands allow users to customize the effects of mouse actions. When a mouse action is bound to a script, Jmol will replace _X, _Y, _DELTAX, _DELTAY, _TIME, and _MODE in the script with appropriate values. The _MODE variable indicates the mouse action that occurred (0 pressed, 1 dragged, 2 drag-released, and 3 wheeled).','1|2','','')
newCmd('','','','Ties a specific mouse action to a specific Jmol action.','*1','BIND','._mouse_action','._jmol_action','')
newCmd('','','','Ties a specific mouse action to a script defined by the user. ','*2','BIND','._mouse_action','&quot;script&quot;','')


newCmd('.bondorder','','*v+11.4 -- new;bond','Sets the bond order of the selected atoms or bonds. An alternative to the  {#.connect~} command.','0|1','','')
newCmd('','','','Sets the bond order to the specified order. Values -1, -1.5, and -2.5 specify HBOND, PARTIALDOUBLE (reverse solid/dash of AROMATIC), and PARTIALTRIPLE2, respectively. ','*1','.0.5, 1, 1.5, 2, 2.5, 3, 4, -1, -1.5, -2.5','')
newCmd('','','','Sets the bond order to the specified type. See details at {#.connect~} for PARTIAL N.M (Jmol 11.4).','*2','._connection_options','')
newCmd('.boundbox','','*v+11.4 -- expanded capability;set','Turns on or off a wire-frame box that contains the model or a designated subset of the model or a designated region of space, and determines the line style and line width (as a decimal number, in Angstroms) of that box. If the atom set is not indicated, the boundbox is drawn around the entire model set (including all models in frames). A decimal number specifies the boundbox line diameter in Angstroms; DOTTED specifies a fine dotted line.','0|1','','')




newCmd('','','*v+11.4;','Turns the boundbox on or off  around the specified set of atoms. In a multi-model context, if a set of atoms is specified and that set of atoms is within a subset of the models, then the boundbox is only displayed only when the {#.model~} command has made that subset of models displayable. ','*1','._atom_expression{"*"}','._axes_type{"ON"}')
newCmd('','','*v+11.4;','Sets the boundbox to be centered on the atom set or coordinate given as the first parameter and extending by a vector to a corner specified by the second parameter. If the third parameter is not given, no change in the visibility of the boundbox or its line style is made.','*2','._atom_expression_or_coord','._coordxyz','._axes_type{"unchanged"}','')
newCmd('','','*v+11.4;','Sets the boundbox based on two corners, each specified by the center off an atom set or a coordinate. If the fourth parameter is not given, no change in the visibility of the boundbox or its line style is made','*3','CORNERS','._atom_expression_or_coord','._atom_expression_or_coord','._axes_type{"unchanged"}')

newCmd('.calculate','','*v+11.4 -- adds calculate AROMATIC and calculate SURFACEDISTANCE, deprecates calculate SURFACE;','Calculates specific quantities.','0|1','','')

newCmd('','','*v+11.2;','Calculates alternating single and double aromatic bonds for all bonds of type AROMATIC. If just one bond of a conjugated system is specified as AROMATICSINGLE or AROMATICDOUBLE, then all bonds of that system will be consistent with that bond. (Jmol 11.4). For example: <br /><br />reset aromatic;<br />connect (atomno=3) (atomno=4) AROMATICDOUBLE;<br />calculate aromatic;<br /> <br/>or<br /><br />select carbon and within(1.6, {{0 0 0}});<br />connect (selected) aromatic modify;<br />calculate aromatic;<br /><br />','*1','AROMATIC','')
newCmd('','','*v+11.0;;','Calculates hydrogen bonds involving atoms currently selected and displays them. Same as {#.hbonds~hbonds calculate}.','*22','HBONDS','')
newCmd('','','*v+11.6;;','Calculates the point group symmetry for a symmetrical or nearly symmetrical molecule. The calculation is carried out only on the currently selected atoms and is limited to at most 100 selected atoms. The symmetry-determining algorithm looks for proper and improper rotation axes using a variety of methods. In each case, a test is made as to whether all atoms subjected to a specific rotation or reflection map onto the positions of some other atom.The extent to which imperfections in symmetry will be tolerated depends upon two adjustable paremeters. <b>pointGroupDistanceTolerance</b> (default 0.2 Angstroms) determines the maximum distance between a rotated atom and another atom in the molecule. <b>pointGroupLinearTolerance</b> (default 8.0 degrees) determines whether a potential axis matches one that has already been discovered. Setting these values to higher numbers allows more flexibility in terms of atom positions, but also may result in molecules being reported with higher symmetry than they really have.','*25','POINTGROUP','')

newCmd('','','*v+11.4;','Calculates for each atom the property surfaceDistance, which is the distance of the atom to a "shrink-wrap" surface surrounding the set of preselected atoms (usually the entire model, often without solvent molecules). Values for atoms OUTSIDE this surface are not generally valid due to the nature of the calculation. Use <b>calculate surfacedistance FROM {{atom expression}}</b> instead for calculating distances outside of a van der Waals surface surrounding a subset of atoms in a model. {#.isosurface~isosurface sasurface map property surfaceDistance} then creates an isosurface colored by distance from the specified subset; or either {#.color~color surfaceDistance}  or {#.color~color property surfaceDistance} colors the atoms along the same lines.','*4','SURFACEDISTANCE','WITHIN','._atom_expression','')
newCmd('','','*v+11.4;','Calculates for each atom the property surfaceDistance, which is the distance of the atom to a van der Waals surface surrounding the specified subset of atoms of the model. {#.isosurface~isosurface sasurface map property surfaceDistance} then creates an isosurface colored by distance from the specified subset; or either {#.color(color scheme)~color surfaceDistance}  or {#.color(color scheme)~color property surfaceDistance colors the atoms along the same lines.','*5','SURFACEDISTANCE','FROM','._atom_expression','')
newCmd('','','*v+11.6;','Calculates a value for "straightness" (ranging from -1 to 1) within a biomolecular polymer (protein or nucleic) as defined by the following equation: <br /> <br /> straightness =   1 - 2 * (acos(q<sub>i</sub> / q<sub>i-1</sub> * q<sub>i+1</sub> / q<sub>i</sub>) / PI)<br /> <br />where q<sub>i</sub> is the {#.quaternion~} defining the frame of the i<sup>th</sup> amino acid or nucleic acid. A value of 1 for straightness indicates that the three amino acids (i-1, i, i+1) are perfect rotations around the same helical axis. The straightness can then be displayed as part of a label using the %T format code or as a color using {#.color~color straightness.','*3','STRAIGHTNESS','')

newCmd('','','*v+11.0;;','Recalculates the polymer chains making up a protein or nucleic acid, and then recalculates the secondary structure of proteins and nucleic acids. The results are affected by any bonding that has changed via the {#.connect~} command. A typical use is for PDB files that load with incomplete bonding (because the author specified only a fraction of the bonds). After loading, one can issue <b>connect</b> to use Jmol\'s autobonding feature, then <b>calculate structure</b> to recalculate the chains, helixes, sheets, turns, and nucleic acid bases based on Jmol\'s implementation of {http://en.wikipedia.org/wiki/Secondary_structure~DSSP}. The calculation is performed for all models containing any currently selected atoms. For these models all cartoons and other biomolecular shapes are turned off. The next <b>cartoons on</b> command will then show a complete set of cartoons.','*3','STRUCTURE','')


newCmd('.cartoon','structure','disp','Cartoons are the classic shapes the are used to depict alpha helices and beta-pleated sheets. A combination of cartoons and {#.rockets~} can be displayed using cartoons along with {#.set (structure)~set cartoonRockets}. Jmol 11.4 introduces the {#.set(structure)~set rocketBarrels} option, which removes the arrow heads from cartoon rockets. ','0|1','','')
newCmd('','','','','*11','._on_off{"ON"}','')
newCmd('','','*v+11.6;','Turns cartoon rendering on and all other rendering off.','*13','ONLY','')
newCmd('','','','','*2','._cartoon_radius','')

newCmd('.cd','','*v+11.8;cd','Changes the default directory or, with no parameters, displays the default directory. This command simply sets the Jmol parameter <b>defaultDirectory</b>. The directory can be local or it can have a URL prefix such as http:// or ftp://, and it may or may not be enclosed in quotes. Note that <b>x = file("") </b> sets x to the full path to the current default directory while <b>x = defaultDirectory</b> sets x to the current default directory as set by the user by the <b>cd</b> command (full path) or simply by setting the <b>defaultDirectory</b> parameter (which may or may not be the full path).','0|1','','')
newCmd('','','*v+11.8;','Displays the default directory.','*1','','')
newCmd('','','*v+11.8;','Resets the default directory to the base directory of the application or applet.','*2','&quot;&quot;','')
newCmd('','','*v+11.8;','Changes the default directory to that specified in the directory name. Quotes are optional. The standard notation of two periods indicates "up one level" as in <b>cd ../temp</b>. Note that forward slash, not back slash, should be used to separate directory names along a path.','*3','&quot;directoryName&quot;','')
newCmd('','','*v+11.8;','(signed applet or Jmol application only) Displays a file dialog box allowing for creating and changing directories on the local system.','*4','?','')
newCmd('','','*v+11.8;','Changes the default directory to that specified in the URL directory specified in the {#.set(files and scripts)~loadFormat} variable.','*5','=','')

newCmd('.center','','centering','Sets the center of rotation to be the center of the set of atoms defined by the {#.atom expressions~atom expression}. This is calculated as the mean value of the coordinates of the selected atoms along each of the respective axes. If no atoms are selected then the center is set to the center of the bounding box (the default). The three values can be written using braces as a single coordinate, {{x y z}}, if desired.','0|1','','')
newCmd('','','','Recenters the model on the default center.','1','','')
newCmd('','','','Centers the model on the specified atom set. Along with {#.show~show center}, allows for the reading of the coordinated position of a specific atom using, for example, <b>center [CYS]4.O;show center;center</b>. See also {#.centerAt~}','*1','._atom_expression','')
newCmd('','','','Centers the model on a specified model-frame coordinate','*2','._coordxyz','')
newCmd('','','','Centers the model on a specified {#.draw~} object','*3','._draw_object','')
newCmd('.centerAt','','centering','The <b>centerAt</b> command allows centering of the model in one of three different ways: based on an absolute coordinate position, based on an offset relative to the center of the boundbox (the overall application default), or based on an offset relative to the average position of the currently selected atoms. Centering on a specific atom or atom set without first selecting it is also available using the {#.center~} command. If the three numerical values are omitted, they default to 0.0 0.0 0.0. The numbers can be in the form of a coordinate (with  braces), {{x y z}}, if desired.','1|2','','')
newCmd('','','','specifies an absolute coordinate for the center, in Angstroms','2','ABSOLUTE','x y z {0.0 0.0 0.0}')
newCmd('','','','relative to the center of the boundbox, which is defined by the minimum and maximum atom center coordinates along each of the cartesian axes','2','BOUNDBOX','x y z {0.0 0.0 0.0}')
newCmd('','','','relative to the average atom position (also known as the "unweighted center of gravity")','1','AVERAGE','x y z {0.0 0.0 0.0}')


newCmd('.color','','*v+11.4 -- adds fully customizable color schemes;','In general, the color command takes the following syntax:<br /><br /><b>color [object] [translucent/opaque] [color, property, or color scheme]</b><br /> <br /> Note that to color a specific set of atoms, you MUST select that set first, then use use the color command. You cannot script, for example, "color *.N? green".','1|2','','')


newCmd('','','*v+11.4;','The color command takes several forms, depending upon the type of object being colored: an atom object, a bond object, a chemical element, or a model object. This section of the guide discusses each of these in turn:<br /><ul><li>{#.color (atom object)~}</li><li>{#.color (bond object)~}</li><li>{#.color (element)~}</li><li>{#.color (model object)~}</li><li>{#.color (named object)~}</li><li>{#.color (scheme)~}</li></ul> Additional information external to this documentation can be found in relation to {http://jmol.sourceforge.net/jscolors/~[Jmol color schemes]} and {http://jmol.sourceforge.net/jscolors/#JavaScript colors~[standard JavaScript color names and codes]}. In addition, a page is available that lays out the {misc/color.htm~[Jmol color command matrix]}. Color schemes may be customized using the {#.set userColorScheme~} command.','TEXT','[object]','')

newCmd('','','','The color command allows an optional color modifier of TRANSLUCENT or OPAQUE, which can be used with any object, either alone or with a color. Starting with Jmol 11.2, TRANSLUCENT can take an integer in the range 0-6 (indicating eighths -- 0, 1/8, 2/8, etc.), 32-255 (indicating fraction of 256), or a decimal in the range 0.0 to 1.0. Larger numbers are more translucent -- dimmer. Currently implemented transclucencies are -1 (Jmol 10 translucency), 0 (opaque), 0.125 (1, 32), 0.25 (2, 64), 0.375 (3, 96), 0.5 (4, 128), 0.625 (5, 160), and 0.75 (6, 192). Future versions of Jmol may include more options, so it is recommended that the decimal numbers be used. The default is TRANSLUCENT 0.5, which can be set using "defaultTranslucent = x.xx", where x.xx is a decimal number. For example:<br /><br /> color atoms TRANSLUCENT orange<br /> color ribbons TRANSLUCENT 0.5 [255, 165, 0]<br />select oxygen; color opaque.  <br /><br />If neither TRANSLUCENT nor OPAQUE is specified, OPAQUE is assumed. Thus, <b>color atoms red</b> and <b>color atoms OPAQUE red</b> are synonymous. ','TEXT','[translucent/opaque]','')
newCmd('','','*v+11.2;','Colors can be designated as one of the {http://jmol.sourceforge.net/jscolors/#JavaScript%20colors~[standard JavaScript colors]}, as a red-green-blue triplet in square brackets, [255, 0, 255], as a red-green-blue triplet expressed as a six-digit hexidecimal number in brackets, [xFF00FF], as a triplet expressed as a point in color space, {{255,0,255}} (introduced in Jmol 11.4), or as the name of one of the known {http://jmol.sourceforge.net/jscolors/~[Jmol color schemes]}. If TEMPERATURE is used, then the color range will depend upon the setting of the {#.set rangeSelected~rangeSelected} flag. A new option for Jmol 11.0 is SURFACEDISTANCE. <br /> <br />Starting with Jmol 11.2, you can also color atom-based objects based on user-defined properties read from an external file or standard Jmol atom properties such as partialCharge that Jmol has read from the model file.  In the case of Jmol atom properties, use the keyword PROPERTY followed by the name the property, as in <b>color atoms PROPERTY partialCharge</b>. In the case of user-defined properties (created using the {#.data~} command), which always start with "PROPERTY_", simply give the property name: <b>x = load("mydata.txt");data "property_mydata @x";select model=2;color atoms property_mydata</b>. When using either PROPERTY or PROPERTY_xxx, you can set the absolute range of values that will span the full spectrum of colors of the propertyColorScheme you have chosen. Simply add the keyword ABSOLUTE followed by the minimum and maximum values you wish to use for the two ends of the spectrum. So, for example: <b>color atoms property temperature ABSOLUTE 0.0 30.0</b>. ','TEXT','[color, property, or color scheme]','')

newCmd('','','','Many objects inherit both color and opacity from the underlying associated atom (which, themselves "inherit" their color by default from their associated chemical element). For example, by default a bond will inherit the two colors+translucencies of its endpoint atoms. If you simply \'color atoms translucent\', then both the atoms and the bonds will be translucent. But if you \'color bonds opaque\' or \'color bonds red\' and also \'color atoms translucent\' only the atoms will be translucent. <br /><br />Starting with Jmol 11.2, the level of \'translucent\' can be controlled. The algorithm allows for proper mixing of colors for two translucent objects and approximately correct mixing for more than two overlapping translucent objects. ','TEXT','Color Inheritance','')
newCmd('','colorrasmol','','Sets the previously selected atom set to a color based on a color name or value or one of the {http://jmol.sourceforge.net/jscolors/~[Jmol color schemes]}.','*1','._color_name_or_scheme','')
newCmd('.color (atom object)','','color;latom;','Sets the color of atom-related objects (atoms, backbone, cartoons, dots, halos, labels, meshribbon, polyhedra, rockets, stars, strands, trace, and vibration vectors).','1|2','','')
newCmd('','coloratoms','','Sets the color of atom-related objects based on a previously selected atom set to a specific color, a  color scheme, or back to its default color (CPK), or to inherit the color of its associated atom (NONE). In the case of "color atoms", CPK and NONE both revert to the default color. In the case of "color labels", coloring a label to the background color automatically uses the background contrast color, not the actual background color (white or black, depending upon the background color). If it is desired for some reason to color a label the background color, then the label should be colored instead a color very close to the background color but not it exactly. For instance, to color labels black with a black background, use [0,0,1] instead of [0,0,0].','*2','._atom_object','._color_name_or_scheme')
newCmd('.color (bond object)','','color;hbondc','Three types of bonds are distinguished by Jmol for coloring purposes: regular bonds, disulfide bonds, and hydrogen bonds. Each can be colored independently, and hydrogen bond colors in proteins can take on a special coloring scheme based on their connectivity.','1|2','','')
newCmd('','','*v+11.4;','Colors selected bonds a specific color or resets them to inherit the color of their associated atoms.','*1','BONDS','._color_or_none_or_CPK')
newCmd('','','*v+11.4;','Colors disulfide bonds a specific color or resets them to inherit their color from their associated atoms.','*2','SSBONDS','._color_or_none_or_CPK')
newCmd('','','*v+11.4;','Colors hydrogen bonds a specific color or resets them to inherit their color from their associated atoms.','*3','HBONDS','._color_or_none_or_CPK')



newCmd('','','','Colors hydrogen bonds specifically in proteins based on how many residues one end is from the other. Note that to get this effect, one must first execute "hbonds ON" and then issue "color hbonds TYPE".'+' The colors assigned are based on the number of redidues between the interacting H atoms. This TENDS to indicate secondary structure, but is not perfect.The correlation between color and offset are as follows:'+'[||<b>Color</b>|<b>Offset</b>||green|-4||cyan|-3||white|+2||magenta|+3 (turns)||red|+4 (alpha-helix)||orange|+5||yellow|other (e.g. beta-pleated sheet)||]','*4','HBONDS','TYPE')
newCmd('.color (element)','','*v+10.2 -- new;color','You can use the \'color\' command to specify customized default colors that are used for elements. {http://jmol.sourceforge.net/jscolors/#Atoms%20(\'CPK%20colors\')~[default Jmol element colors]} <br /><br /><b>color carbon limegreen<br />color hydrogen [x32CD32];</b><br /><br />These changes are not molecule-specific; they will continue in effect even if new molecules are loaded. However, in a page with multiple applets, each applet will have its own set of element colors.<br /><br />If you choose to use this feature, you should consider encapsulating your favorite colors into a script and then executing that script as a subroutine. For example:<br /><br /><b>script LoadMyFavoriteColors.txt;<br />load foo.xyz;<br />load bar.xyz;</b><br /><br />Note:<br /><ol><li>Custom element colors are independent of and are not affected by the currently selected set of atoms.</li><li>To reset custom element colors, use {#.set%20(default%20color%20scheme)~\'set defaultColors Jmol\'} or \'set defaultColors Rasmol\'.</li><li>\'translucent\' or \'opaque\' cannot be specified as part of the element color specification. (You cannot \'color carbon transparent green\', for instance.)</li><li>At this time only elements can be custom colored. There is no support for customizing other color palettes such as those used for protein chains or groups.</li></ol>','2','._element_name','._colorRGB')
newCmd('.color measures','','*v+11.0 -- adds selective measurement coloring;color','Colors the measurement numbers and dotted lines.  In Jmol 10.2, "color measures" change all measurement colors at once. In version 11.0, "color measures" acts on all future measures, allowing for selective coloring of measurements. Thus, "color measure" in 11.0 acts on (a) any measures currently with no color assigned and (b) on any future measures. If measurement colors have already been set, then "color measures NONE" needs to be invoked to turn off measurement colors prior to resetting them.','2','._colorRGB','')
newCmd('.color selectionHalos','','*v+11.0 -- new;color','Sets the default color of the halos displayed by {#.selectionHalos~}. The <i>default</i> default selection halo color is GOLD. To assign colors based on the underlying atoms, use <b>color selectionHalos NONE</b>. This command setting persists for the life of the applet or application, like element colors. If the atom\'s halo color has been set using <b>select ...; color halos ...</b>, then <b>color selectionHalo</b> has no effect until those colors are returned to their default settings with <b>color halos none</b>.','2','._color_or_none','')
newCmd('.color (model object)','colortext','color','Sets the color of various model objects.','2','._model_object','._colorRGB')
newCmd('.color (named object)','','*v+11.0 -- new;','Sets the color of an object created using {#.draw~}, {#.isosurface~}, {#.pmesh~} or {#.polyhedra~} using the name identifier preceded by a dollar sign ($). ','2','._draw_object','._colorRGB')
newCmd('.color (scheme)','','*v+11.4 -- new;','Sets the working color scheme and range for determining correlations between property values and color values. The names "user" and its reverse, "resu", refer to a {#.set userColorScheme~user-defined color scheme}. The RANGE values indicate what parameter values correspond to the first and last color values. The range values are required unless they have been set already in a previous command such as {#.isosurface~}. Once set, calculations such as <b>x = {{atomno=3}}.partialcharge.color</b> return a color value based on this color scheme and range. Starting with Jmol 11.4, you can implement any number of your own color schemes simply by including "=" after the name and adding a set of hexadecimal color values: <b>color "myScheme=[x00FF00] [xFFFF00] [x00FF00] [x00FFFF] [x0000FF]"</b>, for example. Then, <b>color atoms "myScheme"</b> will do just that. Starting with Jmol 11.4, you can redefine the Jmol coloring schemes as well simply by using "jmol=[x......]...." or "rasmol=[x......]...." as the name. To return these to their default values, include the equal sign but no values. Starting with Jmol 11.4, four additional built-in color schemes include "byElement_Jmol", "byElement_Rasmol", "byResidue_Jmol" (corresponding to <b>color shapely</b>), and "byResidue_Rasmol" (corresponding to <b>color amino</b>). Setting the range has no effect on these color schemes, as they are intended to correspond with specific elements (elemno) and residues (groupID). You can implement your own byElement or byResidue color schemes simply by using those keywords at the beginning of a color scheme definition. byElement color schemes start with "unknown", then run through the periodic table; byResidue color schemes start with "no group", then the amino acids and nucleic acids in order: ALA, ARG, ASN, ASP, CYS, GLN, GLU, GLY, HIS, ILE, LEU, LYS, MET, PHE, PRO, SER, THR, TRP, TYR, VAL, ASX, GLX, UNK, A, +A, G, +G, I, +I, C, +C, T, +T, U, +U.','2','&quot;colorSchemeName&quot;','RANGE','[min]','[max]')
newCmd('.[comment (#)]','comment','*v+11.4 -- adds /**   **/ and ****Jmol Embedded Script****;','Comments in Jmol are preceded by a number sign, \'#\'. In Jmol 11, the pattern /* comment text  */ may also be used, and in Jmol 11.2, /** ... **/ can be used as a "super-comment" to comment out whole blocks of script that might contain /* ... */ as well. Starting with Jmol 11.6, // at the very beginning of a line (before any characters, including spaces) as an alternative indication of a full-line comment. In Jmol 11.4, if the character string <b>****Jmol Embedded Script****</b> is found within a comment or super-comment block, then ONLY the text following that string and carrying through the rest of the comment or super-comment is processed, and all other text in the file is ignored. [||`valign="top"><b>#</b>| Anything following \'#\' up until the end of a statement is ignored by Jmol with the following three exceptions. (A statement is terminated by a semicolon ";" or a newline.)||`valign="top"><b>#jx</b>|Commands prefixed with #jx <b>will be executed by Jmol</b>||`valign="top"><b>#jc</b>| If the string \'#jc\' appears <b>anywhere</b> within a statement, then that <b>entire statement</b> will be assumed to be a comment and will be completely ignored by the Jmol interpreter.||`valign="top">state definitions| The {#.write~write state} command produces a script that uses standard-looking Jmol comments appended to some commands in order to supply necessary information for defining the exact state that was present when the command was issued. Generally this involves what atoms are to be selected or ignored, and what files and models are involved. The formatting of these extended script "comments" is very precise; these comments should not be manipulated.||]CHIME NOTE: Similar comment controls exist in Chime. Commands prefixed with #! will be executed in Chime but not in RasMol. Commands containing ## will be ignored by Chime, but the portion preceding the ## will be executed in RasMol. Thus we have: [||# | not read by Jmol, Chime, or Rasmol||#jx [commands here] | Jmol excecution only||#! [commands here]  | Chime execution only||[commands here] ## #jc |Rasmol execution only||[commands here] #jc | Chime and Rasmol only || [commands here] ## | Jmol and Rasmol only||]','0','','')

newCmd('.configuration','','*v+11.0 -- new;','File types PDB, mmCIF, and CIF allow for the designation of certain atoms to be in "alternative locations" or in "disorder groups". This leads to two or more possible structures. While full treatment of this issue is not possible, Jmol can display the different possible "configurations" described in these files. for PDB and mmCIF files, a single character is allowed ','1','[configuration number]','')
newCmd('.connect','','*v+11.4 adds "_1" option;bond','The <b>connect</b> command allows real-time bond manipulation, allowing the user or application to connect and disconnect specific atom sets.  The general syntax is as follows:  <br />  <br /><b>connect [minimum and maximum distances] [source and target atom sets]  [bond type] [radius option] [color option] [modify/create option] </b> <br /> <br />(<b>connect</b> by itself deletes all bonds and then creates bonds based on Jmol default bond-generating algorithms, all as single bonds, without respect to what bonding patterns might have been indicated in the model file.)','0|2','','')



newCmd('','','','Distances are given in Angstroms, either as decimals or integers. If only one distance parameter is given, it represents a maximum distance. If neither the minimum nor the maximum distance parameter is given, all connections between the two atom sets are made, regardless of distance.  ','TEXT','[minimum and maximum distances]','')
newCmd('','','','The source and target atom sets are embedded {#.atom expressions~atom expressions} and therefore must be enclosed in parentheses. If the source atom set is not given, it is taken to be the currently selected atom set, "(selected)". If neither atom set is given, "(selected) (selected)" is assumed. Starting in Jmol 11.4, the atom expression "_1" in the second selection set signifies "the atom selected in the first set". Thus, it is possible to select something like <b>(_N) (_O and not within(chain, _1))</b> -- meaning "all nitrogens and all oxygens not in the same chain as the selected nitrogen." Of course, this would be used with a distance qualifier.','TEXT','[source and target atom sets]','')
newCmd('','','hbond','Unless otherwise specified, connections are automatically introduced as single bonds. Any one of the following bond types may be specified: SINGLE, DOUBLE, TRIPLE, QUADRUPLE, AROMATIC, PARTIAL, PARTIALDOUBLE, HBOND, or UNSPECIFIED. In appearance, AROMATIC and PARTIALDOUBLE are identical except for which side of the bond is represented by a dashed line. PARTIAL and HBOND are both dashed, but they have different patterns, and newly created hydrogen bonds are only thin lines. Jmol 11.4 adds PARTIALTRIPLE, PARTIALTRIPLE2, AROMATICSINGLE, AROMATICDOUBLE, numeric bond order (including -1 for PARTIAL, 1.5 for AROMATIC, -1.5 for PARTIALDOUBLE, 2.5 for PARTIALTRIPLE, and -2.5 for PARTIALTRIPLE2), as well as a fully generalized set of partial bonds indicated with <br /><br />connect ... partial N.M<br /><br />where N is the number of lines (from 1 to 5) and M is a binary mask indicating which lines are dashed:  <br />[||M|binary|meaning||1|00001|first line dashed||2|00010|second line dashed||3|00011|first and second lines dashed||4|00100|third line dashed||...|...|...||31|11111|all lines dashed||] <br /> <br />So, for example, we have: <br /> <br />[||partial 1.0|single||partial 1.1|same as "partial"||partial 2.0|double||partial 2.1|same appearance as "aromatic", though not "aromatic"||partial 2.2|partialDouble||partial 3.0|triple||partial 3.1|partialTriple||partial 3.4|parialTriple2||]','TEXT','[bond type]','')
newCmd('','','*v+11.2;','Addition of the keyword "radius" followed by a distance in angstroms allows definition of the radius of a modified or newly created bond. If the modify/create option is absent, then "modify" is assumed; if the bond type is absent, then bonds of any type are set, but their bond type is not changed.','TEXT','[radius option]','')
newCmd('','','*v+11.2;','Addition of a color name or designation optionally along with the keyword "translucent" or "opaque" allows definition of the color and/or translucency of a modified or newly created bond. If the modify/create option is absent, then "modify" is assumed; if the bond type is absent, then bonds of any type are set.','TEXT','[color option]','')

newCmd('','','*v+11.2;','Four additional mutually exclusive options relate to what sort of connections are made. The default when a radius or color option is present is "Modify"; otherwise the default is "ModifyOrCreate". These include: <br />[||<b>Create</b> | Only new bonds will be created. If a bond of any type already exists between two matching atoms, it will not be affected.||<b>Modify</b> | Only pre-existing bonds will be modified. No new bonds will be created. ||<b>ModifyOrCreate</b> | If the connection fits the parameters, it will be made. Bonds already present between these atoms will be replaced.|| <b>Delete</b> | Delete the specified connections.||]','TEXT','[modify/create option]','')




newCmd('.console','','*v+11.0 new command;','Throws up a console window from which a user can enter script commands and monitor the messages returned by Jmol as, for example, from the {#.show~} or {#.getProperty~} command. ','0','','')

newCmd('.data','','*v+11.6 adds new capabilities;vdw','The <b>data</b> command allows data to be introduced in-line or via a variable. The command consists of two statements, <b>data "label"</b> and <b>end "label"</b>, between which the data are presented on as many lines as desired. "label" may be any string, though strings starting with "property_" are special (see below). Quotes must be used in both the <b>data</b> line and the <b>end</b> line. The first word of the label defines the data type, but the label itself may be any number of words. If the data type is "model" as in the following example, then the data is interpreted as an in-line model (and loaded using the default lattice, if crystallographic). If the data type is "append", then the data is interpreted as a model, and the model is appended either into a new frame or into the last existing frame, based on the setting of <b>set appendNew</b>. Additional data types may be loaded and later {#.show~shown}, but they will be ignored by Jmol.<b>[||background red;<br />data "model example"<br />2<br />testing<br />C 1 1 1<br />O 2 2 2<br />end "model example";show data||]</b><br />Note that the <b>data</b> statement itself should not include a semicolon at the end. In the specific case of a model file, if it is desired to use no new-line characters, you can start the data with  &#124; (vertical bar) and then use a vertical bar to separate all lines: <b>data "model example"&#124;2&#124;testing&#124;C 1 1 1&#124;O 2 2 2&#124;end "model example";show data</b>. For this option you MUST start the data with a vertical bar immediately following the quotation mark closing the label. To include data representing more than one file, first define a data separator using <b>set dataSeparator</b>, for example, <b>set dataSeparator "@TILDE@TILDE@TILDE"</b>. Then use that separator between data sets. The <b>data</b> command thus provides an alternative to the JavaScript Jmol.js (applet-only) <b>loadInline()</b> function. It can be included in any {#.script~}, and commands can come before and after it for further processing. Note that model data in the system clipboard can also be pasted into the applet console or endered into the application using Edit...Paste for direct introduction into Jmol. Starting with Jmol 11.7.40, you can load model data even more simply using the LOAD command. This allows more options.  See also {#.show~show data}, {#.getProperty~getProperty data}, and {#.load~load "@x"}. ','1|2','','')
newCmd('','','*v+11.6;props','Atom property data may also be loaded into Jmol using the data command. To assign property data, first select the atoms to which data are to be assigned. Then, to assign the data, use <b>DATA "property_xxx"</b>, where "xxx" is any alphanumeric string. Data are assigned sequentially to the currently selected atom set, and will be assigned to atoms in the selection set one after another until either the data or the atom list is exhausted. If the data are exhausted before the selected atoms, then the value 0 is recorded for each of the remaining selected atoms. In this way, if only a few atoms need data, only a few can be selected and assigned values. Properties can be checked using atom labels (<b>label %{{property_xxx}}</b>The following special values for xxx read data into Jmol exactly as though read from a model file: coord, formalCharge, occupancy (0 - 100), partialCharge, temperature, valence, vanDerWaals, and vibrationVector. (Jmol 11.8 adds atomName, atomType, and element.)  Any other label will be saved simply under its property name. <br /><br />To read selected data that is in free-field-format (for example, from a spreadsheet), specify which field the data is in using <b>set propertyDataField = n</b>, where n > 0, prior to the data command. Lines having fewer than <b>n</b> tokens will be ignored. If the data is fixed-column format, then <b>n</b> is the starting column number, and set <b>propertyDataColumnCount</b> to be the number of columns to assign to this field. Lines shorter than the required number of characters will be ignored. Setting <b>propertyDataField</b> to 0 indicates that no data field is present, and data are to be read sequentially. <br /><br />Atom selection need not be contiguous. If you want to associate specific data with specific atom numbers, a column containing these atom numbers (starting with 1 for each model loaded) can be specified using <b>propertyAtomNumberField = m</b>. If the data is fixed-column format, then <b>m</b> is the starting column number, and also set <b>propertyAtomColumnCount</b> to be the number of columns to assign to this field. Specifying 0 for <b>m</b> indicates that the set of currently selected atoms should be assigned values from the data.<br /><br />Atom property data may also be loaded from variables. To do this, use add "@x", where x is a variable name <i>within</i> the quotation marks defining the first parameter of the data command: <b>DATA "property_partialCharge @x"</b> or <b>DATA "property_mydata 66 3 @x"</b>. No <b>end</b> line is required. The variable x should already contain a list of numbers, perhaps from using the x = {#.functions~load}("myfile.dat"); perhaps just by creating a string of numbers: x = "2.3 3.4 5.6 7.8...".  <br /><br />The {#.functions~data()} function also allows direct conversion of data into arrays, which can be directly stored in an atom property using, for example, <br /><br /><b>{{*.CA/2.1}}.temperature = data(load("mydata.dat"),6,0,3)</b><br /><br />meaning, "Read the file mydata.dat and store the sixth free-format field of each line starting from the third line as the temperature of the C-alpha carbons of model 2.1."','TEXT','Setting atom properties','')
newCmd('','','*v+11.0;','Defines a set of data in line, ending with a matching <b>end "label"</b>, where "label" is any string. Quotes are required. Certain labels have special meaning and are described more fully below.','*11','&quot;label&quot;','')
newCmd('','','*v+11.0;','Clears the data table.','*2','CLEAR','')
newCmd('','','*v+11.0;','Defines the USER set of van der Waals radii on an element-by element basis. Entries may be separated by semicolons or entered one per line. (Jmol 11.6). In the example given here, carbon (atomic number 6) is given a radius of 1.7, and nitrogen (atomic number 7) is given a radius of 1.8. ','*3','"element_vdw" 6 1.7; 7 1.8 END "element_vdw"','')
newCmd('','','*v+11.6;','Defines a set of data with the given label from a variable (variable <b>x</b> in this case). Quotes are required, but no <b>end</b> command is required.','*12','&quot;label @x&quot;','')
newCmd('','','*v+11.6;','Defines a data set to be paired x,y data inline and ending with <b>end data2d_xxx</b>, where xxx can be any alphanumeric string.','*13','&quot;data2d_xxx&quot;','')
newCmd('','','*v+11.6;','Defines an atom property  based on data provided next inline and ending with <b>end property_xxx</b>, where xxx can be any alphanumeric string. <b>propertyAtomField</b>, <b>propertyAtomColumnCount</b>,  <b>propertyDataField</b>, and <b>propertyDataColumnCount</b> override set values for these parameters.','*16','&quot;property_xxx propertyAtomField propertyAtomColumnCount propertyDataField propertyDataColumnCount&quot;','')
newCmd('','','*v+11.6;','Defines an atom property  based on data provided next inline and ending with <b>end property_xxx</b>, where xxx can be any alphanumeric string. <b>propertyAtomField</b> and <b>propertyDataField</b> are optional, and if provided override the set values for <b>propertyAtomField</b> and <b>propertyDataField</b>.','*15','&quot;property_xxx propertyAtomField propertyDataField&quot;','')


newCmd('.define','','*v+11.2 -- new DYNAMIC_ prefix;rreset','Defines the specified variable to the the atoms selected by the {#.atom expressions~atom expression}. In general, definitions are "static" in the sense that when they are generated with the <b>define</b> command, they represent the matching set of atoms indefinitely. However, if "DYNAMIC_" is at the beginning of the variable name, as, for example, "DYNAMIC_myatoms", then whenever that variable is used it is recalculated. (When used, the prefix "DYNAMIC_" should be dropped.) <br /><br />IMPORTANT NOTE: The <b>define</b> command should be used with some discretion. If you should define a term that later becomes a reserved keyword to any command in any future version of Jmol, your page may not be compatible with that future version. A simple way to avoid this situation is to put a tilde (@TILDE) in front of any definition you make. <b>Do not use a leading underscore (_)</b>, as there are many "hidden" reserved definitions that start with that character. ','2','._variablename','._atom_expression')

newCmd('.delay','','pause','Causes the screen to refresh and the script to stop executing for the specified number of seconds. ','1','.on','')
newCmd('','','','','1','._time_delay','')
newCmd('.depth','','slabdepth',' Slab and Depth together control the percentage of the molecule to be displayed based on clipping planes. See {{#.slab~}}.','1|2','','')
newCmd('.dipole','','*v+11.0 -- NEW;','The <b>dipole</b> command allows for the drawing of a bond or molecular dipole arrow with or without a cross near the tail. Note that without the cross, since it can be drawn from any point in molecular space to any other, a "dipole" can be used by a web page developer for a simple arrow in order point to some particular aspect of the model having nothing to do whatsoever with dipole moments.The values of each dipole can be set by the user or will be estimated using partial charge data or molecular dipole information if available in the loaded model file. Only a very crude calculation is used to estimate at least the direction of all bond dipoles. The general syntax of the <b>dipole</b> command is as follows:  <br />  <br /><b>dipole [objectID] [modifying parameters] [positions]  </b> <br /> <br />','0|1','','')
newCmd('','','*v+11.6;','The optional identifier such as "bond1" that can be referred to in later scripts as $bond1. These words are arbitrary and, starting in Jmol 11.6, if preceded by the optional keyword ID may be any string. The special identifier <b>BONDS</b> (without the keyword ID) refers to the entire collection of bond dipoles -- those dipoled defined specifically as between two atoms. Similarly, the special identifier <b>MOLECULAR</b> (without the keyword ID) is primarily for files for which molecular dipole information is available. The value and placement of this dipole can also be set using the <b>dipole</b> command.','TEXT','ID [object id]','')

newCmd('','','','The dipole is defined using a small set of parameters. These include:<br />[||<b>CROSS</b><br /><b>NOCROSS</b>| include (default) or do not include a 3D cross near the tail of the arrow.   ||<b>DELETE</b>|Deletes the specified dipole if an identifier is given or all dipoles if no identifier is given; not used with any other parameters.||<b>WIDTH x.xx</b>|The width of the dipole in Angstroms. The default value is 0.005 Angstroms.||<b>ON/OFF</b>|Turns on or off the specified dipole or all drawn objects if no identifier is given; not used with any other parameters.||<b>OFFSET x.xx</b><br /><b>OFFSET n</b> | Dipoles are by default centered between the two endpoints. The OFFSET value sets the offset of the dipole from this position along the axis of its endpoints. In Angstroms if a decimal number is given; in percent of the distance between the two endpoints if an integer is used. ||<b>OFFSETSIDE x.xx</b>|The offset of the dipole in Angstroms perpendicular to the axis of its endpoints. The default value is 0.4 Angstroms for atom-based dipoles and 0 for the molecular dipole.||<b>VALUE x.xxx</b> | A decimal number indicates the value of the dipole. Overall scaling is accomplished either by setting this number or using {#.set (misc)~set dipoleScale}. The VALUE keyword is optional.||]','TEXT','[modifying parameters]','')
newCmd('','','','The positions of the endpoints of the dipole are set either using embedded atom expressions in parentheses, such as (atomno=1), or using a specific point in molecular space, {{x y z}}, either as a cartesian coordinate or a {#.fractional coordinates~fractional unit cell coordinate}. If two atoms are designated, then the dipole becomes a member of the "bonds" dipole collection and can be colored with that group. If a set of atoms is indicated, the geometric center is used. Thus, (*) indicates the geometric center of the molecule.','TEXT','[positions]','')
newCmd('.display','','*v+11.0 -- new;dhide','The opposite of {#.hide~}. Displays atoms and associated structures (bonds, halos, stars, cartoons, etc.) and hides all others. <b>Display</b> is similar to {#.restrict~} in its action, but it is far more flexible. Atoms can be added to the displayed set using <b>display displayed or ...</b> or removed from the hidden set using <b>display displayed and not ...</b>. Unlike <b>restrict</b>, the <b>display</b> command does not delete the hidden shapes. Thus, after <b>restrict none</b> all cartoons, traces, spacefill spheres, and bond sticks are effectively deleted. In contrast, <b>display none</b> is easily reversed using <b>display all</b>. ','1','._atom_expression','')

newCmd('.dots','','*v+11.0 adds more options;disp','Turns a dotted surface around the currently selected atoms. See also the {#.geoSurface~} command and the settings {#.set(misc)~set dotsSelectedOnly} and  {#.set(misc)~set dotSurface}.','*11','._on_off{"ON"}','')
newCmd('','','*v+11.6;','Turns dot rendering on and all other rendering off.','*13','ONLY','')
newCmd('','','','Draws dots at the van der Waals radius for the selected atoms. See {misc/radii.xls~radii.xls}.','*2','VANDERWAALS','')
newCmd('','','','Draws dots at the (nominal) ionic radius for the selected atoms if the atom\'s formal charge has been read and is nonzero; uses the nominal covalent bonding radius otherwise ({misc/radii.xls~radii.xls}).','*3','IONIC','')
newCmd('','','*v+11.0;','Draws dots at the indicated percent of the van der Waals radius for each atom (maximum value 1000%).','*4','nn%','')
newCmd('','','*v+11.0;','Draws dots at the indicated radius in Angstroms for each atom (maximum value 10.0 Angstroms).','*5','(decimal)','')
newCmd('','','','Draws dots at the indicated distance in Angstroms beyond the van der Waals radius for each atom (maximum value 10.0 Angstroms). The "+" sign is required.','*6','+(decimal)','')
newCmd('','','*v+11.6;','Draws dots at the radius corresponding to the minimum anisotropic displacement parameter for the selected atoms factored by the given percentage. See also {#.ellipsoid~}.','*7','ADPMIN','n%')
newCmd('','','*v+11.6;','Draws dots at the radius corresponding to the maximum anisotropic displacement parameter for the selected atoms factored by the given percentage. See also {#.ellipsoid~}.','*8','ADPMAX','n%')
newCmd('.draw','','*v+11.6 Jmol 11.6 adds ARROW ARC, ARC, CIRCLE, and ID options, allows for mixed-type point sets, and special options Ramachandran, Quaternion, and PointGroup;iso','The <b>draw</b> command allows for the insertion of points, lines, and planes to a model. The general syntax of the <b>draw</b> command is as follows:  <br />  <br /><b>draw [objectID] [modifying parameters] [positions]  </b> <br /> <br />','0|1','','')

newCmd('','','*v+11.6;','The optional identifier such as "line1" or "plane2" that can be referred to in later scripts as $line1 or $plane2. These words are arbitrary and, starting in Jmol 11.6, if preceded by the optional keyword ID may be any string. Starting with Jmol 11.6, specifically for the options ON, OFF, and DELETE, the id may include a wildcard character (asterisk). Thus, <b>draw v* off</b> turns off all drawn objects having an ID starting with the letter "v".','TEXT','ID [object id]','')

newCmd('','','*v+11.0;','Several options allow for a wide variety of simple structures to be drawn. These include:[||<b>"hoverText"</b>|text that will appear after issuing <b>set drawHover TRUE</b> (Jmol 11.2) ||<b>ARROW</b>|Draws a straight (two-point) or curve (more than two-point) arrow||<b>ARC {{pt1}} {{pt2}} {{ptRef}} {{nDegreesOffset theta fractionalOffset}} SCALE scale DIAMETER diameter</b>|Draws a theta-degree arc in a plane perpendicular to the line pt1--pt2 starting at nDegreesOffset degrees rotation from reference point {{ptRef}} at a point fractionalOffset from pt1 to pt2. The SCALE parameter is used to set the diameter of the overall circle containing the arc; the DIAMETER parameter sets the diameter of the curved arc line itself. <b>ARROW ARC</b> adds an arrow head.||<b>ARC {{pt1}} {{plane}} {{ptRef}} {{nDegreesOffset theta fractionalOffset}}</b>|As above, but uses the plane as a reference to define a perpendicular axis. (Jmol 11.8)||<b>CIRCLE {{pt1}} {{pt2}} SCALE scale DIAMETER diameter</b>|Draws a circle with center at pt1 (which may be an atom expression) in the plane perpendicular to the line between pt1 and pt2. If pt2 is not specified, the circle appears in 2D and remains in the plane of the screen when the model is manipulated. Together, the SCALE and DIAMETER parameters set the overall size of the circle. If no DIAMETER is given and an atom expression is given for pt1, the default diameter is one that includes those atoms; otherwise the default diameter is 1.0 Angstrom. The circle will be filled to form a solid disk unless the MESH NOFILL option is given.||<b>CIRCLE {{pt1}} {{plane}} SCALE scale DIAMETER diameter</b>|Draws a circle around pt1 in the indicated plane.||<b>COLOR (color)</b>|Sets the color of the drawn object at the time it is created. (The {#.color (model object)~color} command can be used retroactively as well.) ||<b>CROSSED</b>|Two lines (already drawn objects) specified next are crossed; switch the order of vertices for defining a plane.||<b>CURVE</b>|Draws a smooth curve through the given positions. ||<b>CYLINDER</b>|Introduced in Jmol 11.6, draw CYLINDER creates a cylinder of the designated diameter. End caps can be set to closed/flat (FILL, the default) or open (MESH NOFILL).||<b>DELETE</b>|Deletes the object if an identifier is given or all drawn objects if none is given; not used with any other parameters.||<b>DIAMETER n</b>|Sets the number of pixels for the diameter of points, lines, arrows, and curves. Note that this means that zooming of the model does not change the width of these objects. Jmol 11.4 allows <b>n</b> to be a decimal value x.x, same as <b>WIDTH x.x</b>, which does scale.||<b>FIXED/MODELBASED</b>|Sets whether the surface generated is to be associated with the fixed window -- and thus appear with all frames/models -- or is to be associated with the currently displayed model (the default).||<b>ON/OFF</b>|Turns on or off the identified object or all drawn objects if no identifier is given; not used with any other parameters.||<b>PERP</b> <br /><b>PERPENDICULAR</b>|Draw this object perpendicular to the next indicated object.||<b>PLANE</b>|Create a four-vertex quadrilateral even if only three points are given.||<b>REVERSE</b>|Reverse the order of vertices used if the next object listed is a line.||<b>ROTATE45</b>|Rotate a perpendicular plane to a line by 45 degrees.||<b>LENGTH (decimal)</b>|The length for a line/axis in Angstroms. The keyword LENGTH is optional.||<b>OFFSET {{x y z}}</b>| offsets the object by the given x, y, and z distances.||<b>SCALE (decimal)<br />SCALE (integer)</b>|SCALE with a decimal value indicates a scaling factor for the drawn object. For example, <b>draw SCALE 1.5 (atomno=1) (atomno=2)</b> draws a line with length 1.5 times the distance from atom 1 to atom 2. The line is centered on the two atoms. The keyword SCALE is required in this case. Note that a draw command can consist of just an identifier and a scale. Thus, if $line1 is already defined, <b>draw line1 SCALE 1.3</b> will rescale that line to 130% of the distance between its defining points. SCALE with an integer number indicates a percent scale. The keyword SCALE is optional in this case.||<b>VECTOR</b> | This option is similar to ARROW, and accepts two points. The first point is the origin; the second is of the form {{dx,dy,dz}}, indicating a vector to the next point rather than the point itself. [Jmol 11.6] ||<b>VERTICES</b> | Generally the geometric center of an atom expression or drawn object is used for positioning. Added just before the atom set or object name reference, VERTICES indicates to use all vertices, not just the center point of the atoms in the expression or the points in the object.||<b>WIDTH x.x</b>|Sets the diameter of points, lines, arrows, and curves to a given width in Angstroms. Objects drawn will be scaled based on perspective and zoom setting (Jmol 11.4).||<b>"text"</b>| Starting with Jmol 11.2, a simple text label can accompany drawn objects. The text appears near the first point. Starting with Jmol 11.6, text starting with ">" will be associated with the last point instead of the first. The ">" character will be stripped before the text is displayed.||]','TEXT','[modifying parameters]','')
newCmd('','','*v+11.0;','Positions define position of the point, the endpoints of the line/axis, or the corners of a plane. Positions can be indicated in any combination of any of the following four ways. Prior to Jmol 11.6, mixed types were grouped in the order shown here prior to processing; with Jmol 11.6, points are processed in a more intuitive way, in the order given on the command line. <br />[||{{x, y, z}}|a model-frame cartesian coordinate, in braces,  ||{{x, y, z/}}|for crystal structures, a unit-cell {#.fractional coordinates~fractional coordinate}, in braces,  ||$object|a previously defined drawing object such as $line1 or $plane2, preceded by "$". ||(atom expression)|an atom expression, in parentheses.||@{{ {{atomExpression}}.split()}} | atom expressions split based on model index (Jmol 11.4).||] In addition, starting with Jmol 11.6, if two parameters are given, where the first evaluates to a point and the second is a four-vector {{a b c d}}, a line is drawn from the point to the nearest point on the plane defined by <b>ax + by + cz + d =  0</b>. (Note that because quaternions and axisAngle are stored in quaternion format, which is internally the same as that used for planes, if a quaternion or axisAngle is used in this context, the line will be along the axis of rotation represented by the quaternion or axisAngle <b>q</b> to a point on a plane defined by <b>d = q.w = cos(theta/2)</b>, where <b>theta</b> is the rotation angle).','TEXT','[positions]','')
newCmd('','','*v+11.0;','Display options for DRAW are indicated in the following table. These may be given at the end of the definition or in a later command having just these keywords and the identifier (or "ALL") of the desired draw object.  <br />[||<b>FILL/NOFILL</b>| Display the drawn opject as a smoothly filled surface.||<b>FRONTONLY/NOTFRONTONLY</b>| Display only the front half of the surface. This can be useful when the options <b>mesh nofill</b> are used. ||<b>FRONTLIT /BACKLIT /FULLYLIT</b>| In some cases the object may appear flat. Using BACKLIT will fix this; FULLYLIT makes exterior and interior surfaces bright; FRONTLIT is the default setting. ||<b>MESH/NOMESH</b>| Display a mesh of lines intersecting at the vertexes used to construct the object. For cylinders, the combination <b>MESH NOFILL</b> creates a cylinder with no end caps. ||<b>ON/OFF</b>| Turn the object ON or OFF, but do not delete it. ||<b>OPAQUE/TRANSLUCENT n</b>| Display the object as an opaque or translucent object. Several translucent options are available; see the {#.color~} command. ||]','TEXT','[display options]','')
newCmd('','','*v+11.0;','Deletes all draw objects','*31','DELETE','')
newCmd('','','*v+11.8;','Draws a vector representing the local helical axis for the selected amino acid or nucleic acid residue, connecting it to the previous residue in its chain. The length of the arrow is the vertical height per residue. (Jmol 11.8)','*35','HELIX AXIS','')
newCmd('','','*v+11.6;','Draws vectors for the previously selected residues representing the quaternion frame and rotational axis for each residue. The parameters for this command are the same as for {#.quaternion~}, but with DRAW prepended to the command. Vectors are named based on the axis (x, y, z, q), residue number, and chain. (Jmol 11.6)','*6','QUATERNION','[parameters]')
newCmd('','','*v+11.6;','Draws curved arrows marked with PHI and PSI angles in planes perpendicular to the N-CA and CA-C bonds of the selected amino acids, respectively.','*7','RAMACHANDRAN','')
newCmd('','','*v+11.6;pg','Calculates and draws point group symmetry planes and axes for a symmetrical or nearly symmetrical molecule. As for {#.calculate~calculate pointgroup}, the calculation is carried out only on the currently selected atoms and is limited to at most 100 selected atoms. Parameters include specification of a subset to draw (Cn, C2, C3, C4, C5, C6, C8, Sn, S3, S4, S5, S6, S8, S10, S12, Cs, Ci) optionally followed by an index (for example, <b>draw POINTGROUP C3 2</b> draws the second C3 axis only). A second option, SCALE x, allows adjusting the scale of the drawn planes and axes. The default scale of 1 puts the edge of planes directly through the outermost atoms. This command automatically sets <b>perspectiveMode OFF</b> so as to properly represent the planes and axes.  ','*5','POINTGROUP','[parameters]')
newCmd('','','*v+11.8;','Draws a frame (an x,y,z axis set) at the given center with the given quaternion orientation. Quaternions are expressed using the {#.functions~quaternion()} function within a math @{{…}} wrapper. For example, <b>draw ID "q1" frame {{0 0 0}} @{{quaternion(1,0,1,0)}}</b> draws a frame at the origin that has been rotated 90 degrees relative to the Y axis. (Jmol automatically normalizes the quaternion to q0=0.70710677, q1=0, q2=0.70710677, q4=0, which represents a 90-degree rotation about the Y axis.)','*34','FRAME','{{atom expression}}','{{quaternion}}','')
newCmd('','','*v+11.8;','Draws a graphic representation of a crystallographic space group symmetry operation. Operations include simple rotations, screw rotations, rotation-inversions, mirror planes, and glide planes, Either a number (for one of the model\'s symmetry operations) or a string indicating a Jones-Faithful operation may be used. The position may be an atom expression may be a point. If a point, it can be expressed either as a cartesian coordinate or a fractional coordinate (using a "/" in at least one position -- for example, {{ 1/2 0 0}}. The ID of the draw command is prepended to the drawn object IDs. For example, <b> draw ID "s1" SYMOP "x,1/2-y,z" {{1/2 1/2 1/2}}</b>. See also the {http://chemapps.stolaf.edu/jmol/docs/examples-11/showsym.htm~Jmol Crystal Symmetry Explorer}.','*9','SYMOP','[n or &quot;x,y,z&quot;]','{{atom expression}}','')
newCmd('','','*v+11.2;','Lists all draw objects.','*4','LIST','')


newCmd('.echo','','*v+11.2 -- adds variable options;label;math','In Jmol models can be annotated in one of three ways. Text can be associated with a specific atom using a {#.label~}, text can appear when the user hovers the mouse over an atom or other user-defined point in space for a designated period of time ({#.hover~}), and text can be placed at a specified position on the window (2D <b>echo</b>) or at a point in space (3D <b>echo</b>). In addition, the text is echoed in the Java console, the Jmol {#.console~}, and the {#.set (callback)~MessageCallback} or {#.set (callback)~EchoCallback} function, if defined. Multi-line text can be generated using a vertical bar as a line separator.<br /><br /> See also the {#.message~} command for variable-displaying capabilities that send information to the consoles and callback functions without displaying text. Starting with Jmol 11.6, one can also place JPEG, PNG, or GIF images at either a 2D screen position or a 3D molecular position. See {#.set echo~} for details. ','1','(string)','')

newCmd('.ellipsoid','','*v+11.6 NEW;disp','The <b>ellipsoid</b> command, introduced in Jmol 11.6, displays anisotropic displacement parameters (thermal ellipsoids) based on crystallographic Uij data in CIF or PDB files. The resulting ellipsoids have three mutually perpendicular axes that are not necessarily the same length. Overall ellipsoid size can be set to a percentage value (default 50%). Rendering styles are set globally using the <b>set</b> command and one or more of the settings described below. The diameter of the axis and arc lines can be set using <b>set ellipsoidAxisDiameter x.x</b> where x.x is a distance in Angstroms (default 0.02). Note that the Uij data when read from CIF files are also stored in the .temperature value for atoms as 100 times the geometric mean of the diagonal U-factor parameters, 100 * (U11 * U22 * U33)^0.3333. <br /><br /> User-defined ellipsoids can also be created by specifying the keyword ID followed by a user-named ID. These parameters may be indicated in any order, but the ellipsoid is not defined until the AXES parameter is specified.<br /><br /> [||<b>set ellipsoidAxes</b>|<img align="right" src="img/ellipsoidaxes.jpg">This option may be combined with any other option. When combined with balls, the color of the axes are set to white or black in order to contrast with the background.||<b>set ellipsoidArcs</b>|<img align="right" src="img/ellipsoidarcs.jpg">When combined with balls, the color of the arcs are set to white or black in order to contrast with the background. This option is ignored when dots are displayed.||<b>set ellipsoidBall</b>|<img align="right" src="img/ellipsoidball.jpg">This option is the default option and may be combined with ellipsoidAxes, ellipsoidArcs, or ellipsoidFill (which displays a cut-out octant).||<b>set ellipsoidFill</b>|<img align="right" src="img/ellipsoidfillarcs.jpg"><img align="right" src="img/ellipsoidfillball.jpg"><img align="right" src="img/ellipsoidfillspace.jpg">This option affects the rendering of arcs and balls. In the case of arcs, it fills in the arcs to form a set of three elliptical planes; in the case of balls, it provides a cut-out octant. When combined with {#.spacefill~spacefill ADPMIN n%}, where n is the current percentage size of the ellipsoid, the combination of fill and arcs provides a strikingly unique rendering of the anisotropic displacement parameters for an atom. ||<b>set ellipsoidDots</b>|<img align="right" src="img/ellipsoiddots.jpg">This option renders a random set of dots defining the ellipsoid that sparkle as the model is manipulated. The number of dots can be set using <b>set ellipsoidDotCount n</b> where n is an integer (default 200). This option is ignored when ellipsoid balls are displayed.||]','0|1','','')
newCmd('','','*v+11.6;','Turns ellipsoids on or off for the currently selected atoms.','*1','._on_off{"ON"}','')
newCmd('','','*v+11.6;','Sets the size of the ellipsoids for the currently selected atoms.','*2','nn%','')
newCmd('','','*v+11.6;','Sets the three perpendicular axes for the ellipsoid. These axes should be perpendicular. If they are not, the ellipsoid may not be rendered, or its shape will be unpredictable. The ellipsoid is not displayed until this parameter is set.','*35','ID','[object id]','AXES','{{ax ay az}} {{bx by bz}} {{cx cy cz}}')
newCmd('','','*v+11.6;','Sets the color of the ellipsoid using parameters described in the {#.color~} command. ','*5','ID','[object id]','COLOR','[color parameters]')
newCmd('','','*v+11.6;','Sets the scale of the ellipsoid relative to its axes lengths.','*8','ID','[object id]','SCALE','(decimal)')
newCmd('','','*v+11.6;','Deletes the specified ellipsoid.','*6','ID','[object id]','DELETE','')

newCmd('','','*v+11.6;','Sets the center for this ellipsoid the specified point (which may be fractional).','*41','ID','[object id]','CENTER','{{x y z}}')
newCmd('','','*v+11.6;','Sets the center for this ellipsoid to the center of the specified atoms.','*42','ID','[object id]','CENTER','{{ atom expression }}')
newCmd('','','*v+11.6;','Sets the center for this ellipsoid to the point specified by the object name (draw or ellipsoid)','*43','ID','[object id]','CENTER','$object')
newCmd('','','*v+11.6;','Turns this ellipsoid on.','*31','ID','[object id]','ON','')
newCmd('','','*v+11.6;','Turns this ellipsoid off.','*32','ID','[object id]','OFF','')
newCmd('.[export]','','*v+11.4;','The Jmol application (not the applet) allows export of the currently rendered scene as files that can be read by {http://www.avatech.com/solutions/visualization/product-details.aspx?product=17~Maya}, {http://www.povray.org/~POV-Ray}, and VRML readers. See the {#.write~} command for details.','0','','')

newCmd('.exit','','*v+11.0 -- new;pause;quit','When the {#.set (files and scripts)~script queue} is turned on, each script waits for the previous to complete. Either {#.quit~} or <b>exit</b> at the very beginning of a script command halts any previous still-running script. Processing then continues with the second command on the line. Anywhere else in the command, <b>quit</b> and <b>exit</b> abort that script only. In addition, <b>exit</b> clears the script queue of any remaining scripts, thus stopping all script processing.','0','','')
newCmd('.font','','label','Sets font size, face (serif, sansSerif), and style (plain, italic, bold, bolditalic) in labels and other text-bearing elements. If only a font size is given and the object is a label, then only the size of the font is changed, not the font face or style. For all other objects, if only a font size is given, the font face and style are changed to sansSerif. In Jmol 11.6, for <b>font ECHO</b> you can apply a scaling factor that allows the font to scale with zoom. This scaling factor, in "pixels per micron", determines the absolute size of the font relative to a "standard" window size. (Scaled {#.echo~} fonts can also be created using <b>set fontscaling TRUE</b>, then defining the echo text. The scaling factor also applies to images added with the {#.set echo IMAGE~set echo} command.','5','._object_with_text','._fontsize','._fontface{"SansSerif"}','._fontstyle{"Plain"}')

newCmd('.for','','*v+11.4 -- new flow control options;','See {#.if_while_for~}.','1|2','','')

newCmd('.[fractional coordinates]','','*v+11.0 NEW;','Several Jmol commands, namely {#.center~}, {#.centerAt~}, {#.dipole~}, {#.draw~}, {#.isosurface~}, {#.moveTo~}, {#.rotate~}, {#.spin~}, {#.translateSelected~}, and {#.unitcell~}, accept coordinates in place of atom expressions. These coordinates are introduced using braces: {{x, y, z}} or {{x y z}}. (The commas are optional.) However, when the file data are crystallographic, and the coordinates have been derived by transformation of unit cell coordinates into cartesian coordinates, one can use the unit cell fractional coordinate system instead. The designation of a coordinate as fractional is simplicity itself: just include somewhere in one of the three coordinate values a fraction symbol, "/". Thus, {{1/2, 0, 0}} is a fractional coordinate, and it will be automatically transformed into the correct cartesian point. This allows formation of commands such as <b>set unitCell {{1/2, 1/2, 1/2}}</b> to move the unit cell to a new crystallographic orgin (for display purposes only). Since n/1 is n, one can use decimals as well, writing {{0.5/1, 0, 0}} instead of {{1/2, 0, 0}}. And since "/1" is not particularly informative, the "1" can be left off to give {{0.5/, 0, 0}} or {{0.5, 0, 0/}} as sufficient indication of fractional coordinates.','0','','')


newCmd('.frame','models','*v+11.2 -- expanded multifile capability;anim','Sets the current animation frame. Numbers refer to the physical position of the model in the file (1 being the first). Same as the {#animation~animation frame} command. See also {#.model~}. Note that you can show specific pairs or sets of frames or models by using <b>frame all</b> followed by <b>display (*/n,*/m,*/p)</b>, where n, m, and p are frame numbers. See also {#.set(misc)~set backgroundModel}. For the applet, if {#.set (callback)~AnimFrameCallback} is enabled, a message indicating the frame change is sent to the associated JavaScript function. The simple command <b>frame</b> has no observable effect but forces an animFrameCallback message to be sent, which also serves to update the pop-up context menu. This is sometimes useful if scripting has changed something in the structure such as the addition of vibration vectors that would alter menu options (Jmol 11.8). ','1|1','','')
newCmd('','','*v+11.0;','Go to a specific model in the case of loading a single file with multiple models. In the case of the loading of a single PDB file containing MODEL records, the integer used here corresponds to the number in that record. In all other situations, the number used here is the sequential index of the model in the file, starting with 1. If more than one file is loaded, the number indicates the file, and all models in that file are overlaid.','*10','(integer >= 1)','')
newCmd('','','*v+11.2;','Go to a specific model in a specific file when one or more files are loaded. The format for specifying which model to go to is the same as for {#.select~} or {#.display~}: file.model. For example, <b>frame 2.3</b> goes to the third model in the second file listed in the most recent {#.load~} command. Note that atoms in models chosen with the <b>frame</b> command must also be in the current {#.display~} set in order to be visible. So, for example, <b>display 2.1;frame 2.2</b> will display nothing; <b>display connected(hbond);frame 2.2</b> will display only the hydrogen-bonded atoms in model 2.2. ','*12','(decimal)','')
newCmd('','','*v+11.2;','Sets the animation range and displays a range of models, possibly spanning multiple files. The hyphen is optional. If the hyphen is present but the second model number is missing, then all models from the designated model forward are assumed.','*12','(decimal)','-','(decimal)','')
newCmd('','','*v+11.0;','Same as <b>frame ALL</b>.','*16','0&#46;0','')
newCmd('','','*v+11.0;','Overlay all frames of the current frame range set. Note that this may not be all the models if the frame range has been set to a subset of the models or if multiple files are loaded and only models within one file have been specified with a previous <b>frame</b> command.','*15','0','')
newCmd('','','*v+11.0;','(Jmol 11.8) Provides a way to align structures across a set of frames. This is important for certain animations. The atom expression is evaluated per frame, and the resultant point is aligned in each case.','*19','ALIGN','{{ atom expression }}')
newCmd('','','*v+11.0;','Resets the frame range to all models and overlays them.','*20','ALL','')
newCmd('','','*v+11.0;','Go to the last frame in the frame range set.','*25','LAST','')
newCmd('','','*v+11.0;','Go to next frame in the frame range set.','*30','NEXT','')
newCmd('','','*v+11.0;','Pause animation at the current frame.','*40','PAUSE','')
newCmd('','','*v+11.0;','Start playing at the specified frame number (current frame if number is omitted). Direction, speed of play, and mode of animation (ONCE, LOOP, or PALINDROME) are set using {#.animation~animation mode}.','*50','PLAY','(starting frame)')
newCmd('','','*v+11.0;','Start playing at the specified frame number (current frame if number is omitted), reversing the direction.','*60','PLAYREV','(starting frame)')
newCmd('','','*v+11.0;','Go to previous frame in the current frame set.','*70','PREVIOUS','')
newCmd('','','*v+11.0;','Sets the range of frames to play as an animation and sets the current frame to the first number given. If the starting frame number is larger than the ending frame number, then play is in reverse. If only one number is given, then the range is set from that frame through the last frame in the file. If both numbers are omitted, then the range is set to include all frames in the file.','*80','RANGE','(starting frame)','(ending frame)','')
newCmd('','','*v+11.0;','Resume playing from the current frame. (Same as PLAY.)','*90','RESUME','')
newCmd('','','*v+11.0;','Return to the first frame in the frame range set. ','*91','REWIND','')









newCmd('.frank','frank','*v+11.0 -- new;','Determines whether or not "Jmol" is indicated in the bottom right corner of the window.','0|1','','')
newCmd('','','*v+11.0;','','1','._on_off','')
newCmd('.[functions]','','*v+11.8 -- adds support for quaternion functions;math','Jmol math allows for two types of functions. The first simply operate on their given parameters. For example, <b>x = load("myfile.dat")</b> loads the variable x with the contents of the file "myfile.dat". The second operate on the elements of a variable individually in some way and are referred to here as <i>item selector</i> functions. In the listings below, these functions all begin with a period character. For example, <b> x = {{carbon}}.bonds</b> operates so as to deliver the bond set associated with the carbon atoms; <b> x = "this is a test".replace("s","S")</b> operates on the individual characters of the string "this is a test"; <b> x = {{oxygen}}.label("%U")</b> assigns x the list of labels for the oxygen atoms in the model. Some functions can be used in both contexts. For example, <b> x = distance({{oxygen}}, {{carbon}}) </b> delivers the distance from the CENTER of the oxygens to the CENTER of the carbons. <b> x = {{oxygen}}.distance{{carbon}}</b> delivers the AVERAGE distance of an oxygen atom to the CENTER of the carbons. These are subtly different. Some functions require parentheses; some do not. Basically, if a function CAN have parameters, for example, .join(), .split(), or .label(), then it MUST have at least empty (); if a function CANNOT have parameters, for example, .atoms, .bonds, or .ident, then it NEVER uses parentheses.','0|1','','')
newCmd('.[functions]','','*v+11.6 -- allows user-defined function redefinition;*v-11.8;math','Jmol math allows for two types of functions. The first simply operate on their given parameters. For example, <b>x = load("myfile.dat")</b> loads the variable x with the contents of the file "myfile.dat". The second operate on the elements of a variable individually in some way and are referred to here as <i>item selector</i> functions. In the listings below, these functions all begin with a period character. For example, <b> x = {{carbon}}.bonds</b> operates so as to deliver the bond set associated with the carbon atoms; <b> x = "this is a test".replace("s","S")</b> operates on the individual characters of the string "this is a test"; <b> x = {{oxygen}}.label("%U")</b> assigns x the list of labels for the oxygen atoms in the model. Some functions can be used in both contexts. For example, <b> x = distance({{oxygen}}, {{carbon}}) </b> delivers the distance from the CENTER of the oxygens to the CENTER of the carbons. <b> x = {{oxygen}}.distance{{carbon}}</b> delivers the AVERAGE distance of an oxygen atom to the CENTER of the carbons. These are subtly different. Some functions require parentheses; some do not. Basically, if a function CAN have parameters, for example, .join(), .split(), or .label(), then it MUST have at least empty (); if a function CANNOT have parameters, for example, .atoms, .bonds, or .ident, then it NEVER uses parentheses. <br /><br />In addition, Jmol allows for user-defined functions. You can define functions to do simple tasks, include parameters to create subroutines, and add return values to create math functions.  Functions must be defined prior to use. Similar to the JavaScript language, you can redefine a function as many times as you wish, You can save a function\'s definition using <b>myFunctionDef = script("show function myFunction")</b> where function <b>myFunction</b> has been defined. This can be useful if a function definition is to be replaced and later returned to its original value using <b>script inline @myFunctionDef</b>. With applets, if the function name starts with an underscore, "_", then the function will be defined for ALL applets, not just the one running the script. <br /><br />[||function rotateModel<br />&nbsp;&nbsp;&nbsp;rotate {{atomno=1}} {{atomno=2}} 10 <br />end function<br /><br />rotateModel|Any commands within the function declaration are processed with a single command word.|| function rotateModelX(i,j,n)<br />&nbsp;&nbsp;&nbsp;rotate {{atomno=i}} {{atomno=j}} @n <br />end function<br /><br />rotateModelX(10,11,30)|Any number of parameters may be passed into a function. The variable names are local to that function.|| function getDistance(i,j)<br />&nbsp;&nbsp;&nbsp;var&nbsp;d&nbsp;=&nbsp;({{atomno=i}}.distance({{atomno=j}})*100)%0 <br />&nbsp;&nbsp;&nbsp;return d<br />end function<br /><br />print "the distance is " + getDistance(3,5)|Variables preceded by "var" as in this example are local to that function.|| function getXplusY<br />&nbsp;&nbsp;&nbsp;var&nbsp;return&nbsp;_atom.x&nbsp;+&nbsp;_atom.y<br />end function<br /><br />print {{atomno=3}}.getXplusY<br />print {{*}}.getXplusY.min<br />print {{*}}.getXplusY.max<br />print {{*.CA}}.getXplusY.all<br />|Starting with Jmol 11.7.10, you can define atom selector functions. The local variable <b>_atom</b> will represent the selected atom within the function. Such function references may include parameters in parentheses provided .min, .max, and .all are not used.||] <br /><br />. ','0|1','','')



newCmd('','','*v+11.2;','Several of these functions are described more fully under the heading {#.atomexpressions~atom expressions}, as they can also be used in commands such as {#.select~} and {#.display~}.[||<b> x = acos(y)</b>|the arccosine of y, in degrees in the range 0 to 180 (Jmol 11.8).||<b>x = angle(a,b,c)</b>|the a-b-c angle, where a, b, and c can be points or atom sets.||<b>x = angle(a,b,c,d)</b>| the dihedral angle a-b-c-d is measured.||<b>x = connected(...)</b>|See the discussion of connected() at {#.atomexpressions~atom expressions}.||<b>x = cos(y)|the cosine of y, where y is in degrees  (Jmol 11.6)||<b>x = cross(a,b)</b>| the cross product of two vectors of the form {{x,y,z}} (Jmol 11.6)||<b>x = data({{atomset}},"type")</b>|creates model file data of the type MOL, PDB, or XYZ for the selected atom set. ||<b>x = data("dataset_name")</b>|places the text of the data set created using the {#.data~} command into variable x.||<b>x = data(stringData,fieldOrColumn,columnCount,firstLine)</b>|separates stringData into lines, then reads lines starting from firstLine (1 being the first line). Data are read from free-format field or column fieldOrColumn. If the data are free-format, then set columnCount = 0, otherwise columnCount indicates the number of columns to read for each data point. The data() function returns a newline-separated list, which can be read directly into atomic properties, for example, using <b>{{*}}.partialCharge = data(load("mydata.mol2"),9,0,7)</b>.||<b>x = distance(a,b)</b>| The distance from the geometric center of a to the geometric center of b, where a and b are atom expressions or coordinates.||<b>x = file("filename")</b>| the full path to the indicated file name. Note that <b>file("?")</b> displays a file dialog, which allows the user to navigate to a different directory, and <b>file("")</b> returns the full path to the current default directory (Jmol 11.8)||<b>x = format("sprintf format", a, b, c, ...)</b>|This function creates a string using a format similar to that used in C++ to format a set of variables into a string with special codes that start with %. While not an exact implementation of this format, there are strong similarities. Here a, b, and c are variable names, and "sprintf format" is the format string containing a </b>%n.mX</b> code for each variable. As for {#labelcolumnformatting~labels}, <b>n</b> and <b>m</b> indicate column formatting and precisions. Both <b>n</b> and <b>.m</b> are optional. Here, <b>X</b> indicates the variable type (Jmol 11.8), whereas in, for example, {{*}}.label("%a"), <b>X</b> represents an atom property, and the type of formatting is determined automatically from that. The options for <b>X</b> include:<br />[||   <b>i</b> or <b>d</b>| integer. Either i or d can be used synonymously.||   <b>f</b>|float/decimal. A negative value for m indicates to use scientific notation with a total of -m digits. The default is full width, full precision.|| <b>e</b>|exponential (scientific notation). "%8.3e" is equivalent to "%8.-3f". ||   <b>p</b>|point. Each of the three coordinates is formatted according to the specified width and precision. The default is %6.2p. ||   <b>q</b>|quaternion/plane/axisangle. Each of the four elements of the vector {{x y z w}} are formatted according to the specified width and precision. The default is %6.2q||   <b>s</b>|string. Values for precision, m, determine maximum number of characters starting from the left (m > 0) or right (m < 0). So, for example, <b>print format("%0.-3s","testing")</b> prints "ing".  ||]<br />For example: <b>calculate straightness;print format("average straightness = %4.2f", {{*}}.straightness)</b>||<b>x = getProperty("type",parameters...)| The {#.getProperty~property} of the given type is returned as a Jmol math list, <b>print getProperty()</b> by itself giving the list of available types. Each property type has its own intrinsic structure, but in general the parameters may include an initial atom set specification followed by one or more key values and, in the case of arrays, an item selector (introduced in Jmol 11.4). For example, <br /><br /><b>print getProperty("boundboxInfo","center")</b><br /><b> x = getProperty("atomInfo",{{atomno=3}})</b> <br /><b>x = getproperty("bondInfo",{{*}},2,"atom1", "sym")</b>||<b>x = javascript("...")</b>|returns the result of evaluating the specified JavaScript. Applet only; disallowed if on the web page _jmol.noEval = true.||<b>x = label(...)</b>| See <b>x = format(...)</b>, above.||<b>x = load("filename")</b>| Load the data from the specified file into variable x.||<b>x = load("filename", nBytesMax)</b>| Load the data from the specified file into variable x, but no more than the specified number of bytes. (Jmol 11.8. Since this function returns "java.io.FileNotFoundException: ..." when working from a local drive, the function <b>x = load("filename", 0)</b> can be used to test for the existance of a file. If the function returns the empty string "", then the file exists; if it returns an error message, then the file does not exist. So, for example, the following code loads a PDB file from the RCSB only if not found on the local drive:<b><br /><br />if (load(pdbid + ".pdb", 0) == "") {{load @{{pdbid + ".pdb"}} }} else {{load @{{"=" + pdbid}} }}<br /><br /></b>||<b>x = plane(pta,ptb,ptc,ptd)</b>|creates an {{x y z w}} plane from the first three points, and assigns the signs of x, y, z, and w to correspond to a positive distance to ptd as measured with the distance() function. Parameters may be mathematical expressions. (starting with Jmol 11.4)  ||<b>x = plane(a, b, c, d)</b>|creates the four-vector {{a b c d}}, which represents a plane satisfying the equation <b>ax + by + cz + d = 0</b>||<b>x = plane("{{a b c d}}")</b>|creates an plane satisfying the equation <b>ax + by + cz + d = 0</b> from a string equivalent. As for all Jmol math expressions, parameters may be mathematical expressions. (Jmol 11.4) ||<b>x = point(a,b,c)</b>|Creates an {{x y z}} point. Parameters may be mathematical expressions. (starting with Jmol 11.4) ||<b>x = point("{{x,y,z}}")</b>|creates an {{x y z}} point from the string equivalent. Parameters may be mathematical expressions. (starting with Jmol 11.4) ||<b>x = plane(pta,ptb,ptc)</b>|creates an {{x y z w}} plane through the three given points, which may themselves be mathematical expressions that evaluate to {{x y z}} points or atom expressions. (Jmol 11.4)  ||<b>x = quaternion({{x y z}},theta)</b>|the quaternion {{x y z w}} associated with a rotation of <b>theta</b> degrees (counter-clockwise) around axis {{x y z}}. {{x y z}} need not be a unit vector -- Jmol will normalize it automatically. (Jmol 11.6)||<b>x = quaternion("{{x y z w}}")</b>|the unit quaternion {{x y z w}} produced by normalizing the specified quaternion. That is, where <b>theta</b> is the rotation angle, and <b>q0 = w = cos(theta/2)</b>, <b>{{x y z}} = sin(theta/2) * unitNormal</b>. (Jmol 11.6)||<b>x = quaternion(q0, q1, q2, q3)</b>|the unit quaternion {{x y z w}} produced by normalizing the specified quaternion. Note that q0 is first in the list of parameters, even though Jmol will store the quaternion in the form {{q1/f, q2/f, q3/f, q0/f}} where <b>f</b> is sqrt(q0*q0 + q1*q1 + q2*q2 + q3*q3). (Jmol 11.6) ||<b>x = quaternion({{m00 m10 m20}}, {{m01 m11 m21}})</b>|the unit quaternion corresponding to the rotation matrix having the first two column vectors indicated. (Jmol 11.8)||<b>x = quaternion({{center}},{{x-axis point}}, {{xy-plane point}})</b>|the unit quaternion associated with a frame that has a center at the first parameter position, an x axis in the direction of the second parameter position, and a y axis in the plane of the three parameter positions. These parameters may be atom expressions. For example, <b>x = quaternion({{215.CA}},{{215.C}},{{215.N}})</b> creates the "standard" quaternion for residue 215. The z axis will be generated using the x and y axes and the right-hand rule. (Jmol 11.8)||<b>x = script("...")</b>|returns the output from the specified script command; particularly informative script commands include {#.getProperty~} and {#.show~}.||<b>x = script("...", appletName)</b>|returns the output from the specified script command run in one or more applets. For example, <b>print script("show orientation moveto", 2)</b> will print the orientation moveto command for an applet with name "2" or, if that does not exist, "jmolApplet2". See {#.script~} for details. ||<b> x= select(x;{{a}};b)</b>|selects atoms from the atom expression <b>{{a}}</b> based on the boolean expression <b>b</b>. (Jmol 11.6) Note the use of semicolons, not commas, to separate the three components of this function. The variable <b>x</b> is local to the function, and when it appears in the boolean expression in the form <b>x.<i>property</i></b> represents a single atom of the atom expression. For example, <b>x = select(a;{{*}};a.distance({{0 0 0}}) > 3 and a.elemno > 18)</b>. select() functions can be nested -- just use two different variable names: <b>x = select(x;{{*.ca}};x.phi < select(y; {{*.ca}}; y.resno = x.resno + 1).phi)</b>. The select() function provides a powerful selection mechanism that can utilize any Jmol math expression involving properties of an atom. (In contrast, {#.select~} command comparisons are limited to =, &lt;, &gt;, &lt;=, and &gt;=, and values are rounded to the nearest 1/100th).   ||<b>x = sin(y)|the sine of y, where y is in degrees (Jmol 11.6)||<b>x = sqrt(y)|the square root of y (Jmol 11.6)||<b>x = substructure("smiles")</b>| find atoms matching the given smiles string, which may include bond types such as = or - between atoms. Note that unspecified bond evaluates to single, not "any". (This behavior may be revised in future releases.) {#.atomexpressions~atom expressions}||<b>x = within(...)</b>|matches a wide variety of atoms that are in some way "within" another atom set or plane or "within some distance" of any one of a set of atoms or a plane.||<b>x = write(...)</b>|the output of the {#.write~} command is loaded into variable <b>x</b>. The parameters are those of the write command. For example, <b>x = write("PDB")</b> or <b>x = write(quaternion, "r", "difference2")</b>. Note that <b>x = write("image")</b> is not supported.||]','TEXT','x = f(y) functions','')
newCmd('','','*v+11.2;','These functions operate on coordinates, either the geometric center of a set of atoms expressed as {{atom expression}} or a coordinate point expressed as {{x y z}}. The unit cell system used is the currently defined {#.unitcell~} for the current model. If more than one model is visible, all coordinates are considered Cartesian coordinates, and these functions are not distinguishable. <br /><br /> [||<b>x = pt.xyz</b> | the Cartesian coordinates for the point.  For example, if <b>pt = {{1/2 3/2 1}}</b> in an orthonormal unit cell with a = 28.0, b = 5.04, c = 6.04, then pt.xyz would equal {{14.0 7.56 6.04}}.  || <b>x = pt.fxyz</b>| the fractional coordinates of a point. In the same case, <b>pt.fxyz</b> would be {{0.5 1.5 1.0}}. (Jmol 11.8) ||<b>pt.fx</b>, <b>pt.fy</b>, <b>pt.fz</b>| The fractional x, y, and z coordinates, respectively.|| <b>x = pt.uxyz</b>| the unit-cell normalized point in the range [0,1). In this case, <b>pt.uxyz</b> would be {{0.5 0.5 0}}. (Jmol 11.8)||<b>pt.ux</b>, <b>pt.uy</b>, <b>pt.uz</b>| The unit cell x, y, and z coordinates, respectively.  || <b>pt.x</b>, <b>pt.y</b>, <b>pt.z</b>| The x, y, or z component of the point, regardless of the unit system.  ||]<br /><br />Note that the fractional notation {{1 1/2 1}} is immediately converted to Cartesian coordinates, so {{1/2 3/2 1}} = {{14.0 7.56 6.04}} in this case, and {{1/2 3/2 1}}.y = 7.56, whereas {{1/2 3/2 1}}.fy = 1.5, and {{1/2 3/2 1}}.uy = 0.5. Note that if vibration vectors are set using, for example, <b>{{atomno=3}}.vxyz = {{1/2 1/2 1/2}}</b>, then the <b>frame</b> command should be sent so as to update the popup menu so that the <b>vibration</b> menu item is enabled (Jmol 11.8).','TEXT','coordinate transforming .xxx functions','')
newCmd('','','*v+11.2;*v-11.8;','These functions operate on the individual elements of some group or listing. In addition to these are all of the atom properties described under the heading {#.atomexpressions~atom expressions}, for example, <b> x = {{oxgyen}}.temperature</b>, in which case they give the average value unless modified further with ".min" or ".max" -- <b>x = {{*}}.temperature.max</b>. <br /><br /> [||<b>x = y.all</b>| If y is a measure, such as <b>{{selected}}.vanderwaals</b>, then appending .all creates a list of those measures. This list can be used to transfer one property to another, as in: <b>{{*}}.partialCharge = {{*}}.temperature.all</b>, which would allow temperature data to be used for partial charges in an <b>isosurface molecular map MEP</b> command, for instance. (See also <b>.min</b> and <b>.max</b>.)  ||<b>x = y.atoms</b>|The atoms associated with a set of bonds.||<b>x = y.bonds</b>| The bonds associated with the specified atoms, using the current setting of <b>bondModeOr</b> (true, bonds having one OR the the other atom within this set; or false, bonds having BOTH atoms within the set) ||<b>x = y.boundbox</b>|A Jmol math list containing the boundbox center, vector to corner, and two opposite corners associated with this atom set [[Jmol 11.3.45]]||<b>x = y.color</b>|The average color of the atoms in the set y expressed as a {{r,g,b}} coordinate in color space. If y is already a point, then .color converts this to a string of the form [[xRRGGBB]]. If the propertyColorScheme has been set, and it has been used, for example with <b>color atoms property partialcharge "rwb" range -1 1</b> or <b>color "roygb" range 0 10</b>, then y can be a number, as in <b>x = (3).color</b>, in which case the color associated with that value is returned. Using this mechanism, a key can be generated within the Jmol applet using echo text appropriately positioned on the screen. Leaving the echo blank but coloring the background of the echo as well as the echo itself produces a horizontal bar of the desired color. (Jmol 11.3.13)  ||<b> x= y.ident</b>| a list of the standard identity labels for the elements of y, either atoms or bonds.||<b>x = y.length</b>|The average length of the bonds. In this case x MUST be a set of bonds, not a set of atoms. For example: <b>x = {{carbon}}.bonds.length</b>||<b>x = y.lines</b>|splits y into a set of lines based on new-line characters, appending a new-line character onto the end if necessary so that there is one new-line character per line.</b>||<b>x = y.max</b>|A special selector for the item with the maximum value. (See also <b>.all</b>)||<b>x = y.min</b>.|A special selector for the item with the minimum value. (See also <b>.all</b>.||<b>x = y.size</b>|The nominal "size" of y, which depends upon its data type -- number of characters in a string, number of elements of an array, number of selected atoms or bonds in a bitset. Negative numbers indicate boolean (-1), integer (-2), decimal (-4), point (-8), or plane (-16).||<b>x = y.type</b>|the type of variable; one of "boolean", "integer", "decimal", "string", "point", "plane", "bitset", or "array" (Jmol 11.3.41) ||]','TEXT','item-selector .xxx functions','')
newCmd('','','*v+11.8;','Several modifiers can be added to property functions <b>{{atoms}}.y</b> or (starting with Jmol 11.6.42) arrays, such as <b>[1.2, 1.4, 1.6]</b>.<br /> [||<b>.all</b>| If a property, such as <b>{{selected}}.vanderwaals</b>, then appending <b>.all</b> creates a list of those measures. This list can be used to transfer one property to another, as in: <b>{{*}}.partialCharge = {{*}}.temperature.all</b>, which would allow temperature data to be used for partial charges in an <b>isosurface molecular map MEP</b> command, for instance. Note that the "list" is really an array of string values. ||<b>.average</b>|the average value (the default modifier). ||<b>.max</b>|the maximum value, for example: {{*}}.temperature.max</b>||<b>.min</b>|the minimum value, for example: {{*}}.partialCharge.min</b> ||<b>.stddev</b>|the standard deviation, for example: <b>print {{helix}}.straightness.stddev</b> |<b>.sum</b>|the sum of the values (Jmol 11.9.2; before this version, use <b>.add()</b>)||<b>.sum2</b> |sum of squares  ||]','TEXT','[array].xxx or .propertyName.xxx modifiers','')
newCmd('','','*v+11.8;','These functions operate on the individual elements of some group or listing. In addition to these are all of the atom properties described under the heading {#.atomexpressions~atom expressions}, for example, <b> x = {{oxgyen}}.temperature</b>, in which case they give the average value. [||<b>x = y.atoms</b>|The atoms associated with a set of bonds.||<b>x = y.bonds</b>| The bonds associated with the specified atoms, using the current setting of <b>bondModeOr</b> (true, bonds having one OR the the other atom within this set; or false, bonds having BOTH atoms within the set) ||<b>x = y.boundbox</b>|A Jmol math list containing the boundbox center, vector to corner, and two opposite corners associated with this atom set (Jmol 11.4)||<b>x = y.color</b>|The average color of the atoms in the set y expressed as a {{r,g,b}} coordinate in color space. If y is already a point, then .color converts this to a string of the form [[xRRGGBB]]. If the propertyColorScheme has been set, and it has been used, for example with <b>color atoms property partialcharge "rwb" range -1 1</b> or <b>color "roygb" range 0 10</b>, then y can be a number, as in <b>x = (3).color</b>, in which case the color associated with that value is returned. Using this mechanism, a key can be generated within the Jmol applet using echo text appropriately positioned on the screen. Leaving the echo blank but coloring the background of the echo as well as the echo itself produces a horizontal bar of the desired color. (Jmol 11.4)  ||<b> x= y.ident</b>| a list of the standard identity labels for the elements of y, either atoms or bonds.||<b>x = y.length</b>|In the case of x a set of bonds, the average length of the bonds. In all other cases, the length of the data. For example: <b>x = {{carbon}}.bonds.length</b>, <b>x = {*}.length</b>. To check the size of a bondset, use .size. ||<b>x = y.lines</b>|splits y into a set of lines based on new-line characters, appending a new-line character onto the end if necessary so that there is one new-line character per line.</b>||<b>x = y.size</b>|The nominal "size" of y, which depends upon its data type -- number of characters in a string, number of elements of an array, number of selected atoms or bonds in a bitset. Except for bonds, same as <b>.length</b>. Negative numbers indicate boolean (-1), integer (-2), decimal (-4), point (-8), or plane (-16).||<b>x = y.type</b>|the type of variable; one of "boolean", "integer", "decimal", "string", "point", "plane", "bitset", or "array" (Jmol 11.4) ||]','TEXT','{{atomExpression}}.propertyName','')
newCmd('','','*v+11.2;','These functions operate on the individual elements of some group or listing, returning a modified listing.[||<b>x = data1.add(data2)</b>|Specifically for use with data set lists, adds each element of data1 to its corresponding element in data2 and returns the result. If data2 is a simple number, adds that number to each element of data1.||<b>x = data1.add("\\t",data2)</b>|Specifically for use with data set lists, creates a new column separated from the previous with a tab. ("\\t" may be replaced with whatever separation one desires. (Jmol 11.8)||<b>x = y.distance({{atoms}})</b>|the average distance from elements of y to the CENTER of {{atoms}}||<b>x = y.find("s")</b>|finds the first location of "s" in y or, in the case of y being a set of lines, selects only the lines of y containing "s".||<b>x = y.find("pattern","flags")</b>|(Jmol 11.8) Searches string or list x for a {http:<http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.htm~Java regular expression pattern}. The second parameter is a set of flags. This parameter must be included, even if it is the blank string "" so as to distinguish this command from the standard .find() command. Flags include:<br><br> [|| &nbsp;|(no flags) Returns the position in the string containing the pattern, starting with 1, or 0 if the pattern is not found. For lists, returns a sublist containing the elements that match.||<b>i</b> |(case-insensitive) Match upper  or lower case letters.||<b>v</b> |(reverse match) With a string, <b>v</b> returns "false" if the string contains the match or "true" if it does not; with lists, <b>v</b> returns all elements of the list that do not contain the match.|| <b>m</b>|(return match) The <b>m</b> option allows returning only the portion of the string that matches (or, with <b>vm</b>, only the portion of the string that does NOT match). With lists, both <b>m</b> and <b>vm</b> return only elements that contain the match, but, as for strings, each element is returned as just the matching phrase or the reverse. ||]<br><br>Note that special characters such as \\S and \\d must be escaped with two back-slashes, and if they are introduced via JavaScript, they will need double escaping (four back-slashes). Examples include:<br><br>[||"this test is a Test".find("Test","") |<b>16</b>||print "this test is a Test".find("Test","i")|<b>6</b>||print "this test is a Test".find("Test","m")|<b>Test</b>||print "this test is a Test".find(" a test","v")|<b>true</b> (because it was <b>not</b> found)||print "this test is a Test".find(" Test","ivm")|<b>this is a Test</b>||print "this test is a Test".find("\\\\stest","m")|<b> test</b>||print "this test is a Test".find("\\\\stest","vm")|<b>this is a Test</b>||print script("show spacegroup all").split()<br />.find("Hall symbol:")|<b>Hall symbol: P 1<br />primitive Hall symbol: P 1<br />Hall symbol: -P 1<br />primitive Hall symbol: P 1 -1<br />Hall symbol: P 2y<br />primitive Hall symbol: P 2y<br />...</b>||print script("show spacegroup all").split()<br />.find("Hall symbol:").find("primitive","v")|<b>Hall symbol: P 1<br />Hall symbol: -P 1<br />Hall symbol: P 2y<br />...</b>||print script("show spacegroup all").split()<br />.find("Hall symbol:").find("primitive","v")<br />.find("Hall symbol:","vm")[1][3]|<b> P 1<br /> -P 1<br /> P 2y<br /></b>   ||]||<b>x = y.join("s")</b>|joins lines of y using the character or string "s"||<b>x = y.label("format")</b>|A list of labels for atoms or bonds using format strings. (see {#.label~})||<b>x = data1.mul(data2)</b>|See data1.add()||<b>x = y.replace("s1","s2")</b>|replaces all occurances of "s1" with "s2" in y. If y is a number, this function first converts the number to a string, then does the replacement.||<b>x = y.split("s")</b>|splits y into lines by replacing all occurances of "s" with a new-line character and converting the string to a set of lines.||<b>x = data1.sub(data2)</b>|See data1.add()||<b>x = y.substring()</b>| Jmol math does not include a .substring() function. Instead, this is handled using the more general item-selector [i][j] syntax, described below.||<b>x = y.symop(op,atomOrPoint)</b>| Returns the point that is the result of the transformation of <b>atomOrPoint</b> via a crystallographic symmetry operation. The atom set <b>y</b> selects the unit cell and spacegroup to be used. If only one model is present, this can simply be <b>all</b>. Otherwise, it could be any atom or group of atoms from any model, for example <b>{{*/1.2}}</b> or {{atomno=1}}. The first parameter, <b>op</b>, is a symmetry operation. This can be the 1-based index of a symmetry operation in a file (use <b>show spacegroup</b> to get this listing) or a specific Jones-Faithful expression in quotes such as <b>"x,1/2-y,z"</b>. ||<b>x = y.symop(op,"label")</b>| This form of the .symop() function returns a set of {#.draw~} commands that describe the symmetry operation in terms of rotation axes, inversion centers, planes, and translational vectors. The <b>draw</b> objects will all have IDs starting with whatever is given for the label.  ||<b>x = y.trim("chars")</b>|trims any one of the characters specified from both ends of the string y, or from every line of y if y is a set of lines.||<b>x = data1.div(data2)</b>|See data1.add(). Division by 0 results in the value "NaN", meaning "not-a-number".||]','TEXT','.xxx(y) functions','')
newCmd('','','*v+11.2;','<br /><br />In Jmol 11.2, specific elements of lists and strings can be selected using a square bracket notation similar to that used for {#.atom expressions~}. Positive numbers select for the specified element. For example, <b>x = "testing"[3]</b> selects for the third letter of the string, "s"; Zero selects for the last element: <b>x = "testing"[0]</b> selects "g". Negative numbers count from the end of the string backward, so <b>x = "testing"[-1]</b> selects "n". Two selectors select an inclusive range of items. <b>x = "testing"[2][4]</b> acts similar to a "substring()" method and selects characters 2 through 4 -- "est"; <b>x = "testing"[-1][0]</b> selects the last two characters, "ng". Similarly, for arrays, <b>array("this", "test", 3)[0]</b> selects the number 3, and <b>x = array("this", "test", 3); print x[1][2]</b> prints <br /><br />this<br />test<br /><br /> ','TEXT','item-selector [i][j]','')
newCmd('','','*v+11.8;','In addition, Jmol allows for user-defined functions. You can define functions to do simple tasks, include parameters to create subroutines, and add return values to create math functions. With applets, if the function name starts with "static_", then the function will be defined for ALL applets, not just the one running the script. In general, functions are part of the state and will be saved with a state. However, functions starting with "_" will not be saved with the state and will not be reported with <b>show functions</b>, but will be reported with <b>show functions "_*"</b>. (Functions of this sort are part of the state itself.) Examples follow. <br /><br />[||function rotateModel {{<br />&nbsp;&nbsp;&nbsp;rotate {{atomno=1}} {{atomno=2}} 10 <br />}}<br /><br />rotateModel|Without any parameters listed, any commands within the function declaration are processed with a single command word.|| function rotateModelX(i,j,n) {{<br />&nbsp;&nbsp;&nbsp;a[2] = getProperty("orientationInfo.moveTo")<br />&nbsp;&nbsp;&nbsp;var x = 10<br />&nbsp;&nbsp;&nbsp;rotate {{atomno=i}} {{atomno=j}} @{{n + x}}<br />&nbsp;&nbsp;&nbsp;a[2] = getProperty("orientationInfo.moveTo") <br />}}<br /><br />a = [];rotateModelX(10,11,30, a);print a[1];|Any number of parameters may be passed into a function. The variable names are local to that function. Note that, like JavaScript, if an array is passed, it is passed "by reference," meaning that if its value is changed within the function, then that change is a global change. Variables preceded by "var" as in this example are local to that function.|| function getDistance(i,j) {{<br />&nbsp;&nbsp;&nbsp;var&nbsp;d&nbsp;=&nbsp;({{atomno=i}}.distance({{atomno=j}})*100)%0 <br />&nbsp;&nbsp;&nbsp;return d<br />}}<br /><br />print "the distance is " + getDistance(3,5)|The <b>return</b> command works as one might expect, returning the value of its expression.|| function getXplusY {{<br />&nbsp;&nbsp;&nbsp;return&nbsp;_x.x&nbsp;+&nbsp;_x.y<br />}}<br /><br />print {{atomno=3}}.getXplusY<br />print {{*}}.getXplusY.min<br />print {{*}}.getXplusY.max<br />print {{*.CA}}.getXplusY.all<br />|Starting with Jmol 11.8, you can define atom selector functions. The local variable <b>_x</b> will represent the selected atom within the function. Such function references may include parameters in parentheses provided qualifiers such as .min, .max, or .all are not used.||]<br /><br /> Functions must be defined prior to use. Similar to the JavaScript language, a function must be declared prior to its inclusion in a script command. You can redefine a function as many times as you wish. In addition, you can save a function\'s definition using <b>myFunctionDef = script("show function myFunction")</b> where function <b>myFunction</b> has been defined. This can be useful if a function definition is to be replaced and later returned to its original value using <b>script inline @myFunctionDef</b>. ','TEXT','user-defined functions','')

newCmd('.geoSurface','','*v+11.0 -- provides a quickly rendered crude geodesic molecular/solvent-accessible surface.;disp','Turns a crude geodesic molecular surface on or off around the currently selected atoms. If a decimal with an explicit "+" sign is given, or {#.set (visibility)~set solvent ON}) is in effect, the resultant surface is a crude solvent-accessible surface.  This command has the same syntax as the {#.dots~} command. To color the surface, use {#.color (model object)~color geosurface}. For a smoother surface, use {#.isosurface~isosurface SASURFACE 1.2}.','*11','._on_off{"ON"}','')
newCmd('','','*v+11.6;','Turns geosurface rendering on and all other rendering off.','*12','ONLY','')
newCmd('','','*v+11.0;','Draws a geodesic surface at the van der Waals radius for the selected atoms. See {misc/radii.xls~radii.xls}.','*2','VANDERWAALS','')
newCmd('','','*v+11.0;','Draws a geodesic surface at the (nominal) ionic radius for the selected atoms if the atom\'s charge has been read and is nonzero; uses the nominal covalent bonding radius otherwise ({misc/radii.xls~radii.xls}).','*3','IONIC','')
newCmd('','','*v+11.0;','Draws a geodesic surface at the indicated percent of the van der Waals radius for each atom (maximum value 1000%).','*4','(integer)','')
newCmd('','','*v+11.0;','Draws a geodesic surface at the indicated radius in Angstroms for each atom (maximum value 10.0 Angstroms).','*5','(decimal)','')
newCmd('','','*v+11.0;','Draws a geodesic surface at the indicated distance in Angstroms beyond the van der Waals radius for each atom (maximum value 10.0 Angstroms). The "+" sign is required. This surface approximates the solvent-accessible surface with the indicated solvent probe radius. Typically this number is +1.2 or +1.4. This command overrides the {#.set (visibility)~set solvent/set radius} method of defining the solvent-accessible surface.','*6','+(decimal)','')
newCmd('.getProperty','','*v+11.0 NEW;javascript','The <b>getProperty</b> command sends information to the {#.console~Jmol console} or message callback function defined for a Jmol applet using the jmolSetCallback("messageCallback", funcName) function in Jmol.js or via the {#.set (callback)~set} command. Either a simple text string in the case of a file property or a valid JSON (JavaScript Object Notation) string in the case of a molecular property is returned.  Used with jmolScriptWait(), the <b>getProperty</b> script command provides a powerful way to interact with the Jmol applet. Even simpler, though, is to use one of the Jmol.js built-in JavaScript commands jmolGetPropertyAsString(), jmolGetPropertyAsJSON(), jmolGetPropertyAsJavaObject(), or (most useful, probably) jmolGetPropertyAsArray().  For example, <code><br /><br />var modelInfo = jmolGetPropertyAsArray("modelInfo")<br />alert(modelInfo.modelCount)<br />for (int i = 0; i &lt; modelInfo.modelCount; i++)<br />&nbsp;&nbsp;alert(modelInfo.models[i].name)</code>. <br /><br />In addition, when using the Jmol application, see the note at {#.show~} regarding setting the output to go directly into a file on your system. Starting with Jmol 11.3.45, this information is also available using the Jmol math {#.functions~getProperty()} function.','0|1','','')
newCmd('','','*v+11.0;','JSON structure describing the current state of animation. See {misc/animationInfo.txt~animationInfo.txt}.','*10','animationInfo','')
newCmd('','','*v+11.0;','JSON structure describing the applet, including, for example, the applet version, compile date, Java version, and name of the applet object. See {misc/appletInfo.txt~appletInfo.txt}.','*11','appletInfo','')
newCmd('','','*v+11.0;','JSON structure describing the atoms in the model. A second (optional) parameter specifies a subset of the atoms. The default is (visible). Parentheses are required. See {misc/atomInfo.txt~atomInfo.txt}.','*12','atomInfo','(atom expression)')
newCmd('','','','','*13','atomList','(atom expression)')
newCmd('','','*v+11.0;','JSON structure describing auxiliary information that is in the loaded file. This information is file-dependent and might include, for example, symmetry information, molecular orbital coefficients, dipole moments, partial charges, and/or vibrational modes. See {misc/auxiliaryInfo.txt~auxiliaryInfo.txt}.','*14','auxiliaryInfo','')
newCmd('','','*v+11.0;','JSON structure describing the bonds in the model. A second (optional) parameter specifies a subset of the atoms that are involved in the bonds. The default is (visible). Parentheses are required. See {misc/bondInfo.txt~bondInfo.txt}.','*15','bondInfo','(atom expression)')
newCmd('','','*v+11.0;','A simple JSON array containing the coordinates of the center and corner of the volume containing the molecule. See {misc/boundBoxInfo.txt~bondBoxInfo.txt}.','*16','boundBoxInfo','')
newCmd('','','*v+11.0;','A single JSON array giving the current center coordinate. See {misc/centerInfo.txt~centerInfo.txt}.','*17','centerInfo','')
newCmd('','','*v+11.0;','JSON structure describing the chains in a biomodel (PDB or mmCIF, for example). Information for each residue of the chain is provided. A second (optional) parameter specifies a subset of the atoms. The default is (visible). Parentheses are required. See {misc/chainInfo.txt~chainInfo.txt}.','*18','chainInfo','(atom expression)')
newCmd('','','*v+11.0;','Returns an array having two elements. Generally the first element is the data label, and the second element is the {#.data~} itself. <b>getProperty data TYPES</b> returns a first element that is the string "types" and a second element that is a comma-separated list of the available data types. ','*19','dataInfo','type')
newCmd('','','*v+11.0;','The extractModel keyword delivers text in the form of a MOL file, allowing up to 999 atoms and 999 bonds to be "extracted" from the model as an independent structure. ','*20','extractModel','(atom expression)')
newCmd('','','*v+11.0;','The contents of the currently loaded file.','*21','fileContents','')
newCmd('','','*v+11.0;','The contents of ANY file on the web or, if operating locally, any file on the hard drive in the directory containing the JAR file or any directory below that.','*22','fileContents','filepath')
newCmd('','','*v+11.0;','The file header for the file. This will depend upon the file format; some file formats may not have file headers.','*23','fileHeader','')
newCmd('','','*v+11.0;','The file name of the currently loaded file.','*24','fileName','')
newCmd('','','*v+11.0;','A base-64 encoded JPEG suitable for writing by the applet to an image tag using &lt;img src="data:image/jpeg;base64,…">" (does not work in Microsoft Explorer).','*25','image','')
newCmd('','','','JSON structure describing the current state of one or more StatusManager properties.','*26','jmolStatus','statusNameList')
newCmd('','','','','*27','jmolViewer','')
newCmd('','','*v+11.0;','JSON structure describing the currently-defined measurements for the model, including the atoms involved, the measurement type, and the value of the measurement in decimal and in string formats. See {misc/measurementInfo.txt~measurementInfo.txt}.','*28','measurementInfo','')
newCmd('','','','','*29','messageQueue','')
newCmd('','','*v+11.4;','A tab-separated string defining the current Jmol menu, including what options are currently enabled. See, for example, {misc/menu.tab~misc/menu.tab}. See also {#.show~show MENU}.','*300','menu','')
newCmd('','','*v+11.0;','JSON structure describing each model in the loaded model collection. See {misc/modelInfo.txt~modelInfo.txt}.','*301','modelInfo','')
newCmd('','','*v+11.0;','JSON structure describing each molecule (covalent set of atoms) in the model, including the number of atoms, the number of elements, and the molecular formula. A second (optional) parameter specifies a subset of the atoms. The default is (visible). Parentheses are required. See {misc/moleculeInfo.txt~moleculeInfo.txt}.','*31','moleculeInfo','(atom expression)')
newCmd('','','*v+11.0;','JSON structure describing the moveTo command required to return to the currently displayed orientation. See {misc/orientationInfo.txt~orientationInfo.txt}.','*32','orientationInfo','')
newCmd('','','*v+11.0;','JSON structure similar to chainInfo describing the residues in a biomodel. A second (optional) parameter specifies a subset of the atoms. The default is (visible). Parentheses are required. See {misc/polymerInfo.txt~polymerInfo.txt}.','*33','polymerInfo','(atom expression)')
newCmd('','','*v+11.0;','JSON structure listing a small amount of information relating to shapes displayed with the model (molecular orbitals, isosurfaces, cartoons, rockents, dipoles, etc.) See {misc/shapeInfo.txt~shapeInfo.txt}.','*34','shapeInfo','')
newCmd('','','','','*35','stateInfo','(atom expression)')
newCmd('','','*v+11.0;','JSON structure representing the current transformation matrix describinng the current orientation of the model. See {misc/transformInfo.txt~transformInfo.txt}.','*36','transformInfo','')
newCmd('.goto','','*v+11.2 -- new;pause;flow','Transfers script execution to the {#.message~} command having the matching text. If an underscore is at the beginning of the text, then the text is not displayed, otherwise the message text is displayed in the console as usual for that command.<br /><br />message _test<br />...<br />...<br />goto _test<br /><br /><br />The <b>goto</b> command is largely superceded in Jmol 11.4 by {#.if_while_for~<b>if</b>, <b>while</b>, and <b>for</b>}. These alternative commands are recommended.','0|1','','')

newCmd('.halos','','*v+11.6 -- adds new capability;','Displays a translucent two-dimensional ring around an atom. Halos are similar to {#.stars~}, except halos may also be used for automatically displaying which atoms are currently selected. (This option is enabled using {#.selectionHalos~}.) The default size of halos is 20% of the nominal van der Waals radius of the associated atom. The size can be set using the same options as for {#.spacefill~}.','0|1','','')
newCmd('','','','Turn halos on or off.','*1','._on_off{"ON"}','')
newCmd('','','*v+11.6;','Turns halo rendering on and all other rendering off.','*12','ONLY','')





newCmd('.help','','*v+11.0 -- new;','Opens a new browser window to the interactive help page. See also {#.set(misc)~set helpPath}. Currently for the applet only; the query will be searched as an exact, complete phrase (applet only).','1','query','')

newCmd('.hbonds','','*v+11.0 -- adds "hbond CALCULATE", changes in behavior of "hbonds ON";bond;hbondc;hbond','Hydrogen bonds can be turned on or off, given custom widths in Angstroms, or colored (see {#.color(bond object)~color hbonds} and {#.set(bond styles)~set HBONDS} ). In addition, the positions of a restricted set of protein and nucleic acid hydrogen bonds can be calculated. CHIME NOTE: In RasMol/Chime and versions of Jmol prior to 10.2, <b>hbonds ON</b> displays a limited set of calculated hydrogen bonds in proteins and nucleic acids. Starting with Jmol version 10.2, <b>hbonds ON</b> does not automatically calculate hydrogen bonds. Use <b>hbonds CALCULATE</b> instead.','0|1','','')
newCmd('','','','','*1','._on_off{"ON"}','')
newCmd('','','','','*2','._hbond_width_angstroms','')

newCmd('','','','Calculates hydrogen bonds involving atoms currently selected and displays them. This calculation is currently limited to hydrogen bonds (a) between protein amide NH and protein amide carbonyl oxygens and (b) between nucleic acid base pairs. The "hydrogen bond" is created and displayed as though between nitrogen and oxygen or between nitrogen and nitrogen. Hydrogen atom positions are calculated but not saved or displayed, and the actual hydrogen atoms involved in the hydrogen bonds, if present, are ignored.','*4','CALCULATE','')
newCmd('.hide','','*v+11.0 -- new;dhide','The opposite of {#.display~}. Hides atoms and associated structures (bonds, halos, stars, cartoons, etc.). <b>Hide</b> is similar to {#.select~} or {#.restrict~} in its syntax. Unlike  <b>restrict</b>, though, <b>hide</b> is completely reversible using <b>hide none</b>. (<b>Restrict</b> acts by setting the "size" of the object to 0; <b>hide</b> leaves the size the same, but just hides the object until unhidden. Group-based structures such as {#.cartoon~cartoons} and traces are hidden whenever their lead atom (the one that determines their position in space) is hidden. Hidden atoms can be selected with <b>select hidden</b> or deselected with <b>select not hidden</b>. Atoms can be added to the hidden set using <b>hide hidden or ...</b> or removed from the hidden set using <b>hide hidden and not ....</b>.','1','._atom_expression','')
newCmd('.history','','*v+11.0 -- new;','The <b>history</b> command turns command history recording on and off. Each time it is invoked, the command history list is cleared. See also {#.set(files and scripts)~set history} and {#.show~show history}.','1','._on_off{"ON"}','')

newCmd('.hover','','*v+11.0 -- adds hoverCallback and multiline hover;label','Turns on and off pop-up labels that appear when the user "hovers" the mouse over the atom or a point associated with a {#.draw~} object. <b>hover off</b> disables the hover message; <b>hover on</b> enables it again. Any other parameter or string is used as the label, which can contain atom property fields such as %a or %U. To change the delay time prior to the label appearing, use <b>set hoverDelay x.x</b> where <b>x.x</b> is the delay time in seconds. Setting this time to 0.001 seconds effectively makes the hover label appear immediately. See also  {#.label~}. Multiple lines can be indicated using &#124; (vertical bar). In the Jmol applet version 11.0, even with <b>hover OFF</b>, the hover message can be sent to a JavaScript function on the applet\'s page using {#.set (callback)~set HoverCallback}.','1|2','._on_off_string','')


newCmd('.if_while_for','','*v+11.4 -- expanded IF capability;*v-11.8;math;flow','You can control the flow of script execution using <b>if</b>/<b>else if</b>/<b>else</b>/<b>end if</b>, <b>while</b>/<b>end while</b>, and <b>for</b>/<b>end for</b>.<br /><br /><b>if</b> takes a logical expression of variables and evaluates it either as TRUE or FALSE. Tests include a wide variety of flags that can be set using the {#.set~set} command as well as any {#.Jmolmath~user-defined variables}. <br /><br /><b>while</b> similarly evaluates a logical expression, looping until the expression is no longer TRUE. <br /><br /><b>for</b> takes three aguments in parentheses and separated by a semicolon. <b>for(var i=0; i < 10; i = i + 1)</b> loops through the block of script that follows 10 times, incrementing the variable <b>i</b> by one each time. <br /><br /><b>while</b> and <b>for</b> loops may be exited using <b>break</b> and truncated using <b>continue</b>. A number following <b>break</b> or <b>continue</b> indicates how many levels of for/while loops  beyond the innermost one to break out of or continue.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;var n = {{*}}.size<br />for (var i = 1; i <= n; i = i + 1)<br />&nbsp; for (var j = i + 1;j <= n; j = j + 1)<br />&nbsp;&nbsp;&nbsp;   var dis = d(i,j);<br />&nbsp;&nbsp;&nbsp;   if (dis < 1.23)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;        print "short i-j: " + i + "," + j + " " + dis%2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;        measure {{atomno=i}} {{atomno=j}}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;        continue;<br />&nbsp;&nbsp;&nbsp;   else if (dis < 1.77)<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;       print "medium i-j: " + i + "," + j + " " + dis%2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line = "line"+i+"_"+j<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;        draw @line {{atomno=i}} {{atomno=j}}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;        break 1;<br />&nbsp;&nbsp;&nbsp;  end if<br />&nbsp;&nbsp;&nbsp;   print "long";<br />&nbsp; end for<br />end for <br /> <br /> <br />These constructs are compatible with {#.goto~}. However, using <b>goto</b> to jump into the middle of an <b>if</b>,  <b>while</b>, or  <b>for</b> block is considered bad form and is not recommended. <br /> <br />Note that with the Jmol application multiline scripts are not allowed on the script window command line. Either separate commands by semicolon and introduce them all on the same line, or store the script in a file and run it using the {#.script~} command. This is not an issue with the applet.<br /><br /> Note: A semicolon is required after each command if more than one command is given on the same line, even after "else": <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;<b>if (this); print "this";else; print "that";endif;</b><br/><br/>not something that might work in some programming languages:<br/><br/> if (this) print "this" else print "that" endif;  # THIS WON\'T WORK IN JMOL.','0|1','','')
newCmd('.if_while_for','','*v+11.8 -- inline  IF/FOR capability, brace syntax;math;flow','You can control the flow of script execution using <b>if</b>/<b>else if</b>/<b>else</b>/<b>end if</b>, <b>while</b>/<b>end while</b>, and <b>for</b>/<b>end for</b>.','0|1','','')
newCmd('','','*v+11.8;math;flow','<b>if</b> takes a logical expression of variables and evaluates it either as TRUE or FALSE. Tests include a wide variety of flags that can be set using the {#.set~set} command as well as any {#.Jmolmath~user-defined variables}. <br /><br /><b>while</b> similarly evaluates a logical expression, looping until the expression is no longer TRUE. <br /><br /><b>for</b> takes three aguments in parentheses and separated by a semicolon. <b>for(var i=0; i < 10; i++)</b> loops through the block of script that follows 10 times, incrementing the variable <b>i</b> by one each time. The operators ++, --, +=, -=, *=, /=, |=, and &= were introduced in Jmol 11.8.<br /><br /><b>while</b> and <b>for</b> loops may be exited using <b>break</b> and truncated using <b>continue</b>. A number following <b>break</b> or <b>continue</b> indicates how many levels of for/while loops  beyond the innermost one to break out of or continue.<br /><br />n = {{*}}.length<br />for (var i = 1; i <= n; i++) {{<br />&nbsp;&nbsp;for (var j = i + 1;j <= n; j++) {{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var dis = {{*}}[i].distance({{*}}[j]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (dis < 1.23) {{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print "short i-j: " + i + "," + j + " " + dis%2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;measure {{atomno=i}} {{atomno=j}}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}} else if (dis < 1.77) {{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print "medium i-j: " + i + "," + j + " " + dis%2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line = "line"+i+"_"+j<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw @line {{atomno=i}} {{atomno=j}}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break 1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print "long";<br />&nbsp;&nbsp;}}<br />}}<br /> <br />These constructs are compatible with {#.goto~}. However, using <b>goto</b> to jump into the middle of an <b>if</b>,  <b>while</b>, or  <b>for</b> block is considered bad form and is not recommended. <br /> <br />Note that with the Jmol application multiline scripts are not allowed on the script window command line. Either separate commands by semicolon and introduce them all on the same line, or store the script in a file and run it using the {#.script~} command. This is not an issue with the applet.<br /><br /> Starting with Jmol 11.8, if/else/endif syntax can be entered on a single line without unnecessary semicolons: <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;if (this) print "this" else print "that"<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (this) {{ print "this" }} else {{ print "that" }} <br/>&nbsp;&nbsp;&nbsp;&nbsp;if (this); print "this"; else; print "that"; endif;<br/><br/>are all identical.','TEXT','if, for, and while','')


newCmd('','','*v+11.8;','In Jmol 11.8 you can use a similar construct to Java\'s/JavaScript\'s <b>(ifTrue ? thisValue : orThisTrue ? thatValue : otherValue)</b>. Jmol accepts this format and also allows for a syntax that uses semicolons: <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;xxx = if(ifTrue; thisValue; thatValue)<br /><br />For example, <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;set echo top left;echo @{{(_modelnumber > 1.1 ? "previous" : "next")}}<br /><br /> or, equivalently, <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;set echo top left;echo @{{if(_modelnumber > 1.1;"previous" ; "next")}}<br /><br />. Used in conjunction with inline FOR, the inline IF provides a powerful and concise way to work with molecular data.','TEXT','inline IF','')
newCmd('','','*v+11.8;','In Jmol 11.8 you can create lists of values using a form of inline FOR function. The syntax is simply <b>xxx = for(dummyVariable;{{atom expression}};math expression)</b>. For example, <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;aniso = for(x;{{*}};x.adpmax - x.adpmin)</br></br>creates an array containing differences between the maximum and minimum anisotropic density parameters for a set of atoms. Arrays such as these can be used to assign properties to atoms or to color them. So, for example, we might want to set the radius of atoms based on temperature, but not the exact value of the temperature: <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;{{*}}.radius = for(x;{{*}};x.temperature/20)<br /><br />Combined with the inline IF function, the inline FOR can be quite useful. For example:<br /><br />&nbsp;&nbsp;&nbsp;{{*}}.color = for(x;{{*}};if(x.temperature > 10;"red";if(x.temperature < 2;"blue";"white")))<br .><br />See also {#.functions~} for how to define a function that operates on atoms one at a time with the syntax </b>{{*}}.myFunction(a, b)</b>.','TEXT','inline FOR','')


newCmd('.initialize','','*v+11.2 -- new;load;rreset','The <b>initialize</b> command is a specialized script command only intended for use within a state script created using the {#.write~write state} or {#.save~save state} commands. It initializes variables and settings to original Jmol values but does not do a full reset to Jmol\'s initial state. If that capability is desired, one should save the initial state and then {#.restore~} it.','0|1','','')
newCmd('.invertSelected','','*v+11.2 -- new;anim','This command allows inversion of the selected atoms through a point or across a plane. With no parameters, the model is inverted through its geometric center.','0|1','','')
newCmd('','','*v+11.2;','Following the POINT keyword may be any expression that can be evaluated to give a point, including {{x y z}} (cartesian or fractional), a draw object identifier, $xxx, or an atom expression in parentheses, which will be evaluated as an average position.','*1','POINT','point_definition')
newCmd('','','*v+11.2;','inverts the selected atoms across a plane defined using any valid {#.plane expressions~plane expression}. ','*2','PLANE','plane_express')
newCmd('','','*v+11.2;','Specifies that the coordinates are the  Miller indices of the plane to be used for the inversion.','*3','HKL','{{h k l}}')
newCmd('.isosurface','','*v+11.8 -- merges PMESH and ISOSURFACE commands, reads vertex/polygon files, adds AREA and VOLUME parameters and CONTOURLINES option;iso','<img style="clear:right" src="img/isosurface.gif" alt="" />Jmol can generate a large variety of objects using the method of isosurfaces. Many of these surfaces can be color-mapped. Two Jmol commands (<b>isosurface</b> and {#.mo~}) render isosurfaces. The <b>isosurface</b> command itself provides ultimate control over these surface renderings. Before using the <b>isosurface</b> command, if you are interested in rendering molecular orbitals, you should first take a look at the {#.mo~} command. <br /><br />The general syntax of the <b>isosurface</b> command is as follows:  <br />  <br /><b>isosurface ID [object id] [construction/mapping parameters] [surface object] [additional mapping-only parameters] MAP [color mapping dataset] [display options] </b>. While the id is optional, it is highly recommended. Starting with Jmol 11.6, specifically for the options ON, OFF, and DELETE, the id may include a wildcard character (asterisk). Thus, <b>isosurface pl* on</b> turns on all isosurface objects having an ID starting with "pl". <br /> <br /> Data for these surfaces can be in the form of Gaussian CUBE files, APBS OpenDX multigrid files (for molecular electrostatic potentials; starting in Jmol 11.2), Xplor electron density text file data (Jmol 11.4), Plt formatted electron density files (Jmol 11.4), PMESH files (see the {#.pmesh~} command) files, or {misc/JVXL-format.pdf~JVXL (Jmol Voxel)} format files, molecular orbitals and their associated Gaussian or Slater basis functions from computational software packages, or a number of internally calculated surface types: Shroedinger hydrogen-like atomic orbitals, LCAO-"cartoon" orbitals, spheres, ellipsoids, tear-drop shaped lobes, user-defined functions f(x,y), and Jmol-calculated solvent surfaces (accessible or excluded). In addition, starting with Jmol 11.2, atom-based data from a variety of sources can be mapped onto an isosurface. If a CUBE or APBS or JVXL file is used as the source, it need not be the file that was loaded using the {#.load~} command, which reads only the atom position, not the surface. A separate isosurface command is used to read the scalar field data and construct the isosurface. This <b>isosurface</b> represents the points in space where scalar values cross a specified "cutoff" value. Inside the surface, values are greater or equal to a specified positive cutoff or less than or equal to a specified negative cutoff. The default cutoff depends upon the type of object displayed, but for CUBE, APBS, or JVXL files it is 0.02. Note that positive and negative surfaces may be created separately, or, using the SIGN keyword, they can be generated together. <br /><br />You can construct different isosurfaces with different shapes and sizes by reading the same CUBE or APBS file more than once with different parameters, or by reading different files or selecting different volumes in a given file or different surfaces contained in a given JVXL file. By naming these individual surfaces with unique identifiers you can control display settings and color for each of the surfaces independently. <br /><br />Color mapping of one object onto another is a simple as listing both an object and a dataset within the same isosurface command. Several keywords affecting the mapping are allowed. The default color scheme uses a red-->orange-->yellow-->green-->blue rainbow, where red represents minimum values and blue represents maximum values, but several other schemes are available (see below). Starting with Jmol 11.8, mapped data can be expressed as a series of contour lines.<br /><br />CUBE, APBS, and JVXL files may be gzip-compressed.<br />  <br /><b>isosurface [object id] [construction/mapping parameters] [surface object] [additional mapping-only parameters] MAP [color mapping dataset] [display options] </b>','0|1|2','','')
newCmd('.isosurface','','*v+11.6 -- optional ID keyword;*v-11.8;iso','<img style="clear:right" src="img/isosurface.gif" alt="" />Jmol can generate a large variety of objects using the method of isosurfaces. Many of these surfaces can be color-mapped. Two Jmol commands (<b>isosurface</b> and {#.mo~}) render isosurfaces. The <b>isosurface</b> command itself provides ultimate control over these surface renderings. Before using the <b>isosurface</b> command, if you are interested in rendering molecular orbitals, you should first take a look at the {#.mo~} command. <br /><br />The general syntax of the <b>isosurface</b> command is as follows:  <br />  <br /><b>isosurface ID [object id] [construction/mapping parameters] [surface object] [additional mapping-only parameters] MAP [color mapping dataset] [display options] </b>. While the id is optional, it is highly recommended. Starting with Jmol 11.6, specifically for the options ON, OFF, and DELETE, the id may include a wildcard character (asterisk). Thus, <b>isosurface pl* on</b> turns on all isosurface objects having an ID starting with "pl". <br /> <br /> Data for these surfaces can be in the form of Gaussian CUBE files, APBS OpenDX multigrid files (for molecular electrostatic potentials; starting in Jmol 11.2), Xplor electron density text file data (Jmol 11.4), Plt formatted electron density files (Jmol 11.3.56), or {misc/JVXL-format.pdf~JVXL (Jmol Voxel)} format files, molecular orbitals and their associated Gaussian or Slater basis functions from computational software packages, or a number of internally calculated surface types (Shroedinger hydrogen-like atomic orbitals, LCAO-"cartoon" orbitals, spheres, ellipsoids, tear-drop shaped lobes, user-defined functions f(x,y), and Jmol-calculated solvent surfaces (accessible or excluded). In addition, starting with Jmol 11.2, atom-based data from a variety of sources can be mapped onto an isosurface. If a CUBE or APBS or JVXL file is used as the source, it need not be the file that was loaded using the {#.load~} command, which reads only the atom position, not the surface. A separate isosurface command is used to read the scalar field data and construct the isosurface. This <b>isosurface</b> represents the points in space where scalar values cross a specified "cutoff" value. Inside the surface, values are greater or equal to a specified positive cutoff or less than or equal to a specified negative cutoff. The default cutoff depends upon the type of object displayed, but for CUBE, APBS, or JVXL files it is 0.02. Note that positive and negative surfaces may be created separately, or, using the SIGN keyword, they can be generated together. <br /><br />You can construct different isosurfaces with different shapes and sizes by reading the same CUBE or APBS file more than once with different parameters, or by reading different files or selecting different volumes in a given file or different surfaces contained in a given JVXL file. By naming these individual surfaces with unique identifiers you can control display settings and color for each of the surfaces independently. <br /><br />Color mapping of one object onto another is a simple as listing both an object and a dataset within the same isosurface command. Several keywords affecting the mapping are allowed. The default color scheme uses a red-->orange-->yellow-->green-->blue rainbow, where red represents minimum values and blue represents maximum values, but several other schemes are available (see below). <br /><br />CUBE, APBS, and JVXL files may be gzip-compressed.<br />  <br /><b>isosurface [object id] [construction/mapping parameters] [surface object] [additional mapping-only parameters] MAP [color mapping dataset] [display options] </b>','0|1|2','','')


newCmd('','','*v+11.6;','The optional identifier allows you to refer back to this isosurface later for turning the surface on or off, deleting the surface, or changing display options. It must be either the first parameter or the second, just after DELETE. If the identifier is missing, behavior depends upon version. Starting with Jmol 11.6, the ID keyword is optional but recommended, because then one can use any name for the ID; otherwise the name must not be one of the many Jmol command or keyword names. Prior to Jmol 11.2, leaving off the ID when creating an isosurface created a new isosurface; starting with Jmol 11.2, leaving off the ID when creating an isosurface <i>replaces</i> the current isosurface with the new one.','TEXT','ID [object id]','')

newCmd('','','*v+11.0;','[||<b>ADDHYDROGENS</b>|For a solvent or sasurface object, accounts for missing hydrogens on carbon atoms only just prior to generating the surface. A simple sp3 model is used.||<b>IGNORE(atom_exp)</b>|Specifies a set of atoms to completely ignore when generating a solvent-related surface (<b>SOLVENT</b> or <b>SASURFACE</b>). Typically these might be solvent molecules or atoms: <b>IGNORE(solvent)</b>. ||<b>IONIC radius</b>|Atom radius relative to the ionic radius. Options include: <br/> [|| x.x | specific absolute number of Angstroms for every atom || +/-x.x | offset greater(+) or less(-) than the ionic radius || nn% | percent of the ionic radius || +/-nn% | percent offset from the ionic radius   ||] ||<b>SELECT(atom_exp)</b>|Selects a specific subset of the atoms for this surface. Same as <b>select atom_exp; isosurface....</b> except the atoms are selected only within the isosurface command, not the overall script. ||<b>SET n</b>|If an isosurface is fragmented, this option allows visualization of only the set of triangles composing one specific surface fragment. (Jmol 11.8.RC3)||<b>VDW radius</b>|Atom radius relative to the van der Waals radius. Options include: <br/> [|| x.x | specific absolute number of Angstroms for every atom || +/-x.x | offset greater(+) or less(-) than the van der Waals radius || nn% | percent of the van der Waals radius || +/-nn% | percent offset from the van der Waals radius   ||]  ||]','TEXT','[construction/mapping parameters] -- molecular/solvent surfaces','')
newCmd('','','*v+11.0;','[||<b>IGNORE(atom_exp)</b>|Specifies a set of atoms to completely ignore when generating a molecular orbital, thus showing only selected atomic contributions.||<b>SCALE x.xxx </b>|In the case of molecular orbitals, scales the volume around the orbital. It may be useful in cases where Jmol misjudges the full extent of an orbital, thus truncating it.||<b>SELECT(atom_exp)</b>|Selects a specific subset of the atoms for this molecular orbital. (Essentially the opposite of IGNORE.)||<b>SIGN</b>|For molecular orbitals derived from cube files, indicates that the data have both positive and negative values and that they should both be displayed.||<b>SQUARED</b> | Data are to be squared prior to surface generation. (Jmol 11.4) ||]','TEXT','[construction/mapping parameters] -- molecular orbitals','')
newCmd('','','*v+11.0;','[||<b>ANISOTROPY&nbsp;{{a&nbsp;b&nbsp;c}}</b>|Sets the anisotropic distortion of an object in the x, y, and z directions.||<b>CENTER {{x y z}}</b>|Centers an atomic orbital, sphere, ellipsoid, or lobe at a specific point in molecular space. In the case of crystal structures, these may be {#.fractional coordinates~}.||<b>CENTER (atom_exp)</b>|Centers an atomic orbital, sphere, ellipsoid, or lobe on a certain atom or at the geometric center of this set of atoms.||<b>CENTER $object</b>|Centers an atomic orbital, sphere, ellipsoid, or lobe on a certain drawn object such as a point, line, or plane.||<b>ECCENTRICITY <br />{{cx cy cz f_ab}}</b>|Sets the eccentricity of a sphere, ellipsoid, atomic orbital, or lobe. The first three numbers define the "principal" axis; the fourth parameter defines the ratio of the other two perpendicular axes to this main axis.||<b>PHASE "type"</b>|Indicates that an orbital or other object is to be colored based on the position of the voxel in space. With an atomic orbital and no parameters, indicates regions of (+) and (-) oribital value with different colors. Valid types include "x", "y", "z", "xy", "xz", "yz", "z2", and "x2-y2".||<b>SCALE x.xxx </b>|In the case of objects for which eccentricity can apply (spheres, ellipsoids, atomic orbitals, and lobes), scales the object (default 1.0). ||]','TEXT','[construction/mapping parameters] -- general shapes','')
newCmd('','','*v+11.0;*v-11.8;','[||<b>ANGSTROMS</b>|For a cube file or user-defined function f(x,y), indicates that the volumetric definitions are in Angstroms instead of Bohr (default).||<b>BLOCKDATA</b>|Indicates that data for surfaces in multiple-surface CUBE files are in sequential blocks rather than the Gaussian standard of being interspersed, where all data values for a coordinate point are listed together.||<b>COLORSCHEME "xxx" </b>|Sets the color scheme to one of "roygb" (default rainbow), "bwr" (blue-white-red), "rwb" (red-white-blue), "low" (red-green), or "high" (green-blue). An additional scheme "sets" colors the isosurface different colors for different surface fragments (for example, internal cavities).||<b>COLOR &lt;color&gt;</b>|Colors an isosurface the specified color name or value. ||<b>COLOR/SIGN <br />&lt;color&gt; &lt;color&gt;</b>|Either term, COLOR or SIGN followed by two color names or values indicates to color the object based on the sign of the function (for use with atomic and molecular orbitals).||<b>COLOR RANGE <br />x.xxx y.yyy</b>|Indicates to color the specified range of value from one end to the other end of the color scheme. If numbers are not included or COLOR RANGE ALL is specified, then the minimum and maximum data values in the file are used (Jmol 11.3.64) Same as "COLOR ABSOLUTE".||<b>CONTOUR n</b>|Specifically for a plane or f(x,y) object, sets the number of contours to be used. The default is for 11 contours.|With a negative number, specifies for a plane or f(x,y) object the specific single contour to depict.||<b>CUTOFF x.xxx </b>|Sets the cutoff value defining an isosurface. Typically, smaller values correspond to a larger object. Cutoffs can be either positive or negative. In the case of a molecular orbital, a positive number indicates to use both positive and negative cutoffs. Adding an explicit "+" sign before the number indicates that only the positive part of the surface is desired.||<b>DEBUG</b>|Produces voluminous detail for program debugging.||<b>FIXED/MODELBASED</b>|Sets whether the surface generated is to be associated with the fixed window -- and thus appear with all frames/models -- or is to be associated with the currently displayed model (the default).||<b>GRIDPOINTS</b>|Adds the specific gridpoints used by the "marching cubes" algorithm for the calculation of the isosurface. Primarily for discussion and debugging of the isosurface algorithm.|| <b>INSIDEOUT</b>|For certain datasets it sometimes happens that the surface rendered appears inside-out (dark on the outside and bright on the inside). If this is the case, add <b>INSIDEOUT</b> to the isosurface command prior to specification of the file to load. Jmol will reverse the sense of what is inside and what is outside the surface. This flag only affects rendering in Jmol, not export to PovRay. (Jmol 11.3.54)||<b>MODEL n</b>|Sets the identity of the model with which this isosurface is to be associated. (Defaults to the currently displayed model.)||<b>RESOLUTION x.x</b>|Sets the resolution of a constructed isosurface three-dimensional grid of "voxels", in points per Angstrom. Does not apply to CUBE or JVXL files, which have a resolution defined by internal file parameters.|| <b>REVERSECOLOR</b>|Reverses the direction of the color scheme.||<b>SIGN</b>|For cube files indicates that the data have both positive and negative values, and that they should both be displayed (typically for molecular orbital data)||<b>SQUARED</b> | Data are to be squared prior to surface generation. (Jmol 11.3.29)||]','TEXT','[construction/mapping parameters] -- general file loading, color mapping, and contouring','')
newCmd('','','*v+11.8;','[||<b>ANGSTROMS</b>|For a cube file or user-defined function f(x,y), indicates that the volumetric definitions are in Angstroms instead of Bohr (default).||<b>BLOCKDATA</b>|Indicates that data for surfaces in multiple-surface CUBE files are in sequential blocks rather than the Gaussian standard of being interspersed, where all data values for a coordinate point are listed together.||<b> CUTOFF x.xxx</b>|Sets the cutoff value defining an isosurface. Typically, smaller values correspond to a larger object. Cutoffs can be either positive or negative. In the case of a molecular orbital, a positive number indicates to use both positive and negative cutoffs. Adding an explicit "+" sign before the number indicates that only the positive part of the surface is desired.||<b>DEBUG</b>|Produces voluminous detail for program debugging.||<b>FIXED/MODELBASED</b>|Sets whether the surface generated is to be associated with the fixed window -- and thus appear with all frames/models -- or is to be associated with the currently displayed model (the default).||<b>FULLPLANE</b>| for PLANE objects, indicates that color mapping should be extended to complete the plane. (Jmol 11.9.3)|| <b>GRIDPOINTS</b>|Adds the specific gridpoints used by the "marching cubes" algorithm for the calculation of the isosurface. Primarily for discussion and debugging of the isosurface algorithm.|| <b>INSIDEOUT</b>|For certain datasets it sometimes happens that the surface rendered appears inside-out (dark on the outside and bright on the inside). If this is the case, add <b>INSIDEOUT</b> to the isosurface command prior to specification of the file to load. Jmol will reverse the sense of what is inside and what is outside the surface. This flag only affects rendering in Jmol, not export to PovRay. (Jmol 11.4)||<b>MODEL n</b>|Sets the identity of the model with which this isosurface is to be associated. (Defaults to the currently displayed model.)||<b>RESOLUTION x.x</b>|Sets the resolution of a constructed isosurface three-dimensional grid of "voxels", in points per Angstrom. Does not apply to CUBE or JVXL files, which have a resolution defined by internal file parameters.||<b>SIGN c1 c2</b>|Indicates that cube data have both positive and negative values, and that they should both be displayed using the value given for CUTOFF and its negative. The two colors to use may be given optionally.||<b>SQUARED</b> | Data are to be squared prior to surface generation. (Jmol 11.4)||]','TEXT','[construction/mapping parameters] -- general file loading','')
newCmd('','','*v+11.0;','Several isosurface options relate specifically to molecular or solvent-related surfaces.  <br /><br />[||<b>CAVITY<br />cr er</b>|(Jmol 11.2) Renders a depiction of a molecular cavity. The optional parameters cr and er determine the overall properties of the cavity. cr (cavity radius, default 1.2) sets the radius in Angstroms of the "probe" molecule that would fit into the cavity. er (envelope radius, default 10) sets the radius of the probe used to define the outer limits of the molecule. Smaller numbers for the cavity radius lead to more detailed cavities; smaller numbers for the envelope radius lead to cavities that are more internal and extend less toward the outer edge of the molecule. Qualifier <b>INTERIOR CAVITY</b> creates isosurfaces only for cavities that do not extend to the outer surface of the molecule. Qualifier <b>POCKET CAVITY</b> creates isosurfaces only for pockets that extend to the outer surface of the model, showing them more as troughs or open "pockets".||<b>MEP</b>|Depicts the molecular electrostatic potential, as calculated by SUM(q_i/r_i), where q_i is the partial charge on atom i (as found in the loaded model file) and r_i is the distance from atom i to a particular point in space. The molecular electrostatic potential is not typically displayed itself. Rather, it is usually mapped onto a molecular surface. For example: <b>isosurface resolution 6 SOLVENT map MEP</b> produces a smooth surface at the van der Waals distance around the molecule colored by the molecular electrostatic potential.||<b>MOLECULAR</b>|Same as <b>SOLVENT 1.4</b>||<b >SASURFACE radius</b >|Depicts the "solvent-accessible" surface based on the currently selected atom set. This surface is described by the <i >center</i > of the solvent probe as it rolls along the surface. It is larger than the "molecular" surface. The radius is optional.||<b >SOLVENT radius</b >|Depicts the "solvent-excluded" or "molecular" surface around the currently selected atoms (or the entire model if no atoms are selected). If only a subset of the atoms is selected, then only the corresponding subset of the molecular surface is depicted. This surface is defined as the surface formed by rolling a spherical solvent "probe" around the molecule at the distance of the van der Waals radii of the atoms. The specification of the radius of this probe is optional; its default setting is determined by the <b >set radius</b > command (Jmol default 1.2).||]','TEXT','[surface object] -- molecular/solvent surfaces','')
newCmd('','','*v+11.0;','Both atomic orbitals and molecular orbitals can be displayed in Jmol. The "LCAO cartoon" option creates the sort of dumbbell-shaped cartoonish orbitals seen in textbooks in discussion of pi bonding and hybridization. <br /><br />[||<b >ATOMICORBITAL <br />n l m Zeff</b >|The Schroedinger solution to the hydrogen atom wavefunction. The three quantum numbers n, l, and m, must be such that abs(m) &lt;= l &lt; n. For solutions with imaginary roots, the two m values simply designate the two real linear combinations of these imaginary solutions. The optional effective nuclear charge, Zeff, determines the overall size of the orbital (default is 6, carbon). Add the keyword PHASE for a two-color orbital, which can be colored using the SIGN keyword followed by two color names or values.||<b >LCAOCARTOON <br />"type" (atom_exp)</b >|Draws a lobe or p orbital (two lobes) centered at the FIRST atom of the specified expression. (Typically this would be an expression for a single, specific atom, such as <b >atomno=3</b >). See the {#.lcaoCartoon~lcaoCartoon} command for a discussion of the possible types of LCAO cartoons (as well as a simpler way to create them).||<b >LOBE <br />{{cx cy cz f_ab}}</b >|Draws a single tear-drop shaped object (an xy-compressed center lobe of a dz2 orbital) anywhere at any size in any direction with any amount of distortion. The first three numbers define the axis of the lobe; the fourth parameter defines its eccentricity  -- the ratio of the other two perpendicular axes to this main axis.||<b >MO n</b >|Denotes the n-th molecular orbital described in the file that is currently loaded. Adjusting the CUTOFF to suit the situation is recommended. Molecular orbitals are automatically bicolor; color them one specific color using COLOR and just one color name or value. RESOLUTION can be used to good effect to increase or decrease the precision of the rendering. <b >Note that only the atom-based orbitals for the currently selected atoms are utilized</b >. (Although, if no atoms are selected, all atomic orbitals are used in the calculation.) Thus, one can selectively see how atomic orbitals from each atom in the molecule are contributing to any given molecular orbital.<b>MO HOMO/LUMO +/-n</b>|Selects for display a molecular orbital based on energy-proximity to the highest-occupied or lowest-unoccupied molecular orbital. For example, <b>isosurface MO HOMO</b> or <b>isosurface MO LUMO +3</b>.||]','TEXT','[surface object] -- atomic and molecular orbitals','')
newCmd('','','*v+11.0;','There are several general shapes that can be created as "isosurfaces". These include: <br /><br />[||<b >ELLIPSOID <br />{{cx cy cz f_ab}}</b >|Draws an ellipsoid having a single unique axis. The first three numbers define the "principal" axis; the fourth parameter defines the eccentricity of the ellipsoid -- the ratio of the other two perpendicular axes to this main axis.||<b>HKL {{h k l}}</b>|Creates a plane through a crystal based on the Miller indices <i>hkl</i>. Adding <b>map molecular</b> creates a slice through the crystal highlighting atomic positions.||<b>PLANE</b>|Indicates that what is desired is not really an isosurface but rather a planar slice through the data set. Using COLOR ABSOLUTE, the range of mapped values can be changed. The range -0.008 0.008 is recommended for molecular orbitals. Planes, like other surface objects, can be mapped or left unmapped and just colored. Planes are designated using one of the methods for {#.plane expressions~}.||<b >SPHERE radius</b >|Draws a sphere of the given radius in Angstroms.||]','TEXT','[surface object] -- general shapes','')
newCmd('','','*v+11.0;*v-11.8;','Isosurfaces can be created in Jmol using external file-based "volume" data. <br /><br />[||<b >FILE "filename" n</b >|Depict the n-th isosurface from the specified CUBE, APBS, Chem3D, or {misc/JVXL-format.pdf~JVXL} file. Empty quotes indicate that the loaded file already has surface data present, and that that data should be used for construction of the surface. The optional number "n" specifies which volume or surface should be used in the case of a CUBE file with multiple orbitals or a JVXL file with multiple surfaces. Thus, for example, <b >load test.cube.gz;isosurface FILE ""</b > will load the coordinates from the GZIPped cube file, then display its first isosurface. A default directory can be set using {#.set (misc)~set defaultDirectory}, and for applets a proxy server can be set for non-host file loading using {#.set (misc)~set appletProxy}. Units of Bohr are assumed unless the keyword ANGSTROMS precedes this parameter. The keyword "FILE" is not required.||<b >FUNCTIONXY <br />"functionName" <br />{{originXYZ}} <br />{{ni xi yi zi}}<br /> {{nj xj yj zj}}<br /> {{nk xk yk zk}} </b >|The FUNCTIONXY keyword specifies that the Z-value at a given X,Y coordinate will be provided via a JavaScript function in the case of the applet or via a JmolStatusListener call in an application or, if the function name begins with <b>file:</b>, the numbers will be read from that file (relative to the current directory). The parameters mirror the parameters in the header of a CUBE file. Units of ANGSTROMS are assumed. Thus, we require an origin of the voxel space and for each nominal direction x, y, and z, the number of grid points and the direction of the unit vector along that edge. These four quantities must be in braces. In the case of the Jmol applet, there are three reading options. [||nx>0 and ny>0|functionName(app, ix, iy)| one point is returned for each call to the function.||nx&lt;0 and ny>0 | functionName(app, nx, ny)|an entire set of z values separated by white space will be returned as a string. Data are read from low to high coordinates, with X changing in the outer loop (slowly) and Y changing in the inner loop: a11, a12, a13,...,a21, a22, a23,..., etc. ||nx&lt;0 and ny&lt;0|functionName(app, nx, ny, Fxy)| the Fxy[][] array (of dimensions -nx by -ny) will be filled with z values. ||] <br />If the functionName starts with the string "file:", then Z value data will be loaded from a file instead of a JavaScript function in the order described above for reading data from a returned string.||]','TEXT','[surface object] -- file/data-derived isosurfaces','')
newCmd('','','*v+11.8;','Isosurfaces can be created in Jmol using external file-based "volume" or "polygon" data. <br /><br />[||<b >FILE "filename" n</b >|Depict the n-th isosurface from the specified file. Current volume-type files supported include Gaussian CUBE, APBS, Chem3D, Jaguar PLT, AMI {http://ami.scripps.edu/software/mrctools/mrc_specification.php~MRC}, XPLOR {http://cci.lbl.gov/@TILDErwgk/shortcuts/htdocs/current/python/iotbx.xplor.map.html~MAP} formats, as well as the Jmol-related {misc/JVXL-format.pdf~JVXL} format. Current polygon-type data file formats that can be read include two simple pmesh formats (see below), eF-site {http://ef-site.hgc.jp/eF-site/about.html~efvet} format, and JVXL-2.0 format (currently documented only in the Jmol code source files). Empty quotes indicate that the loaded structure file already has surface data present (CUBE files, for example, contain coordinates), and that that data should be used for construction of the surface. The optional number "n" specifies which volume or surface should be used in the case of a CUBE file with multiple orbitals or a JVXL file with multiple surfaces. Thus, for example, <b >load test.cube.gz;isosurface FILE ""</b > will load the coordinates from the GZIPped cube file, then display its first isosurface. A default directory can be set using {#.set (misc)~set defaultDirectory}, and for applets a proxy server can be set for non-host file loading using {#.set (misc)~set appletProxy}. For the CUBE file format, units of Bohr are assumed unless the keyword ANGSTROMS precedes this parameter. The keyword FILE is not required.||<b >FUNCTIONXY <br />"functionName" <br />{{originXYZ}} <br />{{ni xi yi zi}}<br /> {{nj xj yj zj}}<br /> {{nk xk yk zk}} </b >|The FUNCTIONXY keyword specifies that the Z-value at a given X,Y coordinate will be provided via a JavaScript function in the case of the applet or via a JmolStatusListener call in an application or, if the function name begins with <b>file:</b>, the numbers will be read from that file (relative to the current directory). The parameters mirror the parameters in the header of a CUBE file. Units of ANGSTROMS are assumed. Thus, we require an origin of the voxel space and for each nominal direction x, y, and z, the number of grid points and the direction of the unit vector along that edge. These four quantities must be in braces. In the case of the Jmol applet, there are three reading options. [||ni>0 and nj>0|functionName(app, ix, iy)| one point is returned for each call to the function.||ni&lt;0 and nj>0 | functionName(app, ni, nj)|an entire set of z values separated by white space will be returned as a string. Data are read from low to high coordinates, with X changing in the outer loop (slowly) and Y changing in the inner loop: a11, a12, a13,...,a21, a22, a23,..., etc. ||ni&lt;0 and nj&lt;0|functionName(app, ni, nj, Fxy)| the Fxy[-ni][-nj] array will be filled with z values in the case of the applet or functionXY(functionName, ni, nj, Fxy) will be called in the case of the application. ||] <br />If the functionName starts with the string "file:", then Z value data will be loaded from a file instead of a JavaScript function in the order described above for reading data from a returned string.||<b >FUNCTIONXYZ <br />"functionName" <br />{{originXYZ}} <br />{{ni xi yi zi}}<br /> {{nj xj yj zj}}<br /> {{nk xk yk zk}} </b >| (Jmol 11.7.34) Similar to FUNCTIONXY, except that in this case the X,Y,Z cube data will be provided in the order (for x = 1 to ni)(for y = 1 to nj)(for z = 1 to nk). The first two options listed for FUNCTIONXY are not available, and the signs of ni and nj are ignored. The data structure Fxyz[ni][nj][nk] must be filled with data by the function call functionName(app, ni, nj, nk, Fxyz) in the case of the applet or functionXYZ(functionName, ni, nj, nz, Fxyz) in the case of the application.||<b>OBJ "filename"</b>|(Jmol 11.7.27) The OBJ keyword indicates that the file data to be read comes in the {http://www.fileformat.info/format/wavefrontobj/~Wavefront Object} file format. Jmol uses the <b>v</b>ertex and <b>f</b>ace records of this file in order to create a set of polygons that are colored using the name of the <b>g</b>roup record, which is assumed to have the hexidecimal format <b>g kRRGGBB</b>. Note that Jmol does not read material (.mtl) files and so instead relies on this simpler method of assigning colors. Polygons are limited to triangles and quadrilaterals. ||<b>OBJ "filename"</b> n|Optionally, a specific group from the OBJ file can be read. <b>isosurface OBJ "sample.obj" 3</b>, for instance, reads only the third group of faces. ||<b>PMESH "filename"</b>|A "pmesh" is a surface data set consisting of a set of vertices and a set of polygons defining the "facets" of the surface. Polygons are limited to triangles and quadrilaterals. File formats readable by Jmol include:[||<b>numeric pmesh</b>|This relatively simple format can be found in {misc/10x10pmesh.txt~10x10pmesh.txt}. Jmol reads this file in free format -- values simply need to be separated by some sort of white space.<pre>100\n3.0000 3.0000 1.0000\n2.3333 3.0000 1.0000\n...(98 more like this)\n81\n5\n0\n10\n11\n1\n0\n...(80 more sets like this)\n</pre><ul> <li>The first line defines the number of grid points defining the surface (integer, n)</li><li>The next n lines define the Cartesian coordinates of each of the grid points (n lines of x, y, z floating point data points)</li><li>The next line specifies the number of polygons, m, to be drawn (81 in this case).</li><li>The next m sets of numbers, one number per line, define the polygons. In each set, the first number, p, specifies the number of points in each set. Currently this number must be either 4 (for triangles) or 5 (for quadrilaterals). The next  p numbers specify indexes into the list of data points (starting with 0). The first and last of these numbers must be identical in order to "close" the polygon.</li></ul>||<b>binary pmesh</b>|A more compact binary pmesh format is described in {misc/pmesh.bin.txt~pmesh.bin.txt}. In this case the PMESH keyword is optional, as Jmol can discern the data type from the first four bytes of the file contents. The format has the following specification:<pre>\n 4 bytes: P M \\1 \\0 \n 4 bytes: (int) 1 (test for bigEndian)\n 4 bytes: (int) vertexCount\n 4 bytes: (int) polygonCount\n 64 bytes: reserved\n ---then for each vertex:\n 12 bytes: (float) x,(float) y,(float) z\n ---then for each polyhedron, \n    the number of vertices (from 1 to 4) \n    followed by the index of the vertex \n    in the vertex list, starting with 0:\n    [(int)nVertices,(int)v1,(int)v2,...,(int)vn]\n</pre>||]||<b>PMESH INLINE "pmesh-data"</b>|Numeric pmesh data may be specified "in-line" without reference to a separate file. The keyword PMESH is optional but recommended. This is particularly useful for pmesh objects with few vertices. Note that the {#.draw~} command also can be used for this purpose.||]','TEXT','[surface object] -- file/data-derived isosurfaces','')
newCmd('','','*v+11.10;','If any parameters spefically relate to the mapping of the surface, not the generation of it, then they can come after the specification of the surface object. Keywords such as "COLOR ABSOLUTE", CONTOUR, DEBUG, FIXED, FULLPLANE, MODELBASED, MAP, REVERSECOLOR, and SELECT (when it relates to the color mapping) fall into this category. ','TEXT','[additional mapping-only parameters]','')
newCmd('','','*v+11.0;','Except for SPHERE, ELLIPSOID, LOBE, and LCAOCARTOON, which have no CUBE-file equivalent, all the other surface types (including FUNCTIONXY starting with Jmol 11.6) can be used as CUBE-type data sets in order to color map another surface, because they all involve the intermediate generation of voxel data within Jmol. Used with PLANE as a surface object, a slice through a set of data can be color-contoured.The keyword MAP is optional, recommended for readability. The keyword set MAP SQUARED indicates that the values should be squared prior to mapping (Jmol 11.4). The Jmol parameter {#.set(misc)~isosurfacePropertySmoothing} (Jmol 11.4; default TRUE) determines whether the property is smoothed out over the isourface or assigned specifically to the nearest atom. <br /><br />Atom based-properties can be mapped onto a surface using one of the following three options: <br />[||<b>PROPERTY xxx</b> | where xxx is an atom-based property value such as partialCharge or temperature or vanderwaals ||<b>variable x</b>| The property is in a varible named "x", possibly from a command such as <b>x = load("mydata.txt")</b>. In this case, the variable must contain a value for every atom in the model, even if only a subset of the atoms is being used for the surface. || <b>property_xxxx</b> | The linking underscore signifies that the property was provided separately using the DATA command and is not model-file based. A previous SELECT ...; DATA "property_xxxx"....end "property_xxxx" or, if the data are from a variable, SELECT...; DATA "property_xxxx @x", must have already been issued. Note that when data is created in this way, only the selected atoms are assigned data values. Atoms thus selected need not be contiguous, but the data will be read from the variable or DATA command line contiguously, disregarding spaces, tabs, line ends, and any string that would not evaluate to a number. This allows for targeting just a specific set of atoms for an isosurface and associated data. ||]  ','TEXT','MAP [color mapping dataset]','')
newCmd('','','*v+11.0;','[||<b>COLOR &lt;color&gt;</b>|Colors an isosurface the specified color name or value, such as <b>[xFF0000]</b>. ||<b>COLOR RANGE <br />x.xxx y.yyy</b>|Indicates to color the specified range of value from one end to the other end of the color scheme. If numbers are not included or COLOR RANGE ALL is specified, then the minimum and maximum data values in the file are used. [Jmol 11.4].||<b>COLOR "c1 c2 c3..."</b>|Where c1, c2, etc. are color names or values, such as <b>red</b> or <b>[xFF0000]</b> within double quotes, this option allows specification of descrete colors to be used for contour mapping. ||<b>COLORSCHEME "xxx" </b>|Sets the color scheme to one of "roygb" (default rainbow), "bwr" (blue-white-red), "rwb" (red-white-blue), "low" (red-green), or "high" (green-blue). An additional scheme "sets" colors the isosurface different colors for different surface fragments (for example, internal cavities).||<b>CONTOUR n</b>|Specifies to display the object as a set of contour lines. Then number of lines is optional; 9 contour lines are shown by default. Using the CONTOUR keyword sets the default display to be CONTOURLINES NOFILL.||<b>CONTOUR -n</b>|With a negative number, specifies for a plane or f(x,y) object the specific single contour to depict.||<b>CONTOUR DISCRETE</b><br /> [a,b,c,d,e,...]|Sets the contour levels to discrete values. In addition, see the COLOR option, above, for the discrete coloring option. [Jmol 11.9.7]||<b>CONTOUR INCREMENT <br />{{from,to,step}}</b> |Sets the contour values starting with the <b>from</b> value<b> to the <b>to</b> value in increments of <b>step</b>. In addition, see the COLOR option, above, for the discrete coloring option. [Jmol 11.9.7]||<b>REVERSECOLOR</b>|For colorschemes in particular, the REVERSECOLOR option switches the direction of the color scheme. This parameter should be given just prior to the COLORSCHEME parameter.||]','TEXT','[color and contour options]','')
newCmd('','','*v+11.0;','Display options are indicated in the following table. These may be given at the end of the definition of the surface or in a later command having just these keywords and the identifier (or "ALL") of the desired isosurface.  <br />[||<b>CONTOURLINES/NOCONTOURLINES</b>|(Jmol 11.8) turns on and off contour lines generated using the CONTOUR option (see bove). ||<b>DOTS/NODOTS</b>| Display dots at each mesh vertex point.  ||<b>FILL/NOFILL</b>| Display the isosurface as a smoothly filled surface.||<b>FRONTONLY/NOTFRONTONLY</b>| Display only the front half of the surface. This can be useful when the options <b>mesh nofill</b> are used. ||<b>FRONTLIT /BACKLIT /FULLYLIT</b>| In some cases the isosurface may appear flat. Using BACKLIT will fix this; FULLYLIT makes exterior and interior surfaces bright; FRONTLIT is the default setting. ||<b>MESH/NOMESH</b>| Display a mesh of lines intersecting at the vertexes used to construct the isosurface. ||<b>ON/OFF</b>| Turn the isosurface ON or OFF, but do not delete it. ||<b>OPAQUE/TRANSLUCENT n</b>| Display the isosurface as an opaque or translucent object. Several translucent options are available; see the {#.color~} command. ||<b>TRIANGLES/NOTRIANGLES</b>| Display separated triangles (primarily for debugging purposes).||]','TEXT','[display options] ','')
newCmd('','','*v+11.8;','Calculates the area of the current isosurface and stores that value in the <b>isosurfaceArea</b> variable. The AREA parameter may also accompany any other parameters in the construction of an isosurface. If the surface is fragmented, the result is an array; otherwise it is a decimal number. ','*2','AREA','')
newCmd('','','*v+11.0;','Deletes all isosurfaces. ','*3','DELETE','')
newCmd('','','*v+11.2;','Lists all isosurfaces','*4','LIST','')
newCmd('','','*v+11.8;','Calculates the volume of the current isosurface and stores that value in the <b>isosurfaceVolume</b> variable. The VOLUME parameter may also accompany any other parameters in the construction of an isosurface. If the surface is fragmented, the result is an array; otherwise it is a decimal number.','*2','VOLUME','')












newCmd('.javascript','','*v+11.2 -- new;script;javascript','Executes the specified javascript command. Applet only; may be disallowed by setting _jmol.noEval = true within the web page','*1','&quot;javascript commands&quot;','')


newCmd('.label','','*v+11.0 -- adds multiple line options;*v-11.8;label;latom','Turns on and off atom labels based on a previous selection. If a string is given, it is used as the label. See also  {#.hover~} and {#.echo~}. Additional options include setting the {#.font~}, {#.color~color}, {#.background~background}, x- and y-{#.set (highlights)~offsets}, and the text {#.set (highlights)~alignment} (left, center, or right), and using &#124; (vertical bar) as a line separator for multiline labels. Default settings for these characteristics can be set by first issuing <b>select none</b>, so that no real label is set.','1|2','','')
newCmd('.label','','*v+11.8 -- extends atom options with %[…];label;latom','Turns on and off atom labels based on a previous selection. If a string is given, it is used as the label. See also  {#.hover~} and {#.echo~}. Additional options include setting the {#.font~}, {#.color~color}, {#.background~background}, x- and y-{#.set (highlights)~offsets}, and the text {#.set (highlights)~alignment} (left, center, or right), and using &#124; (vertical bar) as a line separator for multiline labels. Default settings for these characteristics can be set by first issuing <b>select none</b>, so that no real label is set.','1|2','','')

newCmd('','','*v+11.8;','<b>Labels on</b> delivers a default label to the currently selected atoms. The default for this label (<b>%[identify]</b>) depends upon the file type and whether more than one file is loaded:<br /> [|| single model, non-PDB data| <b>%[atomName]  #%[atomNo]</b>||mutiple model, non-PDB data| <b>%[atomName]/%[model  #%[atomNo]</b>. Note that the model will be displayed in "file.model" notation. For example, <b>C12/3.2 #10</b> would be an atom in the third model of the second file loaded.|| single model, PDB data| <b>[%[group]]%[sequence]:%[chain].%[atomName]%%%[altloc]  #%[atomNo]</b>. (Not all residues will show the chain or altloc, in which case the preceding colon or period, respectively, is not displayed. For example: <b>[MET]1:C.N #608</b>||mutiple model, PDB data|<b>[%[group]]%[sequence]:%[chain].%[atomName]%%%[altloc]/%[model]  #%[atomNo]</b>||]<br /><br />Note that <b>labels off</b> deletes the current formatting, and <b>labels on</b> always restores the default label. ','2','._on_off{"ON"}','')
newCmd('','','*v+11.8;','Starting with Jmol 11.8, you can specify atom parameters two different ways. You can use the older notation consisting of a percent sign followed by a single character, or you can use a new notation that is more flexible and easier to remember consisting of a percent sign followed by a keyword in brackets. For instance, you can use <b>select *.ca;label "[%n]%R"</b> or <b>select *.ca;label "[%group]%resno"</b>. See {#.atomproperties~atom properties} for a detailed list of atom properties that can be included in labels.','TEXT','Atom label parameters','')
newCmd('','','*v+11.8;','Standard C++ "pformat" formatting is also available. So, for example, "%0.1x" is the x-coordinate rounded to one decimal place; "%-8.3[partialcharge]" is the partial charge left aligned in an 8-character field with 3 digits to the right of the decimal point; "%05.0[temperature]" is the integer-rounded B-factor zero-filled on the left in a 5-character field.','TEXT','Column formatting','')
newCmd('','','*v+11.8;','You can use labels for more than just labeling atoms. Using the .label() function you can create variables and save them to files or deliver them to a webpage using JavaScript, thus producing customized output of your choice. For example, the commands<br /><br />x = {{*.ca}}.label("%5[group] %7[resno] %10.2phi %10.2psi");<br />write VAR x "phipsi.xls" <br /><br />creates a file that lists phi and psi Ramachandran angles for a protein. (A similar output can be obtained using the {#.write~write Ramachandran} command.) From a web page, the following JavaScript retrieves bond information for the first silicon atom from an applet: <br /><br />var x = jmolEvaluate(\'print {{_Si}}[1].bonds.label("%6a1 %6a2 %ORDER %4.2LENGTH")\')<br /><br />Note that the {#.write~} command can be used with the signed applet from the {#.console~} to save data on a local drive even if the applet is from another source, such as {http://www.rcsb.org~}. ','TEXT','Label applications','')
newCmd('','','*v+11.0 -- several new labeling options;*v-11.8;','<br />Special characters include: <br />[||%a|atom name||%A|PDB alternate location identifier||%b|protein B-factor||%B|atom type (mol2, AMBER files) or atom name (other file types) -- Jmol 11.8||%c|protein chain||%C|formal charge||%D|atom 0-based index; a unique number for each atom regardless of the number of models loaded||%e|element symbol||%E|protein residue insertion code||%f|protein group PHI angle for atom\'s residue  (Jmol 11.4)||%g | group index in chain||%G | overall group index (Jmol 11.6)||%i|sequential number||%I|<b>i</b>onic radius||%l|atomic e<b>l</b>ement number||%L|polymer length||%m|single-letter residue code (amino acids only)||%M|model number||%n|3-letter residue code||%N|molecule number||%o|list of crystallographic symmetry operators generating this atom||%p|protein group PSI angle for the atom\'s residue  (Jmol 11.4)||%P|partial charge||%q|occupancy (0-100%)||%Q| occupancy 0.00 - 1.00||%r|PDB residue number, including insertion code||%R|PDB residue number, not including insertion code||%s|protein chain (same as %c)||%S|crystallographic site number||%t|temperature factor (same as %b)||%u|shortest distance to a surface atom||%U|full PDB designator, same as [%n]%r:%c %a  #%i||%v|vibration vector, or individual components as %vx %vy %vz||%V|van der Waal radius||%W|PDB residue designator with x, y, z included: [%n]%r %x %y %z (Jmol 11.4)||%x %y %z|Cartesian coordinates||%X %Y %Z|fractional coordinates||] <br />Standard C++ "pformat" formatting is also available. So, for example, "%.1x" is the x-coordinate rounded to one decimal place; "%-8.3P" is the partial charge left aligned in an 8-character field with 3 digits to the right of the decimal point; "%05.0b" is the B-factor zero-filled on the left in a 5-character field.','1','._on_off_string','')
newCmd('','','*v+11.4;','Toggles the labels on or off for the specified set of atoms.','2','TOGGLE','(atom expression)')

newCmd('.lcaoCartoon','','*v+11.4 -- adds ROTATE option;iso','<img src="img/lcao.jpg" height="100" width="100"   alt="LCAO Cartoons"  />The <b>lcaoCartoon</b>  command displays cartoonish atomic p and hybrid sp, sp2, sp3 orbitals like those commonly seen in textbooks in discussions of the method of linear combination of atomic orbitals. <br /><br />Any number of the following options may be strung together in the same command. The {#.isosurface~} command can also be used for the creation of LCAO cartoons. Selections for scale, color, and translucency are "persistent" -- carrying over from one command to the next -- and thus need only to be given once per model loading if they are not to be changed. Note that these options must be given prior to or along with the actual command creating the cartoon; they do not act on lcaocartoons that have already been made. The CREATE keyword and its associated orbital type, optionally with the added keyword MOLECULAR, must be the very last keyword when multiple keywords are involved.','1|2','','')
newCmd('','','*v+11.0;','Turn on/off the selected LCAO cartoon.','*1','._on_off{"ON"}','')
newCmd('','','*v+11.0;','Creates a new LCAO cartoon of the given type at the currently selected atoms. Of the selected atoms, only atoms with compatible sigma hybridization are used. The CREATE keyword is optional. Valid types include are shown below. In addition to those listed, adding a "-" sign prior to the designation -- "-sp2" for example -- denotes the position 180 degrees rotated from the described position. <br /><br />[||"lp"|the "lone pair" position at an AX3E center such as the N atom in NH3, with three bonds in sp3 sigma hybridization, or the sp2-hybridized lone pair in an AX2E center such as the unprotonated N atom in histidine||"lpa", "lpb"|the two sp3 sigma-hybridized lone pair positions at an AX2E2 bent sigma-hybridized center, such as that in H2O.||"px" "py" "pz"|Standard p orbitals at an sp or sp2 sigma-hybridized center.||"s"|standard spherical s orbital at any center.||"sp2a" "sp2b" "sp2c"|the three sigma bonding/nonbonding positions around an sp2 sigma-hybridized center.||"sp3a" "sp3b" "sp3c" "sp3d"|the four sp3 sigma-hybridized positions at any sp3 sigma-hybridized center.||]','*2','CREATE','&quot;[type]&quot;')
newCmd('','','*v+11.0;','Creates a new LCAO cartoon of the given type using the molecular axes system as reference. Applicable only for "px", "py", "pz", "-px", "-py", and "-pz". ','*3','CREATE','&quot;[type]&quot;','MOLECULAR','')
newCmd('','','*v+11.0;','Colors the orbital one specific color for the lcaocartoon being created with that command or future lcaocartoons.','*4','COLOR','._colorRGB')
newCmd('','','*v+11.2;','Allows for translucent or opaque lobes  for the lcaocartoon being created with that command or future lcaocartoons. For translucency options, see {#.color~}.','*9','TRANSLUCENT or OPAQUE','')
newCmd('','','*v+11.0;','If this is a p orbital, colors the two lobes different colors  for the lcaocartoon being created with that command or future lcaocartoons.','*60','COLOR','._colorRGB','._colorRGB','')
newCmd('','','*v+11.0;','Delete the LCAO cartoons on the currently selected set of atoms.','*62','DELETE','')
newCmd('','','*v+11.2;','Lists all LCAO cartoons','*65','LIST','')

newCmd('','','*v+11.0;','Sets the scale of the LCAO cartoon  for the lcaocartoon being created with that command or future lcaocartoons.','*7','SCALE','(decimal)')
newCmd('','','*v+11.0;','For the already selected atom set, selects what type of orbital for an on/off/delete operation.','*82','SELECT','&quot;[type]&quot;')
newCmd('','','*v+11.2;','Selects a set of atoms. In the absence of this keyword, the previously selected atom set is used.','*81','SELECT','(atom expression)')

newCmd('.[reading ZIP/JAR files]','','*v+11.4;','In any file reading operation (for example, in the {#.isosurface~}, {#.load~}, or {#.script~} command), Jmol can read a specific file within ZIP or JAR file collections. (The two formats are the same.) Simply indicate the path to the file within the collection using the vertical bar character as a separator: <b>load "myfiles.zip|files|pdb|1crn.pdb"</b>. A path element may be a subdirectory within the ZIP file or the name of a ZIP file contained within one of those directories: <b>isosurface "mysurfaces.zip|isousurfaces|jvxl.zip|surface1.jvxl"</b>. The full directory contents of a ZIP or JAR file can be read out using <b>getProperty fileContents "myfile.zip"</b>, and the contents of specific files within a zip collection can also be read this way as, for example, <b>getProperty fileContents "myfile.zip|JmolManifest"</b>. Note that variables can be assigned these contents using the getProperty() function: <b>var dir = getProperty("fileContents", "myfile.zip|JmolManifest")</b>. The {#.load~} command specifically allows reading of multiple files from a ZIP or JAR collection, and will read files in the order specified in a file with the name "JmolManifest" contained in the compressed file collection.','1|2','','')




newCmd('.load','','*v+11.6 adds the FILTER option.;*v-11.8;load','Loads the specified file or URL. A wide variety of file types are supported. In general, resolution of file type is based on internal file cues, not the filename or file extension. However, this resolution process can be overridden by specifying a prefix to the file name consisting of the file type followed by two colon characters: <b>load "molpro(xml)::myfile"</b>.  Multiple files and a selected model from a multi-model file can be read as well. Files may be Gzipped, and multiple files can be read from compressed ZIP and JAR collections. A default directory can be set using {#.set (misc)~set defaultDirectory}, and for applets a proxy server can be set for non-host file loading using {#.set (misc)~set appletProxy}. After the filename, the options listed below are available. These options must appear in the order given in the table below. In addition, the load command can take parameters that specify the number of unit cells to generate, the the space group or Jones-Faithful operators to use, and the unit cell dimensions. Using these parameters, the space group and unit cell information within a file can be overridded, and even simple XYZ data files can be turned into crystallographic data sets. Starting with Jmol 11.6, the FILTER keyword allows selective loading of atoms as well as construction of the biologically relevant molecule (PDB "BIOMOLECULE" records. See also the headings {#.load APPEND~}, {#.load FILES~},  {#.load MENU~}, {#.load MODELS~}, and {#.load TRAJECTORY~}. Note that with the Jmol application (not the applet) you can also use Edit...Paste to load molecular coordinate from the system clipboard. The same capability for the applet can be had using {#.data~data "model"}. ','1|2','','')
newCmd('.load','','*v+11.8 adds the {ijk i\'j\'k\' -1} and PACKED and VIBRATION options. Also load "@x";load','Loads the specified file or URL. A wide variety of file types are supported. In general, resolution of file type is based on internal file cues, not the filename or file extension. However, this resolution process can be overridden by specifying a prefix to the file name consisting of the file type followed by two colon characters: <b>load "molpro(xml)::myfile"</b>.  Multiple files and a selected model from a multi-model file can be read as well. Files may be Gzipped, and multiple files can be read from compressed ZIP and JAR collections. A default directory can be set using {#.set (misc)~set defaultDirectory}, and for applets a proxy server can be set for non-host file loading using {#.set (misc)~set appletProxy}. After the filename, the options listed below are available. These options must appear in the order given in the table below. In addition, the load command can take parameters that specify the number of unit cells to generate, the the space group or Jones-Faithful operators to use, and the unit cell dimensions. Using these parameters, the space group and unit cell information within a file can be overridded, and even simple XYZ data files can be turned into crystallographic data sets. Starting with Jmol 11.6, the FILTER keyword allows selective loading of atoms as well as construction of the biologically relevant molecule (PDB "BIOMOLECULE" records. See also the headings {#.load APPEND~}, {#.load FILES~},  {#.load MENU~}, {#.load MODELS~}, and {#.load TRAJECTORY~}. Note that with the Jmol application (not the applet) you can also use Edit...Paste to load molecular coordinate from the system clipboard. The same capability for the applet can be had using {#.data~data "model"}. ','1|2','','')
newCmd('','','*v+11.6;','Supported file types include: <br/><br/>[||ADF|{http://www.scm.com/~Amsterdam Density Functional} output file||AIMS|(Jmol 11.8.RC6)||Argus(XML)|{http://www.planaria-software.com/~ArgusLab} AGL file||Chem3D(XML)|CambridgeSoft {http://www.cambridgesoft.com/software/details/?ds=3~Chem3D} C3XML file||CASTEP|{http://www.castep.org~CASTEP} file format (Jmol 11.8.RC6)||CIF|International Union of Crystallography {http://www.iucr.org/iucr-top/cif/home.html~Crystallographic Information File}, including Macromolecular Crystallographic Information file (mmCif)||CML(XML)|{http://cml.sourceforge.net/~Chemical Markup Language} file||CSF|Fujitsu {http://www.computers.us.fujitsu.com/www/products_bioscience.shtml?products/bioscience/cache~Sygress Explorer} (formerly CAChe) chemical structure file, including the reading of ab initio, semiemperical, gaussian, and density functional molecular orbitals||CUBE|Gaussian {http://www.gaussian.com/g_ur/u_cubegen.htm~cubegen} output file||FoldingXYZ|XYZ file created by the {http://fahwiki.net~Folding@home project}||GAMESS|{http://www.msg.chem.iastate.edu/gamess/~General Atomic and Molecular Electronic Structure System} output file||Gaussian|{http://www.gaussian.com/~Gaussian} output file||GhemicalMM|{http://en.wikipedia.org/wiki/Ghemical~Ghemical} molecular mechanics file (MM1GP)||GRO|{http://www.gromacs.org~GROMACS} .gro file format (Jmol 11.7.47)||HIN|{http://www.hyper.com/~HyperChem} native file||Jaguar|National Center for Supercomputing Applications Jaguar output file||JME|{http://www.molinspiration.com/jme/~Java Molecular Editor} file format (a 2D, not a 3D, format)||MDTOP, MDCRD|{http://amber.scripts.edu~AMBER} Molecular dynamics topology files and associated coordinate files. (Jmol 11.7.1)||MOL, MOL2|Symyx (formerly Molecular Design) {http://www.mdli.com/downloads/public/ctfile/ctfile.jsp~structure data files}, including SDF and CTAB V2000 files||MOLDEN|{http://www.cmbi.ru.nl/molden/molden_format.html~Molden} data file||MOLPRO(XML)|{http://www.molpro.net/~Molpro} structure file||Mopac|{http://openmopac.net~OpenMopac} output file (MOPOUT)||MopacGraphF|{http://openmopac.net~OpenMopac} GRAPHF output file (for molecular orbitals)||NWCHEM|Pacific Northwest National Laboratory {http://www.emsl.pnl.gov/docs/nwchem/nwchem.html~NWChem}  output file||Odyssey|WaveFunction {http://www.wavefun.com/products/odyssey/odyssey.html~Odyssey} data file (ODYDATA)||Odyssey(XML)|WaveFunction {http://www.wavefun.com/products/odyssey/odyssey.html~Odyssey} XODYDATA file||PDB|{http://www.wwpdb.org/docs.html~Protein Data Bank} file||PQR|Position/Charge/Radius data file produced by the {http://apbs.sourceforge.net/~Adaptive Poisson-Boltzmann Solver} project||PSI|{http://www.psicode.org/~PSI3} output reader (coordinates only)||QCHEM|{http://www.q-chem.com/~Q-Chem} output file||SHELX|{http://shelx.uni-ac.gwdg.de/SHELX/~SHELX} output file||Spartan|WaveFunction {http://www.wavefun.com/products/spartan.html~Spartan} data file||SpartanSmol|WaveFunction binary {http://www.wavefun.com/products/spartan.html~Spartan} SMOL data file, including full MacSpartan Spartan directories in ZIP format||V3000|Symyx (formerly Molecular Design) {http://www.mdli.com/downloads/public/ctfile/ctfile.jsp~V3000 Connection Table} (CTAB or SDF) data file||WebMO|{http://www.webmo.net/~WebMO} molecular orbital file reader||Wien2k|{http://www.wien2k.at~Wien2k} data files. WIEN2k performs electronic structure calculations for solids using density functional theory. Using the option <b>spacegroup "none"</b> disregards symmetry information given in the file and simply reads the atom coordinates given in the file, including MULT atom records. For example, <b>load t.struct {{1 1 1}} spacegroup "none"</b> (Jmol 11.7.36)||XYZ|Minnesota Supercomputer Institute XMol file format (for examples, see {http://jmol.svn.sourceforge.net/viewvc/jmol/trunk/Jmol-datafiles/xyz/~}. An extension to this file format includes dx dy dz  vbrational vector information on the atom line after the x y z coordinates.||]','TEXT','[File types]','')
newCmd('','','*v+11.4;','Jmol can read specific files within compressed {#.reading ZIP/JAR files~ZIP and JAR collections}. In addition, for the <b>load</b> command specifically, Jmol will look for a file within the collection with the name <b>JmolManifest</b> and follow the directives within it. These directives may be as simple as a list of files to be loaded, one filename per line (which will be read in the order listed). Lines starting with # are comment lines, which may contain any text, but also may contain one or more of the following keywords: <br /><br />[||<b>#EXCEPT_FILES</b>|The list of files specifies files to ignore, not files to load; all other files will be loaded.||<b>#IGNORE_ERRORS</b>|Try to read files, but ignore errors when a file is not recognized as a valid model format that Jmol can read. This option allows easy "mining" of ZIP collections for files that Jmol can recognize, ignoring all others. ||<b>#IGNORE_MANIFEST</b>|Ignore this manifest in its entirety -- simply read all files in the order retrieved by the ZIP file iterator.||]','TEXT','[ZIP/JAR files and JmolManifest]','')
newCmd('','','','The following options may be indicated after specifying the filename. Each is optional, but if more than one option is indicated, options must be given in the order listed in this table. <br /><br />[||<b>MANIFEST "manifestOptions"</b>| (Jmol 11.4) If the file being loaded is a ZIP or JAR file, Jmol will search for a file in that compressed file collection with the name "JmolManifest" and process it accordingly (see above). However, in the <b>load</b> command, if the keyword <b>MANIFEST</b> and a quoted string follows the filename, then Jmol will use this string as the manifest instead, with lines of the manifest separated by vertical bar "&brvbar;" characters. In this way, standard ZIP collections can be read, and the order of file loading can be specified. For example: <b>load "test.zip" manifest "CH3CL.MOL&brvbar;CH4.MOL"</b> reads only these two files from the ZIP collection, in this order. If the file contains a manifest and that manifest is simply to be ignored, the quoted string should read "IGNORE_MANIFEST".  ||<b> (integer) </b> | Loads only the specified model number (if positive) or vibration number (if negative, starting with Jmol 11.9.8), skipping the others. For PDB files, the number indicated is the number specified in the MODEL record. (Not supported by all file types.) Starting in Jmol 11.8, see also {#.load MODELS~}. ||<b>{{unitCell(s)}}</b> | see <i>Crystallographic Options</i>, below||<b>FILTER</b> | (Jmol 11.6) The FILTER parameter specifies file-type specific load options. Options should be separated by commas. For atom selection,  more than one specification may be made using a comma between specifications: *:1,*:2, but * and ! may not be mixed within any one type (atom name, group name, or chain ID). These include <br />[||file type|option|description||PDB|BIOMOLECULE n|load only the specified biomolecule, as specified in the REMARK 350 APPLY THE FOLLOWING TO CHAINS record, applying the symmetry transformations specified in the REMARK 350 BIOMT records||PDB|NOSYMMETRY|Along with BIOMOLECULE, indicates that the symmetry transformations in the REMARK 350 BIOMT records should be ignored.||PDB|#i or !#i|select only BIOMT transformation i (#i) or NOT transformation i (!#i). Note that BIOMT #1 (the identity) cannot be deselected -- it is always part of the loaded set of atoms.||PDB and CIF|*.XX or !.XX|select only atoms of the designated type (*.XX) or only atoms NOT of the specified type (!.XX). ||PDB and CIF|[XXX] or ![XXX]|select only atoms of the designated group name ([XXX]) or only atoms NOT of the specified group name (![XXX]). ||PDB and CIF|*:X or !:X|select only atoms in chain X (*:X) or only atoms NOT of chain X (!:X).||GAMESS, Gaussian, QChem|NBO| (Jmol 11.7.33) Specifies to read only natural bonding orbitals created with the NBO 5.0 option <b>AONBO=P</b>. ||GAMESS, Gaussian, QChem|EIGEN or !NBO| (Jmol 11.7.33) Read only standard eigenfunctions. ||GAMESS, Gaussian, QChem, NWChem|nboCharges| (Jmol 11.7.34) Use atomic partial charges from the NBO calculation. Note that this flag is independent of the <b>NBO</b> filter option. To use both, separate them with a comma: <b>load "myfile.out" FILTER "NBO,nboCharges"</b>. ||]<br /> ||]','TEXT','[General Options]','')
newCmd('','','','The following crystallographic options may be indicated, starting with the specification of the unit cell. If more than one option is indicated, options must be given in the order listed in this table. <br /><br />[||<b>{{unitCell(s)}}</b> | (Jmol 11.0) Jmol can read unit cell and symmetry information from selected file types (for example, CIF, PDB, or SHELX). The specific set of unit cells to load can be specified one of two ways -- either using the notation {{i j k}} or the notation {{ijk i\'j\'k\' n}}.[||<b>{{i j k}}</b> | Loads a block of unit cells between the origin, {{0 0 0}} and the specified unit cell system coordinate. Used alone, {{i j k}} is only for working with files containing both unit cell and space group information (CIF, SHELX, CML, for example). The particular choice {{3 3 3}} is significant, in that it loads 27 unit cells, forming a solid block around a central cell. The unit cell display can then be moved to the origin of this central cell using <b>unitcell {{1 1 1}}</b>, and the display of atoms can be restricted to that center cell using <b>restrict cell=666</b> or <b>restrict cell={{2 2 2}}</b>. Multiple unit cell loading  can be combined with the single-model loading by indicating the model number first, then the number of unit cells: <b>load "myfile.cif" 15 {{3 3 3}}</b>. Quotes are not required. Starting in Jmol 11.1, there is no restriction other than memory on the size of i, j, and k (except that all must be positive).  ||<b>{{ijk&nbsp;i\'j\'k\'&nbsp;-1}}</b> | <img src="img/loadunitcell-1.jpg" align="right" />Loads a block of unit cells within the range ijk and i\'j\'k\' (which should include 555) and packs all atoms into the designated set of cells. The keyword <b>PACKED</b> may be used in place of <b>{{555 555 -1}}</b> or after a designated set of cells: <b>load t.struct {{2 2 2}} PACKED (Jmol 11.7.23,36)||<b>{{ijk&nbsp;i\'j\'k\'&nbsp;0}}</b> | <img src="img/loadunitcell0.jpg" align="right" />Loads a block of unit cells within the range ijk and i\'j\'k\' (which should include 555) WITHOUT normalizing the operators. All symmetry-generated atoms are placed based on the exact definition of the symmetry operations found in the file or designated using the <b>spacegroup</b> keyword (see option below). Note, however, that if explicit operations are not provided and therefor must be generated from a spacegroup name, they will be normalized. The list of operations used can be obtained using {#.show~show symmetry}.||<b>{{ijk i\'j\'k\' 1}}</b> | <img src="img/loadunitcell1.jpg" align="right" />Loads a block of unit cells within the range ijk and i\'j\'k\' (which should include 555), normalizing the operators to move the geometric center of the generated set of atoms into cell 555, then applying the lattice translation. Thus, <b>load "filename" {{555 555 1}}</b> is equivalent to <b>load "filename" {{1 1 1}}</b>. For example, <b>load "myfile.cif" {{444 666 1}}</b> loads a block of 27 unit cells, with the geometric center of all units with the bounds of the fractional coordinate range {{-1 -1 -1/}} to {{2 2 2/}}.||] ||<b>RANGE x.xx</b> | (Jmol 11.4) Restricts the atoms loaded to those within a given range in angstroms. If x.xx is positive, then this range is relative to the entire set of atoms that would be generated using <b>load "filename" {{1 1 1}}</b>; if x.xx is negative, then the range is relative to the atoms that would be generated using just <b>load</b> itself (the base x,y,z symmetry set). ||<b>SPACEGROUP "name"</b>| (Jmol 11.0) Loads a block of unit cells between the origin, {{0 0 0}} and the specified unit cell system coordinate. In addition, the symmetry inherent in the file is ignored, and the specified space group is applied. Quotes are required around the space group name. If the space group name itself includes double quotes, use two single quotes or an "escaped double quote" (\\") instead. For example: P 32 2\'\' (single quotes here) or P 32 2\\", not P 32 2". Generally Jmol reads the Jones-Faithful operators from a file, however if the spacegroup name is specified as "ignoreOperators", Jmol will ignore any explict file-based Jones-Faithful operators and instead create the symmetry based on parsing of the space group symbol in the file (Hermann-Mauguin, Hall, or international table number). If the name is a semicolon-separated list of Jones-Faithful operators, such as "x,y,z;x+1/2,y,z", Jmol will ignore any explict file-based operators and instead create the symmetry based on the list provided.|| <b>UNITCELL&nbsp;{{a&nbsp;b&nbsp;c&nbsp;alpha&nbsp;beta&nbsp;gamma}}</b>| (Jmol 11.0) Specifies the unit cell to use for models in this file. If a unit cell is specified in a file, then this option allows overriding that specification. When both SPACEGROUP and UNITCELL are provided, Jmol can display molecules found in standard Cartesian coordinate files (XYZ, MOL, PDB) as packed unit cells. ||]','TEXT','[Crystallographic Options]','')
newCmd('','','','The load command by itself reloads the current file.','*1','','')
newCmd('','','','Jmol automatically determines file type based upon the contents of the file. Quotes are recommended. Files containing fractional coordinates are displayed with their unit cell visible. <b>load ""</b> reloads the current file.','*2','&quot;filename&quot;','')
newCmd('','','','Starting with Jmol 11.2, file format can be forced by prefixing a filename with "xxxx::" where "xxxx" is a Jmol file type. This should not be necessary in most cases, since Jmol determines file type by scanning the first lines of a file for file-type-specific content. In certain cases, however, where there are extensive comments at the beginning of a file, or a file type (such as MDCRD) does not have any distinguishing characteristics, it is possible for Jmol to fail to discover the file type or to misassign it. In that case, adding "xxxx::" is necessary. ','*3','&quot;filetype::filename&quot;','')
newCmd('','','','Loads the file with the name specified by variable <b>variableName</b>.','*40','@variableName','')
newCmd('','','','Starting with Jmol 11.8, you can load a model from data contained in a variable. This allows modification of the data prior to display, for example. Quotes are necessary, as without them  -- load @x -- it is the file name that is expected in variable x, not the file contents. For example: <b>x = load("quartz.cif");load "@x" {{2 2 2}};reset x</b>. Note that to save memory, it is a good idea to clear the variable using <b>reset x</b> just after loading. An interesting aspect of this option is that it allows data from a remote file to be saved in the state. This means that if you use <b>write state "somefile.spt"</b>, then that single state script will contain the full file data in a DATA statement. It will be "transportable" and no additional model file will be required. ','*41','&quot;@variableName&quot;','')
newCmd('','','','An optional keyword (APPEND, FILES, MODELS, or TRAJECTORY) may be supplied prior to the quoted filename. Other keywords are ignored. (Jmol does not use the Chime-style keyword to specify "file format". Rather, starting with Jmol 11.2, file format can be forced by prefixing a filename with "xxxx::" where "xxxx" is a Jmol file type. However, this should not be necessary in most cases, since Jmol determines file type by scanning the first lines of a file for file-type-specific content. (In certain cases, where there are extensive comments at the beginning of a file, it is possible for Jmol to fail to discover the file type or to misassign it. In that case, xxxx:: should be used.)','*5','keyword','&quot;filename&quot;')
newCmd('.load APPEND','','*v+11.2;','Adding APPEND to the load command appends a file or a set of files to the current model set without replacing the current model. (Jmol 11.2) Load parameters FILTER (Jmol 11.6), MANIFEST (Jmol 11.4), MODELS (Jmol 11.8), TRAJECTORY (Jmol 11.8), or unit cell/symmetry specification may be included with the APPEND keyword. By default, a new frame is created for each model added. For example:<br /><br />load "myfile.pdb";load APPEND "myligand.xyz";frame *;display 1.1,2.1<br /><br />If <b>set appendNew  false</b> has been issued and only one model is in the appended file, then the file model is added to the currently displayed model, creating no additional frames. Starting in Jmol 11.4, multiple files may be appended if the specified file is a ZIP file. In that case, specifying the manifest in the command after the filename is an option. ','1|2','','')
newCmd('.load [property]','','*v+11.8;vib','Adding the keyword OCCUPANCY, PARTIALCHARGE, TEMPERATURE, VIBRATION, or XYZ to the load command instructs Jmol to load only that sort of information from a file.<br />[||<b>load OCCUPANCY</b>| Occupancy data are in the form of integers between 0 and 255. Numbers less than 0 are saved as 0; numbers greater than 255 are saved as 255.||<b>load PARTIALCHARGE</b>| Partial charge data are in the form of decimals roughly in the range +/-3.4 x 10<sup>38</sup>.||<b>load TEMPERATURE</b>| Temperature (B-Factor) data are saved as decimals with 0.01 precision within the range -327.68 to 327.67. || <b>load VIBRATION</b> | Vibrational data are in the form of vectors.||<b>load XYZ</b> | Loads only the coordinates, replacing the current coordinates of an already-loaded model with those in the file to be read. (Jmol 11.8)||]<br /><br /> The data are applied to the currently selected set of atoms based solely on atom position. All standard load parameters are accepted, although many will be ignored, however whereas the default for a normal LOAD operation is to load all files, the default is to read data only from the first model in a multi-model file (or the specific model indicated with an integer after the file name). For each "atom" position and vector that is read, Jmol applies the data to all selected atoms having a unit cell normalized position within {#.set (misc)~loadAtomDataTolerance} (default 0.01) Angstroms of the position read from the file. If the file being loaded contains embedded Jmol script commands, those commands will be processed after the application of the vibrational vectors. For example, <b>load "myfile.struct" {{5 5 1}} PACKED; select _O; set loadAtomDataTolerance 0.2; load VIBRATION "vibs.xyz" 3</b> first loads a set of unit cells from myfile.struct, then applies only to the oxygen atoms the third vibration set found in vibs.xyz. All oxygen atoms in all unit cells are given vibrational vectors even though the data in vibs.xyz might only be for one unit cell. (Jmol 11.8) ','1|2','','')
newCmd('.load FILES','','*v+11.2;','Adding FILES to the load command indicates that a set of files are to be loaded (Jmol 11.2). Filenames must be quoted. Each model encountered is put into a new "frame." No additional parameters other than COORD are allowed (see below). ','1|2','','')
newCmd('','','','For multiple file loading, all parameters after the first must appear in quotes. Each model is loaded into a new frame, and frames are addressed using a decimal notation -- 1.1 for the first model in the first file, 1.2 for the second model in the first file, 2.1 for the first model in the second file, etc. For example, <b>select (oxygen) and (1.3, 1.4)</b> selects all oxygens in the third or fourth model of the first file loaded. See also {#.set(misc)~set backgroundModel}. (For backward compatibility with Jmol 11.0, frames may also be addressed by 1001, 1002, 2001, 2002, etc. where 1002 corresponds with "1.2", above.)','*1','&quot;filename1&quot;','&quot;filename2&quot;','…','')

newCmd('.load MENU','','*v+11.4;','The special command <b>load MENU</b> allows loading of a custom Jmol popup menu. ','1|2','','')
newCmd('','','','File format is that written by Jmol using the {#.show~show MENU} or {#.write~write MENU} command. See examples at {misc/Jmol.mnu~misc/Jmol.mnu} and {misc/test.mnu~misc/test.mnu}.','*1','&quot;menufile&quot;','')

newCmd('.load MODELS','','*v+11.8;','The MODELS keyword allows loading of a specific subset of models from a file that contains a model collection. Introduced in Jmol 11.8, two syntaxes are available. Note that model numbers refer to the sequence of models encountered in the file, starting with 0, and typically do NOT correspond to the model numbers indicated in PDB MODEL records. Once the models are loaded, they can be accessed using the file.model decimal notation as 1.1, 1.2, 1.3, etc.','1|2','','')
newCmd('','','','In the first syntax, first and last models along with a "stride" (step) are specified. Models are then read using an equivalent of <b>for (i = first; i <= last; i = i + stride)</b>. Numbers start with 0 for the first model; -1 for <b>last</b> indicates "to the end of the file." For example, <b>load MODELS {{0 10 2}} "..."</b> would load six models, models 0, 2, 4, 6, 8, and 10.','*1','{{first last stride}}','&quot;filename&quot;')
newCmd('','','','In the second syntax, a list of the specified files to load is given in the Jmol "bitset" syntax. This syntax uses braces within parentheses. Specific models are listed, starting with 0 for the first model. Ranges of models are indicated using colons. For example, <b>load MODELS ({{0 2 4:6}}) "..."</b> loads five models -- models 0, 2, 4, 5, and 6. <b>load MODELS ({{1}}) "..."</b> loads the <i>second</i> model only.','*2','({{i j k:l m...}})','&quot;filename&quot;')

newCmd('.load TRAJECTORY','','*v+11.4;','Loads a file as a "trajectory", meaning a single model with a series of atom coordinates. (Similar to the sort of multiple-frame animations that the Chime plug-in was able to load.) Loading a file as a trajectory saves substantially on memory requirements, since there is only one set of atoms and bonds. The defining restriction for trajectories is that only one frame can be viewed at a time. Each trajectory is loaded into its own frame as though it were a distinct model, and frames are accessed as usual using the {#.frame~} or {#.model~} command.  In addition, any reference to a specific trajectory, such as <b>select 1.3</b>, switches to that set of coordinates, and {#.measure~Measurements} and the position of {#.cartoon~cartoons} are automatically recalculated when a new trajectory is displayed. Changes to colors in one trajectory effect the same change for all trajectories, since there is really only one model, just different atom positions. Starting with Jmol 11.8, multiple files may be loaded as independent trajectories using APPEND TRAJECTORY in place of simply TRAJECTORY.','1|2','','')
newCmd('','','*v+11.4;','Loads the specified file as a trajectory.','*1','&quot;filename&quot;','')
newCmd('','','*v+11.8;','Loads the specified subset of models from the file as a trajectory. See {#.load MODELS~} for details.','*2','{{first last stride}} or ({{i j k:l m...}})','&quot;filename&quot;')
newCmd('','','*v+11.8;','The presence of a COORD keyword indicates that the trajectory is to be built from a set of files that includes an AMBER molecular dynamics topology file and associated coordinate files. FILTER is optional, but recommended. For example, <b>FILTER "![WAT]"</b> prevents loading of water molecules. Any number of coordinate files may be specified. Coordinates are loaded as a set of trajectory steps. At least one COORD keyword must be given, and each specification of first, last, and stride must be preceded by a COORD keyword. {{first last stride}} or ({{i j k:l m...}}) is optional, and if not provided defaults to {{0 -1 1}}, which is interpreted as "all trajectory steps from each file." See {#.load MODELS~} for documentation on {{first last stride}} and ({{i j k:l m...}}).','*3','&quot;filename&quot;','FILTER','&quot;filter specification&quot;','COORD {{first last stride}} or ({{i j k:l m...}}) mdcrd::crdfile1')

newCmd('.loop','','*v+11.0 -- changes how scripts are interrupted;pause','Causes the script to restart at the beginning, with an optional time delay. In Jmol 11.0 when the default {#.set (files and scripts)~set scriptQueue ON}, a looping script can only be stopped using the script command {#.quit~} or {#.exit~} either alone or at the beginning of another script. In Jmol 11.2, see also {#.goto~}.','1','.on','')

newCmd('','','','','1','._time_delay','')

newCmd('.measure','','*v+11.0 -- adds several new capabilities;',' Renders a measurement between the specified atoms. See also {#.set measurement~}. Two general syntaxes are available. In the older syntax, a series of two to four atom numbers are given, and the appropriate measure (distance, angle, or dihedral angle) is then displayed. The newer, more general syntax is as follows:  <br />  <br />measure RANGE &lt;minValue> &lt;maxValue> ALL|ALLCONNECTED|DELETE (&lt;atom expression>) (&lt;atom expression>) ... <br />  <br />Using this syntax one can specify a <i>set</i> of measurements to define all at once. Note that these sets are embedded {#.atom expressions~atom expressions} that must be enclosed in parentheses. If neither ALL nor ALLCONNECTED is present, only the <i>first matching</i> atom in the entire model set (all frames, so probably the first frame) is matched in each atom expression. When ALL or ALLCONNECTED is specified, all matching criteria in all frames are generated, thus allowing for "animated" measures. In general, this syntax restricts measurements to within the same model. However, measures can also be between two atoms in different frames (different models) as long as each atom expression evaluates to a single, specific atom. (To specify a particular atom in a particular model, use "AND */n", where n is the model number, "ATOMNO=3" by itself, for example, will indicate the third atom in each model/frame, but "ATOMNO=3 and */6" specifies only atom 3 in model 6). If a measurement is made between atoms in different models, both models must be displayed in order for the measurement to appear. A simple way to display two specific models is to use {#.display~display */i or */j}, where i and j are two model numbers. <br /> <br />Thus, for example, <b>measure (*) (*)</b> will measure nothing, because both expressions will simply match the first atom in the first frame. <b>measure allconnected (*/3) (*/3) (*/3)</b> will measure every angle associated with bonds for model 3; <b>measure allconnected (*) (*)</b> will measure every bonded distance in every loaded model; <b>measure all (*) (*)</b> measures all possible interatomic distances in all models (not recommended!). <br /><br />For the applet, using {#.getProperty~getProperty measurementInfo} will then deliver full information relating to all measurements.','0|1|2|3|4','','')
newCmd('','','','Turns on and off the distance, angle, dihedral measurement labels and measurement lines. (To turn off just the labels, use {#.set measurement~set measurement OFF} ','*11','._on_off{"ON"}','')
newCmd('','','*v+11.0;','Changes all previously defined measurement labels of a given type (n = 2, 3, or 4) to the indicated format. The default label is "%VALUE %UNITS" for all types. Also available is %#(percent number-sign), which gives the 1-based number of the measurement. Atom information can be included as for {#.label~labels}, adding 1 or 2 to the format code to indicate which atom. So, for example, <b>set defaultDistanceLabel "%a1 -- %a2 distance = %0.0VALUE"</b> delivers the two atom names along with the value of the measurement rounded to the nearest integer with no units indicated.','*14','&quot;n:labelFormat&quot;','')
newCmd('','','','Two atoms specify a distance measurement with an optionally given format. Prior to Jmol 11.8, this older syntax selected the first atom in the overall set of models with the given atom number. Starting with Jmol 11.8, this syntax selects the first atom in the currently visible frame set.','*2','(integer)','(integer)','&quot;labelFormat&quot;','')
newCmd('','','','Three atoms specify an angle measurement. The format is optional. Prior to Jmol 11.8, this older syntax selected the first atom in the overall set of models with the given atom number. Starting with Jmol 11.8, this syntax selects the first atom in the currently visible frame set.','*3','(integer)','(integer)','(integer)','&quot;labelFormat&quot;')
newCmd('','','','Four atoms specify a dihedral angle measurement. The format is optional. Prior to Jmol 11.8, this older syntax selected the first atom in the overall set of models with the given atom number. Starting with Jmol 11.8, this syntax selects the first atom in the currently visible frame set.','*4','(integer)','(integer)','(integer)','(integer)  &quot;labelFormat&quot;')
newCmd('','','*v+11.0;','Show the distance, angle, or dihedral angle formed by the FIRST atom in each atom expression. The format is optional. ','*15','(two to four atom expressions, each in parentheses)','&quot;labelFormat&quot;')
newCmd('','','*v+11.0;','Show the distance, angle, or dihedral angle formed by ALL atoms in the first expression with ALL atoms of each additional atom expression. The format is optional. ','*6','ALL','(two to four atom expressions, each in parentheses)','&quot;labelFormat&quot;','')
newCmd('','','*v+11.0;','Show the distance, angle, or dihedral angle formed by ALL atoms in the first expression with ALL atoms of each additional atom expression, provided they form a connected set. The format is optional. ','*7','ALLCONNECTED','(two to four atom expressions, each in parentheses)','&quot;labelFormat&quot;','')
newCmd('','','*v+11.0;','Deletes all measurements.','*81','DELETE','')
newCmd('','','*v+11.0;','Deletes a specific measurement, in order of their creation, starting with 1.','*82','DELETE','(integer)')
newCmd('','','*v+11.0;','Deletes all matching distance, angle, or dihedral angle measurements that are currently defined based on the atom expressions.','*83','DELETE','(two to four atom expressions, each in parentheses)')
newCmd('','','*v+11.0;','Adding RANGE and two decimal numbers modifies the above commands to limit the measurements created or deleted to only those within this specific range of values in Angstroms (distance) or degrees (angles). The word "RANGE" itself is optional but recommended.','*90','RANGE','(decimal)','(decimal)','ALL|ALLCONNECTED|DELETE (two to four atom expressions, each in parentheses)')





newCmd('.meshribbon','structure','disp','A mesh ribbon is similar to a strand, but is more the quality of a loosely woven fabric. ','0|1','','')
newCmd('','','','','*11','._on_off{"ON"}','')
newCmd('','','*v+11.6;','Turns meshribbon rendering on and all other rendering off.','*12','ONLY','')
newCmd('','','','','*2','._mesh_ribbon_radius','')
newCmd('.message','','*v+11.0 -- NEW;math','Sends a string of text to the messageCallback function (for the applet). The {#.set (callback)~set MessageCallback} command can be used to set this JavaScript function. The message is also entered into the scriptStatus queue. Starting with Jmol 11.2, variable values can be included in the message. These use the following syntax: <b>message my variable = %{{variablename}}</b>. Provided a variable has been {#.set~}, this will be replaced by the variable\'s value. In addition, if the variable name is replaced with an atom expression: <b>message %{{(atom_expression)}} atoms</b>, then the number of matching atoms is displayed. For example: <b>message %{{(_N and connected(2,_H)}} NH2 groups are present</b>. In addition, since the Jmol application can be run "headless" -- with no display -- using the -ions set of flags, you can use a designed message command to deliver model information to other programs.','1','(string)','')

newCmd('.minimize','','*v+11.6 -- NEW;','Minimizes the structure using an adapted UFF force field. Generally the minimization runs in its own thread. If it is desired to wait until the process has completed prior to continuing, use <b>set useMinimizationThread false</b>.','0','','')
newCmd('','','*v+11.6;','Carries out a minimization using the default convergence criterion specified by <b>set minimizationCriterion</b> or until the maximum number of steps specified by <b>set minimizationSteps</b> is reached. If <b>set minimizationRefresh</b> is TRUE, then the model refreshes after each minimization step, producing a sort of animated minimization.','*1','','')
newCmd('','','*v+11.6;','Do no minimization -- just calculate the energy','*2','energy','')
newCmd('','','*v+11.6;','Minimizes only up to the specified number of steps','*3','steps ','(integer)')






newCmd('.mo','','*v+11.0 -- NEW, 11.2 adds HOMO and LUMO;iso','<img src="img/webmo.jpg"  alt="a WebMO orbital"  />The <b>MO</b> (molecular orbital) command displays molecular orbitals contained in a variety of file formats. One simply loads the file, then selects which orbital to display with <b>MO n</b> where "n" is the number of the molecular orbital to display. (With some file formats, you may need to use the {.#frame~frame or model} command to call up the specific model having the MOs.) <b>MO NEXT</b> and <b>MO PREVIOUS</b> allow for quick browsing. Several adjustments can be made, including MO COLOR (allows for different colors for the positive and negative lobes), MO CUTOFF (smaller cutoff value gives larger orbitals) and MO RESOLUTION (higher resolution gives cleaner curves but slows surface generation). In addition, MO PLANE creates a planar slice through the orbital. Option changes take effect immediately with the currently displayed orbital and stay in effect for later MO commands until a new file is loaded. <br /><br />Note that ONE molecular orbital is allowed per model (that is, per frame). The {#.isosurface~} command can be used for more advanced molecular orbital display options or for displaying several planes or orbitals simultaneously. Default rendering prior to Jmol 11.1.28 is FILL; starting with Jmol 11.1.28 MESH NOFILL FRONTONLY','1|2','','')
newCmd('','','*v+11.0;','Turn on/off the molecular orbital.','*10','._on_off{"ON"}','')
newCmd('','','*v+11.0;','Selects the specific molecular orbital to dispay, starting with the number 1.','*31','(integer)','')
newCmd('','','*v+11.0;','Colors the orbital one specific color','*40','COLOR','._colorRGB')
newCmd('','','*v+11.0;','Colors regions where the wave function is less than zero the first color; regions where the wavefunction is greater than zero the second color.','*51','COLOR','._colorRGB','._colorRGB','')
newCmd('','','*v+11.0;','Delete the molecular orbital.','*60','DELETE','')
newCmd('','','*v+11.0;','Sets the cutoff value for the isosurface that defines the orbital. This number may be dependent upon the computational package used to generate the orbitals. Values in the range 0.005 - 0.05 may need to be experimented with in order to get the best display. Values closer to zero lead to surfaces further from the atoms (larger orbitals).  Both positive and negative cutoffs are allowed. A positive number indicates to use both positive and negative cutoffs. Adding an explicit "+" sign before the number indicates that only the positive part of the surface is desired.','*55','CUTOFF','(decimal)')
newCmd('','','*v+11.2;','Selects the highest doubly- or singly-occupied molecular orbital, optionally an orbital +/-n from this orbital. (Only applicable to data sets that have orbital occupancies indicated in the file.) ','*61','HOMO','[+/-n]')
newCmd('','','*v+11.2;','Selects the lowest unoccupied molecular orbital, optionally an orbital +/-n from this orbital. (Only applicable to data sets that have orbital occupancies indicated in the file.)','*62','LUMO','[+/-n]')
newCmd('','','*v+11.0;','Displays the next MO in the file using the same characteristics as the currently displayed one.','*65','NEXT','')
newCmd('','','*v+11.0;','Goes back to full orbital display rather than a planar slice.','*68','NOPLANE','')
newCmd('','','*v+11.0;','Indicates that what is desired is a color-mapped planar slice through the orbital using one of the ways of expressing a {#.plane expressions~plane}. ','*80','PLANE','plane_expression')

newCmd('','','*v+11.0;','Displays the previous MO in the file using the same characteristics as the currently displayed one.','*85','PREVIOUS','','._colorRGB','')
newCmd('','','*v+11.0;','Sets the resolution of the isosurface rendering in "points per Angstrom". Higher resolution leads to smoother surfaces and more detail but carries the penalty of slower surface generation. Typical values for molecular orbitals are 4-10 points per Angstrom.','*92','RESOLUTION','(decimal)')
newCmd('','','*v+11.0;','Sets the format of the orbital title appearing in the upper left corner of the applet. Special format characters include: <br/>[|| %E|energy||%F|filename || %I | molecular orbital number || %M | model number || %N | total number of molecular orbitals || %O|occupancy ||%S|symmetry||%U|energy units||  &nbsp; &nbsp; &#124; &nbsp;  &nbsp;| (vertical bar) new line|| &nbsp; &nbsp;? &nbsp; &nbsp;|(at the beginning of a line) indicates to disregard line if no data for that line are present in the file||]<br/> If a formatted item is not indicated in the file, then it is left blank. The default title is "%F &#124; Model %M  MO %I/%N &#124; Energy = %E %U &#124; ?Symmetry = %S &#124; ?Occupancy = %O". The command <b>MO titleFormat ""</b> may be used to show no title. ','*95','TITLEFORMAT','&quot;format&quot;')

newCmd('.model','models','*v+11.0 -- greatly expanded features;anim','Same as the {#.frame~} command. See also {#.set(misc)~set backgroundModel}. ','1|1','','')

newCmd('.move','','anim','The move command provides powerful animation capabilities. It allows you to specify rotations, zooming, and translations to be performed in a specified period of time. xRot, yRot, and zRot are rotations about the cartesian axes in degrees. Zoom specifies a zoom factor, xTrans, yTrans, and zTrans are translations in the range -100 to 100. If you do not know what slab is, just put in a zero. see the slab command for more information.  This command has been superceded by the <b>moveTo</b> command.','11','._drotx','._droty','._drotz','._dzoom;+._dtransx;+._dtransy;+._dtransz;+._dSlab;+._floatSecondsTotal;+._move_fps{30};+._move_maxAccel{5}')

newCmd('.moveto','','*v+11.2 -- adds navigation capability;anim;nav','<img src="img/moveto.gif"  alt="" />The moveto command rotates the molecule to a predefined orientation. Two formats can be used. In each, the first (optional) parameter specifies the number of seconds during which the molecule should rotate smoothly from the current orientation to the new orientation.  A 0 for this first parameter specifies an instantaneous reorientation. Starting with Jmol 11.9.9, if the axis is {{0 0 0}} and the degrees are 0, then the molecule is not reoriented during the operation.  In conjunction with "show orientation" this command allows reading and restoring specific user-specified orientations.','1|2','','')
newCmd('','','*v+11.0;','A simple use of moveTo just has six optional directions. ','*3','timeSeconds','FRONT|BACK|LEFT|RIGHT|TOP|BOTTOM')

newCmd('','','*v+11.2;','In the second option, the second parameter is a coordinate {{x, y, z}} defining the axis relative to the default orientation about which the molecule should be rotated. The third parameter is the counterclockwise (right-hand) rotation in degrees about this axis. "moveto 0 {{0 0 1}} 0" rotates the model to the default orientation (equivalent to "reset"). If the angle parameter is 0 but any one of x, y, or z is nonzero, then no reorientation occurs (because the axis has been specified, but the rotation is 0 degrees). Following these parameters is the zoom setting in percent, the X- and Y-positions of the rotation center on the screen, as percent of width and height, respectively. The actual molecular coordinate of the rotation center along with the rotation radius (which determines the magnification associated with <b>ZOOM 100</b>) are next. The final parameters define the navigation center molecular coordinate, its X- and Y- position on the screen in percent, and the depth of the navigation point in percent of model depth (100 = front, 0 = rear). In conjunction with "show/save/restore orientation" this command allows reading and restoring specific user-specified orientations.','*4','timeSeconds','{{x y z}}','degrees','zoomPercent;+transX;+transY;+{{x y z}};+rotationRadius;+navigationCenter;+navTransX;+navTransY;+navDepth')
newCmd('','','*v+11.2;','If the zoom setting prior to translation positions is 0, and an atom expression is used for the point, then the moveTo can be designed to automatically zoom to the scale that would fill the screen with that set of atoms. The optional zoom adjustment is in the form +n, -n, *n, or /n, as for {#.zoomTo~}.','*6','timeSeconds','{{x y z}}','degrees','0;+transX;+transY;+(atom expression);+0;+zoomAdjustment;+navigationCenter;+navTransX;+navTransY;+navDepth')
newCmd('','','*v+11.2;','If no translation is involved, then there is also no need for the zoom setting of 0 prior to the atom expression.','*7','timeSeconds','{{x y z}}','degrees','(atom expression);+0;+zoomAdjustment;+navigationCenter;+navTransX;+navTransY;+navDepth')

newCmd('.navigate','','*v+11.2 -- new;nav','The <b>navigate</b> command allows exploring of the model from the perspective of an airplane capable of flying through the model. In each case, an optional time in seconds determines the  time to reach the objective. If no time is given, the change occurs over two seconds. (In the case of PATH, this is the time to each point along the path, not the total path.) Subcommands can be grouped in the same command by separating them with "/", for example: <b>navigate 2 DEPTH 30 / 5 ROTATE 180 / DEPTH 20 / TRANSLATE X 10</b>.','0|1','','')
newCmd('','','','Bring the observer to the specifed molecular coordinate, which may be fractional in the case of crystal structures.','*11','timeSeconds','CENTER','{{x y z}}','')
newCmd('','','','Bring the observer to the geometric center of the set of atoms specified in parentheses.','*12','timeSeconds','CENTER','{{ atom expression }}','')
newCmd('','','','Bring the observer to the geometric center of the points corresponding to the indicated {#.draw} object.','*13','timeSeconds','CENTER','$object','')
newCmd('','','','Bring the observer forward or backward to the depth indicated as a percent from back (0) to front (100) of the model. Values can be negative, in which case until a rotate command is given, only screen background will be seen. Values greater than 100 put the observer outside the model. ','*20','timeSeconds','DEPTH','percent','')
newCmd('','','','Follows the Hermite path given by the specified {#.draw~} object (such as a line, curve, or arrow). This allows easy dynamic development of paths using a predefined draw object followed by <b>set picking draw</b> and <b>show draw</b>. ','*32','timeSeconds','PATH','$object','')
newCmd('','','','Reorients the model to the orientation specified by the quaternion given in {{x y z w}} format. ','*341','timeSeconds','QUATERNION','{{ quaternion }}','')
newCmd('','','','Reorients the model to the orientation specified by the quaternion specified by the atom expression and the current setting of <b>quaternionFrame</b>.','*343','timeSeconds','QUATERNION','{{ atom expression }}','')
newCmd('','','','Reorients the model to the orientation specified by a molecular frame quaternion, as, for example, retrieved by <b>q = quaternion({{resno=30}}) and then used in <b> moveto quaternion MOLECULAR @q</b>. Note that because this quaternion refers to the rotation required to transform the reference frame to the specified molecular frame, in order to "move to" this orientation, one must use its inverse  (bring the molecular frame to the reference frame, q_orientation = !q_molecular). The keyword MOLECULAR simply applies this inversion. ','*342','timeSeconds','QUATERNION','MOLECULAR','{{ quaternion }}')
newCmd('','','','Follows a Hermite path defined by a set of nodes expressed in terms of any combination of atom sets, draw objects, or coordinates.','*33','timeSeconds','PATH','(any combination of coordinates, atom expressions, and objects)','')
newCmd('','','','Rotates around the X axis at the navigation center.','*42','timeSeconds','ROTATE','X','degrees')
newCmd('','','','Rotates around the Y axis at the navigation center.','*44','timeSeconds','ROTATE','Y','degrees')
newCmd('','','','Rotates around the Z axis at the navigation center.','*46','timeSeconds','ROTATE','Z','degrees')
newCmd('','','','Navigates along the trace of a protein or nucleic acid. The "ride" can be changed depending upon the settings of {#.set(structure)~set sheetsmoothing} and {#.set(structure)~set tracealpha}.','*61','timeSeconds','TRACE','(atom expression)','')
newCmd('','','','Translates the navigation screen offset to the specified positions expressed as percent of width (X) and height (Y) of the applet/application window.','*62','timeSeconds','TRANSLATE','x.xx','y.yy')
newCmd('','','','Translates the navigation screen offset horizontally by the specified percent of applet/application window width.','*64','timeSeconds','TRANSLATE','X','x.xx')
newCmd('','','','Translates the navigation screen offset vertically by the specified percent of applet/application window height.','*66','timeSeconds','TRANSLATE','Y','y.yy')
newCmd('','','','Translates the navigation screen offset to the screen position corresponding to the given molecular coordinate.','*68','timeSeconds','TRANSLATE','{{x y z}}','')
newCmd('','','','Translates the navigation screen offset to the screen position corresponding to the geometric center of the specified atoms.','*70','timeSeconds','TRANSLATE','(atom expression)','')
newCmd('','','','Translates the navigation screen offset to the screen position corresponding to the center of the vertices of the specified draw object.','*72','timeSeconds','TRANSLATE','$object','')




newCmd('.pause','','*v+11.0 -- NEW; *v-11.8;pause','Pauses script execution until {#.resume~}, {#.quit~}, or {#.exit~} is issued. Any text on the command line after <b>pause</b> is send to the user as a message when the script pauses. ','1','message','')
newCmd('.pause','','*v+11.8 -- adds stepping capability;pause','Pauses script execution until {#.resume~}, {#.step~}, {#.quit~}, or {#.exit~} is issued. Any text on the command line after <b>pause</b> is send to the user as a message when the script pauses. During the paused condition, commands can be entered from the Jmol application console, and they will be executed. The next command to be executed can also be checked by issuing <b>?</b> from the console.','1','message','')

newCmd('.[plane expressions]','','*v+11.2 -- broader general use of planes;iso;atoms','Several commands in Jmol accept parameters that define planes. The commands {#.depth~},  {#.draw~}, {#.isosurface~},  {#.mo~}, and  {#.slab~} all have the PLANE option, and {#.depth~},  {#.draw~} {#.isosurface~}, and  {#.slab~} also have the HKL option for defining planes using Miller indices. In addition, {#.select~}, {#.restrict~}, {#.display~}, and {#.hide~} as well as many other commands accept {#.atomexpressions~atom expressions}, and these may include one or more WITHIN() function. The method of describing planes in Jmol is defined below:[||<b>hkl</b>|Miller indices are simply indicated by enclosing them in brackets, usually as fractions: {{h k l}}. For example, <br /><br /><b>isosurface hkl {{0 1/2 1/2}}</b><br /><br />. ||<b>plane</b>|A plane is defined in Jmol in one of five ways: (a) listing three points, (b) giving the parametric equation ax + by + cz + d = 0, (c) referencing an already-defined  {#.draw~} or {#.isosurface~} object that describes a plane, (d) using the strings "xy", "xz", or "yz", or (e) using a simple single-variable equation such as "x=3" or "y=-2". Points may be embedded atom expressions (that is, atom expressions surrounded by parentheses), for which the center is used, Cartesian coordinates expressed as {{x,y,z}}, or crystallographic fractional coordinates indicated using "/" in at least one coordinate: {{0,1/2,1/2}}. Commas are optional. Any combination of these three point types may be used. For example: <br /><br /><b>display within(0,plane,@{{plane({{atomno=3}}, {{0 0 0}}, {{0 1/2 1/2}})}})</b><br /><br /> The parametric equation ax + by + cz + d = 0 is expressed as {{a b c d}}. <br /><br />Planes based on <b>draw</b> and <b>isosurface</b> objects are first defined with an ID indicated, for example: <br /><br /><b>draw plane1 (atomno=1) (atomno=2) (atomno=3)</b> <br /><br /> After that, the reference <b>$plane1</b> can be used anywhere a plane expression is required. For instance,  <br /><br /><b>select within(0,plane, $plane1)</b>  <br /><br />or  <br /><br /><b>isosurface PLANE $plane1</b> <br /><br /> These objects can be defined and then hidden from the user using <b>draw off</b> or <b>isosurface off</b>.  For selection purposes the plane is considered of infinite extent even if it only shows up as a small triangle or quadrilateral. ||] ','0','','')



newCmd('.pmesh','','*v+11.0 adds default directory and applet proxy server;*v-11.8;iso','With the <b>pmesh</b> command you can add one or more surfaces to a model. The pmesh command is similar to the {#.isosurface~} command in terms of options. The pmesh command takes the overall format:<br /><br />pmesh ID meshID [option] "filename"<br /><br /><b>meshID</b> is any name that you want to use later to refer to the mesh. The optional keyword ID was introduced in Jmol 11.6. The command also sets the \'current\' mesh. Starting with Jmol 11.6, specifically for the options ON, OFF, and DELETE, the id may include a wildcard character (asterisk). Thus, <b>pmesh ID pm* delete</b> deletes all pmesh objects having an ID starting with "pm".<br /><br />Note: meshes are not currently model-specific and are limited to triangles and quadrilaterals.<br /><br /><b>Format of the pmesh files required by Jmol:</b><br /><br />The format of a pmesh file is relatively simple ({misc/10x10pmesh.txt~example file}):<pre>100\n3.0000 3.0000 1.0000\n2.3333 3.0000 1.0000\n...(98 more like this)\n81\n5\n0\n10\n11\n1\n0\n...(80 more sets like this)\n</pre><ul> <li>The first line defines the number of grid points defining the surface (integer, n)</li><li>The next n lines define the Cartesian coordinates of each of the grid points (n lines of x, y, z floating point data points)</li><li>The next line specifies the number of polygons, m, to be drawn (81 in this case).</li><li>The next m sets of numbers, one number per line, define the polygons. In each set, the first number, p, specifies the number of points in each set. Currently this number must be either 4 (for triangles) or 5 (for quadrilaterals). The next  p numbers specify indexes into the list of data points (starting with 0). The first and last of these numbers must be identical in order to "close" the polygon.</li></ul>','0|1|2','','')
newCmd('.pmesh','','*v+11.8 merges pmesh and isosurface commands;iso','Starting with Jmol 11.8, the pmesh command is deprecated. See {#.isosurface~} for information about the pmesh file format options.','0|1|2','','')
newCmd('','','','Selects a specific pmesh (or all pmeshes) for subsequent color commands.','*1','ID','[object ID]')
newCmd('','','','Turn on/off the specified mesh.','*2','ID','[object ID]','._on_off{"ON"}','')
newCmd('','','','Delete the specified mesh.','*3','ID','[object ID]','DELETE','')

newCmd('','','*v+11.0;','Loads the specified pmesh file, optionally assigned id pmeshID. Double quotes are required. A default directory can be set using {#.set (misc)~set defaultDirectory}, and for applets a proxy server can be set for non-host file loading using {#.set (misc)~set appletProxy}. ','*4','ID','[object ID]','.&quot;filename&quot;','')
newCmd('','','','Controls whether or not dots are shown at the polygon vertices.','*5','ID','[object ID]','DOTS or NODOTS{NODOTS}','.&quot;xyz.pmesh.gz&quot;{current}')
newCmd('','','','Controls whether the polygons are filled (the default).','*62','ID','[object ID]','FILL or NOFILL{FILL}','.&quot;xyz.pmesh.gz&quot;{current}')
newCmd('','','','Controls whether the edges of the polygons are drawn.','*7','ID','[object ID]','MESH or NOMESH{NOMESH}','.&quot;xyz.pmesh.gz&quot;{current}')
newCmd('','','*v+11.2;','Lists all pmesh objects','*65','LIST','')

newCmd('.polyhedra','polyhedra1,polyhedra2','*v+11.0 -- expanded capability, new algorithm;iso','Jmol will form a wide variety of polyhedral structures. The <b>polyhedra</b> command can be used for either construction of new polyhedra or modification of existing polyhedra.','0|1|2','','')

newCmd('','','','Used for construction of new polyhedra, parameters fall into five subsets:<br /><br /><b>polyhedra [number of vertices] [basis] [selection sets] [display options]</b><br /><br />In order to construct polyhedra, at least one of the first two of these subsets must be present -- the number of vertices or the basis. In addition, some display options (ON, OFF, DELETE -- see below) are incompatible with polyhedron construction.','TEXT','Polyhedron construction','')
newCmd('','','','Polyhedra involve a central atom and from 3 to 20 outer "vertex" atoms. The number of required vertex atoms is specified by an integer (<b>polyhedra 6</b>). More than one number can be specified, separated by a comma or space character (<b>polyhedra 4,6</b>). If no number of vertices is indicated, any number from 3 to 20 is assumed.','TEXT','[number of vertices]','')
newCmd('','','','Polyhedra can be formed based either upon the number of atoms bonded to the central atom (<b>polyhedra 4 BONDS</b>) or upon the number of atoms within a specified distance from the central atom (<b>polyhedra 4,6 RADIUS 2.0</b>). (The keyword "RADIUS" is optional, but if it is absent the radius must be indicated as a decimal number, not an integer, so as to distinguish it from a vertex count.) If no radius is indicated, BONDS is assumed. If both BONDS and RADIUS are specified, then polyhedra of the given type(s) are constructed only to connected atoms that are within the specified radius of the central atom.','TEXT','[basis]','')
newCmd('','','','Potential polyhedra centers and vertex atoms are specified in the form of a standard Jmol embedded {#.atom expressions~atom expression}, such as  <b>(titanium)</b> or <b>(atomno&lt;12 and not nitrogen)</b> and as such must be specified in parentheses. The first set specifies the centers; the second set specifies the vertex atoms. The optional keyword "TO" can preceed the vertex set for clarity, as in <b>polyhedra 4,6 BONDS (titanium) TO (oxygen or nitrogen)</b>. If no atom sets are designated, the assumption is "(selected) TO (*)". A single designation indicates centers, with "TO (*)" implied. If only "TO" and an atom set is specified, then the centers are taken as the currently selected set of atoms.','TEXT','[selection sets]','')
newCmd('','','','Three sets of display options can be included when constructing polyhedra.<ul><li>Polyhedra can be displayed either as traditional "FLAT" faces (the default) or as "COLLAPSED" faces, which display more clearly the central atom. An empirically adjustable parameter, <b>distanceFactor</b> can be set to a higher value to include more faces in a polyhedron if some do not form. Its default value is 1.85. For collapsed polyhedra, the distance in angstroms from the central atom to the point of collapse can be specified using <b>faceCenterOffset=x.x</b> where x.x is a distance in Angstroms. </li><li>Polyhedra can be displayed either with no edges (NOEDGES, the default), or with a thick line on all edges (EDGES), or on just the front edges (FRONTEDGES). The front-edge-only option is only meaninful when the polyhedra are translucent (see below). </li><li>Polyhedra can be colored by indicating a valid color (e.g. <b>red</b> or <b>yellow</b>) or a hexadecimal RGB color triple (e.g. [xFF0000] or [xFFFF00]). The keywords TRANSLUCENT and OPAQUE can also be used. Alternatively, after polyhedra are created they can be colored using the {#.color (model object)~color polyhedra} command.</li></ul>','TEXT','[display options]','')
newCmd('','','','The <b>polyhedra</b> command can also be used to modify already-constructed polyhedra. Used in this way, the command can take only one atom set expression, and it must not indicate the number of vertices or the basis. If the atom set expression is omitted, "(selected)" is assumed. <br /><br />To turn on, turn off, or delete selected polyhedra, use <b>polyhedra ON</b>, <b>polyhedra OFF</b>, or <b>polyhedra DELETE</b>, respectively. Any of the display options (FLAT, COLLAPSED, EDGES, FRONTEDGES, or NOEDGES) can also be similarly modified. Colors or translucency, however, cannot be applied this way. To color a set of polyhedra that are already formed or to make them translucent, first select the set of centers of the polyhedra to modify, then use the {#.color (model object)~color polyhedra} command.','TEXT','Polyhedron modification','')
newCmd('.print','','*v+11.4;','Prints a {#.JmolmathJmol math} expression to the console window, status message callback function, and jmolScriptWait return value. ','0|1','[math expression]','')

newCmd('.quaternion','','*v+11.4 -- new;','Unit quaternions are four-dimensional vectors that can be used to define the relative rotational aspects of a protein or nucleic acid structure. Each quaternion represents a unique axis and angle which will transform the molecular reference frame (<b>axes molecular</b>) to the orientation of a given orientation. If <b>n</b> is the axis and <b>theta</b> is the angle (measured in a counter-clockwise direction), then <b>q</b> = [cos(<b>theta</b>/2), {{<b>n</b> sin(<b>theta</b>/2)}}]. This command creates a three-dimensional quaternion <i>projection</i> of a protein or nucleic acid in a new Jmol frame. Since rotations are unit quaternions, and there are four quantities in a quaternion, {{x, y, z, w}}, the projection involves dropping one of the four components (which is redundant). By itself, the command creates a w-form quaternion representation if no quaternion has been generated, otherwise it switches the Jmol frame to display the most recently created quaternion. The quaternion representation depends upon how the frame of each residue is defined. Options for defining the quaternion frame are described in documentation for the {#.set(misc)~set quaternionFrame} command. The {#.draw~draw QUATERNION} command can also be used to visualize the quaternion frame and the axis/angle of rotation associated with individual residues, and the {#.write~write QUATERNION} command and {#.functions~write() function} can be used to save quaternion information in files and variables. {#.Jmolmath~Jmol Math} supports the creation and manipulation of quaternion variables. (Jmol 11.5.38 - Jmol.5.45).','0|1','','')
newCmd('','','*v+11.4;','Creates the quaternion representation of the protein or nucleic acid in the three dimensions <i>not</i> given by the specified axis.','*1','w, x, y, or z','')
newCmd('','','*v+11.4;','Creates the quaternion difference representation of the protein or nucleic acid in "w" projection. "a", for <i>absolute</i>, produces a visualization of q[i] / q[i-1], which defines the helical axis of a helix or beta-pleated sheet; "r", for <i>relative</i>, produces a visualization of q[i-1] \\ q[i], which defines the relative rotation of the (i)th residue from the perspective of the (i-1)th residue, defining the pitch of the helix. The default visualization for "r difference" (utilizing <b>set quaternionFrame "c"</b>) for a typical protein is an ellipse having a major axis tilted at 36 degress from the quaternion X axis and minor axis along the quaternion Z axis. This ellipse represents a composite rotation from one amino acid to the next involving a rotation about the q[i] frame Z axis (perpendicular to the N-CA-C plane)  of approximately 180 - 110 degrees ((180-110)/2 = 36 degrees), followed by a rotation about the q[i] frame X axis (CA-C bond) of 180 + psi[i-1] + phi[i] degrees.','*2','a,r','DIFFERENCE')
newCmd('','','','Creates a visualization of dq[i+1] / dq[i], where <b>dq</b> is defined as q[i+1] / q[i] for "a" or q[i] \\ q[i+1] for "r". In the case of "r difference2", for most amino acids this is a point relatively close to the quaternion x axis. ','*3','a,r','DIFFERENCE2')
newCmd('.quit','','*v+11.0 -- new;pause;quit','When the {#.set (files and scripts)~script queue} is turned on, each script waits for the previous to complete. When a LOOP command is involved and the script queue is enabled, the only way to interrupt the looping script is with another script. So, to account for this issue, the roles of <b>quit</b> and {#.exit~} have been expanded. Either <b>quit</b> or <b>exit</b> at the very beginning of a script command halts any previous still-running script. Processing then continues with the second command on the line. Anywhere else in the command, <b>quit</b> and <b>exit</b> abort that script.','0','','')
newCmd('.ramachandran','','*v+11.4 -- new;','Creates a Ramachandran plot for a the currently displayed protein model.','0|1','','')
newCmd('','','*v+11.8;','Draws dihedral planes and phi/psi dihedral angles for the currently selected residues (Jmol 11.8).','*1','DRAW','')
newCmd('.refresh','','rreset',' Forces a screen repaint during script execution. (Unnecessary, and thus deprecated.)','0','','')
newCmd('.reset','','*v+11.2 -- adds variable reset;rreset','Resets all model orientation or the value of a variable','0|1','','')
newCmd('','','*v+11.2;','Resets all models to their original position: zoom 100; center; translate x 0; translate y 0. Note that if the {#.invertSelected~}, {#.rotateSelected~}, {#.translateSelected~} commands have been given, these changes are not reset, because these changes are recorded in the underlying coordinate set. If it is desired to save and restore atom positions after moving atoms relative to each other, the following commands may be issued: select *;translateSelected {{0 0 0}};save state;..(move atoms here)...;restore state.','*1','','')
newCmd('','','*v+11.2;','Resets all aromatic bonds to the type AROMATIC if they are AROMATICSINGLE or AROMATICDOUBLE. Used in conjunction with {#.connect~} and {#.calculate~calculate aromatic} (Jmol 11.4).','*2','AROMATIC','')
newCmd('','','*v+11.4;math','Deletes all user-defined functions.','*3','FUNCTIONS','')
newCmd('','','*v+11.2;math','Resets the variable with the given name to the "unset" state.','*4','variableName','')
newCmd('','','*v+11.4;math','Deletes all user-defined variables.','*5','ALL','')

newCmd('.restore','','*v+11.0 -- NEW;rreset','Restores information saved using the {#.save~} command.','0|1','','')
newCmd('','','*v+11.0;','Restores bonding information changed via the {#.connect~} command; if no save name is given, then the last-saved information is restored.','*1','BONDS','saveName')
newCmd('','','*v+11.0;','Restores a previously saved orientation. If no save name is given, then no time in seconds can be given, and the last-saved orientation is restored immediately. If a save name is given, then the number of seconds over which the restoration should be done may be given as well.','*3','ORIENTATION','saveName','timeSeconds','')
newCmd('','','*v+11.0;','Restores a previously saved selection. If no save name is given the last-saved selection is restored. If no saved selection of this name is found, then the action is the same as <b>select none</b>.','*5','SELECTION','saveName')
newCmd('','','*v+11.0;','Retores a previously saved state of the applet. Some of the more complex objects, such as dipoles, isosurfaces, lcaoCartoons, and molecular orbitals are not saved.','*7','STATE','saveName')
newCmd('.restrict','','dhide','Selects the atoms identified by the {#.atom expressions~atom expression} and deletes all characteristics of all atoms and bonds that are outside the selection set by setting those characteristics "off". For wireframe and backbone, <b>restrict</b> unconditionally follows {#.set (bond styles)~set bondmode OR}, ignoring the current bondmode setting, thus removing any bonds or backbone rods involving any atoms not in the restricted set. The <b>restrict</b> command is a holdover from RasMol, kept in Jmol for compatibility only. The  {#.display~} command is far more flexible, as it preserves the shape characteristics (size, color, translucency) of the hidden atoms rather than simply deleting the shapes.  ','0|1','','')
newCmd('','','','Restricts to all atoms;possibly not H atoms.','*1','{"ALL"}','')
newCmd('','','','Restricts atoms based on an {#.atom expressions~atom expression}.','*2','._atom_expression','')
newCmd('','','*v+11.10;','Restricts atoms based on an {#.atom expressions~atom expression} while respecting the setting of <b>bondmode</b>. (Jmol 11.9.5)','*3','BONDS','._atom_expression')
newCmd('.resume','','*v+11.0 -- NEW;pause','Resumes script execution after a {#.pause~}.','1','','')
newCmd('.ribbon','structure','disp','Ribbons offer a representation the protein backbone or nucleic acid helix using a flat band. For proteins, control points are chosen to be the center of the peptide bond, and the ribbon is drawn in the direction of the carbonyl oxygen (thus roughly defining the peptide planes). For nucleic acids, the control points are the midpoints between adjacent backbone phosphorus atoms, and the ribbon is drawn in the direction of the C6 carbon. A hermite curve is used.','0|1','','')
newCmd('','','','','*11','._on_off{"ON"}','')
newCmd('','','*v+11.6;','Turns ribbon rendering on and all other rendering off.','*12','ONLY','')
newCmd('','','','Normally, ribbons vary in width according to the amino acid atom positions. This command sets the width of the ribbon to be a connstant value (a decimal, in Angstroms).','*2','._ribbon_radius','')

newCmd('.rocket','structure','*v+11.0 -- adds cartoonRocket alternative;disp','Creates a crude "rocket" cartoon.  See also {#.cartoon~} in association with {#.set (structure)~set cartoonRockets} for a more precise cartoon with rockets. Jmol 11.4 introduces the {#.set(structure)~set rocketBarrels} option, which removes the arrow heads from rockets. ','0|1','','')
newCmd('','','','','*11','._on_off{"ON"}','')
newCmd('','','','','*2','._rocket_radius','')
newCmd('','','*v+11.6;','Turns rocket rendering on and all other rendering off.','*12','ONLY','')






newCmd('.rotate','quaternions','*v+11.0 -- adds molecular frame spin/rotate and fully integrates spin and rotate as one feature;rspin','The <b>rotate</b> and <b>spin</b> commands allow single angle rotation or continued rotation (spinning) in one of two specific frames -- the standard "fixed" applet window frame  or the internal "molecular" model frame (the axes in the data file) -- around any pair of points of one or more of the following types: absolute coordinate positions set in braces as {{x, y, z}}, the geometric center of a subset of atoms in the model specified in an atom set in parentheses, for example (atomno &lt; 10 and not oxygen), or the geometric center of a previously defined draw object, indicated by the drawing object name preceded by a dollar sign (for example, $line1). In addition, rotation may be specified to be around six standard axes (x, y, z, -x, -y, and -z)  as well as around an axis designated by the keyword AXISANGLE and a coordinate {{x, y, z}}. Note that use of the keyword MOLECULAR may be necessary for explicit model rotation about the internal molecular axes. Defaults are allowed. The default axis for spinining or rotating is the y (vertical) axis; the default angle of rotation is 10 degrees; the default rotation rate is a slow spin of 10 degrees per second. ','0|1','','')
newCmd('','','*v+11.0;','By itself, the <b>rotate</b> command rotates 10 degrees around the y (vertical) axis in a counterclockwise fashion.','*11','','')
newCmd('','','*v+11.0;','Rotation about an axis pointing from the first point to the second in right-hand direction. (For example, <b>rotate {{0 0 0}} {{1 0 0}} 10</b> is the same as <b>rotate x 10</b>.) Jmol 11.8.RC4','*14','._atom_expression_or_coord','._atom_expression_or_coord','._degrees','')
newCmd('','','*v+11.8;','Rotation about one of the six standard axes (x, y, z, -x, -y, and -z). The default angle of rotation is 10 degrees. Positive angles are counterclockwise (right-hand rule).','*2','._xyz','._degrees')
newCmd('','','*v+11.0;','Rotation about an axis defined as a vector from the origin {{0,0,0}} to the specified {{x,y,z}} coordinate.','*3','AXISANGLE','._coordxyz','._degrees','')
newCmd('','','*v+11.6;','Rotation about an axis defined by the specified axisAngle in the form of a four-vector.','*4','AXISANGLE','{{x y z theta}}')
newCmd('','','*v+11.6;','Rotation about an axis defined by the specified quaternion in the form of a four-vector. For example, to reset the model to the original orientation without changing the zoom, one can use <b>rotate QUATERNION @{{ !quaternion(script("show rotation")) }}</b>. The keyword QUATERNION is optional.','*9','QUATERNION','{{x y z w}}')

newCmd('.rotateSelected','','*v+11.2 -- new;anim','This command takes all the parameters of {#.rotate~} but only carries out the operation on the currenly selected atoms. In addition, if the keyword SPIN is used, the command starts only the atoms spinning. Note that in its current implementation, this rotate DOES slightly modify atom coordinates; any measurements made after rotating may be off by a fraction of a percent, and continued spinning for a long time may introduced significant errors in relative distances and angles.','0|1','','')
newCmd('.save','','*v+11.0 -- NEW;rreset','Saves a variety of sorts of information for later {#.restore~restoring} either in the current model or a different model.','0|1','','')
newCmd('','','*v+11.0;','Saves bonding information, including atom connections, color, width, and visibility. A save name is optional. ','*1','BONDS','saveName')
newCmd('','','*v+11.0;','Saves a full set of orientation information, including center and position of rotation.  A save name is optional but recommended, as it allows restoring of the orientation over a specified number of seconds.','*3','ORIENTATION','saveName')
newCmd('','','*v+11.0;','Saves the current set of selected atoms for restoring later, either for the currently loaded model or for another model. (If used for only the current model, without a <b>load</b> command between <b>save</b> and <b>restore</b>, <b>save/restore SELECTION xxx</b> works the same as {#.define~define xxx selected/select xxx}.)  Note that when more than one model are loaded, the set of selected atoms is for the entire set of loaded models, not just the currently displayed one. Applying a restore to a completely different model should be done with care or it may not have the intended results. ','*5','SELECTION','saveName')
newCmd('','','*v+11.0;','Saves the current state of the applet. Some more complex objects, such as dipoles, isosurfaces, lcaoCartoons, and molecular orbitals are not saved.','*7','STATE','saveName')


newCmd('.script','','*v+11.6 -- adds applet-applet communication;*v-11.10;script;javascript','"','0|1','','')
newCmd('.script','','*v+11.10 -- adds LOCALPATH and REMOTEPATH options.;script;javascript','"','0|1','','')
newCmd('','','*v+11.10;','When reading a script created with {#.write~write STATE}, the LOCALPATH keyword instructs Jmol to strip all paths beginning with "file:/" down to the indicated path. So, for example, <b>script LOCALPATH "" "myfile.spt"</b> indicates that all local files referenced in the state script should be read from the current default directory. LOCALPATH can be used with scripts other than state scripts created by Jmol. The mechanism is simply looking for instances of /*file*/"some_file_name". If this construction is found in any script read, the replacement will be made.   (Jmol 11.9.2)','*12','LOCALPATH','&quot;path&quot;','._script_filename','')
newCmd('','','*v+11.10;','When reading a script created with {#.write~write STATE}, the REMOTEPATH keyword instructs Jmol to strip all paths beginning with "http:", "https:", or "ftp:" down to the indicated path. So, for example, <b>script REMOTEPATH "data" "myfile.spt"</b> indicates that all remote files referenced in the state script should be read from the subdirectory "data/" within the current default directory.  REMOTEPATH can be used with scripts other than state scripts created by Jmol. The mechanism is simply looking for instances of /*file*/"some_file_name". If this construction is found in any script read, the replacement will be made. (Jmol 11.9.2) ','*13','REMOTEPATH','&quot;path&quot;','._script_filename','')
newCmd('','','','Loads and executes the specified script file/url. A hash/pound/sharp character (#) character marks a comment to the end of the line or a semicolon. A semicolon character (;) separates multiple statements on the same line. A script file may load another script file, up to 10 deep.','*11','._script_filename','')
newCmd('','','*v+11.2;','Just checks the file for proper syntax and the presence of files.','*2','._script_filename','CHECK')
newCmd('','','*v+11.2;','Executes command n of the designated script file.','*31','._script_filename','COMMAND','n','')
newCmd('','','*v+11.2;','Executes commands n through m of the designated script file. The second number may be ommitted to indicate "to the end of the file": <b>script "myfile.spt" COMMANDS 10 - </b>','*32','._script_filename','COMMANDS','n','-')
newCmd('','','*v+11.2;','Executes line n of the designated script file. ','*41','._script_filename','LINE','n','')
newCmd('','','*v+11.2;','Executes lines n through m of the designated script file. The second number may be ommitted to indicate "to the end of the file": <b>script "myfile.spt" LINES 10 - </b>','*42','._script_filename','LINES','n','-')
newCmd('','','*v+11.6;','Runs the script command result of the {#.jmolmath~Jmol math expression} in one or more applets. The math expression may be a simple single variable name or quoted string or a more complex expression. If the math expression is a quoted string starting with <b>script</b> such as <b>"script dothis.spt"</b>, then the indicated script file will be run in each applet. The applet name can be any of the following.<br />[||&nbsp;&nbsp;&nbsp;*|all applets on the same web page as the originating applet (the script will run last in the originating applet)||&nbsp;&nbsp;&nbsp;>|all OTHER applets||&nbsp;&nbsp;.(period)|just this applet||&nbsp;&nbsp;name|the applet named <b>name</b> or, if that does not exist, <b>jmolApplet</b>name. Note that the function getProperty("appletInfo.registry") provides a list of applets on <i>all pages</i>, not just the same page. These other applets may be targeted if their full name (which includes a unique number extension) is given.||"name1,name2,..."|all applets matching the specified names. Note that quotes ARE required in this case.||] <br />','*5','APPLET','appletName','@{{Jmol math expression}','')
newCmd('','','*v+11.4;','Runs the script command result of the {#.jmolmath~Jmol math expression} rather than from a file. The math expression may be a simple single variable name or a more complex expression. For example, <b>var bgColor="red";script INLINE @{{"background " + bgColor}}</b> or <b>var s = "[arg]";script INLINE @{{"select " + s}}</b>.','*6','INLINE','@{{Jmol math expression}')
newCmd('','','','Applet only: Evaluates the return of the indicated JavaScript function as the script to be executed. Execution is blocked if the web page parameter _jmol.noEval = true. Note that this is different from the {#.javascript~} command, which simply evaluates the specified JavaScript command. Here the function is evaluated on the embedding page, and the return from that function, which is presumed to be Jmol script, is evaluated <i>within Jmol</i>.','1','javascript:functionCall()','')


newCmd('.select','','*v+11.6 -- adds extended atom property selection;dhide','Selects the atoms identified by the expression. If no expression is given then all atoms are selected. Starting with Jmol 11.6, a second property expression can be added for more general selection of atoms based on atom properties.','0|1','','')
newCmd('','','','Selects all atoms (possibly not H atoms).','*1','{"ALL"}','')
newCmd('','','','Selects atoms based on an {#.atom expressions~atom expression}. To select atoms specific to a specific model when more than one model is present, use "/n" where "n" is the model number. For example, to select all atoms of model 3, use <b>select */3</b>. ','*2','._atom_expression','')
newCmd('','','','Starting with Jmol 11.6 the <b>select</b> command allows for full utilization of Jmol math for atom selection. If the first parameter is an atom expression, such as {{*}} or {{10-30}}, a second parameter can be included. This second parameter must evaluate to a TRUE/FALSE expression involving the <i>individual</i> atoms of the atom expression. Parentheses around the property expression are optional. For example: <b>select {{*.ca}} (atomY < atomX)</b> selects for all alpha carbons for which their X coordinate is less than their Y coordinate. Note that in this context, "x", "y", and "z" are variable names, not coordinates. Use "atomX", "atomY", and "atomZ" if you need to refer to atom coordinates. The variable <b>_x</b> is assigned to the individual atom being tested. This variable can be used in nested select() functions within the select command to represent the atom being tested. For example, <b>select {{*.ca}} (phi < select(y; {{*.ca}}; y.resno = _x.resno + 1).phi))</b> selects alpha carbons of amino acid residues that have phi angles less than that of the phi angle of the next amino acid in the chain.','*3','._atom_expression','(property expression)')
newCmd('.selectionHalos','','*v+11.0 -- NEW;','When ON, Jmol displays {#.halos~} around atoms when they are selected. The size of the halo, originally 20% of the van der Waals radius of the atom, can be set by selecting specific atoms and using the {#.halos~} command. The color of any specific halo is determined as described for  {#.color selectionHalos~}.','1','._on_off{"ON"}','')
newCmd('.set','','*v+11.2 greatly expands variable capability;math','Jmol allows a wide range of settings to be changed using the SET command -- see the categories below for details. Starting with Jmol 11.2, the SET command is no longer necessary -- anything you could set with SET can be set simply using an assignment of a value to a variable name: <br /><br />strandCount = 6<br /><br /> instead of <b>SET strandCount 6</b>. However, it is recommended that you use SET for all Jmol parameters, just as a way of clearly indicating in scripts that you are setting a Jmol parameter and not a user variable. In all cases below, "ON" and "TRUE" are equivalent, and "OFF" and "FALSE" are equivalent. Different words may be used simply because they sound more appropriate for a particular parameter. ','0|1','','')
newCmd('','','*v+11.4;','<b>set</b> by itself lists all Jmol parameters that can be set and all Jmol read-only variables (starting with underscore), along with their current values.','*1','','')
newCmd('','','*v+11.4;','<b>set</b> followed by characters ending in question mark lists all Jmol parameters starting with those characters and all Jmol read-only variables starting with underscore and those characters.','*2','xxx?','')

newCmd('.set (bond styles)','setbonds','','This group of commands sets the appearance of various optional bond effects for the model.','2|3','','')


newCmd('','','*v+11.0;bond','In some file formats (.mol files, for example) the connection data may indicate the bond type--single, double, triple, or quadruple. Use <b>set multipleBonds OFF</b> when you want all bonds to appear as single bonds. ','*6','showMultipleBonds','ON')
newCmd('','','bond','The default Jmol condition. When script commands affect a set of atoms, BOTH atoms must be in the set for the bonds between them to also be affected. Similarly affects the display of backbone units in the selection of protein residues and nucleic acid bases.','*20','bondMode','AND')
newCmd('','','','When script commands affect a set of atoms, EITHER atom may be in the set for the bonds also to be affected. Similarly affects the display of backbone units in the selection of protein residues and nucleic acid bases.','*21','','OR')
newCmd('','','*v+11.4;bond','Setting this parameter TRUE is equivalent to <b>set bondMode OR</b>; it can be tested using Jmol math.','*22','bondModeOr','FALSE')
newCmd('','','*v+11.4;bond','Sets the default bond radius in milliAngstroms. Immediately applies this to all bonds in all models.','*23','bondRadiusMilliAngstroms','(integer)')
newCmd('','','*v+11.4;bond;hbond','When autobonding, the value of bondTolerance is added to the two bond radii of atoms being tested for a bond. A larger bondTolerance allows atoms that are further apart than the sum of their listed radii to still be bonded. This parameter should be adjusted prior to file loading for proper maintaining of the Jmol state.','*25','bondTolerance','(decimal)')

newCmd('','','*v+11.4;bond;hbond','Setting this parameter TRUE causes hydrogen bonds to be displayed as solid lines rather than dotted lines.','*53','hbondsSolid','FALSE')
newCmd('','','*v+11.4;bond;hbond','Hydrogen bonds between protein amino acid residues or nucleic acid base pairs are displayed as lines. These lines can be displayed whether or not the H atoms are present in the file, and can be drawn either between the two non-hydrogen atoms involved in the bond (O or N, typically, the default) or, alternatively, between the two backbone alpha-carbon atoms, depending upon the desired effect.','*55','hbondsBackbone','FALSE')
newCmd('','','*v+11.0;bond','Sets the minimum bond distance for autobonding. Should be set prior to file loading for proper maintainence of the Jmol state.','*60','minBondDistance','(decimal)')
newCmd('','','bond','Sulfur-sulfur bonds in cysteine bridges of proteins are displayed as lines. These lines can either be between the two sidechain sulfur atoms (the default) or between the two backbone alpha-carbon atoms, depending upon the desired effect.','*70','ssbonds','BACKBONE or SIDECHAIN')
newCmd('','','*v+11.2;bond','Setting this parameter TRUE is an alternative method of setting disulfide bonds to backbone; it can be tested using Jmol math.','*71','ssBondsBackbone','FALSE')
newCmd('','','bond','Sets the overall scale of all displayed dipole vectors.','*4','dipoleScale','.(-10.0 to 10.0)')

newCmd('.set (callback)','','*v+11.0 -- NEW mechanism for setting callback functions;javascript','Jmol 11.0 introduces dynamic JavaScript callback function definition. You can specify the functions to receive callbacks, and you can change the functions at any time. To turn off callbacks of a given type, specify "NONE". The function name must be present in JavaScript on the page containing the applet. Specifying "alert" will send the message to the user via a JavaScript alert. Note that quotation marks are required around the function name. If the filename starts with "jmolscript:" then instead of JavaScript being run, Jmol executes the Jmol script that follows. For example, <b>set hoverCallback "jmolscript:script hover.spt"</b> executes the Jmol script "script hover.spt" when an atom is hovered over. The code in the file hover.spt can then respond to that hovering action without the need for JavaScript. ','1|2','','')
newCmd('','','*v+11.0;','Sends a message indicating a change of {#.frame~}. For compatibility with Chime, the second parameter of this function returns a number ONE LESS than the actual frame number. Starting with Jmol 11.2, this function returns nine parameters. The product of the last two parameters indicates the true direction of animation. <br /><br />function animFrameCallback(app, frameNo, fileNo, modelNo, firstNo, lastNo, isAnimationRunning, animationDirection, currentDirection)<br />[||app|String|The name of the applet ||frameNo|int|The current frame number (0-based) ||fileNo|int|The current file number (1-based) ||modelNo|int|The current model number within the current file (1-based) ||firstNo|int|The first frame of the animation range, expressed as fileNo*1000000+modelNo ||lastNo|int|The last frame of the animation range, expressed as fileNo*1000000+modelNo ||isAnimationRunning|int|0 (animation is off) or 1 (animation is on) ||animationDirection|int|1 (animation direction +1) or -1 (animation direction -1) ||currentDirection|int|1 (forward) or -1 (reverse)||]','*1','AnimFrameCallback','&quot;function name&quot;')
newCmd('','','*v+11.0;','Sends a message indicating what atoms is being hovered over, indendently of whether {#.hover~} is ON or OFF.','*3','HoverCallback','&quot;function name&quot;')
newCmd('','','*v+11.6;','Sends a message each time the {#.echo~} command is executed. If an EchoCallback function is not defined, these messages go to the MessageCallback function.','*21','EchoCallback','&quot;function name&quot;')
newCmd('','','*v+11.6;javascript','Generally the Jmol applet is allowed to use the eval() function of the host page JavaScript using the {#.javascript~} command (unless execution of JavaScript by the applet has been specifically disallowed by setting _jmol.noEval = true prior to the jmolApplet() call). The setting of <b>evalCallback</b> function must be made prior to jmolAppletCall() using <b>jmolSetCallback("evalCallback","someFunctionName")</b>. It cannot be set using <b>set evalCallback</b>.  The callback sends the JavaScript to be evaluated back to the web page for evaluation rather than initiating that evaluation within Jmol. This could be important for the signed applet in order to isolate threads or for debugging applet calls to eval(). It is used in {Jmol Protein Explorer~http://chemapps.stolaf.edu/pe/protexpl}. ','*22','EvalCallback','')
newCmd('','','*v+11.6;','Sends messages indicating the status of script execution. Line-by-line script commands are sent if one has <b>set debugScript TRUE</b>. If a ScriptCallback function is not defined, these messages go to the MessageCallback function.','*94','ScriptCallback','&quot;function name&quot;')
newCmd('','','*v+11.6;','Sends a message indicating the status of measurements made by the user. If a MeasureCallback function is not defined, these messages go to the MessageCallback function.','*5','MeasureCallback','&quot;function name&quot;')
newCmd('','','*v+11.6;','Sends a message that indicates the status of a currently running {#.minimize~minimization}.','*7','MinimizationCallback','&quot;function name&quot;')
newCmd('','','*v+11.0;','Sends a message each time a file is {#.load~loaded}.','*4','LoadStructCallback','&quot;function name&quot;')
newCmd('','','*v+11.0;','Sends a wide variety of messages during script execution.','*6','MessageCallback','&quot;function name&quot;')
newCmd('','','*v+11.0;','Sends a message that depends upon the current status of {#.set picking~}.','*8','PickCallback','&quot;function name&quot;')
newCmd('','','*v+11.2;','Sends a message indicating changes of the window size.','*91','ResizeCallback','&quot;function name&quot;')
newCmd('','','*v+11.6;','The SyncCallback method allows a JavaScript function to intercept and modify or cancel an applet-applet {#.sync~} message. If the called function returns "" or 0, the synchronization is canceled; any other string is substituted for the script and sent to the other currently synchronized applets.','*98','SyncCallback','&quot;function name&quot;')
newCmd('.set (debugging)','','*v+11.0 introduces an adjustable logging level and showScript option;','&nbsp;','0|1','','')

newCmd('','','','Turning this parameter ON enables debugging (going to a JavaScript message {#.set (callback)~callback}).','*2','debugScript','OFF')
newCmd('','','*v+11.4;','Primarily for debugging complex scripts. Sets the level of depth in scripts for which the command {#.history} is recorded. A setting of 0 (the default) indicates that commands in scripts run using the {#.script} command should not be recorded. A setting of 1 indicates that such commands should be recorded for script commands given at the top level. A setting of "n" indicates that all commands executed from script commands through level "n" should be recorded.  A setting of -1 turns off all history recording.','*3','historyLevel','(integer)')
newCmd('','','*v+11.0;','Jmol 11.0 allows you to set the amount of logging sent to the Java console (as opposed to the Jmol {#.console~}). The default level is 4, "information, warnngs, and errors". Levels include: <br />[||0|no messages whatsoever||1|fatal errors only||2|all errors||3|all warnings and errors||4|information, warnings, and errors||5|full debugging||]','*4','logLevel','(0 - 5)')
newCmd('','','*v+11.0;','Turning this parameter ON causes Jmol to show the script commands from a script file as they are executed. A slight difference may be observed when showScript is set in comparison to normal operation in that when showScript is set, an automatic refresh is executed after every command. ','*51','showScript','OFF')
newCmd('','','*v+11.0;','Shows the script commands from a script file as they are executed and pauses the specified number of milliseconds between commands. Setting the delay to 0 turns script showing off.','*52','showScript','milliseconds')
newCmd('','','*v+11.2;','Sets the maximum script depth (how many scripts have been called) for which certain messages should appear in the console and be reported back via callbacks. A value of 0 (default) displays messages only from the topmost level -- as, for example, commands entered from the console; a value of 1 displays messages from the top level and messages due to commands such as "script t.spt" but not from scripts that are called from t.spt; etc. A value of -1 turns off all reporting. Affected commands include {#.connect~}, {#.select~} (and related commands), and {#.set~}. This parameter is particularly useful when scripts utilize {#.goto~message/goto} to control program flow.','*4','scriptReportingLevel','(integer)')
newCmd('.set (antialiasing)','','*v+11.4 -- NEW high-resolution rendering;','Antialiasing is the smoothing of jagged lines and sharp boundaries in an image. Jmol 11.4 introduces antialiasing independently for display and for image creation using the {#.write~} command. If the display is antialiased, the option also exists to antialias translucent objects or not. Memory requirements are doubled and rendering performance will be diminished when antialiasDisplay is turned on.','2|2','','')
newCmd('','','*v+11.4;','Turning this parameter ON results in smoothing of the model rendering in the window.','*1','antialiasDisplay','OFF')
newCmd('','','*v+11.4;','Turning this parameter OFF removes smoothing of the translucent components of the window in addition to the opaque components when antialiasDisplay is turrned on.','*2','antialiasTranslucent','ON')
newCmd('','','*v+11.4;','Turning this parameter OFF disables smoothing of the images created using the {#.write~} command.','*3','antialiasImages','ON')



newCmd('.set userColorScheme','','*v+11.4 -- NEW customizable user color schemes;color','Sets a custom color scheme. Color values can be names such as "red" or "blue" or hexadecimal numbers as [xRRGGBB] or {{r g b}} triples in the form of 3D points. The scheme can then be referred to as "user"; it\'s reverse as "resu". ','*3','colorName','colorName','…','')

newCmd('.set echo','','*v+11.0 introduces movable echo text and 3D echos, more label control, version 11.6 adds images;label','Sets positioning and visibility parameters associated with text written to the screen using the {#.echo~} command. In addition, Jmol 11.6 adds <b>set echo IMAGE</b>, allowing images to be displayed instead of text.  Characteristics of the text that are settable include: [|| font size, face, style, and scaling factor | See {#.font~font ECHO}.|| font color | Includes translucency. See {#.color~color ECHO}. || background color | Includes translucency. See {#.background~background ECHO}. || model | Starting with Jmol 11.4, echo text can be associated with a specific model, with visibility controlled by the {#.frame~} command. See below. ||  x and y position within the window | A "2D" echo. A block of text can be displayed anywhere within the applet or application window. An automatic adjustment is made to prevent text from going outside of the bounds of the window. See below. || TOP, MIDDLE, BOTTOM | Three special 2D positions are also defined for quick placement of text. These three special echos can only have one of three predefined positions: LEFT, CENTER, or RIGHT. || depth | The default Z-position for echoed text and images is in front of the model. However, this can be set to any {#.depth~} in relation to the model, from 0 (rear) to 100 (front). See below. || x, y, and z position within the model itself | A 3D echo. This position can be defined as a point in space, the coordinate of an atom, the average coordinate of a set of atoms, the position of a {#.draw~drawn point}, or the average position of a drawn object. See below. || text alignment | echoed text can be aligned LEFT, CENTER, or RIGHT, with multi-line text aligning line by line. With Jmol 11.6, <b>set echo center</b> also aligns multi-line text and images vertically. See below. || IMAGE |  Starting with Jmol 11.6, one can also place JPEG, PNG, or GIF images at either a 2D screen position or a 3D molecular position. See below. || scaling | Using the command {#.set misc~set fontScaling TRUE} 3D-positioned images and text along with atom labels can be made to scale when {#.zoom~} is applied. The current zoom setting is used to fix a "scaling factor" used for the font. However the {#.font~} command can be used to set a different reference scaling factor. || visibility | Prior to Jmol 11.6, echoed text could only be turned on. <b>set echo off</b> simply deletes the echo. Jmol 11.6 adds the capability to display or hide echos using either the <b>set echo HIDDEN/DISPLAYED</b> command or the {#.hide~} and {#.display~} commands with $name, where name is the name given an echo in the <b>set echo</b> command (including the special echos TOP, MIDDLE, and BOTTOM using $top, $middle, and $bottom, respectively). ||]<br /><br /> Default settings for font, color, and background can be set by first issuing <b>set echo none</b>, so that no real echo is set, and then issuing the desired {#.font~}, {#.color~}, and {#.background~} commands. In addition, any changes to these settings for any specific echo text become the new default for future text echos that are created for the same model.<br /><br /> ','1|2|3','','')

newCmd('','','*v+11.0;','Selects the horizontal text alignment (LEFT, CENTER, or RIGHT) for a user-positioned text echo. Any text already displayed in this position is immediately realigned. Starting with Jmol 11.6, the CENTER option also centers the text box (or image) vertically at the 2D or 3D point defined for this echo.','*32','user-named','._echo_horizontal{left}')


newCmd('','','*v+11.6;','Sets a custom echo position with the given name, where [0 0] is the bottom left corner. The next-issued {#.echo~} command will write text to this position. Any text already displayed is immediately moved. If the text would flow out of the applet window, it is repositioned just inside the boundary.','*33','user-named','[x y]')
newCmd('','','*v+11.6;','Sets echo position based on a percentage of the applet window size. Note that <b>set echo myecho [0 100%]</b> is not quite the same as <b>set echo TOP LEFT</b>; <b>set echo myecho [100 0%]</b> is not quite the same as <b>set echo BOTTOM RIGHT</b>. The difference is that TOP LEFT and BOTTOM RIGHT automatically justify multiline text as well. Using percentages allows you to place text anywhere within the window and independently justify the text using <b>set echo myecho LEFT</b>, <b>set echo myecho RIGHT</b>, or <b>set echo myecho CENTER</b>.','*34','user-named','[x y %]')
newCmd('','','*v+11.0;','Sets echo position in three dimensions, based on molecular coordinates (which may be fractional). Braces are required.','*35','user-named','{{x y z}}')
newCmd('','','*v+11.0;','Sets echo position in three dimensions, based on the geometric center of the specified atoms. Braces are required. "OR" should be used rather than ","  in the atom expression unless additional parentheses within the braces are also provided.','*36','user-named','{{','._atom_expression','}')
newCmd('','','*v+11.6;','Specifies a Jmol script that will be run when the echo is clicked.','*40','user-named','SCRIPT','&quot;script&quot;','')
newCmd('','','*v+11.6;','By default, when multiple models are present, all echo text is visible regardless of the model currently displayable using the {#.frame~} command. The <b>set echo ... MODEL</b> command associates an echo with a specific model, allowing the text or image to appear and disappear when different models are displayed using the {#.frame~} command.','*40','user-named','MODEL','(model number)','')
newCmd('','','*v+11.6;','Reads the specified JPG, GIF, or PNG file and displays that image instead of text. All 2D and 3D options are available. Images can be scaled the same as text using the {#.font~} command\'s scaling factor option. ','*40','user-named','IMAGE','&quot;file name&quot;','')
newCmd('','','*v+11.6;','Sets the depth of the echoed text or image in percent of the model diameter (0 rear, 100 front).','*38','user-named','DEPTH','%z','')
newCmd('','','*v+11.6;','Selectively displays an echo that previously has been hidden. The name can be any defined echo, including TOP, MIDDLE, or BOTTOM.','*39','name','DISPLAYED')
newCmd('','','*v+11.6;','Selectively hides an echo without deleting it. The name can be any defined echo, including TOP, MIDDLE, or BOTTOM.','*42','name','HIDDEN')

newCmd('','','*v+11.6;','Sets the current echo to be "all echos" for setting font, color, display, hidden, or text of all echos at once.','*43','ALL','')
newCmd('','','','Sets the current echo to be "none" -- The next <b>echo</b> command will be to the console/message callback only.','*50','NONE','')
newCmd('','','','Turns off (deletes) all echo texts. (Starting with Jmol 11.6, see also <b>set echo hidden</b>.)','*60','OFF','')
newCmd('','','*v+11.6;','Unhides the current echo -- or all echos if echo has been set NONE.','*46','DISPLAYED','')
newCmd('','','*v+11.6;','Hides the current echo -- or all echos if echo has been set NONE.','*47','HIDDEN','')
newCmd('.set (files and scripts)','','*v+11.0 -- introduces several new settings;','The following commands relate to how files and scripts are loaded and how scripts are executed. ','0|1','','')
newCmd('','','*v+11.2;','When set TRUE (default), Jmol will read scripts that are contained in certain file types and append them to the script set using <b>set defaultLoadScript</b> (below). Embedded scripts are indicated by "jmolscript:" followed by valid Jmol script commands in the following file locations:<br />[||CIF|any line(s)||MOL|line 3||PDB|any REMARK line(s)||XYZ|line 2||] Support for additional file types will be provided upon user request.  ','*10','allowEmbeddedScripts','')
newCmd('','','*v+11.2;','Setting this parameter to FALSE causes Jmol to add atoms to the last model in a file set rather than add a whole new model when {#.load~load APPEND} is used.','*11','appendNew','TRUE')
newCmd('','','*v+11.0;','Sets the URL for a proxy server when {#.load~loading} a file or reading a {#.pmesh~} or {#.isosurface~} or when reading a file-based {#.script~}. A proxy server is a server-side application (typically written using PERL, PHP, or ColdFusion) on the same host as the JAR file that can deliver files from other servers on the internet. Jmol appends "?url=" followed by the URL of the requested data file to the indicated proxy server name. NOte that Java security requires that this call be to the same server that hosts the JAR file. ','*12','appletProxy','&quot;URL&quot;')
newCmd('','','*v+11.2;bond','Turning this parameter ON instructs Jmol, when applying symmetry to atoms, as in "load xxx.cif {{1 1 1}}", to also apply symmetry to the bonds indicated in the file. The flag is useful when  normal Jmol autobonding would not properly connect atoms, but  the model is "molecular" -- the base atom coordinates are correct for whole molecules. The flag should not be used in cases where the application of symmetry operations creates new bonds that  were not present in the original set, as for quartz.cif, where there is only one bond initially, and after applying symmetry new bonds are created that are between atoms that were created using two different symmetry operations. If bonds are not indicated in a file, this flag is ignored, and Jmol uses its autobonding algorithm to create bonds.','*13','applySymmetryToBonds','OFF')
newCmd('','','bond','Some file formats that Jmol reads, such as XYZ, do not contain bonding information. In these cases, the default action for Jmol is to generate bonds automatically based on an algorithm. When given prior to loading a model, the <b>set autobond OFF</b> command causes Jmol to not do any automatic bond creation when subsequent models are loaded.','*14','autobond','ON')
newCmd('','','*v+11.0;','Issued prior to the {#.data} command, sets the text that will separate one set of file datat from another, thus allowing the inline loading of multiple file types.','*15','dataSeparator','&quot;separator text&quot;')
newCmd('','','*v+11.0;cd','(APPLET ONLY) Sets the default directory to use for reading all files. This will generally be a relative path such as "./data" or "../files". Note that Java security requires that if the applet is run from a hard drive rather than via the internet, all files read must be either in the directory containing the JAR file or in a subdirectory of that directory. If the applet is unsigned and loaded from the internet, then Java security typically requires that all files read are from the host from which the JAR file was read. But see <b>set appletProxy</b>, above. This flag is applicable only to the Jmol applet, not to the Jmol application.','*2','defaultDirectory','&quot;directory path&quot;')
newCmd('','','*v+11.0;','For crystallographic systems, sets the default lattice to be loaded. {{1 1 1}} loads the standard single unit cell (555). {{2 1 1}} loads two unit cells along the <b>i</b> direction, cells 555 and 655. {{2 2 2}} loads a set of eight unit cells; {{3 3 3}} loads a set of 27. This last is probably most useful, because it loads one unit cell surrounded by all 26 cells sharing its 6 faces, 12 edges, and 8 corners.','*3','defaultLattice','{{i j k}}')
newCmd('','','*v+11.0;','Sets a script to run after any file is loaded. The script must be in quotations. If the script itself needs quotation marks, then it should be placed in a file and indicated as follows: <b>set defaultLoadScript "script myscript.scr"</b>.','*4','defaultLoadScript','&quot;script&quot;')
newCmd('','','*v+11.0;','<b>set forceAutoBond ON</b> tells Jmol to disregard any bonding information in a file and use its own internal algorithm for determining connectivity. Its effect is for all future file loads until set OFF. This setting is particularly useful for some PDB and mmCIF files that already have a threshold amount of bonding, so that a full set of bonding can be created automatically at load time. This is necessary for proper assignment of secondary structure. ','*51','forceAutoBond','OFF')
newCmd('','','*v+11.0;','Sets the number of lines of command history to record (minimum 2) and turns history recording ON. <b>set history 0</b> turns off the command history feature but does not actually set the number of lines to zero. See also {#.history~} and {#.show~show history}.','*55','history','nLines')
newCmd('','','*v+11.0;cd','The load format, by default "http://www.rcsb.org/pdb/files/%FILE.pdb", allows setting of the URL that will be used when "=" is used in front of a file name in a {#.load~} command, for example: <b>load =1crn</b>. ','*6','loadFormat','&quot;URL&quot;')
newCmd('','','*v+11.0;quit','Turning this parameter OFF disables script queuing. Setting this parameter OFF should never be necessary, but it is provided here as an option. When script queuing is enabled (the default), scripts that are {#.loop~looping} require {#.quit~} or {#.exit~} to be executed in a subsequent script in order to complete. When script queuing is turned off, scripts from different threads may collide and cause unpredictable behavior or crashing of Jmol.','*7','scriptQueue','ON')
newCmd('.set (highlights)','','*v+11.0 introduces infinitely variable echos;label','This command group allows for annotation and highlighting of atoms in terms of labels and "halos."','2|3','','')

newCmd('','','disp','(deprecated; see {#.selectionHalos~selectionHalos ON/OFF})','*1','display','SELECTED/NORMAL')
newCmd('','','','Sets the font size for atom labels.','*5','fontSize','._fontsize{8}')

newCmd('','','*v+11.0;','See {#.frank~}','*6','frank','')
newCmd('.set (labels)','','*v+11.0 -- several new customizable features;label','This command group sets parameters associated specifically with atom labels. If the atom expression is not indicated, the action is applied to the currently selected atoms. (Jmol 11.4)','1|2','','')

newCmd('','','','Sets the label text alignment within a multi-line label as left-, right-, or center-justified. (For overall label alignment, see <b>set labeloffset</b>, below.) ','*71','labelAlignment','LEFT, RIGHT, or CENTER')
newCmd('','','','Sets the label offset relative to the atom being labeled. A positive number indicates the number of pixels between the atom center and the beginning of the label. A negative number indicates the number of pixels between the atom center and the end of the label, with the entire label to the left of the atom. Zero indicates centered. ','*92','labelOffset','._xoffset','._yoffset','{{ atom expression }}')
newCmd('','','*v+11.0;','Turning this parameter ON instructs Jmol to add lines pointing from the selected atoms to their respective labels, using the color of the label text ({#.color~color label xxxx}).','*93','labelPointer','OFF','{{ atom expression }}','')
newCmd('','','*v+11.0;','Turns on label pointers to selected atoms, drawing them in the color of the label background.','*94','','BACKGROUND','{{ atom expression }}','')
newCmd('','','*v+11.0;','If a selected label is rotated behind an atom, it is hidden by that atom (default). If an atom expression is given, an indicator of ON or OFF must also be given. OFF is the same as "SET LABELFRONT".','*81','labelAtom','._on_off{"ON"}','{{ atom expression }}','')
newCmd('','','*v+11.0;','The selected labels will always appear in front of all atoms.  If an atom expression is given, an indicator of ON or OFF must also be given. OFF is the same as "SET LABELATOM".','*82','labelFront','._on_off{"ON"}','{{ atom expression }}','')
newCmd('','','*v+11.0;','Selected labels appear in an invisible plane just in front of the atoms <i>of their group only</i>. Applicable only to PDB/mmCIF files.  If an atom expression is given, an indicator of ON or OFF must also be given. OFF is the same as "SET LABELATOM".','*84','labelGroup','._on_off{"ON"}','{{ atom expression }}','')
newCmd('','','*v+11.4;','Toggles the labels on or off for the specified set of atoms. ','*96','labelToggle','{{ atom expression }}')
newCmd('.set (language)','','*v+11.2 -- new;','Starting with Jmol 11.2, you can set the language for the applet popup menu to a new lanuage just by selecting the desired language from the language submenu. In addition, the command <b>set language "xx"</b>, where <b>xx</b> is a two-letter abbreviation for a lanuage, allows this to be done programmatically. Supported languages are listed on the popup menu. As of this writing, supported languages include: Catalan (ca), Czech (cs), Dutch (nl), Estonian (et), French (fr), German (de), Portuguese (pt and pt_BR), Spanish (es), and Turkish (tr).','1|2','language','&quot;[two-letter code]&quot;')
newCmd('.set (lighting)','lighting','*v+11.0 -- clearer naming;disp','This commands in this group determine the overall lighting effects, size, and rotation for the model. Note that in a multi-applet environment, changing lighting values (ambientPercent, diffusePercent, specular, specularExponent, specularPercent, or specularPower) changes them for ALL applets. Effect on another applet may not appear until that model is rotated by the user or some command is issued to that applet that requires updating the display.','2|3','','')





newCmd('','','*v+11.0;','Sets the amount of "ambient" light filling the shadows created by the apparent light source. An ambientPercent value of 0 creates an effect of a spotlight on a stage; a value of 100 removes the shadow entirely, creating a flat, nonrealistic effect.','*10','ambientPercent','(integer 0 to 100)')
newCmd('','','*v+11.0;','Sets the amount of "diffuse" light apparently emanating from the spotlight, but not hitting and reflecting off the model directly. Setting the diffusePercent value to 0 turns this effect off; giving the effect of the model in a black-walled room where no light reflection is possible, effectively turning off all but specular reflections.','*2','diffusePercent','(integer 0 to 100)')
newCmd('','','','Turns off the specular reflection (the shiny dot on a curved surface).','*51','specular','OFF')
newCmd('','','*v+11.0;','Ranging from 1 to 10, the specular exponent determines the tightness of the specular spot, with 1 being very broad and 10 being very tight.','*53','specularExponent','(integer 1 to 10)')
newCmd('','','*v+11.0;','Sets the density of dots in the specular reflection, producing the effect of a very dim light (10) to a very bright light (100).','*57','specularPower','(integer 0 to 100)')
newCmd('','','*v+11.0;','Sets the size of the apparent reflection from a light source.','*55','specularPercent','(integer 0 to 100)')
newCmd('.set (perspective)','','*v+11.0 -- adds zoomLarge;disp','This commands in this group determine the overall lighting effects, size, and rotation for the model. Note that in a multi-applet environment, changing lighting values (ambientPercent, diffusePercent, specular, specularExponent, specularPercent, or specularPower) changes them for ALL applets. Effect on another applet may not appear until that model is rotated by the user or some command is issued to that applet that requires updating the display.','2|3','','')
newCmd('','','*v+11.2;','Sets the amount of perspective. The Jmol default is <b>set cameraDepth 3.0</b>, but you can adjust that to your liking. Smaller numbers lead to more extreme perspective distortion; higher numbers minimize the effect of perspective. The scale in the vertical plane midway from front to back of the model is identical to with <b>set perspectiveDepth off</b> at any zoom level; if <b>p</b> the relative distance of a vertical plane from front (0) to back (1) of the model at a zoom of 100, then the scaling factor is (cameraDepth + 0.5) / (cameraDepth + p) for that plane. This gives, for cameraDepth=3.0, 1.17 for p=0, 1.0 for p=0.5 (as for all cameraDepths), and 0.87 for p=1.','*11','cameraDepth','(positive number)')

newCmd('','','*v+11.2;','Turning this parameter OFF turns off perspective depth. OFF is required for proper function of absolute scale (<b>set scaleAngstromsPerInch  nnn</b>). Perspective depth is automatically turned off by Jmol when loading a model having a unit cell and symmetry operators and automatically turned ON otherwise.','*31','perspectiveDepth','ON')
newCmd('','','*v+11.2;','Jmol\'s perspective model involves a linear perspective that is required for navigation mode. Setting this parameter to 10 returns Jmol to the former perspective model used in Jmol 10. When <b>set navigationMode</b> is invoked, the perspective model is automatically set to 11. ','*32','perspectiveModel','11')
newCmd('','','*v+11.2;','Sets the nominal rotation radius for the model effectively setting the size of the modelat <b>zoom 100</b>. Normally set to the radius that will contain within the screen the entire model when rotated relative to the default rotation center. ','*4','rotationRadius','(Angstroms)')
newCmd('','','*v+11.2;','Sets the absolute scale of the model by setting the viewing distance from the user to the model in arbitrary units. The actual scale will depend upon the sizes of both the applet window and the screen. ','*43','scaleAngstromsPerInch','._viewing_distance')

newCmd('','','','Turning this parameter OFF allows one to set the center of rotation to a new position without also moving that position to the center pixel of the applet window. ','*8','windowCentered','ON')
newCmd('','','*v+11.0;','When turned OFF, this parameter disables zooming. Same as {#.zoom~zoom ON/OFF}','*91','zoomEnabled','ON')
newCmd('','','*v+11.0;','When ON (Jmol default setting), Jmol adjusts the zoom based on the LARGER of the two application/applet dimensions, height and width. Turning this parameter OFF causes zoom to be based on the smaller of the two dimensions, which may be useful for the applet if the user is allowed to resize the applet window. CHIME NOTE: Chime uses <b>set zoomLarge OFF</b>','*92','zoomLarge','ON')
newCmd('','','*v+11.8;','<b>set zshade ON</b> enables a "fog" or "fade" effect, which shades objects based on the distance from the observer such that distant objects fade into the background. Uses the value of the SLAB and DEPTH settings to determine the point of no effect and full effect, respectively (by default 100 and 0). The effect is only enabled when slab is enabled as well (<b>slab ON</b>). (Jmol 11.8)','*9','zShade','OFF')
newCmd('.set (navigation)','','*v+11.2 -- new;nav;disp','This commands in this group set various parameters in relation to navigating through the model. See {misc/navigation.pdf~pdf documentation} for details regarding the Jmol perspective/navigation model.','2|3','','')
newCmd('','','*v+11.2;','When navigating, a small square-with-crosshairs pointer usually appears to help guide the user. Setting this parameter TRUE hides that pointer.','*1','hideNavigationPoint','FALSE')
newCmd('','','*v+11.2;','Sets the depth of the observer navigation point using the same basis as standard slab and depth -- 0 being the back plane of the model; 100 being the front plane of the model. Values greater than 100 represent observation points in front of model.','*2','navigationDepth','(percent)')
newCmd('','','*v+11.2;','When set TRUE, enables user-directed navigation through the model using the keypad arrow keys according to the following table. Setting this parameter TRUE automatically sets the perspectiveStyle to 11, sets zoomEnabled, and sets perspectiveDepth on. [||UP/DOWN arrows|go forward/back off||LEFT/RIGHT arrows|turn left/turn right||ALT UP/DOWN arrows|pitch upward or downward||SHIFT LEFT/RIGHT/UP/DOWN arrows|shift navigation point on the screen and in relation to the model||]','*33','navigationMode','FALSE')
newCmd('','','*v+11.2;','When set TRUE, and the model has a unit cell defined and symmetry has been applied using {#.load~load} {{i j k}}, creates the effect of an limitless navigation. The navigation center is kept always within the unit cell. The more full unit cells that have been loaded, the more realistic the effect. ','*35','navigationPeriodic','FALSE')
newCmd('','','*v+11.2;','Sets the rate of forward/reverse navigation when using the up/down arrow keys. The default value is 5.','*37','navigationSpeed','(decimal)')
newCmd('','','*v+11.2;','Sets the depth of the depth of the slab plane relative to the observer navigation point using the same basis as standard slab and depth -- 0 (default) being at the navigation point; positive numbers being toward the user relative to that. ','*4','navigationSlab','(percent)')
newCmd('','','*v+11.2;','When set TRUE, the navigation cross-hair cursor is shown whenever in navigation mode, not just while the user is pressing keypad keys or scripted navigation is occurring.','*5','showNavigationPointAlways','FALSE')
newCmd('','','*v+11.2;','The visual range is the MINIMUM distance in Angstroms that is viewable by the observer. The default value of 5.0 indicates that with <b>set navigationMode TRUE</b> any object in a plane that is less than 5.0 Angstroms across will be clipped automatically under the presumption that that object is behind the observer. This prevents large objects close to the user from eclipsing smaller objects further from the observer so as to give the illusion of having entered the model itself and now being within it.','*6','visualRange','(angstroms)')

newCmd('.set (structure)','','*v+11.0 -- several new customizable features;','This command group allows for customization of the rendering of PDB and mmCIF secondary structures. The proposed Jmol 11.0 default is <b>set cartoonRockets OFF; set ribbonAspectRatio 16; set hermiteLevel 0; set ribbonBorder 0; set sheetSmoothing 1; set strands 5; set traceAlpha ON</b>.','2|3','','')

newCmd('','','*v+11.0;','Setting this parameter ON sets the display of RasMol {#.cartoon~cartoons} to be a mixture of three-dimensional sheet cartoons and alpha helix {#.rocket~rockets}. It is not a precise as a cartoon with respect to helices but more precise than rockets in relation to beta-pleated sheets.','*41','cartoonRockets','OFF')
newCmd('','','*v+11.0;','Determines the amount of curve smoothing used in rendering protein and nucleic acid secondary structures involving {#.cartoon~}, {#.ribbbon~}, {#.rocket~}, and {#.trace~}. <b>set hermiteLevel 0</b> uses a Jmol 10.2 method of rendering these structures, with rope-like traces and paper-thin ribbons and cartoons. Positive values produce more rounded but slower to render shapes, but only when the model is not in motion. Negative numbers produce the same, but also while rotating. A value of 4 or -4 might be a reasonable compromise between look and performance. ','*50','hermiteLevel','(integer, -8 to 8)')
newCmd('','','*v+11.4;','When set ON, and hermiteLevel is set, draws high-resolution hermite curves even if the diameter is small. Otherwise, small-diameter traces are shown in a faster-rendering fashion.','*53','highResolution','OFF')
newCmd('','','*v+11.0;','Sets the thickness of the ribbons in ribbon and cartoon renderings in terms of the width:height aspect ratio; only enabled in conjunction with <b>set hermiteLevel</b> to a non-zero value. <b>set ribbonAspectRatio 0</b> turns off this feature; 8-16 is recommended; higher positive numbers leading to thinner ribbons.','*67','ribbonAspectRatio','(integer)')
newCmd('','','','Turning this parameter ON adds a slight border for ribbons.','*68','ribbonBorder','OFF')
newCmd('','','*v+11.4;','Turning this parameter ON removes the arrow heads from {#.rockets~} and {#.cartoon~cartoon rockets}, turning them into simple cylindrical barrels.','*70','rocketBarrels','OFF')
newCmd('','','*v+11.0;','In conjunction with <b>set traceAlpha</b>, this parameter determines the "waviness" of beta-pleated sheets. <b>set sheetSmoothing 0</b> creates wavy sheets, with the ribbon or trace going directly through the alpha carbons. The default is <b>set sheetSmoothing 1</b>, which produces a more averaged, smoother (standard) ripple. Has no effect unless <b>set traceAlpha</b>.','*72','sheetSmoothing ','(0 to 1)')
newCmd('','','*v+11.2;','Sets the number of strands to display for the {#.strand~} and {#.meshribbon~} shapes both, with a maximum of 20.','*91','strandCount','._strand_count')
newCmd('','','*v+11.4;','Sets the number of strands to display for the {#.strand~} shape, with a maximum of 20.','*94','strandCountForStrands','._strand_count')
newCmd('','','*v+11.4;','Sets the number of strands to display for the {#.meshribbon~} shape, with a maximum of 20.','*92','strandCountForMeshRibbon','._strand_count')


newCmd('','','*v+11.0;','When set TRUE (the default), along with <b>set sheetSmoothing 0</b>, directs Jmol to draw {#.trace~traces} directly through all alpha-carbons. The effect is a wider, more standard alpha helix and a wavier beta-pleated sheet than in Jmol 10.2. Setting <b>set sheetSmoothing 1;set traceAlpha ON</b> directs Jmol to create smooth out the beta-pleated sheets but still follow the alpha carbons for other structure types. With <b>set traceAlpha FALSE</b>, Jmol draws traces through the midpoints of the lines connecting adjacent alpha-carbons, producing tighter alpha helices and smoothed beta-pleated sheets. Also used as the basis for drawing cartoons, meshRibbons, ribbons, rockets, and strands. The sequence <b>set traceAlpha off; set sheetSmoothing 1;set hermiteLevel 0</b> is equivalent to the Jmol 10.2 default. Jmol 11.4 has the default settings: <b>set traceAlpha TRUE; set sheetSmoothing 1;set hermiteLevel 0</b>.','*95','traceAlpha','TRUE')
newCmd('.set (visibility)','','*v+11.0 -- several new features;disp;set','This command group turns on or off specific sets of atoms and axes/cell-related options.','2|3','','')













newCmd('','','*v+11.0;','See {#.axes~}.','*1','axes','._axes_type')
newCmd('','','*v+11.4;','Allows setting and checking of the current axes mode: (0) window, (1) molecular, (2) unitcell (Jmol 11.4)','*20','axesMode','0, 1, or 2')
newCmd('','','*v+11.0;','See {#.axes~}; this parameter can be set and checked using Jmol math.','*21','axesMolecular','OFF')
newCmd('','','*v+11.2;','Allows setting of the axes scale; (default 2; Jmol 11.4)','*22','axesScale','(decimal)')
newCmd('','','*v+11.0;','See {#.axes~}; this parameter can be set and checked using Jmol math.','*23','axesUnitcell','OFF')
newCmd('','','','See {#.axes~}; this parameter can be set and checked using Jmol math.','*24','axesWindow','ON')
newCmd('','','*v+11.2;','Sets the background color to the specified value; can be inspected using Jmol math.','*25','backgroundColor','._colorRGB')
newCmd('','','*v+11.0;','See {#.boundbox~}.','*30','boundbox','._axes_type')
newCmd('','','*v+11.4;','Sets the default translucent level (0.5 is standard). ','*33','defaultTranslucent','(decimal)')

newCmd('','','*v+11.0;','<b>set disablePopupMenu TRUE</b> disables the pop-up menu.','*42','disablePopupMenu','FALSE')
newCmd('','','*v+11.0;','Turning this parameter FALSE turns off the unit cell parameter list that is included with {#.unitcell~unitcell ON}.','*44','displayCellParameters','TRUE')
newCmd('','','*v+11.0;','Setting this parameter ON displays all colors as grey scale values.','*50','greyScaleRendering','OFF')
newCmd('','','*v+11.0;','Setting this parameter TRUE hides the file name and contents in the pop-up menu starting with the NEXT FILE LOADED.','*51','hideNameInPopUp','FALSE')
newCmd('','','*v+11.0;','Setting this parameter TRUE tells Jmol to hide any atoms whenever they are not selected. <b>set hideNotSelected TRUE</b> immediately hides the currently unselected atoms. When turned off, no immediate action is taken, but future selections no longer hide atoms. The flag is automatically cleared when a new model is loaded or when the picking mode is set to any sort of selection (atom, group, etc.). ','*52','hideNotSelected','FALSE')
newCmd('','','*v+11.0;','When <b>refreshing</b> is set FALSE, no writing to the screen is done at all. Setting refreshing to TRUE should only be done in cases where there is a desire to not show intermediate results as a valid well-tested script runs. If the script throws an error, and refreshing is FALSE, Jmol may appear to be frozen when in fact it is not.','*60','refreshing','TRUE')
newCmd('','','*v+11.0;','Sets the radius of the solvent "ball" that would run around the structure defining its outline. After <b>set radius</b>, you must (re)issue {#.dots~dots ON} for it to take effect, and the solvent probe option for dots must be set on using <b>set solvent ON</b> (below).','*82','solventProbeRadius','._probe_radius{1.2}')
newCmd('','','*v+11.0;','Setting <b>showAxes</b> TRUE displays the axes at their default line width; setting it false hides the axes.','*68','showAxes','FALSE')
newCmd('','','*v+11.0;','Setting <b>showAxes</b> TRUE displays the bounding box as a thin dotted line; setting it false hides the bounding box.','*69','showBoundBox','FALSE')
newCmd('','','*v+11.0;','Setting <b>showFrank</b> TRUE displays the Jmol frank in the lower right-hand corner. Checking this parameter allows checking to see if the frank is on.','*70','showFrank','TRUE')
newCmd('','','*v+11.0;','When both this parameter is ON and {#.selectionHalos~} are ON, Jmol will display selection halos even if atoms are hidden. ','*71','showHiddenSelectionHalos','FALSE')
newCmd('','','*v+11.0;','Turns on and off display of hydrogen atoms.','*72','showHydrogens','TRUE')
newCmd('','','*v+11.0;','deprecated -- see {#.selectionHalos~}','*73','showSelections','FALSE')
newCmd('','','*v+11.0;','Setting this parameter TRUE is equivalent to {#.unitcell~unitcell ON}; can be tested using Jmol math. ','*76','showUnitcell','FALSE')
newCmd('','','*v+11.0;','Setting this parameter TRUE is equivalent to {#.slab~slab ON}; can be tested using Jmol math. ','*78','slabEnabled','FALSE')
newCmd('','setsolvent','*v+11.0;','Turning this parameter ON turns on a solvent "probe" that can be displayed using dots. After <b>set solventPrope ON</b>, a subsequent {#.dots~dots ON} shows the surface of the aggregate of selected atoms using dots. This surface is defined by the contact of a spherical probe (representing a solvent molecule) rolled over the surface of the selected atoms. The radius of the probe sphere of 1.4 Angstroms approximates a water molecule. The default radius for Jmol is 1.2 Angstroms, which can be changed using <b>set solventPropbeRadius</b>. Note that no change in display occurs after <b>set solventProbe ON</b> until the next {#.dots~dots ON} command is encountered. Does not effect the function of {#.isosurface~isosurface solvent}, which draws a surface regardless of the setting of this flag. For a detailed discussion of molecular surfaces, see {http://www.netsci.org/Science/Compchem/feature14.html~}.','*80','solventProbe','OFF')
newCmd('','','*v+11.0;','See {#.unitcell~}.','*99','unitcell','')




newCmd('.set (measure)','','*v+11.0 -- several new features;','Sets characteristics of the measurement labels and lines. See also {#.measure~}.','0|1','','')
newCmd('','','*v+11.0;','Sets the format of the labels for {#.measure~distance measurements}.','*20','defaultDistanceLabel','&quot;format&quot;')
newCmd('','','*v+11.0;','Same as for defaultDistanceLabel, but for angles.','*21','defaultAngleLabel','&quot;format&quot;')
newCmd('','','*v+11.0;','Same as for defaultDistanceLabel, but for torsions.','*22','defaultTorsionLabel','&quot;format&quot;')
newCmd('','','*v+11.2;','This parameter should be set TRUE if molecules or atoms are being moved relative to one another using {#.translateSelected~} or {#.rotateSelected~} so that the numbers associated with distances and angles updates properly as atoms are moved.','*24','dynamicMeasurements','ON')
newCmd('','','*v+11.0;','Turning this parameter TRUE right-justifies measurement labels','*40','justifyMeasurements','FALSE')
newCmd('','','*v+11.0;','Turning this parameter OFF turns off measurement LABELS only, leaving the lines. (To turn off both, use <b>set showMeasurements OFF</b>.)','*63','measurementLabels','ON')
newCmd('','','*v+11.0;','Setting this parameter FALSE turns off measurement lines and labels BOTH. (To turn off just the label, use <b>set measurementLabels OFF</b>.)','*77','showMeasurements','TRUE')
newCmd('','','*v+11.4;','Sets the units for measurement display to be Angstroms, nanometers, or picometers.','*63','measurementUnits','._distance_unit')

newCmd('','','','Sets the width of the measurement line in angstroms.','*2','measurements','._width_angstroms')
newCmd('','','','Sets the width of the measurement line in pixels.','*3','','._width_pixels')

newCmd('','','','Sets the measurement line to be dotted.','*4','','DOTTED')




newCmd('.set (misc)','      ','*v+11.0 -- new options for temperature, measurements, and backgroundmodel;anim','In all cases below, "ON" and "TRUE" are equivalent, and "OFF" and "FALSE" are equivalent.','0|1','','')

newCmd('','','*v+11.2;','When set TRUE, this parameter allows user rotation of the molecule containing the selected atom using the mouse (holding ALT down while dragging). The coordinates of the rotated molecule will be sightly degraded in this process. ','*09','allowRotateSelected','FALSE')
newCmd('','','*v+11.2;','Same as "animation FPS" -- sets the animation delay in frames per second.','*100','animationFps','(integer)')
newCmd('','','*v+11.6;','Setting this parameter FALSE disallows picking of atoms. See also <b>set bondPicking</b> and <b>set drawPicking</b>.','*150','atomPicking','TRUE')
newCmd('','','*v+11.2;','Setting this parameter TRUE adjusts the rate of frame changes in an animation to a lower rate if the rendering cannot keep up with the frame changing.','*11','autoFPS','FALSE')
newCmd('','','*v+11.2;','Sets the color of the X axis.','*12','axis1Color','&quot;color_name&quot;')
newCmd('','','*v+11.2;','Sets the color of the Y axis.','*13','axis2Color','&quot;color_name&quot;')
newCmd('','','*v+11.2;','Sets the color of the Z axis.','*14','axis3Color','&quot;color_name&quot;')
newCmd('','','*v+11.4;','Sets a particular model or animation frame to be fixed in place during an {#.animation~} or when displaying models {#.load~loaded} from a multi-model file. <b>set backgroundModel 0</b> turns this feature off. For a multifile context, the model must be give in "file.model" format. Certain restrictions apply to scripts when a background model is displayed; in that case it may be important to turn the model off and then back on during selected scripting. ','*15','backgroundModel','(integer >= 1) or &quot;file.model&quot;')

newCmd('','','*v+11.6;','Setting this parameter TRUE allows picking of bonds. If pickCallback is enabled, a message is sent to the callback function providing detailed information about the bond that was picked.  See also <b>set atomPicking</b> and <b>set drawPicking</b>.','*17','bondPicking','FALSE')
newCmd('','','*v+11.4;','Jmol can be set to read the chain designations in PDB, mmCIF, and related files either with or without case sensitivity. With the default <b>set chainCaseSensitive FALSE</b>, the chain designations are interpreted as case-insensitive. With <b>set chainCaseSensitive ON</b>, the chain designation is read in a case-sensitive manner -- chain "A" is different than chain "a". This supports {http://www.rcsb.org/pdb/docs/format/pdbguide2.2/guide2.2_frame.html~PDB format} model files with more than 26 chains. The default startup up mode is OFF -- chain designation "a" in a SELECT command will refer to chain "A" in a file.','*2','chainCaseSensitive','FALSE')
newCmd('','','*v+11.2;','Sets the default color scheme to be the traditional Rasmol/Chime scheme or the newer, more subtle, Jmol scheme. This command does not actually change the display for an object unless that object is currently being displayed using the default color scheme. See the {http://jmol.sourceforge.net/jscolors/~Jmol Colors page} for default color scheme details.','*31','defaultColorScheme','JMOL or RASMOL')
newCmd('','','*v+11.4;','Sets the default scale for the arrow tip for {#.draw} arrows.','*32','defaultDrawArrowScale','(decimal)')
newCmd('','','*v+11.4;','Sets the overall defaults to be Jmol standard or more similar to Rasmol, including default color scheme, axes orientation, zero-based XYZ numbering, no spacefill, and simple wireframe. Applied immediately; should be used prior to file loading.','*33','defaults','JMOL or RASMOL')
newCmd('','','*v+11.6;vdw','Sets the default van der Waals radius set for {#.spacefill~} and related commands. For a detailed listing of the values used, see {misc/vdw_comparison.xls~vdw_comparison.xls}. USER refers to a set of data provided by the user using the {#.data~} command.','*34','defaultVDW','JMOL or BABEL or RASMOL or USER')
newCmd('','','*v+11.2;','Setting this parameter TRUEprovides an alternative way to set the default color scheme to RasMol; testable with Jmol math.','*30','colorRasmol','FALSE')
newCmd('','','*v+11.6;dots','When Jmol displays {#.dots~}, the density of dots is determined by the scale of the display. At a small scale, Jmol may display as few as 12 dots; as zoom increases, this number increases to 42, then 162, and finally, at high zoom, it becomes 642 dots. The <b>dotDensity</b> setting allows control over how many dots are displayed at the various scale level cutoffs. (The actual calculation does not use zoom; rather, it uses a measure of pixels per micron). Setting <b>dotDensity</b> to -3 results in Jmol <i>always</i> displaying 12 dots; setting it to 3 results in Jmol <i>always</i> displaying 642 dots. Settings in between these values decrease or increase the number of dots relative to the default setting (0). ','*33','dotDensity','-3 to 3')
newCmd('','','*v+11.0;dots','Setting this paramter TRUE instructs the {#.calculate~calculate surface} command to disregard atoms that are not selected when calculating the position of the surface (which then determines the parameter {#.atomexpressions~surfaceDistance} for each atom). Also tells Jmol to ignore nonselected atoms when creating a {#.dots~dot surface}. <b>set dotsSelectedOnly TRUE</b> would allow, for example, a continuous set of dots around a ligand even if it is in contact with a protein.','*34','dotsSelectedOnly','FALSE')
newCmd('','','*v+11.0;dots','Setting this parameter OFF instructs Jmol to draw complete spheres of {#.dots~} around each selected atom rather than only the dots that would be derived from that atom in a molecular "dot surface."','*35','dotSurface','ON')
newCmd('','','*v+11.4;','When ON, and the user hovers over a point associated with {#.draw~} object, the name of the object is displayed next to the point.','*41','drawHover','OFF')
newCmd('','','*v+11.4;','When ON, Jmol reports picking of points associated with {#.draw~} objects to the console, the messageCallback function, and the pickCallback function. In addition, starting with Jmol 11.6, setting drawPicking true enables measurement of distances and angles involving drawn objects such as points, lines, arrows, and planes. Measurements of this type only appear transiently; they are not saved.  For Jmol 11.6, see also <b>set atomPicking</b> and <b>set bondPicking</b>.','*42','drawPicking','OFF')
newCmd('','','*v+11.4;','Sets (or allows you to inspect, expand, or limit) the list of export drivers available to Jmol. As of Jmol 11.4.1, "Maya;Vrml;Povray".','*43','exportDrivers','&quot;driver_list&quot;')
newCmd('','','*v+11.0;','Sets the formal charge for the selected atoms.','*44','formalCharge','(integer)')
newCmd('','','*v+11.8;','Sets the step for calculating straightness and for {#draw~draw helix axis}. The default value is 1, but a value of 2, for example, allows calculating straightness and axes for structures based on pairs of residues. ','*451','helixStep','(integer)')
newCmd('','','*v+11.0;','Sets the web page for the {#.help~} command.','*453','helpPath','&quot;URL&quot;')
newCmd('','','*v+11.2;','Sets the length of time in seconds before a hovering action is acknowledged.','*46','hoverDelay','(decimal)')
newCmd('','','*v+11.2;','Sets the label displayed upon hovering.','*471','hoverLabel','(string)')
newCmd('','','*v+11.8;','The <b>imageState</b> property, when TRUE, allows Jmol to insert into JPG and PNG files its state. This allows images to serve both as 2D and 3D models.','*472','imageState','ON')
newCmd('','','*v+11.4;','In the case of an isosurface that is mapped using atom-based property data, the default action (as of Jmol 11.4)  is to smooth out the coloring based on an averaging of color weighted by a factor of 1/distance^4 to atoms. Turning this parameter OFF tells Jmol not to do this and instead produce a patchwork mapping that assigns a color based on the property of only the nearest atom (Jmol 11.2 behavior). ','*48','isosurfacePropertySmoothing','ON')
newCmd('','','*v+11.4;','Sets the maximum distance away from a point that that an atom can be found when applying atom data using the {#.load [property]~} command. Default 0.01 Angstroms. (Jmol 11.8)','*49','loadAtomDataTolerance','(decimal)')
newCmd('','','*v+11.0;','In situations where there are multiple models, typically only one model is displayed at any given time. In that situation, if a user clicks on a pair of atoms to measure a bond distance, then only one measurement is made. Starting with Jmol 11.0, using <b>set measureAllModels ON</b>, when the user makes measurements in any one frame, ALL similar measurements in all models in hidden frames are generated at the same time. <b>set measureAllModels ON</b> thus allows for very efficient measuring and investigation of differences in a bond distance or bond angle or dihedral angle across multiple models.  ','*50','measureAllModels','OFF')
newCmd('','','*v+11.6;','Setting this flag TRUE tells Jmol to keep the header portion of the last-loaded PDB file in memory for later retrieval using getProperty("fileHeader"). If FALSE (default), the header is not saved, and a call to this function is slower, since it requires reloading the PDB file and parsing it for its header.','*511','pdbGetHeader','FALSE')
newCmd('','','*v+11.6;','Setting this flag TRUE tells Jmol to assume the groups listed for a given chain in a PDB file are in order already and that Jmol should not check for proper inter-group bonding when assigning polymer sequences that form the basis of secondary structure. This flag allows for custom PDB files where the groups of a chain may not be physically adjacent, yet it is still desired to represent them as single structures.','*512','pdbSequential','FALSE')
newCmd('','','*v+11.2;vdw','The default size of an atom created when a file is loaded as a percent of the atom\'s van der Waal radius (Jmol standard value: 20).','*52','percentVdwAtom','(integer)')
newCmd('','','*v+11.6;','Sets the format of the message sent to the console and callback functions when an atom is clicked.','*54','pickLabel','(string)')
newCmd('','','*v+11.2;','The rate of spinning that occurs when a user clicks on the end of a line created using {#.draw~} (default: 20). ','*53','pickingSpinRate','(integer)')
newCmd('','','*v+11.2;pg','Sets the tolerance for two atoms being considered identical after application of a rotation. See {#.calculate~calculate pointgroup} for details.','*541','pointGroupDistanceTolerance','(decimal)')
newCmd('','','*v+11.2;pg','Sets the tolerance for two axes being considered identical prior to application of a rotation. See {#.calculate~calculate pointgroup} for details.','*543','pointGroupLinearTolerance','(decimal)')
newCmd('','','*v+11.2;','An integer value of 0 or greater. Sets the number of columns to be read for <b>propertyAtomNumberField</b>.','*551','propertyAtomNumberColumnCount','(integer)')
newCmd('','','*v+11.2;','An integer value of 0 or greater. Sets the column (when <b>propertyAtomNumberColumnCount</b> > 0) or free-format field (otherwise) for the atom numbers in a {#.data~} set. These are the atom numbers designated in a PDB file or numbers starting with 1 otherwise. Setting the field to 0 indicates that there is no such field, and values should be read in sequentially.','*552','propertyAtomNumberField','(integer)')
newCmd('','','*v+11.2;','Sets the color scheme associated with properties. SchemeName, in quotes, may be one of "roygb" (default rainbow), "bwr" (blue-white-red), "rwb" (red-white-blue),"low" (red-green), or "high" (yellow-blue) prior to Jmol 11.4; it may be any defined color scheme in Jmol 11.4. In Jmol 11.4, this parameter is largely replaced by <b>color "schemeName"</b>.','*56','propertyColorScheme','&quot;colorSchemeName&quot;')
newCmd('','','*v+11.2;','An integer value of 0 or greater. Sets the number of columns to be read for <b>propertyDataField</b>.','*571','propertyDataColumnCount','(integer)')
newCmd('','','*v+11.2;','An integer value of 0 or greater. Sets the column (when <b>propertyAtomNumberColumnCount</b> > 0) or free-format field (otherwise) for the property data in a {#.data~} set. Setting this value to 0 indicates that values are simply to be read sequentially from the data.','*572','propertyDataField','(integer)')
newCmd('','','*v+11.6;','Specifies the axes used to define the right-handed {#.quaternion~} frame for proteins and nucleic acids . (Jmol 11.6) <br/>[||C|   X is along CA--C and Y is in the plane of the N-CA-C angle, thus defining the orientation of the peptide sidechains||P| X is along CA-C and Y is in the direction ofC-N\', thus defining the orientation of the peptide plane||Q|X is along CA-C; Y is along N\'-CA\'; an alternative definition of the orientation of the peptide plane (J. R. Quine, Journal of Molecular Structure: THEOCHEM, Volume 460, Issues 1-3, 26 February 1999, pages 53-66)||N|A frame based on the peptide N atom and useful specifically in the area of solid state NMR spectroscopy.||RC and RP|These frame selections specify thatt straightness should be calculated from Ramachandran angles only.||]','*58','quaternionFrame','C,P,N,Q,RC,RP')
newCmd('','','*v+11.0;','Starting with Jmol 11.0, when this flag is set to TRUE, the range for {#color~} temperature is set to be adjustable based on the selected set of atoms being colored; when false (the defualt), the range of colors is set based on the range of values in the entire model.','*59','rangeSelected','')
newCmd('','','*v+11.2;','When turned OFF, selections do not select HETATM atoms in PDB files','*62','selectHetero','ON')
newCmd('','','*v+11.2;','When turned OFF, selections do not select hydrogen atoms','*64','selectHydrogen','ON')
newCmd('','','*v+11.2;','Turning the smartAromatic parameter OFF reverts to a Jmol 10 style of drawing aromatic bonds as a paired solid and dashed line when loading subsequent files. (This command has no immediate effect. Use {#.calculate~reset aromatic;calculate aromatic} to see the effect of smartAromatic; Jmol 11.4)','*68','smartAromatic','ON')
newCmd('','','*v+11.2;','determines the number of frames per second between displays of the molecule -- a small number here results in a jerky stepwise rotation. ','*82','spinFps','._spin_fps')
newCmd('','','*v+11.2;','The <b>set spinX</b>,  <b>set spinY</b>, and <b>set spinZ</b> commands allow for the setting of the spin axes -- x, y, and z -- independently as well as the rate of spin. The actual spinning axis is a complex combination of the three settings. No actual spinning occurs until the {#.spin~spin ON} command is issued or the user turns spinning on using the mouse menu. Jmol 11.0 adds a much richer variety of spinning possibilities to this Chime/Rasmol-standard capability, allowing simple spinning around arbitrary molecular- and window-based axes. See the {#.rotate~} command.','*84','spinX','._spin_rate')
newCmd('','','*v+11.2;','see <b>set spinX</b>','*86','spinY','._spin_rate')
newCmd('','','*v+11.2;','see <b>set spinX</b>','*87','spinZ','._spin_rate')
newCmd('','','*v+11.4;','Displays the version of Jmol used to create the most recently run state script (a parameter rather than a read-only variable only because a script has to create it).','*88','stateVersion','(integer)')
newCmd('','','*v+11.2;','When set OFF, this parameter prevents Jmol from recording status messages and reporting them to a requesting web page. When OFF, the JavaScript method jmolScriptWait() cannot return status from the Jmol appet. ','*891','statusReporting','ON')
newCmd('','','*v+11.0;','Same as {#.stereo~stereo (degrees)}, sets the angle for stereo images; can be checked using Jmol math.','*893','stereoDegrees','(decimal)')
newCmd('','','*v+11.4;','When {#.sync~} is ON, delivers mouse actions to the target applet.','*894','syncMouse','OFF')
newCmd('','','*v+11.4;','When {#.sync~} is ON, delivers script events to the target applet.','*895','syncScript','OFF')
newCmd('','','*v+11.8;','Generally the {#.minimize~} command runs in a separate thread. Setting this parameter FALSE instructs Jmol to use the same thread as is being used for commands. This is important in situations where one wants to wait for completion of the minimization before continuing.','*90','useMinimizationThread','ON')
newCmd('','','*v+11.0;','Currently only applicable in the display of unit cell parameters, the <b>useNumberLocalization</b> setting determines whether or not local number formatting will be used (comma as decimal point, for example).','*91','useNumberLocalization','ON')
newCmd('','','*v+11.0;','Sets the scale for vibration vectors.','*92','vectorScale','(decimal)')
newCmd('','','*v+11.0;','Sets the default period of vibrations (in seconds). Setting this value to 0 disables vibration modeling.','*93','vibrationPeriod','(decimal)')
newCmd('','','*v+11.0;','Sets the amplitude of vibrations.','*95','vibrationScale','(decimal)')
newCmd('','','*v+11.4;','Turning this parameter ON sets Jmol to not display spacefill and only display bonds as simple lines during user-based model manipulation. ','*97','wireframeRotation','OFF')
newCmd('.set picking','','*v+11.0 -- adds set picking DRAW ELEMENT MOLECULE SITE SPIN;','The <b>set picking</b> command determines the response to clicking of atoms by the user. For those options for which they apply, the keywords <b>MEASURE</b> and <b>SELECT</b> are optional.','2|2','','')
newCmd('','','','Setting this paramter OFF turns off the sending of picking information (atom identifier, atom number, and atomic position) to both to the status line and to the {#.set (callback)~PickCallback} function, if defined.','*1','ON','')
newCmd('','','','When the user clicks an atom, that atom is set to be the center of rotation. If windowCentered is true (default), then this atom is smoothly moved to the window center; if not windowCentered, then the atom stays in position, but now all rotation is around it and if perspectiveDepth is set (<b>set windowCentered off;set perspectiveDepth on</b>), the perspective around this atom shifts to indicate that it is now the focus of the perspective. If the same atom is clicked twice, it is zoomed in on by a factor of two. If no atom is clicked, then the model is zoomed out by a factor of two. ','*4','CENTER','')
newCmd('','','','The vertices of all {#.draw~} objects are highlighted. Holding the SHIFT key down while dragging moves the object to a new location ("shifts" the object); holding ALT down while dragging moves a single vertex to a new location ("alters" the shape of the object). The draw command required to reproduce the object can be seen immediately using the Java console. This new command can also be seen via message callback, or in the Jmol {#.console~} using {#.show~show DRAW}.','*63','DRAW','')
newCmd('','','','Same as <b>set picking ON</b>.','*69','IDENT','')
newCmd('','','','When the user clicks an atom, the label of that atom is toggled on or off.','*69','LABEL','')
newCmd('','','','Same as <b>set picking MEASURE DISTANCE</b> but also displays a distance measurement on the molecule.','*70','MEASURE','')
newCmd('','pickd','','Turns picking on and returns atom identities and distance between two atoms. Three messages are sent to the {#.set (callback)~MessageCallback} function, if defined: Atom #1 (after the first click) and then Atom #2 and Distance (after the second click).','*71','MEASURE','DISTANCE')
newCmd('','picka','','Turns picking on and returns atom identities and angle involving three atoms. Four messages are sent to the {#.set (callback)~MessageCallback} function, if defined: Atom #1 (after the first click), Atom #2 (after the second click), and then Atom #3 and Angle (after the third click).','*72','','ANGLE')
newCmd('','pickt','','Turns picking on and returns atom identities and torsion angle (dihedral angle) involving four atoms. Five messages are sent to the {#.set (callback)~MessageCallback} function, if defined: Atom #1 (after the first click), Atom #2 (after the second click), Atom #3 (after the third click), and then Atom#4 and Torsion (after the fourth click).','*74','','TORSION')
newCmd('','','','User mouse clicking sets the navigation center to the selected position. See {#.navigation}.','*83','NAVIGATION','')
newCmd('','','','When the user clicks an atom, the selection of that atom is toggled on or off.','*83','SELECT','ATOM')
newCmd('','','','When the user clicks an atom, the selection of the chain associated with that atom is toggled on or off. ','*84','','CHAIN')
newCmd('','','','When the user clicks an atom, the selection of the group associated with that atom is toggled on or off.','*85','','GROUP')
newCmd('','','','When the user clicks an atom, the selection is toggled on or off for all VISIBLE atoms with the same element as the selected atom.','*85','','ELEMENT')
newCmd('','','*v+11.0;','When the user clicks an atom, the selection is toggled on or off for all atoms within the same covalenty bonded set as the selected atom.','*86','','MOLECULE')
newCmd('','','*v+11.0;','When the user clicks an atom, the selection is toggled on or off for all VISIBLE atoms with the same crystallographic site as the selected atom.','*89','','SITE')
newCmd('','','*v+11.0;','Turns picking on and sets it so that when the user clicks two atoms in succession, the model starts to spin around the axis defined by those two atoms. A third click on any atom stops rotation. Optionally, a speed of rotation can be included.','*90','SPIN','._spin_fps')

newCmd('.set pickingStyle','','*v+11.0 -- NEW;','With <b>set pickingStyle</b> you can change the behavior of Jmol in response to user mouse actions relating to selecting atoms or measuring distances, angles, and torsions. <br /> [||<b>SELECT</b>|Sets the behavior of Jmol to different clicking styles. For the standard Jmol default selection behavior, use <b>set pickingStyle SELECT toggle</b> The actions of these options depend upon the setting of {#.set picking~set picking SELECT}. If picking has not been set to SELECT, then this command has no immediate effect. In the explanations given below, it is presumed that we have <b>set picking SELECT GROUP</b>. The <b>SELECT</b> keyword is recommended but not required.||<b>MEASURE</b>|<b>set pickingStyle MEASURE ON</b> in conjunction with <b>set picking MEASURE</b> displays the measurements on the structure as they are generated by user clicking. If picking has not been set to MEASURE, then this command has no immediate effect. <b>set pickingStyle MEASURE OFF</b> returns to the default Jmol behavior.||]','0|1','','')
newCmd('','','*v+11.0;','left-click toggles that group selected/not selected (Chime style; Jmol default).','*1','SELECT','toggle')
newCmd('','','*v+11.0;','left-click selects just that group<br />shift-left-click toggles the group selected/not selected (Rasmol style).','*2','','selectOrToggle')
newCmd('','','*v+11.0;','User mouse action is according to the following scheme, which is the style used by {http://pfaat.sourceforge.net~PFAAT}. <br />[||left-click |selects just that group, like rasmol||shift-left-click|toggles the group selected/not selected||alt-left-click |appends the group to the current selection||alt-shift-left-click|removes the group from the current selection||left-click off model |executes (<b>select none</b>) ||]','*3','','extendedSelect')
newCmd('','','*v+11.0;','Returns to the Jmol default <b>toggle</b> picking style.','*4','','NONE')
newCmd('','','*v+11.0;','Clicking atoms measures and displays distance, angle, or torsions based on the setting of <b>set picking MEASURE</b>. By default the user sees this information displayed. Setting <b>set pickingStyle measure OFF</b> when <b>set picking MEASURE</b> is set to DISTANCE, ANGLE, or TORSION tells Jmol to stop indicating measurements on the model when the user clicks, even though the distance, angle, or torsion information is still sent to the message queue. ','*5','MEASURE','ON')




newCmd('.show','','*v+11.6 -- adds show moveto, show rotation, show translation, show atom, show chain, show group, show selected;','show sends information about the model to the {#.set (callback)~MessageCallback} function and to the Java or Jmol {#.console~}. If using the application, using <b>Jmol -ionx filename.spt modelfile.xyz > output.txt</b>, you can put a <b>show</b> command in a script file (filename.spt), and have the output directed to output.txt. The command line options used in this example include -i (silent startup), -o (use standard output), -n (no display), -x (exit after running the specified script file). All of the parameters that can be {#.set~} can be shown. They+I635 are not listed here.','0|1','','')


newCmd('','','*v+11.0;','Displays the {misc/JVXL-format.pdf~JVXL} file equivalent. (Not available for all object types.)','*4','ISOSURFACE','')
newCmd('','','*v+11.6;','Lists the atom numbers that are currently selected in the order of atom index; duplicates are not listed twice.','*11','ATOM','')
newCmd('','','centering','Delivers the coordinates of the center coordinate and a directional vector defining a box just perfectly enclosing the model. The vector is determined by taking the min and max values for the atom along each cartesian axis. The center is the geometric center of the model, not the default center of rotation (which is the mean atom position). The eight corners of the boundbox are found by adding the center point to the vector, with all possible combinations of +/- component cectors. The length of a side of the boundbox is determined by doubling the appropriate component of the vector. So, for example, the length of the boundbox along the x-axis is (2*vectorX). Units are in Angstroms. Output is in the form <br />boundbox: (centerX, centerY, centerZ) (vectorX, vectorY, vectorZ)','*13','BOUNDBOX','')
newCmd('','','centering','Delivers the coordinates of the center of the model. Units are in Angstroms. Output is in the form <br />center: (centerX, centerY, centerZ)','*20','CENTER','')
newCmd('','','*v+11.6;','Lists the chains (A, B, C, etc.) of the atoms that are currently selected in the order of atom index; duplicates are not listed twice.','*21','CHAIN','')
newCmd('','','*v+11.4;color','Displays the list of colors comprising a color scheme, where "name" is, for example, "roygb", "rwb", or "user". Starting with Jmol 11.4, four additional built-in color schemes include "byElement_Jmol", "byElement_Rasmol", "byResidue_Shapely" (cooresponding to <b>color shapely</b>), and "byResidue_Amino" (corresponding to <b>color amino</b>). ','*22','COLORSCHEME','&quot;name&quot;')
newCmd('','','*v+11.0;','Displays the most recently read {#.data~} of the given type. See also {#.getProperty~getProperty data}.','*25','DATA','&quot;type&quot;')
newCmd('','','','Displays the command required to generate the current {#.draw~} object. Particularly useful after using {#.set picking~set picking DRAW}.','*30','DRAW','')
newCmd('','','','Delivers the entire contents of the file for the current model. ','*31','FILE','')
newCmd('','','','Delivers the entire contents of the specified file on the server from which the applet was loaded. The filename must be relative to the current page (not necessarily the directory containing the applet) and must be enclosed in quotation marks.','*32','FILE','filepath')
newCmd('','','*v+11.4;','Lists all user-defined functions.','*53','FUNCTIONS','')
newCmd('','','*v+11.6;','Lists the groups (ALA, VAL, etc.) of the atoms that are currently selected in the order of atom index; duplicates are not listed twice.','*54','GROUP','')
newCmd('','','*v+11.0;','Shows n lines of command history. If no number is given, <b>show history</b> by itself shows the full set of recorded command lines (100 maximum by default, but this maximum can be changed using the {#.set(files and scripts)~set history} command. History recording can be turned on and off using the {#.history~} command.','*63','HISTORY','n')
newCmd('','','*v+11.0;','Displays a table of information relating to {#.measure~measurements} that have been made.','*70','MEASUREMENTS','')
newCmd('','','*v+11.4;','Displays the current Jmol menu in a format that can be loaded using {#.load MENU~}.','*71','MENU','')
newCmd('','','*v+11.0;','Displays the {misc/JVXL-format.pdf~JVXL} file equivalent for the current {#.mo~molecular orbital}. If no MO is currently shown, displays the JVXL equivalent for the entire set of molecular orbitals. (This can take some time to construct.)','*72','MO','')
newCmd('','','','Delivers properties associated with the currently loaded model. Output includes information about all of the models in the set. This command is still in development. The exact form and content of the output is subject to change (and suggestion).','*73','MODEL','')
newCmd('','','*v+11.6;','Same as <b>show orientation moveto</b>','*75','MOVETO','')
newCmd('','','','Delivers the orientation of the model. Output consists of both a "moveTo" command and an alternative sequence of "reset; rotate z; rotate y; rotate z" commands that would result in the current orientation. Thus, this command allows reading and restoring specific user-specified orientations. Starting with Jmol 11.6, optional types include: [||moveto|the moveto command leading to this orientation, with no comments ||rotation|the current rotation, as a {#.quaternion~}||translation|the current translation in percent X and percent Y from center of the window||]','*77','ORIENTATION','[optional type]')
newCmd('','','','Delivers the PDB file header.','*831','PDBHEADER','')
newCmd('','','pg','Displays a table summarizing the point group of a symmetrical or nearly symmetrical model. See {#.calculate~calculate pointgroup} for details of this calculation.','*833','POINTGROUP','')
newCmd('','','*v+11.6;','Same as <b>show orientation rotation</b>','*84','ROTATION','')
newCmd('','','*v+11.6;','Lists the default label for all selected atoms, in the order of atom index.','*85','SELECTED','')
newCmd('','','*v+11.2;','Delivers a list of all "set" commands that have been issued, with their values.','*86','SET','')
newCmd('','','*v+11.0;','Displays information relating to crystallographic space groups. If a file with crystallographic symmetry is loaded, <b>show spacegroup</b> by itself displays information for that spacegroup. Quotes are required around the space group name. If the name itself includes double quotes, use two single quotes instead. For example: P 32 2\'\', not P 32 2". ','*87','SPACEGROUP','&quot;name&quot;')
newCmd('','','*v+11.0;','Delivers a Jmol script that, when run, will regenerate the state of the Jmol applet or application. The following objects are not yet supported: dipole, isosurface, lcaoCartoon, mo. If a name is given, then the state {#.save~saved} with that name is used; if no name is given, the state described is the current state.','*88','STATE','[optional name]')
newCmd('','','*v+11.0;','Displays information relating to the crystallographic symmetry of the model, including space group name and symmetry operations. (Applicable file formats only.)','*89','SYMMETRY','')
newCmd('','','*v+11.8;','Reports a trace of function and script calls leading to the current command.','*901','TRACE','')
newCmd('','','','Delivers the current 3x3 transformation matrix (rotation only). ','*903','TRANSFORM','')
newCmd('','','*v+11.6;','Same as <b>show orientation translation</b>','*905','TRANSLATION','')
newCmd('','','*v+11.0;','Displays information relating to the crystallographic unit cell of the model. (Applicable file formats only.)','*91','UNITCELL','')
newCmd('','','*v+11.0;','Opens the data file in a new browser window. (applet only)','*92','URL','')
newCmd('','','*v+11.0;','Opens the specified URL in a new browser window. (applet only)','*93','URL','URL')
newCmd('','','*v+11.8;','Reports a listing of all variables and their values.','*94','VARIABLES','')
newCmd('','','','Delivers the current zoom setting. Output is in the form of the zoom command: "zoom n" where "n" is an integer percent of "normal" zoom.','*95','ZOOM','')
newCmd('','','*v+11.0;','For {#.draw~} objects, displays the command that can be used to generate that object. For {#.isosurface~} objects, displays the {misc/JVXL-format.pdf~JVXL} file equivalent. The $ is required. (Not available for all object types.)','*99','$objectID','')

newCmd('.slab','','*v+11.2 adds internal slabbing;slabdepth',' Slab and Depth together control the percentage of the molecule to be displayed based on clipping planes. <b>slab on</b> turns slab/depth on. <b>slab 50</b>  shows the back 50% of the molecule. <b>slab 25</b> show the back 25% of the molecule. <b>depth</b> does the opposite of <b>slab</b>, hiding atoms far from the user. The default settings to see all of the model, then, are <b>slab 100; depth 0</b>.  Atoms appear solid; bonds appear hollow. Starting with Jmol 11.2, slabbing can also be applied "internally" -- that is, based on molecular coordinates, not screen coordinates. Internal slabbing involves defining a plane ax + by + cz + d = 0 as {{a b c d}}, using Miller indices {{h k l}}, or using standard notation such as "x=3" or "xy". CHIME NOTE: The slab/depth effect is equivalent to the RasMol command \'set slabmode solid\', however \'set slabmode [option]\' is not supported.','0|1','','')
newCmd('','','','Turns slab/depth on or off. Either <b>slab ON</b> or <b>depth ON</b> can be used; in either case both slab and depth are turned on.','*1','._on_off{"ON"}','')
newCmd('','','','Sets the position of the slab/depth plane from 0 (front) to 100 (rear) of the model','*2','._percent_slab','')
newCmd('','','*v+11.2;','Sets the position of the slab/depth plane based on the specified Miller index plane. For slabbing, with positive hkl values, atoms far from {{0 0 0}} are removed. The value NONE removes the slab/depth plane','*32','HKL','{{h k l}} or NONE')
newCmd('','','*v+11.2;','Sets the position of the slab/depth plane based on the specified Miller index plane; reference point is opposite <b>slab hkl</b> or <b>depth hkl</b>.','*33','-HKL','{{h k l}}')
newCmd('','','*v+11.2;','Sets the slab/depth plane based on a plane using the general syntax for {#.plane expressions~}. For example: <b>slab PLANE {{atomno=3}} {{atomno=2}} {{atomno=1}}; slab on</b>. Note that the order of points defines the direction from the plane of atoms to be removed. If using your right hand to define the path from first point to second to third, your right thumb points to the atoms removed by slabbing. (Opposite this for <b>depth</b>.)','*41','PLANE','plane_expression or NONE')
newCmd('','','*v+11.2;','Reverses the sense of the plane defined as above.','*42','-PLANE','plane_expression')

newCmd('','','*v+11.2;','Resets slab and depth to the standard slab 100, depth 0, clears any internal planes, and turns slab on.','*7','RESET','')
newCmd('','','*v+11.2;','Sets the current slab to be internal, so that rotation of the model preserves the current slab from a molecular perspective.','*8','SET','')

newCmd('.spacefill','','*v+11.0 -- adds solvent-accessible surface "+" option;disp','Renders selected atoms as shaded spheres. A boolean value renders the spheres with the van der Waals radius. A decimal value specifies the sphere radius in Angstroms. An integer followed by "%" specifies sphere radius as a percentage of the van der Waals radius. A "+" sign followed by a number specifies to draw the surface that number of Angstroms beyond the van der Waals radius. See also {#.dots~} and {#.isosurface~isosurface sasurface}. Note that the value of the current spacefill setting can be retrieved using the .radius value for the atom. (For example, <b> print {{atomno=3}}.radius</b>.)','0|1','','')
newCmd('','','','Turns spacefill on/off','*11','._on_off{"ON"}','')
newCmd('','','*v+11.6;','Turns spacefill rendering on and all other rendering off.','*12','ONLY','')
newCmd('','','','Specifying a decimal number generates a sphere at a specific radius in Angstroms.','*2','[decimal]','')
newCmd('','','','Specifying an integer percent generates a sphere at the specified percentage of the van der Waals radius. (Starting with Jmol 11.6, this refers to the currently set van der Waals radius set -- Jmol, Babel, Rasmol, or User.)','*31','[integer]','%')
newCmd('','','*v+11.6;vdw','Specifying an integer percent generates a sphere at the specified percentage of the van der Waals radius as defined by Jmol. See {misc/vdw_comparison.xls~vdw_comparison.xls}.','*32','[integer]','%Jmol')
newCmd('','','*v+11.6;vdw','Specifying an integer percent generates a sphere at the specified percentage of the van der Waals radius as defined by OpenBabel. See {misc/vdw_comparison.xls~vdw_comparison.xls}','*33','[integer]','%Babel')
newCmd('','','*v+11.6;vdw','Specifying an integer percent generates a sphere at the specified percentage of the van der Waals radius as defined by Rasmol. See {misc/vdw_comparison.xls~vdw_comparison.xls}','*34','[integer]','%Rasmol')
newCmd('','','*v+11.6;vdw','Specifying an integer percent generates a sphere at the specified percentage of the van der Waals radius as defined by the user using the {#.data~} command.','*35','[integer]','%User')
newCmd('','','','With an explicit plus sign, <b>spacefill</b> draws the surface the given number of angstroms beyond the van der Waals radius. This is the definition of a solvent-accessible surface. Note that <b>spacefill +0</b> is the same as <b>spacefill 100%</b>. More typical would be <b>spacefill +1.2</b>.','*4','+(solvent probe radius)','')

newCmd('','','','Generates a sphere for eah atom according to its crystallographic B-factor. If Uij data has been read from a CIF file, then this value is set to 100 * (U11 * U22 * U33)^0.333','*6','TEMPERATURE','')
newCmd('','','','Generates a sphere for each atom according to an approximation of its ionic radius.','*5','IONIC','')
newCmd('','','*v+11.6;','Generates a sphere at the radius corresponding to the minimum anisotropic displacement parameter for the selected atoms factored by the given percentage. See also {#.ellipsoid~}.','*7','ADPMIN','n%')
newCmd('','','*v+11.6;','Generates a sphere at the radius corresponding to the maximum anisotropic displacement parameter for the selected atoms factored by the given percentage. See also {#.ellipsoid~}.','*8','ADPMAX','n%')
newCmd('.spin','','*v+11.0 -- adds molecular frame spin/rotate and fully integrates spin and rotate as one feature;anim;rspin','Starts and stops the molecule spinning around the axis determined by {#.set_spinX~set spinX, set spinY, and set spinZ}. This command was greatly expanded in version 11.0 to include all the possible functions of {#.rotate~}.','0|1','','')
newCmd('','','*v+11.0;','','1','._on_off{"ON"}','')


newCmd('.ssbonds','','bond','Cisteine disulfide bonds can be turned on or off,  colored, and given customized widths in Angstroms.','0|1','','')
newCmd('','','','','*1','._on_off{"ON"}','')
newCmd('','','','','*2','._ssbond_width_angstroms','')
newCmd('','','','','*3','._ssbond_width_rasmol','')

newCmd('.star','','*v+11.6 -- adds new capability;','The <b>star</b> command places a set of crosshairs of a given size in Angstroms on the selected atoms. The default size of the star is, like spacefill, the nominal van der Waals radius for the atom. The default color for the star is that of the atom it is associated with. Use {#.color~color star [colorname]} to then color selected stars the color of your choice. For options, see {#.spacefill~}.','1|1','','')







newCmd('.[status reporting]','','*v+11.0 -- NEW mechanism for polling of applet status;','With Jmol 11.0 there is a new mechanism for reporting applet status to a web page. This mechanism uses active polling -- the web pages periodically queries the applet using jmolGetStatus(strStatus,targetSuffix) as to the applet\'s status rather than using a callback mechanism. When ON (the default condition) Jmol can be tested for one or more of the following status types by specifying one or more keywords in the strStatus parameter: <br />[||<b>keyword</b>|<b>return</b>||atomPicked|returns the identity of the atom picked||fileLoaded|returns the full path of the file loaded along with the simple filename and an integer value (-1) if there was an error.||fileLoadError|returns the phrase "java.io.FileNotFoundException: [filename] (The system cannot find the file specified)" or other such error if a file error occurs.||frameChanged|returns the number of the frame being displayed and a line of information about the model||measurePending |returns what atoms are being hovered over during the middle of a measurement picking operation||measureCompleted |returns measurement information when the user completes a measurement by clicking.||measurePicked |returns information about a measurement made using <b>set picking DISTANCE or ANGLE or TORSION</b>||scriptStarted|returns a message indicating that a script has started.||scriptEcho |returns the "echo" message delivered by one of the following two events: (a) a report from the script command {#.getProperty~} or (b) the echo message from the {#.echo~} command, regardless of whether or not the message is displayed to the user using <b>echo top left</b> or not, using <b>set echo off</b>.||scriptStatus|returns the message "Script completed" if and only if a script is successfully completed as well as a variety of messages such as the number of atoms selected.||scriptError|returns a message starting with "script ERROR" or "script compiler ERROR" if a script-based error occurs.||scriptMessage|returns the message "Jmol executing script ..." when a script starts if there was no compiler error or the compiler error itself, such as "command expected : loadf  &#124; line#1", if an error occurs during script syntax checking.||scriptTerminated|returns the message "Jmol script terminated successfully" if there are no errors upon script completion or "Jmol script terminated unsuccessfully:" followed by an error message if an error occurred. ||] <br /><b>set statusReporting OFF</b> turns off the StatusManager system. <br /><br />Note: Some versions of Firefox/Java have a {https://bugzilla.mozilla.org/show_bug.cgi?id=269973~known bug} associated with Java applet polling. To date, {#.set (callback)~callbacks} have proven more reliable.','0|1','','')
newCmd('.step','','*v+11.8 -- NEW ;pause','Within the Jmol application, after a {#.pause~} command, <b>step</b> executes only the next command and then pauses again. To see what the next command is without executing it, enter <b>?</b> as the command. ','0|1','','')
newCmd('.stereo','','*v+11.0 -- adds customizable colors;','Jmol supports two forms of stereo rendering for molecules. In the first form, the two images are placed side by side and rotated so as to appear from slightly different perspectives, creating the illusion of 3D when a practiced user trains one eye on one image and the other eye on the other image. <br /><br /><img src="img/glasses.gif" style="clear:right"  alt="" />A second form of stereo rendering, <b>anaglyphic rendering</b>, nearly superimposes two identical models that are slightly rotated relative to each other. These models are each of a different color (red and one of blue, cyan, or green). The illusion of depth can then be created when the user wears an inexpensive pair of "3D glasses" that have differently colored lenses.  <br /><br />One should experiment with different background colors when using redcyan or redblue stereo rendering. For many users <b>background grey</b> looks better than <b>background white</b> or <b>background black</b>.','1|2','','')

newCmd('','','','Turns side-by-side stereo viewing on. (Note that if this form of stereo viewing is desired, you will probably want to have the applet width twice the applet height.) The default rotation is -5 degrees. Sets the number of degrees of clockwise vertical-axis rotation of the RIGHT-hand image relative to the LEFT-hand image (which itself does not change rotation when stereo viewing is turned on and off). Negative values correspond to cross-eyed viewing, where the left eye is trained on the right image, and the right eye is trained on the left image. Positive values (clockwise rotation) correspond to "wall-eyed" viewing, where the right eye is trained on the right image and the left eye is trained on the left image. Note that <b>stereo 90</b> may be useful, as it shows two views of a model that rotate synchronously, a "front view" on the left and a "right side view" on the right.','*1','._stereo_angle{5}','')
newCmd('','','','Turns side-by-side stereo viewing on with a previously defined rotation or, if no rotation has been defined, a rotation of 5 degrees.','*2','{"ON"}','')
newCmd('','','','Turns stereo viewing off.','*3','OFF','')
newCmd('','','','Turns red/blue anaglyphic rendering on with a specific relative rotation, if desired. The default is 3 degrees.','*4','REDBLUE','._stereo_angle{3}')
newCmd('','','','Turns red/cyan anaglyphic rendering on with a specific relative rotation, if desired. The default is 3 degrees.','*5','REDCYAN','._stereo_angle{3}')
newCmd('','','','Turns red/green anaglyphic rendering on with a specific relative rotation, if desired. The default is 3 degrees.','*6','REDGREEN','._stereo_angle{3}')
newCmd('','','*v+11.0;','Turns custom two-color anaglyphic rendering on with a specific relative rotation, if desired. The default is 3 degrees. The second color is optional. If it is left off, then the second color is the complement of the first. So, for example: <b>stereo red</b> is the same as <b>stereo red cyan</b>. Note that due to the odd way JavaScript designates green (as [x008000] rather than [x00FF00]), <b>stereo red green</b> is NOT the same as <b>stereo redgreen</b>. The equivalent of <b>stereo redgreen</b> is <b>stereo red lime</b>. When experimenting to match a given set of glasses, it is recommended that you use explicit hex codes for the colors:<br /><br /><b>stereo  [xFF0000] [x00FF00]</b><br /><br /> The set of color names used in Jmol is the JavaScript set, given at {http://jmol.sourceforge.net/jscolors/#JavaScript colors~http://jmol.sourceforge.net/jscolors/#JavaScript colors}.','*7','._colorRGB','._colorRGB','._stereo_angle{3}','')
newCmd('.strand','structure','disp','Strands offer a representation the protein backbone or nucleic acid helix using lines. Curvature control points are as described for {#.ribbon~}. ','0|1','','')
newCmd('','','','','*11','._on_off{"ON"}','')
newCmd('','','*v+11.6;','Turns strand rendering on and all other rendering off.','*12','ONLY','')
newCmd('','','','Normally, strands vary in width according to the amino acid atom positions. This command sets the radius of the set of strands to be a constant value (a decimal, in Angstroms).','*2','._strand_radius','')
newCmd('.structure','','*v+11.6 -- new;','The <b>structure</b> command allows customized definition of the secondary structure of a protein model as HELIX, SHEET, TURN, or NONE. ','0|1','','')
newCmd('','','','The atom expression is optional and if missing defaults to the currently selected atoms. <b>structure HELIX {{4-10:B}}</b>, for example, sets residues 4-10 on chain B to be represented as a helix. Note that the file must be of PDB format (from a pdb, mmcif, or suitable mol2 file) as well.','*1','HELIX|SHEET|TURN|NONE','(atomExpression)')
newCmd('.subset','','*v+11.0 -- new;dhide','The <b>subset</b> command selects a subset of the atoms that will serve as a basis for all atom expressions until either another subset command is issued or until a new file is loaded. After <b>subset *:C</b>, for example, <b>select *</b> only selects atoms of chain C, <b>restrict none</b> only clears chain C, and <b>restrict *:C</b> does nothing.  By itself, the <b>subset</b> command is the same as <b>subset all</b>. Since all menu-driven commands work through the script processor, realize that any user selections will also be affected by the current subset. ({#.Hover~hover} is still active, though.) "Select All" from the menu, for example, will only select the current subset of atoms. In addition, atoms outside the current subset cannot be clicked on by the user for atom identification or for measurements. Thus, after operations requiring subset have been completed, consider issuing <b>subset all</b> unless you intend to shut off user clicking.','0|1','','')
newCmd('.sync','','*v+11.4 -- new;','The <b>sync</b> command allows synchronization among applets. An applet can be a driver, a slave, or (like many supervisors) both (a slave driver, GET IT?). Three optional settings are available. With <b>set syncScript ON</b> scripted commands are transmitted; with <b>set syncMouse ON</b> mouse movements are transmitted. These two parameters are independent. If both are off (the default behavior) and sync is ON, then the orientation of the target applet is maintained the same as the driving applet, but script commands are not automatically transmitted.  Details can be seen at {examples-11/sync2.htm~}.','1|2','','')
newCmd('','','*v+11.4;','Turns on synchronization for just this applet (.), all applets except this one (>), all applets (*), a specific applet on this page (appletId), or a specific applet within a specific synchronization set (appletId[syncId]). All applets selected will drive orientations of all others.','*1','&PER;|>|*|appletId|appletId[syncId]','ON')
newCmd('','','*v+11.4;','Same as <b>sync ON</b>, but the selected applets will be set to receive commands only, not send them.','*2','','SLAVE')
newCmd('','','*v+11.4;','Turns off synchronization for the designated applets.','*3','','OFF')
newCmd('','','*v+11.4;','Sends the command (or scripted sequence of commands) to the desigated applets. Quotation marks ARE required.','*4','','&quot;command&quot;')














newCmd('.trace','structure','disp','A "trace" is a smooth hermite curve through the same control points used by {#.ribbons~}.','0|1','','')
newCmd('','','','','*11','._on_off{"ON"}','')
newCmd('','','*v+11.6;','Turns trace rendering on and all other rendering off.','*12','ONLY','')
newCmd('','','','','*2','._trace_radius','')

newCmd('.translate','','*v-11.8;anim','Moves the molecule along the specified axes to the specified value. Value ranges from -100 to 100, and represents the percentage of the display window, and 0 is the window center. Positive values with X move the model to the right of center and with Y down from center. A value of 100 will move the molecule completely out of the window. A value of 50 will move the center of the molecule to the edge of the window.','*1','X or Y','._percent_translate')
newCmd('.translate','','*v+11.8 -- new options;anim','Moves the molecule along the specified window-based axis, X, Y, or Z. ','1|2','','')
newCmd('','','*v+11.8;','Moves the center of rotation to the specified value. A value of 100 will move the molecule completely out of the window. The value represents the percentage of the display window, and 0 is the window center. A value of 50 will move the center of the molecule to the edge of the window. Positive values are to the right of center for X and below center for Y. ','*1','X or Y','(decimal)')
newCmd('','','*v+11.8;','Moves the center of rotation by the specified percent of the window width (X) or height (Y). ','*2','X or Y','(decimal)','%','')
newCmd('','','*v+11.8;','Moves the center of rotation by the specified number of angstroms or nanometers at the midpoint depth of the model. . Positive values shift the model to the right for X and down for Y.','*3','X or Y','(decimal)','NM or ANGSTROMS','')
newCmd('','','*v+11.8;','Adjusts the zoom setting such that the specified percent change in field of view is effected. Positive values give the illusion of moving the model toward the user. Values that would magnify the model to the extent that less than one angstrom spans the entire window are ignored.','*4','Z','(decimal)','%','')
newCmd('','','*v+11.8;','Adjusts the zoom setting such that the specified number of angstroms or nanometers are removed from the field of view (positive value, magnification) or added to the field of view (negative value, giving the illusion of zooming out) at the midpoint depth of the model, as defined by the dimension from which zoom is referenced (based on <b>set zoomLarge</b>). Values that would magnify the model to the extent that less than one angstrom spans the entire window are ignored.','*5','Z','(decimal)','NM or ANGSTROMS','')


newCmd('.translateSelected','','*v+11.0 -- new;anim',' Moves the currently selected set of atoms along the specified vector. {#.fractional coordinates~Fractional coordinates} are allowed and are indicated with a "/" anywhere in any of the three coordinates.','*2','{{x y z}}','')
newCmd('.unbind','','*v+11.10;bind','Removes the tie between a mouse action and a Jmol action or user script.','1|2','','')
newCmd('','','*v+11.10;','By itself, unbind returns Jmol to its default mouse action binding.','*1','','')
newCmd('','','*v+11.10;','Removes all bindings to the specified mouse action.','*2','._mouse_action','')
newCmd('','','*v+11.10;','Removes all bindings to the specified jmol action','*3','._jmol_action','')
newCmd('','','*v+11.10;','Removes all bindings to the specified user script','*4','&quot;script&quot;','')
newCmd('','','*v+11.10;','Removes the specified mouse action for the specified Jmol action.','*5','._mouse_action','._jmol_action')
newCmd('','','*v+11.10;','Removes the specified mouse action for the specified script.','*6','._mouse_action','&quot;script&quot;')

newCmd('.unitcell','','*v+11.0 -- new;axes','Turns on or off the unit cell for crystal structures, and determines its line style and line width (as a decimal number, in Angstroms).','1|2','','')
newCmd('','','*v+11.0;','Turns the unit cell on or off','*1','._on_off{"ON"}','')
newCmd('','','*v+11.0;','Sets the unit cell line diameter in Angstroms. ','*2','(decimal)','')
newCmd('','','*v+11.0;','Sets the axes style to a thin dotted line.','*3','DOTTED','')
newCmd('','','*v+11.0;','Sets the origin of the unit cell to be the specified coordinate (with braces). No matter how the coorinate is written (with or without "/"), it is interpreted as a fractional coordinate. For example, <b>unitcell {{0.5 0.5 0.5}}</b> sets the origin of the unit cell to {{1/2, 1/2, 1/2}}. This change is for display purposes only -- the actual "{{0 0 0}}" point remains where it was initially.','*4','{{i j k}}','')
newCmd('.while','','*v+11.4 -- new flow control options;','See {#.if_while_for~}.','1|2','','')

newCmd('.vector','','disp','Draws vectors arising from vibrational mode data. Operates on whichever atoms have been selected. See also {#.color (atom object)~}','1|2','','')
newCmd('','','','Turns vibration vector display on and off','*1','._on_off{"ON"}','')
newCmd('','','','Sets the diameter of the vector','*2','._diameter_pixels','')
newCmd('','','','Sets the diameter of the vector','*3','._radius_angstroms','')
newCmd('','','','Adjusts the scale of the vector independently of the vibration motion.','*4','SCALE','._vector_scale')
newCmd('.vibration','','*v+11.0 adds vibration period command;vib','Provided information is present in the file (xyz format with columns 6-8 indicating dx, dy, and dz, or Gaussian harmonic frequency output), turns on and off display of vibration animation and allows setting of the time period for the vibration (in seconds) and the scale of the motion relative to the default (1). ','1|2','','')
newCmd('','','','Turns vibration on with a 1-second time period or turns vibration off.','*1','._on_off{"ON"}','')
newCmd('','','','Sets the time period for one full vibration in seconds and turns vibration on. ','*2','._time_period','')
newCmd('','','*v+11.0;','Sets the time period for one full vibration in seconds, but does not turn vibration on','*3','PERIOD','._time_period')
newCmd('','','','Sets the scale of the vibration motion independently of the vector length.','*4','SCALE','._vibration_scale')
newCmd('.wireframe','','disp;bond','Wireframe refers to the bonds drawn between the atoms. A boolean value of ON draws the selected bonds as lines. Alternatively, a numeric value may be used to specify the radius of the bonds. A decimal value such as 0.2 or 0.4 specifies Angstroms. The <b>wireframe</b> command operates on bonds either BETWEEN ANY TWO atoms in a previously selected atom set (having previously {#.setbondstyles~set bondmode AND}) or TO ANY atoms in a previously selected atom set (having previously {#.setbondstyles~set bondmode OR}). Note that the selected atoms must already be connected (based on information in the file, Jmol\'s autobonding algorithm, or from use of the {#.connect~} or {#.bondorder~} command) in order to show any effect. CHIME NOTE: Rasmol and Chime will take <b>wireframe 0</b> as a one-pixel-width bond (equal to <b>wireframe</b> and hence to <b>wireframe on</b>), while Jmol will interpret it as <b>wireframe off</b>.','0|1','','')
newCmd('','','','Turn wireframe on or off','*11','._on_off{"ON"}','')
newCmd('','','*v+11.6;','Turns wireframe rendering on and all other rendering off.','*12','ONLY','')
newCmd('','','','Show wireframe with the given cylinder diameter in Angstroms','*2','._radius_angstroms','')
newCmd('','','','Show wireframe with the given cylinder diameter in Rasmol units (deprecated).','*3','._radius_rasmol','')


newCmd('.write','','*v+11.4 adds the FILE option, function display, and image quality;*v-11.10;clip','(application or signed applet only). Writes information to a file or to the system clipboard. Options include: an image of the application screen, the script history, the current model state in the form of a script, the current molecular orbital in the form of a JVXL file, or the current isosurface in the form of a JVXL file. If the filename is simple (no spaces) and the type is clearly in the extension as, for example, <b>write test.spt</b>, then Jmol will deduce the type from the filename and create the proper file. Recognized extensions include ".spt", ".his", ".iso" and ".mo" (both JVXL file format), "mol", "pdb" and "xyz" (coordinates), "jpg", "jpeg", "jpg64", "ppm", and "png". For the clipboard, simply specify CLIPBOARD instead of a file name.','0|1','','')
newCmd('.write','','*v+11.10 adds LOCALPATH and REMOTEPATH options for write STATE;clip','(application or signed applet only). Writes information to a file or to the system clipboard. Options include: an image of the application screen, the script history, the current model state in the form of a script, the current molecular orbital in the form of a JVXL file, or the current isosurface in the form of a JVXL file. If the filename is simple (no spaces) and the type is clearly in the extension as, for example, <b>write test.spt</b>, then Jmol will deduce the type from the filename and create the proper file. Recognized extensions include ".spt", ".his", ".iso" and ".mo" (both JVXL file format), "mol", "pdb" and "xyz" (coordinates), "jpg", "jpeg", "jpg64", "ppm", and "png". For the clipboard, simply specify CLIPBOARD instead of a file name.','0|1','','')
newCmd('.write (image, frames)','','*v+11.0;','Jmol can write a 2D image of the model and, for JPG and PNG format, can append its state so that a single file can be read either as an image or as a Jmol state. In addition, Jmol 11.8 can write sequences of frames as a set of JPG files that can then be incorporated by other programs into movie files.','0|1','','')
newCmd('','writeframes','*v+11.8;','Allows making of Jmol movies, creating a set of JPG files filename0001.jpg, filename0002.jpg, etc. for all frames in the atom expression. These files can then be combined using an external program of user\'s choice to create a movie from a sequence of JPEG images. Width and height are optional, as is the atom expression.','*11','FRAMES','.atom_expression','width','height')
newCmd('','','*v+11.0;','Creates a "snapshot" image of the current display and saves it to disk as a JPG image. The optional integer n is a quality from 1 to 100 (default 75). If <b>set imageState</b> is TRUE (the default setting), then Jmol inserts into the JPG file its state, allowing a single image file to be used both for viewing as a 2D image and reading as a 3D Jmol state using the [#.script~] command or by dragging and dropping in the Jmol application.','*12','IMAGE','JPG','n','&quot;fileName&quot;')
newCmd('','','*v+11.0;','Creates a "snapshot" image of the current display and saves it to disk as a JPG or base-64-encoded JPG image. The optional integer n is a quality from 1 to 100 (default 75).','*14','IMAGE','JPG64','n','&quot;fileName&quot;')
newCmd('','','*v+11.0;','Creates a "snapshot" image of the current display in PNG  format and saves it to disk. The amount of compression, <b>n</b>, added in Jmol 11.4, is a number between 0 and 10 (default 2).  If <b>set imageState</b> is TRUE (the default setting), then Jmol appends to the PNG file its state, allowing a single image file to be used both for viewing as a 2D image and reading as a 3D Jmol state using the [#.script~] command or by dragging and dropping in the Jmol application.','*15','IMAGE','PNG','n','&quot;fileName&quot;')
newCmd('','','*v+11.0;','Creates a "snapshot" image of the current display in {http://netpbm.sourceforge.net/doc/ppm.html~PPM} format and saves it to disk. The amount of compression, <b>n</b> is a number between 0 and 10 (default 2).','*16','IMAGE','PPM','&quot;fileName&quot;','')
newCmd('.write (export)','','*v+11.8 adds IDTF, VRML, and X3D options;','Jmol models can be exported to several formats that can be read by external rendering programs. ','0|1','','')

newCmd('','','*v+11.8;','Exports the current scene as an [http://u3d.svn.sourceforge.net/viewvc/u3d/trunk/Docs/IntermediateFormat/IDTF%20Format%20Description.pdf~Intermediate File] that can be easily converted to a [http://en.wikipedia.org/wiki/Universal_3D~Universal 3D] file for incorporation into 3D-PDF documents. The conversion to U3D is done external to Jmol using the (Windows-only) program [misc/idtf.zip~]. (This is a copy from the Bin/Win32/Release directory found in the zip file downloadable from [http://sourceforge.net/projects/u3d/]; source code for that C++ program is available at this site as well.) Once Jmol has created the IDTF file using, for example, <b>write IDTF "myfile.idtf"</b>, simply execute from a Windows command window <b>IDTFConverter.exe -input myfile.idtf -output myfile.u3d</b>. The U3D file created will be highly compressed and FAR smaller than that created using other means (such as first creating a VRML file and then converting that to the U3D format). (Jmol 11.8.RC5) ','*1','IDTF','&quot;fileName&quot;')
newCmd('','','*v+11.4;','Exports the current scene as a Maya file. (Basic elements such as atoms and bonds only.)','*2','MAYA','&quot;fileName&quot;')
newCmd('','','*v+11.8;','Exports the current scene as POVRAY. The file "fileName" is written along with the additional file, "fileName.ini". (Typically "fileName" would include the ".pov" extension, so these would be of the form xxx.pov and xxx.pov.ini.) Note that the .pov file will embed the Jmol script, so the model can be loaded back into Jmol using [#.script~script "xxx.pov"].','*3','POVRAY','&quot;fileName&quot;')

newCmd('','','*v+11.4;','Exports the current scene as VRML.','*4','VRML','&quot;fileName&quot;')
newCmd('','','*v+11.8;','Exports the current scene as X3D.','*5','X3D','&quot;fileName&quot;')

newCmd('.write (object)','','*v+11.2;','Several Jmol objects can be saved independently.','0|1','','')
newCmd('','','*v+11.2;','Saves the current isosurface in the form of a JVXL file.','*21','ISOSURFACE','&quot;fileName&quot;')
newCmd('','','*v+11.2;','Saves the current molecular orbital in the form of a JVXL file.','*233','MO','&quot;fileName&quot;')
newCmd('','','*v+11.6;pg','Creates a script file containing DRAW commands that will draw the planes and axes of symmetry for a molecule. ','*34','POINTGROUP','DRAW','&quot;fileName&quot;','')
newCmd('.write (model)','','*v+11.2;','There are several options for writing model data to a file. ','0|1','','')
newCmd('','','*v+11.2;','Writes molecular data to a file determined by the extension (SPT, XYZ, MOL, or PDB). "coords" and the type may be omitted if the filename has a three-letter extension matching one of these types. In the case of XYZ, MOL, and PDB, only selected atoms are saved. In the case of SPT, a script file containing the coordinates of the model. This is useful in the case that one or more of the atoms have been moved using {#.invertSelected~}, {#.rotateSelected~}, or {#.translateSelected~}. This format is also suitable for loading back into Jmol, but only in a simple XYZ-like format, using the {#.load~} command. However, if the file is read using the {#.script~} command, then atoms should appear in their new positions.','*10','COORDS','SPT|XYZ|MOL|PDB','&quot;fileName&quot;','')
newCmd('','','*v+11.4;','Writes the most recent file loaded to the indicated filename. If the model was loaded using a manifest from a ZIP file, then the entire ZIP file is written.','*11','FILE','&quot;fileName&quot;')
newCmd('','writeframes','*v+11.8;','Allows making of Jmol movies, creating a set of JPG files filename0001.jpg, filename0002.jpg, etc. for all frames in the atom expression. These files can then be combined using an external program of user\'s choice to create a movie from a sequence of JPEG images. Width and height are optional, as is the atom expression.','*12','FRAMES','.atom_expression','width','height')
newCmd('','','*v+11.6;pg','Writes a tabular summary of the point group for a symmetrical or nearly symmetrical molecule. ','*33','POINTGROUP','&quot;fileName&quot;')
newCmd('','','*v+11.6;','Writes a file that is of PDB format and contains the quaternion representation of the rotational frame of individual amino acid residues in a protein or base pairs in a nucleic acid. The visualization involves the 3D projection of the four-dimensional unit quaternion. The parameter w, x, y, or z determines which of the four components of the quaternion to remove from the projection. See the {#.quaternion~} command for details.','*24','QUATERNION','w,x,y,z','&quot;fileName&quot;','')
newCmd('','','*v+11.6;','Writes a file that is of PDB format and contains the quaternion coordinates in w projection of either the absolute difference between adjacent amino acid residues or nucleic acid base pairs (defining the helical axis) or the relative difference, defining the "pitch" of the helix -- the relative change in orientation of one amino acid to the next from the perspective of the first residue. ','*25','QUATERNION','a,r','DIFFERENCE','&quot;fileName&quot;')
newCmd('','','*v+11.6;','Writes a file that is of PDB format and contains the quaternion coordinates in w projection of the derivative of either the absolute or relative difference for individual amino acid residues or base pairs. ','*26','QUATERNION','a,r','DIFFERENCE2','&quot;fileName&quot;')
newCmd('','','*v+11.6;','Creates a script file containing DRAW commands that will draw the vectors for the quaternion frame and quaternion rotational axis for each currently selected residue.','*27','QUATERNION','w,x,y,z','DRAW','&quot;fileName&quot;')
newCmd('','','*v+11.6;','Creates a script file containing DRAW commands that will draw the vectors for the absolute or relative quaternion difference for each currently selected residue.','*28','QUATERNION','a,r','DIFFERENCE','DRAW')
newCmd('','','*v+11.6;','Creates a script file containing DRAW commands that will draw the vectors for the derivative of the absolute or relative quaternion difference for each currently selected residue.','*29','QUATERNION','a,r','DIFFERENCE2','DRAW')
newCmd('','','*v+11.6;','Creates a file in PDB format for the alpha carbons of a peptide, where the x, y, and z axis values are actually the PHI, PSI, and OMEGA values for each amino acid. An additional optional keyword DRAW writes a script file that would draw PHI and PSI angles on the structure.','*35','RAMACHANDRAN','&quot;fileName&quot;')
newCmd('','','*v+11.6;','"r" here stands for "relative" and refers to the fact that in this Ramachandran plot the z axis is (PHI[i+1] + PSI[i]) - (PHI[i] + PSI[i - 1]), which is an approximation for the quaternion derivative at this amino acid based on an alpha-carbon quaternion frame. This derivative is a measure of the helical integrity around the given amino acid. Values of 0 (the x-y plane) indicate that the helical environment around an amino acid is constant (a perfect helix or sheet). Values far from 0 indicate transitional residues intermediate between helical sections and other secondary structures.','*36','RAMACHANDRAN','r','&quot;fileName&quot;','')
newCmd('.write (info)','','*v+11.0;','The Jmol state, history, menu, currently defined functions, and variables may all be written to files. ','0|1','','')
newCmd('','','*v+11.4;','Writes all user-defined functions to a file. (Jmol 11.4)','*12','FUNCTIONS','&quot;fileName&quot;')
newCmd('','','*v+11.0;','Saves the script command {#.history~} to a file.','*12','HISTORY','&quot;fileName&quot;')
newCmd('','','*v+11.8;','Saves the current Jmol popup menu as a file. See {#.load MENU~}.','*22','MENU','&quot;fileName&quot;')
newCmd('','','*v+11.0;','Saves the current state to a script file.','*40','STATE','&quot;fileName&quot;')
newCmd('','','*v+11.10;','Saves the current state to a script file, stripping all local file references to the indicated relative path. (Jmol 11.9.2)','*41','STATE','LOCALPATH','&quot;path&quot;','&quot;fileName&quot;')
newCmd('','','*v+11.10;','Saves the current state to a script file, stripping all remote file references to the indicated relative path. ','*42','STATE','REMOTEPATH','&quot;path&quot;','&quot;fileName&quot;')
newCmd('','','*v+11.2;','Saves the value of a variable to a file.','*45','VAR','[variable name]','&quot;fileName&quot;','')














newCmd('.zap','','*v+11.6 -- selective model removal;;load;rreset','Clears the currently loaded molecule. After <b>zap</b> or before any model is loaded, all of the following commands are active and may be used to create nonmolecular visualizations: {#.axes~},  {#.background~},  {#.boundbox~},  {#.center~}*,  {#.centerAt~},  {#.dipole~}*,  {#.draw~}*,  {#.echo~},  {#.font~},  {#.frank~},  {#.isosurface~}*,  {#.move~},  {#.moveto~},  {#.pmesh~},  {#.restore~},  {#.rotate~}*,  {#.save~},  {#.slab~},  {#.spin~}*,  {#.stereo~},  {#.translate~}, and related {#.set~} commands.  <br/><br/>* indicates only aspects not requiring selection of atoms for these commands. Starting with Jmol 11.6, the ZAP command can be used to delete selected models.','1','','')
newCmd('','','*v+11.6;','Clears all loaded models.','*1','','')
newCmd('','','*v+11.6;','Clears all models that include any of the selected atoms. Examples include: <b>zap file=1</b>, <b>zap model=1.1</b>, <b>zap atomno=1</b>, <b>zap not visible</b>','*2','(atom expression)','')





newCmd('.zoom','','*v+11.0 -- new capabilities;anim',' Allows enlarging or shrinking of the displayed model. A percentage value specifies the zoom relative to 100, the default value, which in Jmol is calculated so that all atoms are completely visible on the screen through all rotations using the default vanderWaals rendering percentage. The command "zoom OFF" disables mouse-based zooming and zooms to 100. The command "zoom ON" re-enables zooming at the current zoom setting. If the zoom has been turned off, setting the zoom using, for example, "zoom 50," though it sets the "current zoom setting," has no effect until the next "zoom ON" command is given. If an atom is given, then zoom also sets this atom as the rotation center, and if windowCentered is true, that point is moved the center of the screen.','*1','._on_off{"ON"}','')
newCmd('','','','','*2','._percent_zoom','')
newCmd('','','*v+11.0;','Sets a new zoom setting and also designate the specified atom expression or coordinate as the rotation center.','*3','(atom expression) or {{x y z}}','._percent_zoom')
newCmd('','','*v+11.0;','Adds or subtracts an absolute amount from the current zoom setting.','*4','(atom expression) or {{x y z}}',' + or - delta')
newCmd('','','*v+11.0;','Multiplies or divides the current zoom setting by the indicated factor.','*5','(atom expression) or {{x y z}}',' * or / factor')
newCmd('.zoomto','','*v+11.0 -- new;anim;nav','Carries out a smooth transition to the specified zoom setting. Indicating a new rotation center is optional.','1|0','','')
newCmd('','','*v+11.0;','By itself, <b>zoomTo</b> smoothly zooms IN by a factor of 2 over the course of 1 second.','*1','','')
newCmd('','','*v+11.0;','Smoothly zooms OUT by a factor of 2 over the course of 1 second.','*2','OUT','')
newCmd('','','*v+11.0;','Smoothly moves the specified atom or coordinate to the center of the window if windowCentered or designates it as the center of rotation if not windowCentered. xTrans and yTrans parameters specify percent translation within the window along X and Y, respectively (Jmol 11.9.9). All parameters are options. The default time is 1 second; indicating no center position results in simple, smooth zooming.','*3','._floattime','(atom expression) or {{x y z}}')
newCmd('','','*v+11.0;','Smoothly transitions to the indicated zoom setting over the course of the specified number of seconds. Optional xTrans and yTrans parameters specify percent translation within the window along X and Y, respectively (Jmol 11.9.9)','*4','._floattime','(atom expression) or {{x y z}}','._percent_zoom','xTrans yTrans')
newCmd('','','*v+11.0;','Adds or subtracts an absolute amount from the current zoom setting over the course of the specified number of seconds. Optional xTrans and yTrans parameters specify percent translation within the window along X and Y, respectively (Jmol 11.9.9)','*5','._floattime','(atom expression) or {{x y z}}',' + or - delta','xTrans yTrans')
newCmd('','','*v+11.0;','Multiplies or divides the current zoom setting by the indicated factor over the course of the specified number of seconds. Optional xTrans and yTrans parameters specify percent translation within the window along X and Y, respectively (Jmol 11.9.9)','*6','._floattime','(atom expression) or {{x y z}}',' * or / factor','xTrans yTrans')
newCmd('','','*v+11.2;','Zooms to the setting that fills the screen with the designated atoms. (Requires <b>set perspectiveModel 11</b> for proper operation.) Can include modifiers +n, -n, *n, /n after the 0. Optional xTrans and yTrans parameters specify percent translation within the window along X and Y, respectively (Jmol 11.9.9)','*7','._floattime','(atom expression) or {{x y z}}','0','xTrans yTrans')









































































































