//newCmd('command','examples','flags/xrefs','description','sortorder','param1','param2','param3','param4+')
lastupdate='Apr 10, 2007'
jmolversion='Jmol Version 11.0(beta)  2006/09/23'
newCmd('.animation','','*v+11.0 -- adds greatly expanded frame animation control; *v-10;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-10;','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-10;','Sets the animation direction to be from last frame to first frame.','*20','.direction','-1')
newCmd('','','*v-10;','Sets the animation direction to be first frame to last frame.','*30','','+1')
newCmd('','','*v-10;','Sets the animation frames per second.','*40','.fps','._anim_fps')
newCmd('','','*v-10;','<b>animation frame</b>, <b>frame</b>, and <b>model</b> are synonymous. See options at the {#frame~} command. ','*50','.frame','')



newCmd('','','*v-10;','Sets the animation mode to restart the sequence automatically when the last frame has played.','*90','.mode','LOOP')
newCmd('','','*v-10;','Allows for a time delay at the start and end of the loop.','*91','','LOOP','._time_delay1','._time_delay2')
newCmd('','','*v-10;','Sets the animation to play once through and then stop (the default mode).','*92','','ONCE')
newCmd('','','*v-10;','Sets the animation to play forward and back endlessly.','*93','','PALINDROME')
newCmd('','','*v-10;','Allows for a time delay at the start and end of the palindrome.','*94','','PALINDROME','._time_delay1','._time_delay2')
newCmd('.animation','','*v-11;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 stuctures that are "played" sequencially, *vibrational modes that can be animated, *ve in a predefined way. The "animation" command only refers to method (1).  ','1|2|4','','')
newCmd('','','*v-11;','Turns on or off animation.','*10','._on_off{"ON"}','')
newCmd('','','*v-11;','Sets the animation direction to be from last frame to first frame.','*20','.direction','-1')
newCmd('','','*v-11;','Sets the animation direction to be first frame to last frame.','*30','','+1')
newCmd('','','*v-11;','Sets the animation frames per second.','*40','.fps','._anim_fps')
newCmd('','','*v-11;','Go to a specific frame.','*50','.frame','(integer >= 1)')
newCmd('','','*v-11;','Overlay all frames.','*60','','0')
newCmd('','','*v-11;','Go to next frame','*70','','NEXT')
newCmd('','','*v-11;','Go to previous frame.','*80','','-1')
newCmd('','','*v-11;','Sets the animation mode to restart the sequence automatically when the last frame has played.','*90','.mode','.loop')
newCmd('','','*v-11;','Allows for a time delay at the start and end of the loop.','*91','','.loop','._time_delay1','._time_delay2')
newCmd('','','*v-11;','Sets the animation to play once through and then stop (the default mode).','*92','','ONCE')
newCmd('','','*v-11;','Sets the animation to play forward and back endlessly.','*93','','PALINDROME')
newCmd('','','*v-11;','Allows for a time delay at the start and end of the palindrome.','*94','','PALINDROME','._time_delay1','._time_delay2')
newCmd('.atom expressions','','*v+10.2 includes connected(); *v-11;','Note that the <b>substructure()</b> function takes a quoted {http://www.daylight.com/smiles~smiles string} for its argument. <b>within()</b> takes two parameters. The second parameter specifies the atom set within which the selection should be restricted. The first parameter can be a decimal distance in Angstroms or one of the words <b>GROUP</b>, <b>CHAIN</b>, or <b>MODEL</b>. <b>connected([optional min # bonds], [optional max # bonds], [optional atom expression])</b>  See {misc/groups.txt~groups.txt} for many examples of using connected() with <b>define</b>.','0','','')
newCmd('.atom expressions','','*v+11.0 adds cell, hidden, site, surfacedistance, symop, and symmetry -- also support for D (deuterium), T (tritium), and _Xx; *v-10; *v-11.1;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 is always for the untransformed, untranslated file atoms, regardless of what cell they may actually be in based on their fractional coordinates (usually cell 555). All other ijk are referenced to that. || TEMPERATURE |PDB temperature factor; PDB file columns 61-66||]','0','','')
newCmd('.atom expressions','','*v+11.1 adds file.model notation; *v-10; *v-11.0;atoms','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. ||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 is always for the untransformed, untranslated file atoms, regardless of what cell they may actually be in based on their fractional coordinates (usually cell 555). All other ijk are referenced to that. || TEMPERATURE |PDB temperature factor; PDB file columns 61-66||]','0','','')
newCmd('','','*v-10;*v-11.0;','An atom expression is simply a list of atoms. Starting with Jmol 11.1.14 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:<br /><br /><b>select (carbon)[3][5]</b><br /><br />This says, "Select the third through fifth carbon atoms." If the second selector is only a single atom is selected; if [0] is used for the second selector, then all atoms STARTING with the first selector are included. Atom selectors can be used for any expression embedded in another command. In that case an additional set of parentheses is required around the whole expression: <br /><br /><b>measure ((_O)[1])  ((_O)[2]). </b>','TEXT','Atom selectors<br /><br />','')
newCmd('','','*v-10;;','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 of the following:  SINGLE, DOUBLE, TRIPLE, QUADRUPLE, AROMATIC, PARTIAL, PARTIALDOUBLE, HBOND, or UNSPECIFIED. 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>GROUP</b>, <b>CHAIN</b>, <b>ELEMENT</b>, <b>MODEL</b>, <b>MOLECULE</b>, or <b>SITE</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".  (SITE refers to all crystallographic sites common to the specified atom set.)||WITHIN(distance, atomExpression)|any atom within the specified distance of any atom in the atomExpression.|| WITHIN(distance, {{x y z}})|(New in Jmol 11.1.12) any atom within the specified distance of the given fractional or Cartesian coordinate.||WITHIN(planeType, planeDesignation)| (New in Jmol 11.1.12.) 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 can be any valid {#.planeExpression~plane expression}. ||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.  ||]','TEXT','Functions<br /><br />','')
newCmd('','','*v-10;','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  30-||^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<br /><br />','')
newCmd('','','*v-10;','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>. In Jmol 11.0, you can also just <b>select CA</b>, but with the proviso that an error will be returned if the model has no atoms with name "CA". 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 * may be used in the form x* only in the case of residue names, because there are some PDB atom names that include *. 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.','TEXT','Wildcards<br /><br />','')
newCmd('','','*v-10;','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<br /><br />','')
newCmd('.axes','','*v+11.0 -- new; *v-10;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-10;','Turns axes on or off','*1','._on_off{"ON"}','')
newCmd('','','*v-10;','Sets the axes diameter in Angstroms. ','*2','(decimal)','')
newCmd('','','*v-10;','Sets the axes style to a thin dotted line.','*3','DOTTED','')
newCmd('','','*v-10;','Sets the axes diameter in pixels (1 to 19).','*4','(integer)','')
newCmd('','','*v-10;*v-11.0;','Sets the axes to be based on the molecular coordinate {{0 0 0}}','*5','MOLECULAR','')
newCmd('','','*v-10;*v-11.0;','sets the axes to be based on the center of the bounding box','*6','UNITCELL','')
newCmd('','','*v-10;*v-11.0;','sets the axes to align with the a, b, and c axes of the unit cell','*7','WINDOW','')
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','*1','._on_off{"ON"}','')
newCmd('','','','Backbone radius can be specified in angstroms using a decimal number (1.0, 2.0, etc.)','*2','._backbone_radius','')
newCmd('.background','','disp;color','Sets color of the background. For specifications, see {#.color~}.','1|2','','')
newCmd('','','','Sets the background of the applet window.','*1','._colorRGB','')
newCmd('','','','Sets the background of the atom labels that appear with the "label" command. "NONE" results in there being no label background. Operates globally, not on selected atoms.','*3','LABELS','._color_or_none')
newCmd('','','','Sets the background 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.','*2','HOVER','._color_or_none')
newCmd('.boundbox','','*v+11.0 -- new; *v-10;set','Turns on or off a wire-frame box that contains the model, and determines the line style and line width (as a decimal number, in Angstroms) of that box.','0|1','','')
newCmd('','','*v-10;','Turns the boundbox on or off','*1','._on_off{"ON"}','')
newCmd('','','*v-10;','Sets the boundbox line diameter in Angstroms. ','*1','(decimal)','')
newCmd('','','*v-10;','Sets the boundbox style to a thin dotted line.','*1','DOTTED','')

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 (visibility)~set cartoonRockets}.','0|1','','')
newCmd('','','','','*1','._on_off{"ON"}','')
newCmd('','','','','*2','._cartoon_radius','')
newCmd('.calculate','','*v+11.0 -- new; *v-10;','Calculates specific quantities','0|1','','')
newCmd('','','','Calculates hydrogen bonds involving atoms currently selected and displays them. Same as {#.hbonds~hbonds calculate}.','*1','HBONDS','')
newCmd('','','','Calculates the solvent-accessible surface with the specified extension beyond the van der Waals radius for the preselected set of atoms. Uses the {#.set >>>~set dotsSelectedOnly} flag to exclude unwanted atoms from the calculation (solvent, for example). Parameters are similar to the {#.dots~} command. "+1.2" indicates "van der Waals radius plus 1.2 angstroms." The distance is optional and defaults to 1.2. ','*3','SURFACE','distance {1.2}')
newCmd('','','','Recalculates the secondary structure of proteins and nucleic acids. This command has no effect unless bonding 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 helixes, sheets, turns, and nucleic acid bases based on Jmol\'s implementation of {http://en.wikipedia.org/wiki/Secondary_structure~DSSP}. The next <b>cartoons on</b> command will then show a complete set of cartoons.','*2','STRUCTURE','')
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('.clipboard','','*v+11.0 -- new; *v-10;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','','')



newCmd('.color','','*v+10.2 -- adds translucent/opaque;','In general, the color command takes the following syntax:<br /><br /><b>color [object] [translucent/opaque] [color or color scheme]</b>','1|2','','')
newCmd('','','','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></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]}.','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.1.21, 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('','','','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], 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.','TEXT','[color 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 />The level of \'translucent\' cannot be controlled; it is set at 50%. Note that the implementation of \'translucent\' is not as an alpha channel. Rather, translucent objects are "screened" so that every other pixel is painted. If you put an opaque object behind a translucent object, then you will see the object in the back.But if you put a translucent object behind another translucent object, then you will not see the translucent object in the back.','TEXT','Color Inheritance','')
newCmd('','colorrasmol','','Sets the previously selected atom set to a color based on a particular color scheme. 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','._color_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 atom", CPK and NONE both revert to the default color.)','*2','._atom_object','._color_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('','','','Colors selected bonds a specific color or resets them to inherit the color of their associated atoms.','*1','BONDS','._color_or_none')
newCmd('','','','Colors disulfide bonds a specific color or resets them to inherit their color from their associated atoms.','*2','SSBONDS','._color_or_none')
newCmd('','','','Colors hydrogen bonds a specific color or resets them to inherit their color from their associated atoms.','*3','HBONDS','._color_or_none')
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; *v-10;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; *v-10;','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('.comment (#)','comment','*v+11.0 -- adds /*   */;','Comments in Jmol are preceded by a number sign, \'#\'. In Jmol 11, the pattern /* comment text  */ may also be used. [||`valign="top"><b>#</b>| Anything following \'#\' up until the end of a statement is ignored by Jmol with the following two 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.||]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; *v-10;','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+10.2 -- NEW; *v-11;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] [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('.connect','','*v+11.0 expanded capabilities; *v-10; *v-11.1;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 />connect [minDistance] [maxDistance] [source atom set] [target atom set]  [bond type] [modify/create option] ','0|2','','')
newCmd('.connect','','*v+11.1 adds radius/color options; *v-10; *v-11.0;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 />connect [minDistance] [maxDistance] [source atom set] [target atom set]  [bond type] [radius option] [color option] [modify/create option] ','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.','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. PARTIAL and HBOND are both dashed, but they have different patterns, and newly created hydrogen bonds are only thin lines.)','TEXT','[bond type]','')
newCmd('','','*v-10;*v-11.0;','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-10;*v-11.0;','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.1;','Four additional mutually exclusive options relate to what sort of connections are made. 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 (default)</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('','','*v-10;*v-11.0;','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; *v-10;','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.0 new command; *v-10;','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). 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 "~~~"</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.  See also {#.show~show data} and {#.getProperty~getProperty data}. <br /><br />Data may also be loaded into Jmol using variables. To do this, use <b>DATA "property_xxxx @x"</b> with no <b>end</b> required. The variable x should already contain a list of numbers, perhaps from using the x = data("myfile.dat") {#.functions~function}; perhaps just be creating a string of numbers: x = "2.3 3.4 5.6 7.8...". Data are assigned sequentially from the list of numbers <b>to the currently selected atom set</b>. In this way, if only a few atoms need data, only a few can be selected and assigned values. Atom selection need not be contiguous.  ','1|2','','')
newCmd('','','*v-10;','Defines a set of data in line, ending with a matching <b>end "label"</b>, where "label" is any string. Quotes are required. ','1','&quot;label&quot;','')
newCmd('','','*v-10;','Clears the data table.','1','CLEAR','')
newCmd('.define','','*v+10.2 -- important note added;*v-11.1;save','Defines the specified variable to the the atoms selected by the {#.atom expressions~atom expression}.<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('.define','','*v+11.1 -- new DYNAMIC_ prefix;*v-10.2;*v-11.0;save','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','','*v-11.1;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>depth 50</b>  removes the back 50% of the molecule. <b>depth 25</b> removes the back 25% of the molecule. Atoms appear solid; bonds appear hollow. CHIME NOTE: The slab/depth effect is equivalent to the RasMol command \'set slabmode solid\', however \'set slabmode [option]\' is not supported.','1|2','._percent_slab','')
newCmd('.depth','','*v+11.1 adds internal slabbing; *v-10; *v-11.0;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. Atoms appear solid; bonds appear hollow. Starting with Jmol 11.1, 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". In addition, a reference point must be chosen that is on the same side of the plane (for slabbing) or opposite side of the plane (for depth) that is to be displayed. The default reference point is reset to {{0 0 0}} each time a slab or depth plane is defined. CHIME NOTE: The slab/depth effect is equivalent to the RasMol command \'set slabmode solid\', however \'set slabmode [option]\' is not supported.','1|2','','')
newCmd('','','','Turns depth and slabbing (both) on and off','*1','._on_off{"ON"}','')
newCmd('','','','Sets the percent of the model depth to slab -- 0 is the rear plane; 100 is the front plane. ','*2','._percent_slab','')
newCmd('','','*v+11.1;*v-10;*v-11.0;','Sets the depth based on the specified Miller index plane and resets the reference point to {0 0 0}.','*3','hkl','{{h k l}}')
newCmd('','','*v+11.1;*v-10;*v-11.0;','Depths based on planes use the general syntax for {#.plane expressions~}.','*4','plane ','plane_expression')
newCmd('','','*v+11.1;*v-10;*v-11.0;','Sets the depth reference point. Only atoms on the same side of the plane as the reference point will be displayed. Coordinates may be fractional unit cell coordinates indicated using "/" in any one of the three positions.','*6','reference','(atom expression) or {{x y z}} or $drawObject')
newCmd('','','*v+11.1;*v-10;*v-11.0;','Resets slab to the standard slab 100, depth 0, clears any internal planes, and turns slab/depth on.','*7','reset','')
newCmd('','','*v+11.1;*v-10;*v-11.0;','Sets the current depth to be internal, so that rotation of the model preserves the current depth from a molecular perspective.','*8','set','')
newCmd('.dipole','','*v+11.0 -- NEW; *v-10;','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 esimated using 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('','','','The optional identifier such as "bond1" that can be referred to in later scripts as $bond1. These words are arbitrary but should not be any Jmol command or any word that might be construed by Jmol as a command token, such as "x", "y", "to", etc. As a rule, simply include a number with the name. The special identifier <b>BONDS</b> refers to the entire collection of bond dipoles -- those dipoled defined specifically as between two atoms. Similarly, the special identifier <b>MOLECULAR</b> 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','[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.||<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; *v-10;','The opposite of {#.hide~}. Displays atoms and associated structures (bonds, halos, stars, cartoons, etc.). <b>Display</b> is similar to {#.hide~}, {#.select~} or {#.restrict~} in its syntax. 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>.','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.','*1','._on_off{"ON"}','')
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 charge has been read and is nonzero; uses the nominal covalent bonding radius otherwise ({misc/radii.xls~radii.xls}).','*3','IONIC','')
newCmd('','','*v-10;','Draws dots at the indicated percent of the van der Waals radius for each atom (maximum value 1000%).','*4','nn%','')
newCmd('','','*v-10;','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('.draw','','*v+11.0 Jmol 11.1 adds label text for hovering; *v-10;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-10;','The optional identifier such as "line1" or "plane2" that can be referred to in later scripts as $line1 or $plane2. These words are arbitrary but should not be any Jmol command or any word that might be construed by Jmol as a command token, such as "x", "y", "to", etc. As a rule, simply include a number with the name. ','TEXT','[object id]','')
newCmd('','','*v-10;','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.1) ||<b>ARROW</b>|Draws a straight (two-point) or curve (more than two-point) arrow||<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>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||<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>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.||]','TEXT','[modifying parameters]','')
newCmd('','','*v-10;','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: <br />[||(atom expression)|an atom expression, in parentheses.||{{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, precedd by "$". ||]','TEXT','[positions]','')
newCmd('','','*v-10;','Deletes all draw objects','*3','DELETE','')
newCmd('','','*v-10;*v-11.0;','Lists all draw objects.','*4','LIST','')
newCmd('.echo','','*v-11;label','Echos a string of text to the window at the location predefined by the "set echo" command as well as to the Java Console. "echo" by itself deletes the text at the selected position (top, middle, or bottom).','1','(string)','')
newCmd('.echo','','*v+11.0 -- adds broad customizability;*v-10;*v-11.1;label','Echos a string of text to the window (top, middle, bottom, or user-defined) at the location predefined by the {#.set (highlights)~set echo} command as well as to the Java console, the Jmol {#.console~}, and the {#.set (callback)~MessageCallback} function, if defined (applet only). <b>echo</b> by itself deletes the text at the previously selected position. Additional options include setting the {#.font~}, {#.color~color}, {#.background~background}, x- and y-{#.set echo~offsets}, and the text {#.set echo~alignment} (left, center, or right), and using &#124; (vertical bar) as a line separator for multiline echo text. Default settings for these characteristics (other than the x and y offsets) can be set by first issuing <b>set echo none</b>, so that no real echo is set, but in general the default setting is simply the most recently used settings.','1','(string)','')
newCmd('.echo','','*v+11.1 -- adds variable options;*v-10;*v-11.0;label;ifset','Echos a string of text to the window (top, middle, bottom, or user-defined) at the location predefined by the {#.set (highlights)~set echo} command as well as to the Java console, the Jmol {#.console~}, and the {#.set (callback)~MessageCallback} function, if defined (applet only). <b>echo</b> by itself deletes the text at the previously selected position. Additional options include setting the {#.font~}, {#.color~color}, {#.background~background}, x- and y-{#.set echo~offsets}, and the text {#.set echo~alignment} (left, center, or right), and using &#124; (vertical bar) as a line separator for multiline echo text. Default settings for these characteristics (other than the x and y offsets) can be set by first issuing <b>set echo none</b>, so that no real echo is set, but in general the default setting is simply the most recently used settings. See also the {#.message~} command for variable-displaying capabilities starting with Jmol 11.1.6.','1','(string)','')
newCmd('.exit','','*v+11.0 -- new ;*v-10;pause','When the {#.set (misc)~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 and information in labels and other text-bearing elements.','5','._object_with_text','._fontsize','._fontface{"SansSerif"}','._fontstyle{"Plain"}')
newCmd('.fractional coordinates','','*v+11.0 NEW; *v-10;','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.0 -- greatly expanded animation frame control; *v-10; *v-11.1;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.','1|1','','')
newCmd('.frame','models','*v+11.1 -- expanded multifile capability; *v-10; *v-11.0;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.','1|1','','')
newCmd('','','*v-10;','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-10; *v-11.0;','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-10; *v-11.0;','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-10;','Overlay all frames of the current frame range set.','*15','0','')
newCmd('','','*v-10;','Resets the frame range to all models and overlays them.','*20','ALL','')
newCmd('','','*v-10;','Go to the last frame in the frame range set.','*25','LAST','')
newCmd('','','*v-10;','Go to next frame in the frame range set.','*30','NEXT','')
newCmd('','','*v-10;','Pause animation at the current frame.','*40','PAUSE','')
newCmd('','','*v-10;','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-10;','Start playing at the specified frame number (current frame if number is omitted), reversing the direction.','*60','PLAYREV','(starting frame)')
newCmd('','','*v-10;','Go to previous frame in the current frame set.','*70','PREVIOUS','')
newCmd('','','*v-10;','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-10;','Resume playing from the current frame. (Same as PLAY.)','*90','RESUME','')
newCmd('','','*v-10;','Return to the first frame in the frame range set. ','*91','REWIND','')

newCmd('.frame','models','*v-11;anim','Sets the current animation frame (1 being the first).  Same as the {#.model~} command.','1|1','','')
newCmd('','','*v-11;','Go to a specific frame.','*1','(integer >= 1)','')
newCmd('','','*v-11;','Overlay all frames.','*2','0','')
newCmd('','','*v-11;','Go to next frame','*3','NEXT','')
newCmd('','','*v-11;','Go to previous frame.','*4','-1','')



newCmd('.frank','frank','*v+11.0; *v-10;','Determines whether or not "Jmol" is indicated in the bottom right corner of the window.','0|1','','')
newCmd('','','*v-10;','','1','._on_off','')
newCmd('.functions','','*v+11.1 -- adds variable function options;*v-10;*v-11.0;','The new, more mathematical, syntax of Jmol 11.1 includes a number of mathematical functions. They are listed here. Two types of functions are allowed. The first simply operate on their given parameters. For example, <b>x = load("myfile.dat")</b> simply 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('','','*v-10;*v-11.0;','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 = 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 = connect(...)</b>|See {#.atomexpressions~atom expressions}.||<b>x = data({{atomset}},"type")</b>|creates a data set 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 = 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 = load("filename")</b>| load the data from the specified file into variable x.||<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.||]','TEXT','x = f(y) functions','')
newCmd('','','*v-10;*v-11.0;','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.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.color</b>|The average color of the atoms in the set y expressed as a {{r,g,b}} coordinate in color space. ||<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, or the last of a list||<b>x = y.min</b>|A special selector for the time with the minimum value or the first on a list||<b>x = y.size</b>|The nominal "size" of y, which depends upon its data type -- number of characters in a string, number of lines in a set of lines. Negative numbers indicate boolean (-1), integer (-2), float (-4), point (-8), or plane (-16).||<b>x = y.xyz</b>|the average coordinate of the atoms in y.||]','TEXT','item-selector .xxx functions','')
newCmd('','','*v-10;*v-11.0;','[||<b>x = y.distance({{atoms}})</b>|the average distance from elements of y to the CENTER of {{atoms}}||<b>x = y.label("format")</b>|A list of labels for atoms or bonds using format strings. (TO DO)||<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.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.join("s")</b>|joins lines of y using the character or string "s"||<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 = 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.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.sub(data2)</b>|See .add()||<b>x = data1.mul(data2)</b>|See .add()||<b>x = data1.div(data2)</b>|See .add(). Division by 0 results in the value "NaN", meaning "not-a-number".||]','TEXT','item-selector .xxx(y) functions','')




newCmd('.geoSurface','','*v+11.0 -- provides a quickly rendered crude geodesic molecular/solvent-accessible surface.;*v-10;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}.','*1','._on_off{"ON"}','')
newCmd('','','*v-10;','Draws a geodesic surface at the van der Waals radius for the selected atoms. See {misc/radii.xls~radii.xls}.','*2','VANDERWAALS','')
newCmd('','','*v-10;','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-10;','Draws a geodesic surface at the indicated percent of the van der Waals radius for each atom (maximum value 1000%).','*4','(integer)','')
newCmd('','','*v-10;','Draws a geodesic surface at the indicated radius in Angstroms for each atom (maximum value 10.0 Angstroms).','*5','(decimal)','')
newCmd('','','*v-10;','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; *v-10;','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>. 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.','0|1','','')
newCmd('','','*v-10;','JSON structure describing the current state of animation. See {misc/animationInfo.txt~animationInfo.txt}','*10','animationInfo','')
newCmd('','','*v-10;','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-10;','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-10;','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, charges, and/or vibrational modes. See {misc/auxiliaryInfo.txt~auxiliaryInfo.txt}','*14','auxiliaryInfo','')
newCmd('','','*v-10;','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-10;','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-10;','A single JSON array giving the current center coordinate. See {misc/centerInfo.txt~centerInfo.txt}','*17','centerInfo','')
newCmd('','','*v-10;','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-10;','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-10;','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-10;','The contents of the currently loaded file.','*21','fileContents','')
newCmd('','','*v-10;','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-10;','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-10;','The file name of the currently loaded file.','*24','fileName','')
newCmd('','','','JSON structure describing the current state of one or more StatusManager properties.','*25','jmolStatus','statusNameList')
newCmd('','','','','*26','jmolViewer','')
newCmd('','','*v-10;','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}','*27','measurementInfo','')
newCmd('','','','','*28','messageQueue','')
newCmd('','','*v-10;','JSON structure describing each model in the loaded model collection. See {misc/modelInfo.txt~modelInfo.txt}','*29','modelInfo','')
newCmd('','','*v-10;','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}','*30','moleculeInfo','(atom expression)')
newCmd('','','*v-10;','JSON structure describing the moveTo command required to return to the currently displayed orientation. See {misc/orientationInfo.txt~orientationInfo.txt}','*31','orientationInfo','')
newCmd('','','*v-10;','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}','*32','polymerInfo','(atom expression)')
newCmd('','','*v-10;','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}','*33','shapeInfo','')
newCmd('','','','','*34','stateInfo','(atom expression)')
newCmd('','','*v-10;','JSON structure representing the current transformation matrix describinng the current orientation of the model. See {misc/transformInfo.txt~transformInfo.txt}','*35','transformInfo','')
newCmd('.goto','','*v+11.1 -- new;*v-10;*v-11.0;pause','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.','1','messageText','')
newCmd('.halos','','*v+11.0 -- new; *v-10;','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. ','0|1','','')
newCmd('','','*v-10;','Turn halos on or off.','*1','._on_off{"ON"}','')
newCmd('','','*v-10;','Sets the outer radius of the selected halos in Angstroms.','*2','._radius_angstroms','')
newCmd('','','*v-10;','Sets the outer radius of the halo as a percent of the van der Waals radius for a given atom.','*3','nn%','')



newCmd('.help','','*v+11.0 -- new; *v-10;','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; *v-10;','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; *v-10;','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;*v-10.2;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. If a number is given, the label will appear after that number of milliseconds of hovering. If a string is given, it is used as the label. 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','','')
newCmd('','','*v-10;*v-11.0;','Turns on pop-up labels and sets the number of milliseconds required before the label appears.','1','(integer)','')
newCmd('','','*v-11;','Turns on and off pop-up labels that appear when the user "hovers" the mouse over the atom. If a string is given, it is used as the label. See also  {#.label~}.','1','._on_off_string','')
newCmd('.if_else_endif','','*v+11.1 -- expanded IF capability;*v-10;*v-11.0;ifset','You can have a minimal amount of control in script execution using <b>if (test);</b>, <b>else;</b>, and <b>endif;</b>. (Each of these must be a command of its own, with semicolon or line break.) <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, including: autobond, axesOrientationRasmol, chainCaseSensitive, colorRasmol, debugScript, disablePopupMenu, greyscaleRendering, hideNameInPopup, hideNotSelected, labelsFront, labelsGroup, perspectiveDepth, showAxes, showBoundBox, showHydrogens, showMeasurements, showMultipleBonds, showSelections, showUnitcell, testFlag1, testFlag2, testFlag3, testFlag4, zeroBasedXyzRasmol, among others. Numeric comparisons can be involved: <b>if a > b;...</b> or <b>if minBondDistance > 0.3;...</b>.In addition, a special notation involving braces allows you to obtain the matching number of atoms from an atom expression: <b>if {{selected}} > 3;...</b>  or <b>if {{*/1 and visible}};...</b> or <b>if {{_N}} > {{_O}};... <b>if</b> commands can be nested up to 10 deep. ','0|1','','')
newCmd('.if_else_endif','','*v+11.0 -- new; *v-10; *v-11.1;ifset','You can have a minimal amount of control in script execution using <b>if (test);</b>, <b>else;</b>, and <b>endif;</b>. (Each of these must be a command of its own, with semicolon or line break.) <b>if</b> takes a single parameter in parentheses, (test), or preceded by NOT, as in "if (NOT test);". Tests include a wide variety of flags that can be set using the {#.set~set} command. These include: autobond, axesOrientationRasmol, chainCaseSensitive, colorRasmol, debugScript, disablePopupMenu, frank, greyscaleRendering, hideNameInPopup, hideNotSelected, labelsFront, labelsGroup, perspectiveDepth, showAxes, showBoundBox, showHydrogens, showMeasurements, showMultipleBonds, showSelections, showUnitcell, testFlag1, testFlag2, testFlag3, testFlag4, zeroBasedXyzRasmol. <b>if</b>s can be nested up to 10 deep. (More upon request.)','0|1','','')
newCmd('.initialize','','*v+11.1 -- new; *v-10; *v-11.0;load','Initializes variables and settings to original Jmol values; does not affect orientation and does not {#.zap~} the model.','0|1','','')
newCmd('.invertSelected','','*v+11.1 -- new; *v-10;*v-11.0;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.0;*v-10;','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.0;*v-10;','inverts the selected atoms across a plane defined using any valid {#.plane expression}. ','*2','PLANE','plane_express')
newCmd('','','*v-11.0;*v-10;','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.0 -- greatly expanded to include orbitals and a wide variety of isosurface types, default directory, and applet proxy server; *v-10;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 [object id] [construction/mapping parameters] [surface object] [additional mapping-only parameters] MAP [color mapping dataset] [display options] </b> <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.1.18) 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.1.18, 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('.isosurface','','*v+10.2 -- NEW; *v-11;iso','<img style="clear:right" src="img/isosurface.gif" alt="" />Jmol 10.2 can be used for limited viewing of CUBE files. This functionality was greatly expanded in version 11.0.','0|1|2','','')
newCmd('','','*v-10;','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. Priort to Jmol 11.1.28, leaving off the ID when creating an isosurface created a new isosurface; starting with Jmol 11.1.28, leaving off the ID when creating an isosurface <i>replaces</i> the current isosurface with the new one.','TEXT','[object id]','')
newCmd('','','*v-10;','Construction/mapping parameters include:<br />[||<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>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>ANISOTROPY {{a b c}}</b>|Sets the anisotropic distortion of an object in the x, y, and z directions.||<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>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~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>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 ABSOLUTE <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. ||<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.||<b>CONTOUR -n</b>|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>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>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>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>MODEL n</b>|Sets the identity of the model with which this isosurface is to be associated. (Defaults to the currently displayed model.)||<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>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>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). In the case of molecular orbitals, scales the volume around the orbital.||<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. Applies to molecular orbitals constructed from quantum mechanical basis sets as well as to solvent-related surfaces.||<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>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]','')
newCmd('','','*v-10;','There are several surface object types. These include: <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 COLOR keyword followed by two color names or values.  ||<b>CAVITY<br />cr er</b>|(New in Jmol 11.1.24) 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.||<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 >FILE "filename" n</b >|Depict the n-th isosurface from the specified CUBE or {misc/JVXL-format.pdf~JVXL} file. Empty quotes indicate that the loaded file already has CUBE or JVXL 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 >|(applet only) The FUNCTIONXY keyword specifies that the Z-value at a given X,Y coordinate will be determined by a callback to a JavaScript function on the page containing the applet. In this case functionName(app, int_x, int_y) will be called. The parameters mirror the parameters in the header of a CUBE file. Units of Bohr are assumed unless the keyword ANGSTROMS precedes this parameter. 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.||<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 >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>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 >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>MOLECULAR</b>|Same as <b>SOLVENT 1.4</b>||<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 >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).||<b >SPHERE radius</b >|Draws a sphere of the given radius in Angstroms.||]','TEXT','[surface object]','')
newCmd('','','*v-10;','If any parameters spefically relate to the  apping of the surface, not the generation of it, then they can come after the specification of the surface object. Keywords such as "COLOR ABSOLUTE", DEBUG, FIXED, MODELBASED, MAP, REVERSECOLOR, and SELECT (when it relates to the color mapping) fall into this category. ','TEXT','[additional mapping-only parameters]','')
newCmd('','','*v-10;','Except for SPHERE, ELLIPSOID, LOBE, and LCAOCARTOON, which have no CUBE-file equivalent, and FUNCTIONXY, which has not been developed yet in this regard, all the other surface types 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. <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 charge or temperature or radius ||<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-10;','Display options include ON/OFF, DOTS/NODOTS, MESH/NOMESH, FILL/NOFILL, FRONTONLY/NOTFRONTONLY*, TRIANGLES/NOTRIANGLES* and OPAQUE/TRANSLUCENT n. These may be given along with the definition of the surface or in a later command having just these keywords and the identifier (or "ALL") of the desired isosurface. Several translucent options are available; see the {#.color} command. *The indicated options are available starting with Jmol 11.1.28.','TEXT','[display options] ','')
newCmd('','','*v-10;','Deletes all isosurfaces. ','*3','DELETE','')
newCmd('','','*v-10;*v-11.0;','Lists all isosurfaces','*4','LIST','')
newCmd('','','*v-11;','<img style="clear:right" src="img/isosurface.gif" alt="" />Jmol can generate isosurfaces from scalar field data in files of the gaussian .cube format, which contains both atom positions and scalar data. The {#.load~} command reads only the atom position data from the .cube file.<br /><br />A separate isosurface command is used to read the scalar field data and construct the isosurface. This surface 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 is 0.02. Note that positive and negative surfaces are created separately. You can give them distinct names and control their display properties independently. <br /><br />Parameters to the isosurface command control the cutoff value and the display characteristics of the surface. Any number of display characteristics (such as "DOTS MESH NOFILL") may be included in a single <b>isosurface</b> command. By reading the same .cube file more than once with different parameters, or by reading different .cube files, you can construct different isosurfaces with different shapes and sizes. By naming these individual surfaces with unique identifiers you can control display settings and color for each of the surfaces independently. <br /><br />The isosurface command is similar to the {#.pmesh~} command in terms of options. The isosurface command takes the overall format:<br /><br />isosurface surfaceID cutoff [option] "filename.cube".<br /><br />Starting in version 10.00.42, you can map a function (based on values in another .cube file) onto an isosurface. This is done by adding to the <b>isosurface</b> command the keywords COLOR ABSOLUTE followed by the negative cutoff, the positive cutoff, and the name of another .cube file. Surface are then colored using a red-->orange-->yellow-->green-->blue rainbow, where red represents minimum values and blue represents maximum values. If absolute cutoff values are not provided, then Jmol will calculate the range based upon the actual data values calculated for the surface points.<br /><br />(The filename must be in double quotes, but the extension \'.cube\' is not necessary.) The .cube file may be gzip-compressed. <b>isosurfaceID</b> is any name that you want to use later to refer to this particular surface.','0|1|2','','')
newCmd('','','*v-11;','Selects a specific isosurface (or all isosurfaces) for subsequent color commands. (Does NOT select a specific isosurface for ISOSURFACE DELETE.)','*1','isosurfaceID{all isosurfaces}','')
newCmd('','','*v-11;','Turn on/off the specified isosurface.','*2','isosurfaceID{all}','._on_off{"ON"}')
newCmd('','','*v-11;','Delete the specified isosurface.','*3','isosurfaceID{all}','DELETE')
newCmd('','','*v-11;','Loads isosurface file "xyz.cub.gz", optionally assigned id isosurfaceID and ','*4','isosurfaceID(optional)','cutoff{0.02}','.&quot;xyz.cub.gz&quot;','')
newCmd('','','*v-11;','Controls whether or not dots are shown at the isosurface points.','*7','isosurfaceID{all}','DOTS or NODOTS{NODOTS}')
newCmd('','','*v-11;','Controls whether the isosurface appears solid (the default).','*80','isosurfaceID{all}','FILL or NOFILL{FILL}')
newCmd('','','*v-11;','Shows the triangles that comprise the surface (mostly for testing purposes).','*87','isosurfaceID{all}','TRIANGLES or NOTRIANGLES')
newCmd('','','*v-11;','Draws only the front part of the isosurface; partucularly useful with MESH NOFILL','*81','isosurfaceID{all}','FRONTONLY or NOTFRONTONLY')
newCmd('','','*v-11;','Controls whether lines between the isosurface points are drawn, given the appearance of a mesh.','*84','isosurfaceID{all}','MESH or NOMESH{NOMESH}')
newCmd('','','*v-11;','Maps the color values from one .cube file onto the cutoff values of another .cube file based on the range of values given.','*5','isosurfaceID{all}','cutoff{0.02}','.&quot;xyz.cub.gz&quot;','COLOR ABSOLUTE -cutoff +cutoff .&quot;xyz-map.cub.gz&quot;')
newCmd('','','*v-11;','Maps the color values from one .cube file onto the cutoff values of another .cube file using the entire range of values given in the map file.','*6','isosurfaceID{all}','cutoff{0.02}','.&quot;xyz.cub.gz&quot;','COLOR .&quot;xyz-map.cub.gz&quot;')
newCmd('.label','','*v-11;label','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}, and x- and y-{#.set (highlights)~offsets}.','1|2','','')
newCmd('.label','','*v-10;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+10.2 -- adds several new capabilities; *v-11;','<br />Special characters include: <br />[||%a|atom name||%b|protein B-factor||%c| protein chain|| %e|element symbol||%C|formal charge||%i |sequential number||%I|bonding radius||%L|polymer length||%m|single-letter residue code (amino acids only)||%M|model ID||%n |3-letter residue code||%N|molecule number||%P|partial charge||%q|occupancy||%r|PDB residue number||%U|full PDB designator, same as [%n]%r:%c %a  #%i||%V|van der Waal radius||%x %y %z|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.0 -- several new labeling options; *v-10;','<br />Special characters include: <br />[||%a|atom name||%A|PDB alternate location identifier||%b|protein B-factor||%c|protein chain||%C|formal charge||%e|element symbol||%i|sequential number||%I|ionic radius||%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|partial charge||%q|occupancy||%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|van der Waal radius||%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('.lcaoCartoon','','*v+11.0 -- NEW; *v-10;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.','1|2','','')
newCmd('','','*v-10;','Turn on/off the selected LCAO cartoon.','*1','._on_off{"ON"}','')
newCmd('','','*v-10;','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 />[||"s"|standard spherical s orbital at any center.||"px" "py" "pz"|Standard p orbitals at an sp or sp2 sigma-hybridized center.||"sp2"|the "lone pair" position at a terminal sp sigma-hybridized center or bent sp2 sigma-hybridized center.||"sp2a" "sp2b" "sp2c"|the three sigma bonding/nonbonding positions around an sp2 sigma-hybridized center.||"sp3"|the "lone pair" position at an AX3 position such as that in ammonia, NH3, with three bonds in sp3 sigma hybridization.||"sp3a" "sp3b"|the two sp3 sigma-hybridized lone pair positions at an AX2 bent sp2 sigma-hybridized center, such as that in H2O.||"sp3a" "sp3b" "sp3c" "sp3d"|the four sp3 sigma-hybridized positions at any sp3 sigma-hybridized center.||]','*2','CREATE','&quot;[type]&quot;')
newCmd('','','*v-10;','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-10;','Colors the orbital one specific color','*4','COLOR','._colorRGB')
newCmd('','','*v-10;','If this is a p orbital, colors the two lobes different colors.','*5','COLOR','._colorRGB','._colorRGB','')
newCmd('','','*v-10;','Delete the selected LCAO cartoon.','*62','DELETE','')
newCmd('','','*v-10;*v-11.0;','Lists all LCAO cartoons','*65','LIST','')
newCmd('','','*v-10;','Sets the scale of the LCAO cartoon.','*7','SCALE','(decimal)')
newCmd('','','*v-10;','For the already selected atom set, selects what type of orbital for the color/on/off/delete operation.','*8','SELECT','&quot;[type]&quot;')

newCmd('.load','','*v-11;load','Loads the specified file or URL. ','1|2','','')
newCmd('.load','','*v+11.0 support for multiple file loading and setting a default load script, a default directory, a modified space group, modified unit cell, and an applet proxy server; *v-10;load','Loads the specified file or URL. A wide variety of file types are supported. All resolution of file type is based on internal file cues, not the filename or file extension. Files may be Gzipped. 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}.  Version 11.0 introduces the capability to load multiple files as well as only one selected model from a multi-model file. In addition, for crystallographic systems, the load command can take a parameter that specifies the number of unit cells to generate. 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"}. Supported file types include: <br/><br/>[||ADF|Amsterdam Density Functional files||Agl|ArgusLab XML files||C3XML|Chem3D XML format files||CIF|Crystallographic Information File||mmCIF|Macromolecular Crystallographic Information File||CML|Chemical Markup Language file||CSF|Fujitsu CAChe (scigress) chemical structure files (Version 11.1.28 adds support for ab initio, semiemperical, gaussian, and density functional molecular orbitals||CTFile|Elsevier Molecular Design chemical table file||GAMESS|General Atomic and Molecular Electronic Structure System output file||Gaussian|Gaussian, Inc. output file||HIN|HyperChem native file||Jaguar|National Center for Supercomputing Applications Jaguar output file||MM1GP|Ghemical molecular mechanics file||MOL, MOL2|Elsevier Molecular Design structure files||MOLPRO|Molpro XML files||MOPOUT|MOPAC (public domain) output file||GRAPHF|MOPAC2007 GRAPHF output files, (for molecular orbitals)||NWCHEM|Pacific Northwest National Laboratory NWChem  output file||odedata|Odyssey data file||PDB|Research Collaboratory for Structural Bioinformatics Protein Data Bank file||QOUT|Q-Chem, Inc. output file||SHELX|SHELX output file||SMOL|Wavefunction, Inc. Spartan data file||xodedata|Odyssey XML data file||XYZ|Minnesota Supercomputer Institute XMol file format||XYZ+vib|XYZ format files with added vibrational vector information (source unknown)||XYZ-FAH|Folding@home XYZ file||]','1|2','','')
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 only necessary if the filename contains a space or left-brace ({{) character. Files containing fractional coordinates are displayed with their unit cell visible.','*2','&quot;filename&quot;','')
newCmd('','','','The format parameter is ignored. This form is allowed for backward compatibility with RasMol/Chime and is not recommended. Quotes are optional.','*3','._ignored_filetype','&quot;filename&quot;')
newCmd('','','*v-10; *v-11.1;','For multiple file loading, all parameters, including the first, which is just a name for the fileset, must appear in quotes. Each model is loaded into a new frame, starting with frame number 1001, and increasing by 1000 for each file -- 1001, 2001, 3001, etc. Within these frames, if one or more of the files has multiple models, such as due to computational steps or vibrational modes, those frames increment by one. So after loading two files, if the first file has three models and the second has two, then the frames will be 1001, 1002, 1003, 2001, and 2002. These are the numbers to be used in the {#.frame~} command or in selecting atoms in specific frames, <b>select (oxygen) and */1001</b>, for instance. See also {#.set(misc)~set backgroundModel}.','*4','&quot;fileset&quot;','&quot;filename1&quot;','&quot;filename2&quot;','')
newCmd('','','*v-10; *v-11.0;','(Jmol 11.1.22) Appends a file or a set of files to the current model set without replacing the current model. By default, a new frame is created for each model added. If <b> appendNew = false</b> has been set and only one model is in the appended file, then the file model is added to the currently displayed model, creating no additionl frames. ','*4','APPEND','&quot;filename&quot;')
newCmd('','','*v-10; *v-11.0;','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.)','*4','FILES','&quot;filename1&quot;','&quot;filename2&quot;','')
newCmd('','','*v-10;','Loads only the specified model into Jmol, skipping the others. Quotes are required. (Not currently supported by all file types.)','*5','&quot;filename&quot;','(integer)')
newCmd('','','*v-10;','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). ','*61','&quot;filename&quot;','{{i j k}}')
newCmd('','','*v-10;','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. For example, <b>load "myfile.cif" 15 {{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/}}. Quotes are not required. ','*62','&quot;filename&quot;','{{ijk i\'j\'k\' 1}}')
newCmd('','','*v-10;','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}. Quotes are not required. ','*63','&quot;filename&quot;','{{ijk i\'j\'k\' 0}}')
newCmd('','','*v-10;','Reloads the current file with a specified block of unit cells. Quotes are required. ','*64','&quot;&quot;','{{i j k}}')
newCmd('','','*v-10;','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\'\' or P 32 2\\", not P 32 2".','*71','&quot;filename&quot;','{{i j k}}','spacegroup','&quot;name&quot;')
newCmd('','','*v-10;','Using <b>spacegroup "ignoreOperators"</b> you can have Jmol 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).','*72','&quot;filename&quot;','{{i j k}}','spacegroup','&quot;ignoreOperators&quot;')
newCmd('','','*v-10;','Using <b>spacegroup</b> followed by a quoted semicolor-separated list of Jones Faithful operators, you can have Jmol ignore any explict file-based operators and instead create the symmetry based on the list provided.','*73','&quot;filename&quot;','{{i j k}}','spacegroup','&quot;x,y,z;x+1/2,y,z&quot;')
newCmd('','','*v-10;','Loads a block of unit cells between the origin, {{0 0 0}} and the specified unit cell system. In addition, the unit cell is supplied (in the case of files with Cartesian coordinates) or replaced (in the case of files with fractional coordinates. If both <b>spacegroup</b> and <b>unitcell</b> are specified, they should be in order: spacegroup ... unitcell .... When both spacegroup and unitcell are provided, Jmol can display molecules in standard Cartesian coordinate files (XYZ, MOL, PDB) as packed unit cells. Applicable to XYZ, MOL, PDB, CIF, CML, and selected other file types. ','*9','&quot;filename&quot;','{{i j k}}','unitcell','{{a b c alpha beta gamma}}')
newCmd('.loop','','*v+11.0 -- changes how scripts are interrupted; *v-10;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.1, see also {#.goto~}.','1','.on','')
newCmd('.loop','','*v-11;pause','Causes the script to restart at the beginning, with an optional time delay.','1','.on','')
newCmd('','','','','1','._time_delay','')
newCmd('.measure','','*v-11;',' Renders a measurement between the specified atoms. See also {#.set measurement~}. A series of two to four atom numbers are given, and the appropriate measure (distance, angle, or dihedral angle) is then displayed. ','0|1|2|3|4','','')
newCmd('.measure','','*v+11.0 -- adds several new capabilities; *v-10;',' 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-10;','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.','*2','(integer)','(integer)','&quot;labelFormat&quot;','')
newCmd('','','','Three atoms specify an angle measurement. The format is optional.','*3','(integer)','(integer)','(integer)','&quot;labelFormat&quot;')
newCmd('','','','Four atoms specify a dihedral angle measurement. The format is optional.','*4','(integer)','(integer)','(integer)','(integer)  &quot;labelFormat&quot;')
newCmd('','','*v-10;','Show the distance, angle, or dihedral angle formed by the FIRST atom in each atom expression.','*5','(two to four atom expressions, each in parentheses)','"labelFormat"')
newCmd('','','*v-10;','Show the distance, angle, or dihedral angle formed by ALL atoms in the first expression with ALL atoms of each additional atom expression.','*6','ALL','(two to four atom expressions, each in parentheses)','&quot;labelFormat&quot;','')
newCmd('','','*v-10;','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.','*7','ALLCONNECTED','(two to four atom expressions, each in parentheses)','&quot;labelFormat&quot;','')
newCmd('','','*v-10;','Deletes all measurements.','*81','DELETE','')
newCmd('','','*v-10;','Deletes a specific measurement, in order of their creation, starting with 1.','*82','DELETE','(integer)')
newCmd('','','*v-10;','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-10;','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')





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('','','','','*1','._on_off{"ON"}','')
newCmd('','','','','*2','._mesh_ribbon_radius','')
newCmd('.message','','*v+11.0 -- NEW; *v-10;ifset','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.1.6, 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('.mo','','*v+11.0 -- NEW, 11.1 adds HOMO and LUMO; *v-10;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-10;','Turn on/off the molecular orbital.','*10','._on_off{"ON"}','')
newCmd('','','*v-10;','Selects the specific molecular orbital to dispay, starting with the number 1.','*31','(integer)','')
newCmd('','','*v-10;','Colors the orbital one specific color','*40','COLOR','._colorRGB')
newCmd('','','*v-10;','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-10;','Delete the molecular orbital.','*60','DELETE','')
newCmd('','','*v-10;','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-10;*v-11.0;','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-10;*v-11.0;','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-10;','Displays the next MO in the file using the same characteristics as the currently displayed one.','*65','NEXT','')
newCmd('','','*v-10;','Goes back to full orbital display rather than a planar slice.','*68','NOPLANE','')
newCmd('','','*v-10;','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-10;','Displays the previous MO in the file using the same characteristics as the currently displayed one.','*85','PREVIOUS','','._colorRGB','')
newCmd('','','*v-10;','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-10;','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;anim','Same as the {#frame~} command. See also {#.set(misc)~set backgroundModel}. ','1|1','','')
newCmd('.model','models','*v+11.0 -- greatly expanded features; *v-10;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;anim','<img src="img/moveto.gif"  alt="" />The moveto command rotates the molecule to a predefined orientation. The first 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. The next parameter is a coordinated {{x, y, z}} defining the axis relative to the default orientation about which the molecule should be rotated. The next parameter defines the counterclockwise (right-hand) rotation in degrees about this axis. "moveto 0 {{0 0 0}} 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). ','1','._floattime','._coordxyz','._cwrotation','._percent_zoom')
newCmd('.moveto','','*v+11.1 -- adds navigation capability;*v-10;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. In conjunction with "show orientation" this command allows reading and restoring specific user-specified orientations.','1|2','','')
newCmd('','','*v-10;','A simple use of moveTo just has six optional directions. ','*3','timeSeconds','FRONT|BACK|LEFT|RIGHT|TOP|BOTTOM')
newCmd('','','*v-10;*v-11.1;','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 next parameter defines the counterclockwise (right-hand) rotation in degrees about this axis. "moveto 0 {{0 0 0}} 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). The final parameter is an optional center coordinate (or atom expression in parentheses) to move to. In conjunction with "show orientation" this command allows reading and restoring specific user-specified orientations.','*4','._floattime','._coordxyz','degrees','._percent_zoom;+._dtransx;+._dtransy;+._coordxyz')
newCmd('','','*v-10;*v-11.0;','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 0}} 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('.navigate','','*v+11.1 -- new;*v-10;*v-11.0;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('','','','Follows a Hermite path defined by a set of nodes expressed in terms of any combination of atom sets, draw objects, or coordinates.','*34','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-10;pause','Pauses script execution until {#.resume~}, {#.quit~}, or {#.exit~} is issued.','1','','')


newCmd('.plane expressions','','*v+11.1 -- broader general use of planes;*v-10;;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(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(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+10.2 -- new;*v-11;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 meshID [option] "filename"<br /><br /><b>meshID</b> is any name that you want to use later to refer to the mesh. The command also sets the \'current\' mesh.<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.0 adds default directory and applet proxy server;*v-10;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 meshID [option] "filename"<br /><br /><b>meshID</b> is any name that you want to use later to refer to the mesh. The command also sets the \'current\' mesh.<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('','','','Selects a specific pmesh (or all pmeshes) for subsequent color commands.','*1','pmeshID{all pmeshes}','')
newCmd('','','','Turn on/off the specified mesh.','*2','pmeshID{all pmeshes}','._on_off{"ON"}')
newCmd('','','','Delete the specified mesh.','*3','pmeshID{all pmeshes}','DELETE')
newCmd('','','*v-11;','Loads the specified pmesh file, optionally assigned id pmeshID.','*4','pmeshID(optional)','.&quot;filename&quot;')
newCmd('','','*v-10;','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','pmeshID(optional)','.&quot;filename&quot;')
newCmd('','','','Controls whether or not dots are shown at the polygon vertices.','*5','pmeshID{all pmeshes}','DOTS or NODOTS{NODOTS}','.&quot;xyz.pmesh.gz&quot;{current}','')
newCmd('','','','Controls whether the polygons are filled (the default).','*62','pmeshID{all pmeshes}','FILL or NOFILL{FILL}','.&quot;xyz.pmesh.gz&quot;{current}','')
newCmd('','','','Controls whether the edges of the polygons are drawn.','*7','pmeshID{all pmeshes}','MESH or NOMESH{NOMESH}','.&quot;xyz.pmesh.gz&quot;{current}','')
newCmd('','','*v-10;*v-11.0;','Lists all pmesh objects','*65','LIST','')

newCmd('.polyhedra','polyhedra1,polyhedra2','*v+11.0 -- expanded capability, new algorithm ;*v-10;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('.polyhedra','polyhedra1,polyhedra2','*v+10.2 -- greatly expanded;*v-11;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('.quit','','*v+11.0 -- new ;*v-10;pause','When the {#.set (misc)~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('.refresh','','reset',' Forces a screen repaint during script execution. (Unnecessary, and thus deprecated.)','0','','')
newCmd('.reset','','*v+11.1 -- adds variable reset; *v-10;*v-11.0;reset','Resets all model orientation or the value of a variable','0|1','','')
newCmd('','','*v-10;*v-11.0;','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-10;*v-11.0;','Resets the variable with the given name to the "unset" state.','*2','variableName','')
newCmd('.reset','','*v-11.1;reset','Resets molecule to its original position: zoom 100; center; translate x 0; translate y 0;','0','','')
newCmd('.restore','','*v+11.0 -- NEW; *v-10;save','Restores information saved using the {#.save~} command.','0|1','','')
newCmd('','','*v-10;','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-10;','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-10;','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-10;','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','','select','Selects the atoms identified by the {#.atom expressions~atom expression} and hides all atoms and bonds which are outside the selection set. For wireframe and backbone, <b>restrict</b> unconditionally follows {#.set (bond styles)~set bondmode OR}, ignoring the current bondmode setting, and hiding any bonds or backbone rods involving any atoms in the restricted set.','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('.resume','','*v+11.0 -- NEW; *v-10;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('','','','','*1','._on_off{"ON"}','')
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;disp','Creates a crude "rocket" cartoon.  See also {#.cartoon~} in association with {#.set (visibility)~set cartoonRockets} for a more precise cartoon with rockets.','0|1','','')
newCmd('.rocket','structure','*v+11.0 -- adds cartoonRocket alternative;*v-10;disp','Creates a crude "rocket" cartoon.  See also {#.cartoon~} in association with {#.set (visibility)~set cartoonRockets} for a more precise cartoon with rockets.','0|1','','')
newCmd('','','','','*1','._on_off{"ON"}','')
newCmd('','','','','*2','._rocket_radius','')

newCmd('.rotate','','*v-11;reset;spin','Rotates the model the specified angle about the specified axis.','0|1','','')
newCmd('','','*v-11;','By itself, the <b>rotate</b> command rotates 10 degrees around the y (vertical) axis in a counterclockwise fashion.','*1','','')
newCmd('','','*v-11;','Rotation about one of the six standard axes (x, y, z). The default angle of rotation is 10 degrees. ','*2','._xyz','._degrees')
newCmd('','','*v-11;','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('.rotate','','*v+11.0 -- adds molecular frame spin/rotate and fully integrates spin and rotate as one feature; *v-10;reset;spin','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-10;','By itself, the <b>rotate</b> command rotates 10 degrees around the y (vertical) axis in a counterclockwise fashion.','*1','','')
newCmd('','','*v-10;','Rotation about one of the six standard axes (x, y, z, -x, -y, and -z). The default angle of rotation is 10 degrees. ','*2','._xyz','._degrees')
newCmd('','','*v-10;','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('.rotateSelected','','*v+11.1 -- new; *v-10;*v-11.0;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; *v-10;save','Saves a variety of sorts of information for later {#.restore~restoring} either in the current model or a different model.','0|1','','')
newCmd('','','*v-10;','Saves bonding information, including atom connections, color, width, and visibility. A save name is optional. ','*1','BONDS','saveName')
newCmd('','','*v-10;','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-10;','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-10;','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.0 -- adds applet javascript: option; *v-10;',' Loads and executes the specified script file/url. The hash/pound/sharp character (#) character marks a comment to the end of the line or a semicolon. The semicolon character (;) separates multiple statements on the same line. A script file may load another script file, up to 10 deep.','*1','._script_filename','')
newCmd('.script','','*v-11;',' Loads and executes the specified script file/url. The hash/pound/sharp character (#) character marks a comment to the end of the line or a semicolon. The semicolon character (;) separates multiple statements on the same line. A script file may load another script file, up to 10 deep.','1','._script_filename','')
newCmd('','','*v-11.0;*v-10;','Just checks the file for proper syntax and the presence of files.','*2','._script_filename','CHECK')
newCmd('','','*v-11.0;*v-10;','Starts the script file at the designated command, starting with 1. ','*3','._script_filename','COMMAND','n','')
newCmd('','','*v-11.0;*v-10;','Starts the script file at the designated line, starting with 1. ','*4','._script_filename','LINE','n','')

newCmd('','','','Applet only: Evaluates the return of the indicated JavaScript function as the script to be executed. ','1','javascript:functionCall()','')
newCmd('.select','','*v-11;select','Selects the atoms identified by the expression. If no expression is given then all atoms are selected. ','0|1','','')
newCmd('.select','','*v+11.0 -- adds several new selection options; *v-10;select','Selects the atoms identified by the expression. If no expression is given then all atoms are selected. Jmol 11.0 introduces connected(), within(molecule,(atom expression)), cell=nnn, cell={{I j k}}, symmetry, and visible. ','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('.selectionHalos','','*v+11.0 -- NEW;*v-10;','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.1 greatly expands variable capability;ifset','Jmol allows a wide range of settings to be changed using the SET command -- see the categories below for details. Starting with Jmol 11.1.17, 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>. You may do math with variables 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 />twoPI = 3.14159 * 2;<br />minBondDistance = minBondDistance * 0.5;<br /><br /> In addition, you can set variables to be the number of atoms that match an atom expression. For example: <br /><br />nNC = {{_N and */1 and connected(_C)}} <br /><br />nAtoms = {{*}};<br />nCH = {{_H}} + {{_C}};<br /><br />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. Work on documenting and working with these variables is in development.','0|1','','')
newCmd('','','','TABLE1','TEXT','Variables in Jmol 11.1 That Have Special Meanings. Items without a link are undocumented at this time.<br />','')
newCmd('','','','TABLE2','TEXT','The following variables have newer counterparts and may be used as X in the context &quot;SET X …&quot; but may not be used in the context &quot;myVar = X&quot;. ','')
newCmd('','','','TABLE3','TEXT','The following names are reserved and should be avoided.<br />','')
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;bond','In some file formats (.mol files, for example) the connection data may indicate the bond type--single, double, triple, or quadruple. The <b>set bonds</b> command determines whether or not multiple bonds are displayed. Use <b>set bonds OFF</b> when you want all bonds to appear as single bonds. ','*6','bonds','._on_off')
newCmd('','','*v-10;bond','In some file formats (.mol files, for example) the connection data may indicate the bond type--single, double, triple, or quadruple. The <b>set multipleBonds</b> command determines whether or not multiple bonds are displayed. Use <b>set multipleBonds OFF</b> when you want all bonds to appear as single bonds. ','*6','showMultipleBonds','._on_off')
newCmd('','','bond','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('','','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.','*5','hbonds','BACKBONE or SIDECHAIN')
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.','*7','ssbonds','BACKBONE or SIDECHAIN')
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; *v-10;','Jmol 11.0 introduces dynamic JavaScript callback function definition. (Applet only.) 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. Note that specifying "alert" will send the message to the user via a JavaScript alert. Note that quotation marks are required around the function name.','1|2','','')
newCmd('','','*v-10;','Sends a message indicating a change of {#.frame~}. For compatibility with Chime, this function returns a number ONE LESS than the actual frame number. ','*1','AnimFrameCallback','&quot;function name&quot;')
newCmd('','','*v-10;','Sends a message indicating what atoms is being hovered over, indendently of whether {#.hover~} is ON or OFF.','*2','HoverCallback','&quot;function name&quot;')
newCmd('','','*v-10;','Sends a message each time a file is {#.load~loaded}.','*3','LoadStructCallback','&quot;function name&quot;')
newCmd('','','*v-10;','Sends a wide variety of messages during script execution.','*4','MessageCallback','&quot;function name&quot;')
newCmd('','','*v-10;','Sends a message that depends upon the current status of {#.set picking~}.','*5','PickCallback','&quot;function name&quot;')
newCmd('.set (debugging)','','*v+11.0 introduces an adjustable logging level and showScript option; *v-10;','&nbsp;','0|1','','')
newCmd('.set (debugging)','','*v-11;','&nbsp;','0|1','','')
newCmd('','','','Turns on and off debugging (going to a JavaScript message {#.set (callback)~callback}).','*2','debugScript','._on_off{"OFF"}')
newCmd('','','*v-10;','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||]','*3','logLevel','(0 - 5)')
newCmd('','','*v-10;;','Shows 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. ','*4','showScript','._on_off{"OFF"}')
newCmd('','','*v-10;;','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.','*4','showScript','milliseconds')
newCmd('.set (default color scheme)','','*v-11.1;color','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.','2|2','','')
newCmd('','','*v-11.1;','','*1','defaultColors','JMOL')
newCmd('','','*v-11.1;','','*2','','RASMOL')


newCmd('.set echo','','*v-11;label','Sets parameters associated with text written to the screen that is not associated with atoms.','1|2|3','','')
newCmd('.set echo','','*v+11.0 introduces movable echo text and 3D echos, more label control; *v-10;label','Sets parameters associated with text written to the screen that is not associated with atoms.','1|2|3','','')
newCmd('','','*v-11;','Selects which of the three predefined echo positions (top, middle, or bottom) will be written to by the next {#.echo~} command or affected by the next {#.color (model object)~color echo} or {#.font~font echo} command. If the optional horizontal position selector (left, center, or right) is also given, any text already displayed at the designated vertical position (top, middle, or bottom) is immediately moved horizontally.','*31','._echo_vertical','._echo_horizontal{center for top and middle; left for bottom}')
newCmd('','','*v-10;','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.','*32','user-named','._echo_horizontal{left}')
newCmd('','','*v-10;','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-position','y-position','')
newCmd('','','*v-10;','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>, <b>set echo myecho CENTER</b>.','*34','user-named','%x','%y','')
newCmd('','','*v-10;','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-10;','Sets echo position in three dimensions, based on the geometric center of the specified atoms. Parentheses are required.','*36','user-named','(','._atom_expression',')')

newCmd('','','','Selectively turns a top, middle, or bottom text echo off.','*38','._echo_vertical','OFF')
newCmd('','','*v-10;','Selectively turns a user-named text echo off.','*39','user-named','OFF')
newCmd('','','','Sets the current font to be "all echos" for setting font, color, or text of all echos at once.','*42','ALL','')
newCmd('','','','Sets the current font to be "none" -- The next <b>echo</b> command will be to the console/message callback only.','*43','NONE','')
newCmd('','','','Turns off all echo texts. Note that echo ','*44','OFF','')
newCmd('.set (files and scripts)','','*v+11.0 -- introduces several new settings; *v-10;','The following commands relate to how files and scripts are loaded and how scripts are executed. ','0|1','','')
newCmd('','','*v-10;*v-11.0;','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.  ','*11','allowEmbeddedScripts','')
newCmd('','','*v-10;','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('','','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</b> command determines whether Jmol should automatically generate bonds (<b>set autobond ON</b>, the default action) or not (<b>set autobond OFF</b>) when the model is loaded. ','*12','autobond','._on_off{"ON"}')
newCmd('','','*v-10;','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.','*14','dataSeparator','&quot;separator text&quot;')
newCmd('','','*v-10;','(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-10;','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-10;','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-10;','<b>set forceAutoBond</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','._on_off{"OFF"}')
newCmd('','','*v-10;','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-10;','Enables (ON) or disables (OFF) script queuing. 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.','*6','scriptQueue','._on_off{"ON"}')
newCmd('.set (highlights)','','*v+11.0 introduces infinitely variable echos; *v-10;label','This command group allows for annotation and highlighting of atoms in terms of labels and "halos."','2|3','','')
newCmd('.set (highlights)','','*v-11;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;','Determines whether or not "Jmol" is indicated in the bottom right corner of the window.','*6','frank','._on_off')
newCmd('','','*v-10;','See {#.frank~}','*6','frank','._on_off')
newCmd('.set (labels)','','*v+11.0 -- several new customizable features; *v-10;label','This command group sets parameters associated specifically with atom labels','1|2','','')
newCmd('.set (labels)','','*v-11;label','This command group sets parameters associated specifically with atom labels','1|2','','')
newCmd('','','','Sets the label text alignment as left-, right-, or center-justified. ','*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. ','*72','labelOffset','._xoffset','._yoffset','')
newCmd('','','*v-10;','Turns on and off lines pointing from the selected atoms to their respective labels, using the color of the label text ({#.color~color label xxxx}).','*73','labelPointer','._on_off')
newCmd('','','*v-10;','Turns on label pointers to selected atoms, drawing them in the color of the label background.','*74','','BACKGROUND')
newCmd('','','*v-10;','If a selected label is rotated behind an atom, it is hidden by that atom. (default)','*81','labelAtom','')
newCmd('','','*v-10;','The selected labels will always appear in front of all atoms.','*82','labelFront','')
newCmd('','','*v-10;','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.','*84','labelGroup','')
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;','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.','*1','ambient','(integer 0 to 100)')
newCmd('','','*v-11;','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','diffuse','(integer 0 to 100)')
newCmd('','','*v-11;','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','specPower','(integer -1 to -10)')
newCmd('','','*v-11;','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','specPower','(integer 0 to 100)')
newCmd('','','*v-11;','Sets the size of the apparent reflection from a light source.','*55','specPercent','(integer 0 to 100)')
newCmd('','','*v-10;','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-10;','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 on and off the specular reflection (the shiny dot on a curved surface).','*51','specular','._on_off')
newCmd('','','*v-10;','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-10;','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-10;','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-10;*v-11.0;','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.1;','Sets perspective depth on or off. OFF is required for proper function of absolute scale (set scale3d x).','*31','perspectiveDepth','._on_off')
newCmd('','','*v-10;*v-11.0;','Sets perspective depth on or off. OFF is required for proper function of absolute scale (scaleAngstromsPerInch = x).','*31','perspectiveDepth','._on_off')
newCmd('','','*v-10;*v-11.0;','Sets perspective model used by Jmol for displaying perspective. Model 10 is the default for Jmol 11, but if <b>set navigationMode</b> is invoked, the style is automatically set to model 11. which involves a simpler linear perspective model that is required for navigation. ','*32','perspectiveModel','10 or 11')
newCmd('','','*v-10;*v-11.0;','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-10;*v-11.0;','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('','scale3d','*v-11.1;','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','scale3d','._viewing_distance')
newCmd('','','','Turning this flag 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_off{"ON"}')
newCmd('','','*v-10;','When ON (Jmol default setting), Jmol adjusts the zoom based on the LARGER of the two application/applet dimensions, height and width. When OFF, zoom is based on the smaller of the two dimensions. CHIME NOTE: Chime uses <b>set zoomLarge OFF</b>','*9','zoomLarge','._on_off{"ON"}')
newCmd('','','*v-10;*v-11.0;','Applies darker color shades to atoms further from the observer.','*9','zShade','._on_off{"ON"}')
newCmd('.set (navigation)','','*v+11.1 -- new;*v-10;*v-11.0;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-10;*v-11.0;','When navigating, a small square-with-crosshairs pointer usually appears to help guide the user. Setting this parameter TRUE hides that pointer.','*1','hideNavigationPoint','TRUE/FALSE')
newCmd('','','*v-10;*v-11.0;','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-10;*v-11.0;','When 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','TRUE/FALSE')
newCmd('','','*v-10;*v-11.0;','When 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','TRUE/FALSE')
newCmd('','','*v-10;*v-11.0;','Sets the rate of forward/reverse navigation when using the up/down arrow keys. The default value is 5.','*37','navigationSpeed','(decimal)')
newCmd('','','*v-10;*v-11.0;','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-10;*v-11.0;','When 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','TRUE/FALSE')
newCmd('','','*v-10;*v-11.0;','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; *v-10;','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('.set (structure)','','*v-11;','This command group allows for customization of the rendering of PDB and mmCIF secondary structures. The Jmol 10.2 default is <b>set ribbonBorder 0; set strands 5</b>.','2|3','','')
newCmd('','','*v-10;','This flag 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','._on_off')
newCmd('','','*v-10;','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-10;','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('','','','Turns on or off a slight border for ribbons.','*68','ribbonBorder','._on_off')
newCmd('','','*v-10;','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>.','*69','sheetSmoothing ','(0 to 1)')
newCmd('','','*v-10;*v-11.0;','Sets the number of strands to display for the {#.strands~} shape, with a maximum of 20.','*91','strandCount','._strand_count')
newCmd('','','*v-11.1;','Sets the number of strands to display for the {#.strand~} shape, with a maximum of 20.','*91','strands','._strand_count{5}')
newCmd('','','*v-10;','When ON, 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 OFF</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. The currently proposed default for Jmol 11.0 is  <b>set traceAlpha on; set sheetSmoothing 1;set hermiteLevel 0</b>, producing a more RasMol/Chime/pyMol-like rendering.','*95','traceAlpha','._on_off')
newCmd('.set (visibility)','','*v+11.0 -- several new features; *v-10;disp;set','This command group turns on or off specific sets of atoms and axes/cell-related options.','2|3','','')
newCmd('.set (visibility)','','*v+10.2 -- introduces disablePopupMenu greyScaleRendering hideNameInPopUp; *v-11;disp;set','This command group turns on or off specific sets of atoms and axes/cell-related options.','2|3','','')
newCmd('','','*v-11;','Turns on or off displayed axes, and determines their line style and line width (as a decimal number, in Angstroms).','*1','axes','._axes_type')
newCmd('','','*v-11;','Sets the axes to be based on the internal model {{0,0,0}} point rather than the center of the model. (Still requires <b>set axes ON</b> for viewing the axes.)','*2','axesInternal','._on_off')
newCmd('','','*v-11;','Turns on or off a wire-frame box that contains the model, and determines the line style and line width (as a decimal number, in Angstroms) of that box.','*3','boundbox','._axes_type')
newCmd('','','*v-11;','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).','*4','radius','._probe_radius{1.2}')
newCmd('','','*v-11;','Turns on and off display of hydrogen atoms.','*7','showHydrogens','._on_off')
newCmd('','setsolvent','*v-11;','Turns on and off display of solvent "probe" that can be displayed using dots. After <b>set solvent 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 radius</b> (above). Note that no change in display occurs after <b>set solvent ON</b> until the next {#.dots~dots ON} command is encountered. For a detailed discussion of molecular surfaces, see {http://www.netsci.org/Science/Compchem/feature14.html~}.','*8','solvent','._on_off')

newCmd('','','*v-11;','Turns on or off the unit cell for crystal structures, and determines its line style and line width (as a decimal number, in Angstroms).','*99','unitcell','._axes_type')
newCmd('','','*v-11;','Displays all colors as grey scale values.','*5','greyScaleRendering','._on_off')
newCmd('','','*v-11;','Hides the file name and contents in the pop-up menu starting with the NEXT FILE LOADED.','*60','hideNameInPopUp','._on_off')
newCmd('','','*v-11;','Disables (<b>set disablePopupMenu ON</b>) or enables (<b>set disablePopupMenu OFF</b>) the pop-up menu.','*4','disablePopupMenu','._on_off')

newCmd('','','*v-10;','See {#.axes~}.','*1','axes','._axes_type')

newCmd('','','*v-10;','See {#.boundbox~}.','*3','boundbox','._axes_type')

newCmd('','','*v-10;','Disables (<b>set disablePopupMenu ON</b>) or enables (<b>set disablePopupMenu OFF</b>) the pop-up menu.','*42','disablePopupMenu','._on_off')
newCmd('','','*v-10;','Sets whether the unit cell parameter list is included with {#.unitcell~unitcell ON}.','*44','displayCellParameters','._on_off')
newCmd('','','*v-10;','Displays all colors as grey scale values.','*50','greyScaleRendering','._on_off')
newCmd('','','*v-10;','Hides the file name and contents in the pop-up menu starting with the NEXT FILE LOADED.','*51','hideNameInPopUp','._on_off')
newCmd('','','*v-10;','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).','*66','radius','._probe_radius{1.2}')



newCmd('','','*v-10;','When ON, this flag tells Jmol to hide any atoms whenever they are not selected. <b>set hideNotSelected ON</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','._on_off')

newCmd('','','*v-10;','When both this flag is ON and selectionHalos are ON, Jmol will display selection halos even if atoms are hidden. ','*70','showHiddenSelectionHalos','._on_off')
newCmd('','','*v-10;','deprecated -- see {#.selectionHalos~}','*73','showSelections','._on_off')
newCmd('','','*v-10;','Turns on and off display of hydrogen atoms.','*71','showHydrogens','._on_off')


newCmd('','setsolvent','*v-10;','Turns on and off display of solvent "probe" that can be displayed using dots. After <b>set solvent 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 radius</b> (above). Note that no change in display occurs after <b>set solvent 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~}.','*8','solvent','._on_off')

newCmd('','','*v-10;','See {#.unitcell~}.','*99','unitcell','._axes_type')

newCmd('.set (measure)','','*v+11.0 -- several new features; *v-10;','Sets characteristics of the measurement labels and lines. See also {#.measure~}.','0|1','','')
newCmd('','','*v-10;','Sets the format of the labels for {#.measure~distance measurements}.','*20','defaultDistanceLabel','&quot;format&quot;')
newCmd('','','*v-10;','Same as for defaultDistanceLabel, but for angles.','*21','defaultAngleLabel','&quot;format&quot;')
newCmd('','','*v-10;','Same as for defaultDistanceLabel, but for torsions.','*22','defaultTorsionLabel','&quot;format&quot;')
newCmd('','','*v-10;*v-11.0;','This flag should be used 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','')
newCmd('','','*v-10;','Turns on and off measurement LABELS only, leaving the lines. (To turn off both, use <b>set showMeasurements OFF</b>.)','*63','measurementLabels','._on_off')
newCmd('','','*v-10;','Turns on and off measurement lines and labels BOTH. (To turn off just the label, use <b>set measurementNumbers OFF</b>.)','*77','showMeasurements','._on_off')

newCmd('','','*v-11 -- deprecated -- see SET MEASUREMENTNUMBERS;','Turns on and off the distance, angle, dihedral measurement LABELS while leaving the measurement line itself present. (To turn off both the label and the line, use {#.set (visibility)~set showMeasurements OFF}).','*1','measurements','._on_off')
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 units for measurement display to be Angstroms, nanometers, or picometers.','*5','','._distance_unit')
newCmd('','','','Sets the measurement line to be dotted.','*4','','DOTTED')




newCmd('.set (misc)','      ','*v+11.0 -- new options for temperature, measurements, and backgroundmodel; *v-10;anim','&nbsp;','0|1','','')
newCmd('.set (misc)','','*v+10.2 -- new chainCaseSensitive; *v-11;','&nbsp;','0|1','','')
newCmd('','','*v-10;*v-11.0;','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. ','*11','allowRotateSelected','._true_false')
newCmd('','','*v-10;*v-11.0;','Same as "animation FPS" -- sets the animation delay in frames per second.','*12','animationFps','(integer)')
newCmd('','','*v-10;','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. 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. ','*13','backgroundModel','(integer >= 1)')
newCmd('','','','Jmol can be set to read the chain designations in PDB, mmCIF, and related files either with or without case sensitivity. With <b>set chainCaseSensitive OFF</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','._on_off{"OFF"}')
newCmd('','','*v-11.0;*v-10;','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.0;*v-10;','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.','*56','spinX','._spin_rate')
newCmd('','','*v-11.0;*v-10;','determines the number of frames per second between displays of the molecule -- a small number here results in a jerky stepwise rotation. ','*54','spinFps','._spin_fps')


newCmd('','','*v-10;','Sets the scale for vibration vectors.','*61','vectorScale','(decimal)')
newCmd('','','*v-10;','Sets the default period of vibrations (in seconds). Setting this value to 0 disables vibration modeling.','*63','vibrationPeriod','(decimal)')
newCmd('','','*v-10;','Sets the amplitude of vibrations.','*65','vibrationScale','(decimal)')
newCmd('','','*v-10;','Sets the formal charge for the selected atoms.','*38','formalCharge','(integer)')
newCmd('','','*v-10;','Sets the web page for the {#.help~} command.','*39','helpPath','&quot;URL&quot;')
newCmd('','','*v-10;','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, with <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.  ','*4','measureAllModels','._on_off{"OFF"}')
newCmd('','','*v-10;','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.','*52','rangeSelected','')
newCmd('.status reporting','','*v+11.0 -- NEW mechanism for polling of applet status; *v-10;','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('.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('','','','Turns picking on and off. When turned ON, picking information is sent both to the status line and to the {#.set (callback)~PickCallback} function, if defined.','*1','._on_off{"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 a vertex to a new location. 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('','','','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-10;','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-10;','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-10;','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; *v-10;','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-10;','left-click toggles that group selected/not selected (Chime style; Jmol default).','*1','SELECT','toggle')
newCmd('','','*v-10;','left-click selects just that group<br />shift-left-click toggles the group selected/not selected (Rasmol style).','*2','','selectOrToggle')
newCmd('','','*v-10;','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-10;','Returns to the Jmol default <b>toggle</b> picking style.','*4','','NONE')
newCmd('','','*v-10;','Clicking atoms measures and displays distance, angle, or torsions based on the setting of <b>set picking MEASURE</b>. Clicking off the molecule resets the atom counter to 0, allowing for a new measurement with the next click of an atom. ','*5','MEASURE','._on_off{"ON"}')

newCmd('.set spin','','*v-11.1;anim','The <b>set spin</b> command allows for the setting of the spin axes -- x, y, and z -- independently as well as the rate of spin. 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. See the {#.rotate~} command.','1|1','','')
newCmd('','','*v-11.1;','The spin rate, in degrees per second, determines how fast the model rotates; the number of frames per second determines how smoothly the model rotates. ','*1','FPS','._spin_fps')
newCmd('','','*v-11.1;','Note that the axes referred to are the fixed axes of the window, not the cartesian axes of the molecular coordinates. Thus, regardless of how the molecule has been rotated by the user or using the <b>move</b> command, <b>x</b> is always the horizontal axis, <b>y</b> is always the vertical axis, and <b>z</b> is always the axis directed toward the user. ','*2','._xyz','._spin_rate')
newCmd('.show','','*v+11.0 -- adds show data, draw, isosurface, measurement, mo, spacegroup, symmetry, unitcell, url; *v-10;','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-10;','Displays the {misc/JVXL-format.pdf~JVXL} file equivalent. (Not available for all object types.)','*4','isosurface','')
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)','*1','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-10;','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-10;','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-10;','Displays a table of information relating to {#.measure~measurements} that have been made.','*70','measurements','')
newCmd('','','*v-10;','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.)','*71','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('','','anim','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.','*77','orientation','')
newCmd('','','','Delivers the PDB file header.','*85','pdbheader','')
newCmd('','','*v+11.1;*v-10;*v-11.0;','Delivers a list of all "set" commands that have been issued, with their values.','*86','set','')
newCmd('','','*v-10;','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-10;','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-10;','Displays information relating to the crystallographic symmetry of the model, including space group name and symmetry operations. (Applicable file formats only.)','*89','symmetry','')
newCmd('','','','Delivers the current 3x3 transformation matrix (rotation only). ','*90','transform','')
newCmd('','','*v-10;','Displays information relating to the crystallographic unit cell of the model. (Applicable file formats only.)','*91','unitcell','')
newCmd('','','*v-10;','Opens the data file in a new browser window. (applet only)','*92','url','')
newCmd('','','*v-10;','Opens the specified URL in a new browser window. (applet only)','*93','url','URL')
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-10;','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-10;*v-11.1;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. Atoms appear solid; bonds appear hollow. 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('.slab','','*v+11.1 adds internal slabbing;*v-10;*v-11.0;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. Atoms appear solid; bonds appear hollow. Starting with Jmol 11.1, 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". In addition, a reference point must be chosen that is on the same side of the plane (for slabbing) or opposite side of the plane (for depth) that is to be displayed. The default reference point is reset to {0 0 0} each time a slab or depth plane is defined The default reference point is reset to {0 0 0} each time a slab plane is defined. 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 on or off','*1','._on_off{"ON"}','')
newCmd('','','','Sets the position of the slabbing plane from 0 (front) to 100 (rear) of the model','*2','._percent_slab','')
newCmd('','','*v+11.1;*v-10;*v-11.0;','Slabs based on the specified Miller index plane and resets the reference point to {0 0 0}.','*3','hkl','{{h k l}}')
newCmd('','','*v+11.1;*v-10;*v-11.0;','Depths based on planes use the general syntax for {#.plane expressions~}.','*4','plane ','plane_expression')
newCmd('','','*v+11.1;*v-10;*v-11.0;','Sets the slab reference point. Only atoms on the same side of the plane as the reference point will be displayed. Coordinates may be fractional unit cell coordinates indicated using "/" in any one of the three positions.','*6','reference','(atom expression) or {{x y z}} or $drawObject')
newCmd('','','*v+11.1;*v-10;*v-11.0;','Resets slab and depth to the standard slab 100, depth 0, clears any internal planes, and turns slab on.','*7','reset','')
newCmd('','','*v+11.1;*v-10;*v-11.0;','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;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. ','0|1','','')
newCmd('.spacefill','','*v+11.0 -- adds solvent-accessible surface "+" option; *v-10;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~}.','0|1','','')
newCmd('','','','','*1','._on_off{"ON"}','')
newCmd('','','','','*2','._radius_angstroms','')
newCmd('','','','','*3','._radius_percent_vdw','')
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','1','TEMPERATURE','')
newCmd('','','','Generates a sphere for each atom according to an approximation of its ionic radius.','1','IONIC','')
newCmd('.spin','','*v+11.0 -- adds molecular frame spin/rotate and fully integrates spin and rotate as one feature; *v-10;anim;spin','Starts and stops the molecule spinning around the axis determined by {#.set spin~}. This command was greatly expanded in version 11.0 to include all the possible functions of {#.rotate~}.','0|1','','')
newCmd('','','*v-10;','','1','._on_off{"ON"}','')
newCmd('.spin','','*v-11;anim;spin','Starts and stops the molecule spinning around the axis determined by {#.set spin~}.','0|1','','')
newCmd('','','*v-11;','','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+10.2 -- new;','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.','1|1','','')
newCmd('','','','Turn stars on or off.','*1','._on_off{"ON"}','')
newCmd('','','','Sets the length of the selected stars.','*2','._length_angstroms','')
newCmd('','','','Sets the length of the selected stars as a percent of the van der Waals radius for a given atom.','*3','nn%','')
newCmd('.stereo','','*v+11.0 -- adds customizable colors;*v-10;','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('.stereo','','*v+10.2 --new red/green option;*v-11;','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-10;','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('.strands','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('','','','','*1','._on_off{"ON"}','')
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('.subset','','*v+11.0 -- new; *v-10;select','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('.trace','structure','disp','A "trace" is a smooth hermite curve through the same control points used by {#.ribbons~}.','0|1','','')
newCmd('','','','','*1','._on_off{"ON"}','')
newCmd('','','','','*2','._trace_radius','')

newCmd('.translate','','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. Negative values move to the left (for the x axis) and down (for the y axis). 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('.translateSelected','','*v+11.0 -- new; *v-10;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('.unitcell','','*v+11.0 -- new; *v-10;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-10;','Turns the unit cell on or off','*1','._on_off{"ON"}','')
newCmd('','','*v-10;','Sets the unit cell line diameter in Angstroms. ','*2','(decimal)','')
newCmd('','','*v-10;','Sets the axes style to a thin dotted line.','*3','DOTTED','')
newCmd('','','*v-10;','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('.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;','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-10;','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','*1','._on_off{"ON"}','')
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.0 -- new;*v+11.1 adds JVXL writing;*v-10;clip','(application only; not applet). Writes information to a file or to the system clipboard. (For the clipboard, simply specify CLIPBOARD instead of a file name.) 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. ','0|1','','')
newCmd('','','*v-10;*v-11.0;','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".','*09','fileName','')
newCmd('','','*v-10;*v-11.0;','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-10;','Saves the script command {#.history~} to a file.','*11','history','&quot;fileName&quot;')
newCmd('','','*v-10;*v-11.0;','Saves the current isosurface in the form of a JVXL file.','*21','isosurface','&quot;fileName&quot;')
newCmd('','','*v-10;*v-11.0;','Saves the current molecular orbital in the form of a JVXL file','*22','mo','&quot;fileName&quot;')
newCmd('','','*v-10;','Saves the current state to a script file.','*40','state','&quot;fileName&quot;')
newCmd('','','*v-10;','Creates a "snapshot" image of the current display and saves it to disk.','*13','image','JPG64|JPG|PNG|PPM','&quot;fileName&quot;','')
newCmd('','','*v-10;*v-11.0;','&quot;fileName&quot;','*45','var','[variable name]','&quot;fileName&quot;','')

newCmd('.zap','','*v+11.0 -- new "no-model" capabilities.;load','Clears the currently loaded molecule. RasMol forces you to zap prior to loading a new molecule. Jmol does not have this restriction and does not enforce it. 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.','0','','')
newCmd('.zoom','','*v-11;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 all zooming, whether mouse-based or command-based, 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. ','*1','._on_off{"ON"}','')
newCmd('.zoom','','*v+11.0 -- new capabilities; *v-10;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-10;','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-10;','Adds or subtracts an absolute amount from the current zoom setting.','*4','(atom expression) or {{x y z}}',' + or - delta')
newCmd('','','*v-10;','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; *v-10;','Carries out a smooth transition to the specified zoom setting. Indicating a new rotation center is optional.','1|0','','')
newCmd('','','*v-10;','By itself, <b>zoomTo</b> smoothly zooms IN by a factor of 2 over the course of 1 second.','*1','','')
newCmd('','','*v-10;','Smoothly zooms OUT by a factor of 2 over the course of 1 second.','*2','OUT','')
newCmd('','','*v-10;','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. If the atom is already the rotation center, then this command zooms in on the atom by a factor of two. All parameters are options. The default time is 1 second; indicating no center position results in simple, smooth zooming; indicating no zoom defaults to twice the current zoom setting.','*3','._floattime','(atom expression) or {{x y z}}')
newCmd('','','*v-10;','Smoothly transitions to the indicated zoom setting over the course of the specified number of seconds.','*4','._floattime','(atom expression) or {{x y z}}','._percent_zoom','')
newCmd('','','*v-10;','Adds or subtracts an absolute amount from the current zoom setting over the course of the specified number of seconds.','*5','._floattime','(atom expression) or {{x y z}}',' + or - delta','')
newCmd('','','*v-10;','Multiplies or divides the current zoom setting by the indicated factor over the course of the specified number of seconds.','*6','._floattime','(atom expression) or {{x y z}}',' * or / factor','')










































































































