Jmol/JSmol interactive scripting documentation

Search results for dssr

Search again View Full Database Index

 [JmolSQL] [atom properties] color (scheme) load FILES set (structure)
 [atom expressions] calculate load * model
 

* indicates new or modified in version 16.03
 ** indicates new or modified in version after 16.03
 
 

[JmolSQL] 

Jmol maintains a large amount of information about atoms, bonds, shapes, files, and many other aspects of the models loaded into it. For example, getProperty("atomInfo") returns an array giving the information for each atom that is loaded:

  load $caffeine
  x = getProperty("atomInfo")
  print x.count

    24

  print x[1]

  {
    "_ipt" : 0
    "atomIndex" : 0
    "atomno" : 1
    "bondCount" : 3
    "clickabilityFlags" : 48
    "colix" : -32761
    "color" : "[x3050f8]"
    "coord" : {1.312 -1.0479 0.0025}
    "element" : "nitrogen"
    "elemno" : 7
    "formalCharge" : 0
    "info" : "N1 #1"
    "model" : "1"
    "partialCharge" : 0.0
    "radius" : 0.7416667
    "shape" : "trigonal planar"
    "spacefill" : 0.3565
    "sym" : "N"
    "visibilityFlags" : 63
    "visible" : true
    "x" : 1.312
    "y" : -1.0479
    "z" : 0.0025
  }

JmolSQL is a Jmol math syntax that is designed to query this sort of information. The idea is that maps, with key/value pairs, and especially arrays of maps, are data, and those arrays themselves can be thought of as a mini database. These sorts of data can be found in Jmol in the a model's auxiliary info (variable _M), including validation data returned from LOAD =xxxx/val (_M.validation), sequence domain data returned from LOAD =xxxx/dom (_M.domains), and secondary structure information returned from LOAD =xxxx/dssr (_M.dssr, see JmolSQLforDSSR.pdf) or LOAD=xxxx/rna3d (_M.rna3d). In addition, the getProperty() function returns a wide variety of data relating to model attributes, including getProperty("atomInfo") and getProperty("bondInfo") among several others. (See getProperty.) In addition, you can add your own database-like information to a model in the form of arrays and maps. The JmolSQL search query language syntax allows you to examine and analyze all of this information using a structured query language similar to MySQL. Any array or key/value paired "map" or "map" data can be interrogated.

The original conception of JmolSQL was an extension of the getProperty() function -- for example:

  load $caffeine
  print getProperty("atomInfo[SELECT atomno,coord WHERE shape LIKE 'trigonal planar']")

  {
    "atomno" : 1
    "coord" : {1.312 -1.0479 0.0025}
  }
  {
    "atomno" : 3
    "coord" : {1.7906001 0.20809999 9.999999E-4}
  }
  ...24 of these...

The within(dssr,...) syntax also uses JmolSQL. See JmolSQLforDSSR.pdf for details. The following selection finds and highlights RNA base pairs that are not standard Watson-Crick base pairs:

  load =4fe5/dssr
  select on within(dssr, "pairs WHERE name!='WC'");

More recent development widens this use to any array data, and use of the .select() function rather than getProperty() is recommended for general use. Thus, alternatively we can use:

  print getProperty("atomInfo").select("atomno,coord WHERE shape LIKE 'trigonal planar' ")


object.SELECT("keys WHERE/WHEREIN phrase")

There are three parts to JmolSQL: object, keys, and an optional WHERE or WHEREIN phrase. The object can be either a map [key1:value1, key2:value2, key3:value3] or, quite commonly, an array of maps, usually all having the same set of keys.

Maps

When the top-level object is a map, .select() can be used to select out subsets of that array, either as a single map or as an array of values.

map.select("...")

The simplest form of .select() returns a subset of map. Wild cards can be interspersed with additional keys, for example, "a*,b" or "*_id". In each such case, the case-sensitive LIKE operation is used to match keys.

  map = [ A:[b:1],B:[b:2],AA:[b:3, d:50] ]
  print map.select("A").format("JSON")

    { "A": { "b": 1 } }

  map = [ A:[b:1],B:[b:2],AA:[b:3, d:50] ]
  print map.select("A*").format("JSON")

    { "A": { "b": 1 },"AA": { "b": 3,"d": 50 } }

map.select("(...)")

Using parentheses around the list of keys delivers an array of just the values rather than the full key/value pair:

  map = [ A:[b:1],B:[b:2],AA:[b:3, d:50] ]
  print map.select("(A,B)").format("JSON")

    [ { "b": 1 },{ "b": 2 } ]

Arrays of Maps

Properties such as AtomInfo, BondInfo, and ModelInfo are arrays of maps. A list of data for each atom, each bond, or each model. This is the essence of a database. JmolSQL can operate on these as well.

array.select("...")

JmolSQL will operate on an array of maps the same as on the map itself. But this time, the results will be in the form of an array of maps still. For example, we can create a sublist of maps having the selected subset of keys:

  array = [ [a:1,b:11],[a:2,b:22],[a:3,b:33] ]
  print array.select("b").format("JSON")

    [ { "b": 11 },{ "b": 22 },{ "b": 33 } ]

print x.select("atomno,element")

    {
    "atomno" : 1
    "element" : "nitrogen"
    }
    {
    "atomno" : 2
    "element" : "carbon"
    }
    {
    "atomno" : 3
    "element" : "carbon"
    }
    {
    "atomno" : 4
    "element" : "oxygen"
    }
    ...
array.select("(...)")

Adding parentheses creates a list of only the values for the specified keys:

array = [ [a:1,b:11],[a:2,b:22],[a:3,b:33] ]
print array.select("(b)").format("JSON")

[ 11,22,33 ]

array = [ [a:1,b:11],[a:2,b:22],[a:3,b:33] ]
print array.select("(a,b)").format("JSON")

[ 11,1,22,2,33,3 ]

Let's catalog all the elements in a caffeine model:

load $caffeine
print getProperty("atomInfo").select("(element)").pivot
{
    "carbon" : 8
    "hydrogen" : 10
    "nitrogen" : 4
    "oxygen" : 2
    }

The assumption when using (keys) is that you want to know all these values, but you don't need the keys themselves, An example is a list of bonds for which we just want to know all the atoms involved, but the atoms are listed under "atom1" and "atom2" in each bond array.

load =1ehz/dssr
select on @{_M.dssr.hbonds.select("(atom1_id,atom2_id)")}

206 atoms selected

By the way, the reason we can go so directly from DSSR data structures to atom selections is that DSSR atom and residue descriptions use Unit IDs. The _M.dssr.hbonds structure looks like this:

  {
    "atom1_id" : "|1|A|G|1|OP2|||"
    "atom1_serNum" : 4
    "atom2_id" : "|1|A|C|2|OP2|||"
    "atom2_serNum" : 27
    "atom_pair" : "O:O"
    "distance" : 2.991
    "donAcc_type" : "questionable"
    "index" : 1
    "res_long" : "|1|A|G|1||||,|1|A|C|2||||"
    "res_short" : "GC"
    "residue_pair" : "nt:nt"
  }

Jmol can interpret Unit IDs natively, and, because Unit IDs have such a unique signature, Jmol can even select atoms based on any text that contains them. They do not have to be given individually.

Using WHERE

WHERE is used to select a subset of the elements of an array based on specific key-value relationships.

array.select("... WHERE ...")

Delivers all key/value pairs in the subset of array element maps for which the WHERE clause is true for that element.

  array = [ [a:1,b:11],[a:2,b:22],[a:3,b:33] ]
  print array.select("* WHERE a<3 and b<20").format("JSON")

    [ { "b": 11,"a": 1 } ]

  load $caffeine
  print getProperty("atomInfo").select("atomno,element WHERE shape LIKE 'trigonal planar' ").format("JSON")

    [ { "element": "nitrogen","atomno": 1 },{ "element": "carbon","atomno": 3 },{ "element": "nitrogen","atomno": 5 },{ "element": "carbon","atomno": 7 },{ "element": "carbon","atomno": 9 },{ "element": "nitrogen","atomno": 10 },{ "element": "carbon","atomno": 12 },{ "element": "carbon","atomno": 13 } ]

array.select("(...) WHERE ...")

Using parentheses around the list of keys delivers a list of values for only the subset of array for which the WHERE clause is true:

  array = [ [a:1,b:11],[a:2,b:22],[a:3,b:33] ]
  print array.select("(b) WHERE a>1").format("JSON")

    [ 22,33 ]

This next example quantifies the various atomic orbital hybridizations that in the caffeine molecule:

  load $caffeine
  print getProperty("atomInfo").select("(shape) WHERE shape").pivot

  {
    "bent" : 1
    "tetrahedral" : 3
    "trigonal planar" : 8
  }

Note that "WHERE shape" here just excludes all cases where shape is the empty string, since empty strings in Jmol evaluate as FALSE. (In this case that involves hydrogen atoms.)

This next example finds all the hydrogen bonds created by DSSR for residue 72, listing and averaging them. Note that the DSSR report uses Unit IDs to represent residues:

  load =1ehz/dssr
  x = _M.dssr.hbonds.select("(distance) WHERE res_long LIKE '*|A|C|72|*'");
  print x.format("JSON")
  print format("%5.3f",x.average)

    [ 2.832,2.879,2.838 ]
    2.850

Array Drilling

WHERE will "drill down" through arrays of arrays to find elements that are maps.

  array = [ [[a:1,b:11], [a:0,b:0]],[[[a:2,b:22]]],[[a:3,b:33,aa:44]] ]
  print array.select("a* WHERE a>0").format("JSON")

    [ [ { "a": 1 } ],[ [ { "a": 2 } ] ],[ { "a": 3,"aa": 44 } ] ]

We use array.join() here to produce a flat one-dimensional array of those objects:

  array = [ [[a:1,b:11], [a:0,b:0]],[[[a:2,b:22]]],[[a:3,b:33,aa:44]] ]
  print array.select("a* WHERE a>0").join().format("JSON")

    [ { "a": 1 },{ "a": 2 },{ "a": 3,"aa": 44 } ]

Note how effective array.join() is in this next case:

  array = [ [[a:1,b:11], [a:0,b:0]],[[[a:2,b:22]]],[[a:3,b:33,aa:44]] ]
  print array.select("(b) WHERE a>0").join().format("JSON")

    [ 11,22,33 ]

Using WHEREIN

Using select(... WHEREIN...), you can select key value pairs where the values of the selected keys themselves are tested. For example:

  x = [key_1:[type:"a"],key_2:[type:"b"],key_3:[type:"a"]]
  print x.select("* WHEREIN type='a'").format("JSON")


  { "key_1":{ "type":"a" },"key_3":{ "type":"a" } }

Note that the resultant array now only has entries for key_1 and key_3, because only they have values for which type == "a". (Had we used WHERE here, nothing would be returned, because "type" is not a key in x itself.)

This next example checks the symmetry of occupied orbitals in Gausian output using WHEREIN:

  load https://chemapps.stolaf.edu/jmol/jsmol/data/no2_nbo.log.gz 2 filter "alpha"
  print _M.moData.select("mos WHEREIN occupancy>0").select("(symmetry)").pivot

  {
    "(A1)--O" : 6
    "(A2)--O" : 1
    "(B1)--O" : 1
    "(B2)--O" : 4
  }

We needed to use WHEREIN here because the symmetry information is not in _M.moData itself; it is in _M.moData.mos. Admittedly, in this case, we could have accomplished this more directly with WHERE, using _M.moData.mos rather than _M.moData itself:

  load https://chemapps.stolaf.edu/jmol/jsmol/data/no2_nbo.log.gz 2 filter "alpha"
  print _M.moData.mos.select("(symmetry) WHERE occupancy>0").pivot

  {
    "(A1)--O" : 6
    "(A2)--O" : 1
    "(B1)--O" : 1
    "(B2)--O" : 4
  }

This next example identifies all orbitals in a Gaussian output with B2 symmetry using WHEREIN:

  load https://chemapps.stolaf.edu/jmol/jsmol/data/no2_nbo.log.gz 2 filter "alpha"
  x= _M.moData.select("mos WHEREIN occupancy>0 and symmetry LIKE '(B2)*' ")
  print x.select("(index)").format("JSON")

    [ 1,5,8,10 ]

chaining .select()

Note that JmolSQL can be chained:

  x = getProperty("measurementInfo").select("(atoms) WHERE value > 1.4").select("(atomno)");

In this case, the first selection returns an array of atom records, and the second selection pulls out only the values for atomno, producing something such as [ [ 12,13 ],[ 2,1 ],[ 6,5 ],[ 11,10 ] ].

using select([keys])

Here is another example. It produces a listing of all atoms involving double bonds in the NCI/CADD caffeine model:

  load $caffeine
  print getProperty("bondInfo").select("(atom1,atom2) WHERE type='double'").select("(info)").format("JSON")

    [ "C3 #3","O4 #4","N8 #8","C9 #9","C7 #7","C12 #12","C13 #13","O14 #14" ]

This is OK, but wouldn't we want to have those paired by bonds? Changing (atom1,atom2) to [atom1,atom2] solves this issue:

  load $caffeine
  print getProperty("bondInfo").select("[atom1,atom2] WHERE type='double'").select("(info)").format("JSON")

    [ [ "C3 #3","O4 #4" ],[ "N8 #8","C9 #9" ],[ "C7 #7","C12 #12" ],[ "C13 #13","O14 #14" ] ]

The first SELECT finds all the double bonds, creating an array of [atom1,atom2] data. The second SELECT then replaces the full atom record with just the info value for each atom.

Thus, when working with arrays, whether SELECT returns just values or a full set of matching key:value pairs (as in standard SQL) is determined by how the keys are listed. If keys are simply listed, without [...] or (...), then what is returned is a flat array containing the specified keys with their values. Thus, array.select("nt1,nt2") creates an array containing maps that are a subset of array that contain keys nt1 and nt2 and their associated values. array.select("(nt1,nt2)") creates a single array that holds all matching values, and array.select("[nt2,nt1]") creates an array of arrays of [nt2,nt1] values. (By the way, we could use xxx.format(["nt2","nt1"]) to give the same result.)



top search index

[atom expressions] 

   Atom selectors
   Selection functions
   RasMol biomolecular residue specifications
   Wildcards
   Atom names for other file types

In Jmol, an atom expression is a mathematical expressions that represent a collection of atoms in one or more models. Examples include

  select on protein or water
  display add carbohydrate
  color {ala24} red
  zoomto {ligand} 0
  contact {e20} surface
  isosurface select {within(5, HEM)} only vdw map property temperature
  print "the center is at " + {*}.xyz

Notice that some of these commands require braces { } surrounding the atom expression and some do not. The basic rule is that you can always use braces, but you must use braces when a command can take arguments that are not atom expressions. So, for example, you can also color cartoons and isosurfaces and drawn objects; you can zoomto {ligand} 80 as well as 0. But what you select are atoms, and only atoms can be added to a display. Most commands DO require braces. The only ones that do not are the following ten: center, define, delete, display, fix, hide, restrict, select, subset, and zap. These are the only commands in Jmol that act specifically on atom sets.

All terms in and atom expression can be preceeded by the keyword NOT, joined by AND, OR, or XOR, and surrounded by parentheses. Terms in atom expressions include:

general terms
all all atoms; same as *
bonded covalently bonded
clickable actually visible -- having some visible aspect such as wireframe, spacefill, or a label showing, or the alpha-carbon or phosphorus atom in a biomolecule that is rendered with only cartoon, rocket, or other biomolecule-specific shape.
connected bonded in any way, including hydrogen bonds
displayed displayed using the display or hide command; not necessarily visible
hidden hidden using the display or hide command
none no atoms
selected atoms that have been selected; defaults to all when a file is first loaded
solvent PDB "UREA", "SO4", "PO4", "HOH", "DOD", "WAT"; in any model the connected set of H-O-H
thisModel atoms in the current frame set, as defined by frame, model, or animation commands. If more than one model is in this set, "thisModel" refers to all of them, regardless of atom displayed/hidden status.
visiblevisible in any way, including PDB residue atoms for which a cartoon or other such rendering makes their group visible, even if they themselves are not visible.

file.modelas, for example, select 3.2, a specific model in a specific file. Note that select 3.0 selects all atoms in all models of the third file of the most recent load.
subsetthe currently defined subset. Note that if a subset is currently defined, then select/display all is the same as select/display subset, restrict none is the same as restrict not subset. In addition, select not subset selects nothing.
specialPositionatoms in crystal structures that are at special positions - that is, for which there is more than one operator that leads to them.
symmetry-relatedThese selections relate to the unit cell and space group symmetry. See also atom properties fx, fy, fz, fxyz, ux, uy, uz, uxyz, and symop.
symmetryall atoms that are derived from the asymmetric unit (!symmetry or symop=1555) by symmetry operations or lattice translations
unitcellatoms of the current unitcell, which may be offset. this includes atoms on all faces, edges, and vertices of the unitcell
within(unitcell)atoms "within" the current unitcell -- that is, atoms with fractional coordinates ≥0 and <1
polyhedra all central atoms for which polyhedra have been created. See also polyhera(n), below.
chemical elementselement_name (including "deuterium and tritium"), _Xx (an element symbol preceeded by underscore, possibly with isotope number listed, such as _Cu, _Fe, _2H, _31P)
terms based on the periodic table of the elements
nonmetal _H,_He,_B,_C,_N,_O,_F,_Ne,_Si,_P,_S,_Cl,_Ar,_As,_Se,_Br,_Kr,_Te,_I,_Xe,_At,_Rn
metal !nonmetal
alkaliMetal _Li,_Na,_K,_Rb,_Cs,_Fr
alkalineEarth _Be,_Mg,_Ca,_Sr,_Ba,_Ra
nobleGas _He,_Ne,_Ar,_Kr,_Xe,_Rn
metalloid _B,_Si,_Ge,_As,_Sb,_Te
transitionMetal (includes La and Ac) elemno>=21 and elemno<=30, elemno=57, elemno=89, elemno>=39 and elemno<=48, elemno>=72 and elemno<=80, elemno>=104 and elemno<=112
lanthanide (does not include La) elemno>57 and elemno<=71
actinide (does not include Ac) elemno>89 and elemno<=103
isaromaticatoms connected with the AROMATIC, AROMATICSINGLE, or AROMATICDOUBLE bond types
non-protein/nucleic groupscarbohydrate, hetero, ions (specifically the PDB designations "PO4" and "SO4"), ligand (originally "hetero and not solvent"; changed to "!(protein,nucleic,water,UREA)" for Jmol 12.2), sidechain
nucleic acid residues
nucleic any group that (a) has one of the following group names: G, C, A, T, U, I, DG, DC, DA, DT, DU, DI, +G, +C, +A, +T, +U, +I; or (b) can be identified as a group that is only one atom, with name "P"; or (c) has all of the following atoms (prime, ', can replace * here): C1*, C2*, C3*, O3*, C4*, C5*, and O5*.
purine any nucleic group that (a) has one of the following group names: A, G, I, DA, DG, DI, +A, +G, or +I; or (b) also has atoms N7, C8, and N9.
pyrimidine any nucleic group that (a) has one of the following group names: C, T, U, DC, DT, DU, +C, +T, +U; or (b) also has atom O2.
dna any nucleic group that (a) has one of the following group names: DG, DC, DA, DT, DU, DI, T, +G, +C, +A, +T; or (b) has neither atom O2* or O2'.
rna any nucleic group that (a) has one of the following group names: G, C, A, U, I, +U, +I; or (b) has atom O2* or O2'.
protein residues
protein defined as a group that (a) has one of the following group names: ALA, ARG, ASN, ASP, CYS, GLN, GLU, GLY, HIS, ILE, LEU, LYS, MET, PHE, PRO, SER, THR, TRP, TYR, VAL, ASX, GLX, or UNK; or (b) contains PDB atom designations [C, O, CA, and N] bonded correctly; or (c) does not contain "O" but contains [C, CA, and N] bonded correctly; or (d) has only one atom, which has name CA and does not have the group name CA (indicating a calcium atom).
acidicASP GLU
acyclic amino and not cyclic
aliphaticALA GLY ILE LEU VAL
aminoall twenty standard amino acids, plus ASX, GLX, UNK
aromaticHIS PHE TRP TYR (see also "isaromatic" for aromatic bonds)
basicARG HIS LYS
buried ALA CYS ILE LEU MET PHE TRP VAL
chargedsame as acidic or basic -- ASP GLU, ARG HIS LYS
cyclicHIS PHE PRO TRP TYR
helix, helixalpha, helix310, helixpisecondary structure-related.
heteroPDB 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
mediumASN ASP CYS PRO THR VAL
negativesame as acidic -- ASP GLU
neutral amino and not (acidic or basic)
polar amino and not hydrophobic
positivesame as basic -- ARG HIS LYS
sheetsecondary structure-related
smallALA GLY SER
surface amino and not buried
turnsecondary structure-related
protein/nucleic acid-related
alpha (*.CA)
base nucleic acid bases
backbone (or "mainchain")(*.C, *.CA, *.N, and all nucleic other than the bases themselves)
sidechain ((protein or nucleic) and not backbone)
spine (*.CA, *.N, *.C for proteins; *.P, *.O3', *.O5', *.C3', *.C4', *.C5 for nucleic acids)
leadatom (*.CA, *.P, and terminal *.O5')
DSSR structureAvailable after load =xxxx/dssr.
bulges within(dssr,"bulges")
coaxStacks within(dssr,"coaxStacks")
hairpins within(dssr,"hairpins")
hbonds within(dssr,"hbonds")
helices within(dssr,"helices")
iloops within(dssr,"iloops")
isoCanonPairs within(dssr,"isoCanonPairs")
junctions within(dssr,"junctions")
kissingLoops within(dssr,"kissingLoops")
multiplets within(dssr,"multiplets")
nonStack within(dssr,"nonStack")
nts within(dssr,"nts")
naChains within(dssr,"naChains")
pairs within(dssr,"pairs")
ssSegments within(dssr,"ssSegments")
stacks within(dssr,"stacks")
stems within(dssr,"stems")

The comparison operators <, <=, =, >, >=, !=, and LIKE operate with many keywords. Note that = and != are not case-sensitive in Jmol, so select group="ARG" is the same as select group="arg". If you want to compare cases, use LIKE: select chain like "D". See atom properties.

Atom selectors    back

An atom expression is simply a list of atoms. 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: select (carbon)[3][5].This says, "Select the third through fifth carbon atoms." If the second selector is not present, then only a single atom is selected; the selector [0] indicates the last atom in the set, and negative numbers count back from that atom. Thus, select (*)[0] selects the last atom, and select (carbon and 2.3)[-1][0] selects the last two carbon atoms in model 2.3. Atom selectors can be used for any expression embedded in another command. In that case an additional set of parentheses or braces is required around the whole expression: measure {(_O)[1]} {(_O)[2]}.

Selection functions    back

The following functions are also supported for the selection and specification of atom sets:
CONNECTED() allows for selection of specific atoms based on their connectivity to other atoms. The general format is: connected([optional min # bonds], [optional max # bonds], [optional bond type], [optional atom expression]) Bond type may be any described for connect. See groups.txt for many examples of using connected() with define
POLYHEDRA(n) all central atoms for polyhedra with n vertices.
SEARCH(pattern) selects atoms that match SMARTS pattern such as "[C,N]" or "a". The pattern may be prefixed with any Jmol SMILES directives as described in Jmol SMARTS/SMILES.
SMILES(smiles) selects atoms if and only if there is only one model loaded and that model matches the SMILES string such as "CCC" (propane) or "c1ccccc1" (benzene). The pattern may be prefixed with any Jmol SMILES directives as described in Jmol SMARTS/SMILES.
WITHIN(setName,atomExpression)any atom within a given set. The setName can be any one of the words BOUNDBOX, CHAIN, ELEMENT, GROUP, MODEL, MOLECULE, POLYMER, SITE, or STRUCTURE, or it can be a protein or nucleic acid sequence expressed in single-letter notation surrounded by quotation marks as, for example, "GGCCCTT" or "MAACYXV" (in which case the sequence is found within the expression). (SITE refers to all crystallographic sites common to the specified atom set; BOUNDBOX refers to the smallest box containing the atom set.) Additional options, including "BASEPAIR", "SMILES", and "SMARTS", are discussed below.
WITHIN(distance, withinAllModels, atomExpression)any atom within the specified distance of any atom in the atomExpression. The optional TRUE/FALSE flag withinAllModels (by default FALSE) may be set TRUE to allow finding atoms in one model that may be within some distance of another model. If the distance is negative, then the operation applies to all atoms having normalized unit cell coordinates within the given distance of the designated atoms. If withinAllModels is TRUE, matching atoms within atomExpression itself are excluded.
WITHIN(distance, {x y z})any atom within the specified distance of the given fractional or Cartesian coordinate. If the distance is negative, then the operation applies to all atoms having normalize unit cell coordinates within -distance of the designated atoms.
WITHIN(distance, $surfaceObject) any atom within the given distance of a point on the specified surface.
WITHIN(x.x, VDW, {atomset}) Selects atoms that have overlapping van der Waals surfaces with {atomset}. The distance parameter is optional, and its meaning depends upon its magnitude. If it is > 10, then it is assumed to be a percent, such as 110%, 100%, 90%; otherwise it is assumed to be a distance to be added to the van der Waals radii of both atoms under consideration. So, for example, select GROUPS within(1.4, VDW, {*:A}) selects all groups with solvent-accessible surfaces overlapping with chain A, and select GROUPS within(100, VDW, {ligand}) selects all groups "clashing" with any ligand.
WITHIN(nResidues,GROUP,{atoms}) groups that are within a given number of residues of a specified group of atoms.
WITHIN(0,planeType, planeDesignation) selects for any atoms within 0.01 Angstroms of a plane. If planeType is HKL, then planeDesignation is in the form {h k l}, where h, k, and l are Miller indices. If planeType is PLANE, then planeDesignation should be of the form @{plane(a,b,c)}, where a, b, and c are atom expressions or coordinates.
WITHIN(distance,planeType, planeDesignation)selects for atoms within the given distance in Angstroms from the plane. Positive distances are on one side; negative distances are on the other side. Experimentation may be necessary to determine which side is which for these purposes. In all cases the atoms in the plane itself (within 0.01 Angstroms of the plane on either side) are included.
WITHIN(distance,$P)where $P is a polyhedron ID. Options include on or within the polyhedron (distance == 0), angstroms within the polyhedron (distance < 0), and within distance angstroms of the polyhedron (distance > 0).
WITHIN(ATOMNAME,"aa,bb,ccc")any atom having a listed atom name
WITHIN(ATOMTYPE, "atomType,atomType,..." selects for atoms of one or more atom type. Atom type is defined in certain file types, including MOL2 model files and AMBER topology files. For other file types, atom types are the same as atom names. For example, select within(ATOMTYPE,"HW,OW") selects all water atoms an AMBER topology file.
WITHIN(BASEPAIR("XY...") finds all atoms within hydrogen-bonded DNA or RNA basepairs. Any number of pairs can be indicated. For example, display within(BASEPAIR,"GCAU") would select only G-C and A-U pairs. (Note that the RasMol-derived predefined sets "gc" and "at" refer simply to "G or C" and "A or T", respectively, and do not relate to base pairing.)
WITHIN(BOUNDBOX) selects all atoms within the currently defined boundbox
WITHIN(BRANCH,{first atom}, {second atom}) selects the second atom and all atoms in the molecular branch starting with the second atom but not including the first atom.
WITHIN(DSSR,type) For more information on this function, see JmolSQLforDSSR.pdf. Provided DSSR information is loaded, this function selects atoms within the given type of secondary structure of RNA or DNA. Options include bulges, coaxStacks (coaxial stacks), hairpins, hbonds, helices, iLoops (internal loops), isoCanonPairs (isocanonical pairs), junctions, kissingLoops, isolatedPairs, multiplets, nonStack, nts (nucleotides), pairs, ssSegments (single-stranded segments), stacks, and stems. For example, the following script produces a "3D stem diagram" for a nucleic acid:

  load =1msy/dssr
  set cartoonSteps
  backbone -0.2
  select within(dssr,"helices")
  color blue
  select within(dssr,"stems")
  color red
  select within (dssr,"ssSegments")
  color white
  select within (dssr,"multiplets")
  color green
  select within (dssr,"isolatedPairs")
  color orange
  select leadatom
  spacefill 1.5
  label $P%[group1]
  font label 24 bold
  set labeloffset 0 0
  color label grey


In addition, the type may be followed by one of the following:
.n where n is a number starting with 1, to designate a specific region of that type: select within(dssr,"bulges.3")
[SQL phrase] to be more specific: select within(dssr,"pairs[WHERE name != 'WC']")


WITHIN(HELIX)Selects groups that would be selected using select helix but are not at either end of a helix section.
WITHIN(SEQUENCE,"sequence") a protein or nucleic acid sequence expressed in single-letter notation surrounded by quotation marks as, for example, "GGCCCTT" or "MAACYXV" (the entire sequence must be found; as indicated above, the keyword SEQENCE is optional).
WITHIN(SHEET)Selects groups that would be selected using select sheet but are not at either end of a sheet section.
WITHIN(SMARTS,"smartsString") all atoms that conform to the given SMARTS string are found. When used as a math function, this method returns a list of all matching sets of atoms; when used in a selection context (SELECT, DISPLAY, HIDE, etc.), all matching atoms are returned. Only hydrogen atoms that are explicitly indicated as [H] are returned. Extensive details on Jmol 3D-SEARCH SMARTS capability may be found on-line.
WITHIN(SMILES,"smilesString") all atoms that conform to the given SMILES string are found. When used as a math function, this method returns a list of all matching sets of atoms, including any indicated hydrogen atoms or hydrogen atoms required to complete the valence on an atom. When used in a selection context (SELECT, DISPLAY, HIDE, etc.), all matching atoms are returned. Note that for substructure searches, WITHIN(SMARTS,"smartsString") is recommended.
WITHIN(UNITCELL) selects atoms with fractional coordinates within the range [0, 1) and effectively returns the set of points that are periodic; atoms in models without unit cells will not be included
WITHIN(UNITCELL,u)where u is a math variable that is the result of the unitcell() function. (That is, u is an array [o a b c] of origin and three lattice vectors.) Same as within(unitcell), except uses the specified unitcell, regardless of the unit cell of the atom's model.
WITHIN(unitid) all atoms matching the given Unit ID. Unit IDs consist of nine fields separated by |:

  pdbid|model|chain|RESNAME|resno|ATOMNAME|altcode|inscode|symmetry
  
They can be truncated on the right, but not the left: 1ehz|1|A|G|15, |1|A|G|15|C2. At a minimum, they require model number, chain, and residue number: |1|A||15. A blank ATOMNAME field specifies a full residue, with altcode indicating "this alt_id or no alt_id" (a configuration). A nonblank ATOMNAME field specifies one atom, with altcode indicating "exactly this alt_id" (a location). Unit IDs will be identified by their signature, disregarding white space, commas, "]", "[", and double quote: select within("1ehz|1|A|G|15||||,1ehz|1|A|U|59||||,1ehz|1|A|C|60|||");


RasMol biomolecular residue specifications    back

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:

[residueType]seqRange ^insertionCode :chainLetter .atomName %altLoc /modelNumber


[residueType][ALA] [G] [2E1] [L??] When used without any other specifiers it is possible in some but not all cases to leave off the brackets around the residue type. However, leaving off the brackets is not recommended and is known to fail when the residue type begins with a number.
seqRange 1 1-30 40- Note that ranges refer to physical ranges of data in the file. If residues corresponding to both the starting and ending residue numbers are not present in the file, selection returns no atoms. If residues with numbers between the starting and ending numbers are out of place in the file -- not physically between those two file positions -- they will not be included in the selection. If there is a desire to include such residues, or the selection should allow starting or ending residues to not be present, then use the resno comparison method instead. In this case, for example: select resno >=1 and resno <=30 or select resno >= 40.
^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: file.model as, for example, select *.CA/2.1 -- all alpha carbons in the first model of the second file listed in the load command.


Wildcards    back

Unspecified components of the atom specification are indicated in some cases using a question mark and in others using an asterisk.

For PDB files specifically, the wildcard * can be used in place of [residueType]seqRange to indicate "any." For example: select *.CA. Wildcards can be used elsewhere in the specification, but it is preferred simply to not include a specifier altogether. Thus, select [ALA].* is the same as select [ALA]. Note that in the case of PDB files and MOL2 files with residues indicated, * may be used in the form x* only in the case of residue names, not atom names. Thus, select AS* selects aspartate and asparagine. When used for an atom, for example, with the unremediated PDB file 1bkx select A.O?* the * is not wild and selects atoms A.O1* and A.O4*. (In remediated PDB files, this * becomes a single quote or "prime" character -- AO1', AO4'.) Asterisks cannot be used in place of insertionCode or altLoc.

Question marks are used to indicate "some character": select *.C??. 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.

You can use \? to match an actual ? in an atom name. For instance, if there are two atoms, one with the name "O1" and one with the name "O1?" then select O1? will select both atoms, but select O1\? will select only the second atom. You cannot use \* to escape an actual * in an atom name.

For other file types, ? can be used anywhere in an atom name, and * can be used at the end of a name. To use * at the beginning of a name, use ?*, not just *.

General matching of atom names is not case sensitive. Note that the LIKE operator allows full support for standard use of ? and *, and it is case sensitive. So, for example: search atomName LIKE "*15".

Atom names for other file types    back

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 select *.C34 or select C34 or even select C*. 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 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.


See also:

[Jmol Command Syntax] [Jmol Math] [Jmol Parameters] [atom properties] [functions] [plane expressions] case default echo for if message reset set set (misc) switch while undefined



top search index

[atom properties] 

Over 120 atom properties can be selected or retrieved from model data, and most of these can be set as well. The older, more limited Rasmol notation [group].atomName^insertion:chain%altloc can still be used, but equally well one can combine any subsets of those using a more natural notation. For example, select group="ARG" and atomname="CA" and chain="A" is equivalent to select [ARG].CA:A. Mostly, the newer xxxx=y notation generalizes better in terms of additional parameters not unique to Rasmol. The comparison operators <, <=, =, >, >=, !=, and LIKE operate with many keywords. Note that = and != are not case-sensitive in Jmol, so select group="ARG" is the same as select group="arg". If you want to compare cases, use LIKE: select chain like "D". If you want to do case-sensitive string comparisons, use LIKE: select chain like "D". Note that LIKE is only for string comparison. select atomono like 3 returns nothing.

Atom properties may also be set directly using {atom expression}.xxxx = y. For example, {_H}.radius = 0 or {*}.radius = for(x;{*};x.adpmax - x.adpmin) or {*}.radius = {*}.temperature.all.mul(0.03). An associative array of all matching atom properties can be created using {atom expression}.xx?, where "xx" is the beginning of a property name, or even just {atom expression}.? for all atom properties. (for example, print {atomno=3}.a? or print @3.?).

Starting in Jmol 14.2, you can apply operations to arrays of values. For example, select atomno=[1,2,4] or display color !=["red","white"]. These can be read "select atoms for which the atomno is 1, 2, or 4" and "display all atoms for which the color is not red or white."

For labels, the %[xxx] notation extends the original single-character %x code of early Jmol versions. For example, label %[atomno] or label %8.2[xyz]. Within labels, %% will be interpreted as "%" to avoid its being treated as a special character. This is only needed in the rare case where its context could be interpreted as a variable token, for example, in label 30%x, if that needed to be displayed exactly like that for some reason.

The full list of atom properties is given below.

propertyselect xxx=ylabel %[xxx]label %xprint {*}.xxx{*}.xxx = ydescription
adpmaxyesyes yes the maximum anisotropic displacement parameter for the selected atom
adpminyesyes yes the minimum anisotropic displacement parameter for the selected atom
altlocyesyes%Ayes PDB alternate location identifier
altnameyesyes yes an alternative name given to atoms by some file readers (for example, P2N)
atomIDyesyes yesyesspecial atom IDs for PDB atoms assigned by Jmol
atomIndexyesyes%Dyes atom 0-based index; a unique number for each atom regardless of the number of models loaded
atomNameyesyes%ayesyesatom name
atomnoyesyes%iyesyessequential number; you can use "@" instead of "atomno=" -- for example, select @33 or Var x = @33 or @35
atomTypeyesyes%Byesyesatom type (mol2, AMBER files) or atom name (other file types)
atomXyesyes%xyesyesCartesian X coordinate (or just X)
atomYyesyes%yyesyesCartesian Y coordinate (or just Y)
atomZyesyes%zyesyesCartesian Z coordinate (or just Z)
bondcountyesyes yes covalent bond count
bondingRadiusyesyes%Iyesyesradius used for autobonding, in Angstroms. Setting this value to 0 returns it to its default value. Synonymous with ionic and ionicRadius
cellyes    crystallographic unit cell, expressed either in lattice integer notation (111-999) or as a coordinate in ijk space, where {1 1 1} is the same as 555. ANDing two cells, for example select cell=555 and cell=556, selects the atoms on the common face. (Note: in the specifc case of CELL, only "=" is allowed as a comparator.)
configurationyes    Only in the context {configuration=n}, this option selects the set of atoms with either no ALTLOC specified or those atoms having this index into the array of altlocs within its model. So, for example, if the model has altloc "A" and "B", select configuration=1 is equivalent to select altloc="" or select altloc="A", and print {configuration=2} is equivalent to print {altloc="" or altloc="B"}. Configuration 0 is "all atoms in a model having configurations", and an invalid configuration number gives no atoms. (Note: in the specifc case of CONFIGURATION, only "=" is allowed as a comparator.)
chainyesyesc/syes protein chain. For newer CIF files allowing multicharacter chain specifications, use quotations marks: select chain="AA". For these multicharacter desigations, case is not checked unless the CIF file has lower-case chain designations.
propertyselect xxx=ylabel %[xxx]label %xprint {*}.xxx{*}.xxx = ydescription
chainNoyesyes yes chain number; sequentially counted from 1 for each model; chainNo == 0 means"no chain" or PDB chain identifier indicated as a blank.
chiralityyesyes yes  Uses Cahn-Ingold-Prelog rules to assign the chirality designation (R, S, E, Z, r, s) to a carbon center.
cipRuleyesyes yes  The CIP Rule that finally deciding the chirality of a center (1a-5).
coloryesyes yesyesthe atom color
covalentRadiusyesyes yes covalent bonding radius, synonymous with covalent. Not used by Jmol, but could be used, for example, in {*}.spacefill={*}.covalentRadius.all.
csyesyes yes chemical shift calculated using computational results that include magnetic shielding tensors.
elementyesyes%eyesyeselement symbol. The value of this parameter depends upon the context. Used with select structure=x, x can be either the quoted element symbol, "H", "He", "Li", etc. or atomic number. In all other contexts, the value is the element symbol. When the atom is a specific isotope, the string will contain the isotope number -- "13C", for example.
elemnoyesyes%l (el)yesyesatomic element number
eta/thetayesyes yes Based on Carlos M. Duarte, Leven M. Wadley, and Anna Marie Pyle, RNA structure comparison, motif search and discovery using a reduced representation of RNA conformational space, Nucleic Acids Research, 2003, Vol. 31, No. 16 4755-4761. The parameter eta is the C4'[i-1]-P[i]-C4'[i]-P[i+1] dihedral angle; theta is the P[i]-C4'[i]-P[i+1]-C4'[i+1] dihedral angle. Both are measured on a 0-360 degree scale because they are commonly near 180 degrees. Using the commands plot PROPERTIES eta theta resno; select visible;wireframe only one can create these authors' "RNA worm" graph.
fileyesyes yes file number containing this atom
formalChargeyesyes%Cyesyesformal charge
formatyesyes yesyesformat (label) of the atom.
fXYZ yes yesyesfractional XYZ coordinates
fXyesyes%Xyesyesfractional X coordinate
fYyesyes%Yyesyesfractional Y coordinate
fZyesyes%Zyesyesfractional Z coordinate
fuXYZ yes yesyesfractional XYZ coordinates in the unitcell coordinate system
fuxyesyes yesyesfractional X coordinate in the unitcell coordinate system
fuyyesyes yesyesfractional Y coordinate in the unitcell coordinate system
fuzyesyes yesyesfractional Z coordinate in the unit cell coordinate system
groupyesyes%nyes 3-letter residue code
group1yesyes%myes single-letter residue code (amino acids only)
groupIDyesyes yes group ID number: A unique ID for each amino acid or nucleic acid residue in a PDB file.

0 noGroup
1-5 ALA, ARG, ASN, ASP, CYS
6-10 GLN, GLU, GLY, HIS, ILE
11-15 LEU, LYS, MET, PHE, PRO
16-20 SER, THR, TRP, TYR, VAL
21-23 ASX, GLX, UNK
24-29 A, +A, G, +G, I, +I
30-35 C, +C, T, +T, U, +U

Additional unique numbers are assigned arbitrarily by Jmol and cannot be used reproducibly.
propertyselect xxx=ylabel %[xxx]label %xprint {*}.xxx{*}.xxx = ydescription
groupindexyesyes%Gyes  overall group index
hydrophobicity yes yes   yes   Aminoacid residue scale of hydrophobicity based on Rose, G. D., Geselowitz, A. R., Lesser, G. J., Lee, R. H., and Zehfus, M. H. (1985). Hydrophobicity of amino acid residues in globular proteins, Science, 229(4716):834-838.
identifyyesyes%Uyes for a PDB/mmCIF file, a label such as [ILE]7^1:A.CD1%A/3 #47, which includes the group ([ILE]), residue number with optional insertion code (7^1), chain (:A), atom name (CD1), alternate location if present (%A), PDB model number (/3, for NMR models when one file is loaded; /file.model such as /2.3 if more than one file is loaded), and atom number (#47). For non-PDB data, the information is shorter -- for example, H15/2.1 #6, indicating atom name (H15), full file.model number (/2.1), and atom number (#6). If only a single model is loaded, %[identify] does not include the model number.
insertionyesyes%Eyes protein residue insertion code
labelyesyes yesyescurrent atom label (same as format)
massyesyes yes atomic mass -- especially useful with appended .max or .sum
modelyesyes%Myes model number
modelindexyesyes yes a unique number for each model, starting with 0 and spanning all models in all files
modO yes yes currently calculated occupancy from modulation (0 to 100; NaN if atom has no occupancy modulation)
modXYZ yes yes currently calculated displacement modulation (for incommensurately modulated structures). Also modX, modY, modZ for individual components. For atoms without modultion, {xx}.modXYZ is -1 and {xx}.modX is NaN, and in a label %[modXYZ] and %[modX] are blank.
moleculeyesyes%Nyes molecule number
monomeryesyes%gyes monomer number (group number) in a polymer (usually a chain), starting with 1, or 0 if not part of a biopolymer -- that is, not a connected carbohydrate, amino acid, or nucleic acid (Jmol 14.3.15)
msyesyes yes magnetic shielding calculated from file-loaded tensors.
nbo yes   a resonance structure configuration found in an NBO .46 or .nbo file; requires the previous issuing of connect NBO.
occupancyyesyes%q/%Qyesyes CIF file site occupancy. In SELECT command comparisons ("select occupancy < 90"), an integer n implies measurement on a 0-100 scale; also, in the context %[occupancy] or %q for a label, the reported number is a percentage. In all other cases, such as when %Q is used in a label or when a decimal number is used in a comparison, the scale is 0.0 - 1.0.
partialChargeyesyes%Pyesyespartial charge
phiyesyes%fyes protein group PHI angle for atom's residue
polymeryesyes yesyessequential polymer number in a model, starting with 1.
polymerLengthyesyes%Lyes polymer length
property_xxyesyes yesyesa property created using the DATA command
psiyesyes%pyes protein group PSI angle for the atom's residue
radiusyesyes yesyescurrently displayed radius -- In SELECT command comparisons ("select radius=n"), integer n implies Rasmol units 1/250 Angstroms; in all other cases or when a decimal number is used, the units are Angstroms.
propertyselect xxx=ylabel %[xxx]label %xprint {*}.xxx{*}.xxx = ydescription
resnoyesyes%Ryes PDB residue number, not including insertion code (see also seqcode, below)
selectedyes  yesyes1.0 if atom is selected; 0.0 if not
sequenceyesyes yes PDB one-character sequence code, as a string of characters, with "?" indicated where single-character codes are not available
seqcodeyesyes%ryes PDB residue number, including insertion code (for example, 234^2; "seqcode" option added in Jmol 14.3.16)
seqidyesyes yes  (mmCIF only) the value from _atom_site.label_seq_id; a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category specifying the sequence of monomers in a polymer. Allowance is made for the possibility of microheterogeneity in a sample by allowing a given sequence number to be correlated with more than one monomer id. (Jmol 14.2.3)
shapeyesyes yes hybridization geometry such as "tetrahedral"
siteyesyes%Syes crystallographic site number
spacefillyesyes yesyescurrently displayed radius
straightnessyesyes%Tyes quaternion-derived straightness (second derivative of the quaternion describing the orientation of the residue. This quantity will have different values depending upon the setting of quaternionFrame as "A" (alpha-carbon/phosphorus atom only), "C" (alpha-carbon/pyrimidine or purine base based), "P" (carbonyl-carbon peptide plane/phosphorus tetrahedron based), or "N" (amide-nitrogen based). The default is alpha-carbon based, which corresponds closely to the following combination of Ramachandran angles involving three consecutive residues i-1, i, and i+1: -psii-1 - phii + psii + phii+1.
strucnoyesyes yes a unique number for each helix, sheet, or turn in a model, starting with 1.
structureyesyes yes The value of this parameter depends upon the context. Used with select structure=x, x can be either the quoted keyword "none", "turn", "sheet", "helix", "dna", "rna", or "carbohydrate" or a respective number 0-6. In the context {*}.structure, the return value is a number; in the context label %[structure], the return is one of the six keywords.
substructureyesyes yes like structure, the value of this parameter depends upon the context. Used with select substructure=x, x can be either the quoted keyword "none", "turn", "sheet", "helix", "dna", "rna", "carbohydrate", "helix310", "helixalpha", or "helixpi", or the respective number 0-9. In the context {*}.substructure, the return value is a number; in the context label %[substructure], the return is one of the nine keywords.
surfacedistanceyesyes%uyes A value related to the distance of an atom to a nominal molecular surface. 0 indicates at the surface. Positive numbers are minimum distances in Angstroms from the given atom to the surface. The "surface" is not a surface, per se. It is a set of geodesic points using SET dotDensity 1;DOTS 3.0. Atoms that contribute one or more dots to this geodesic are given a value of 0; other atoms are checked for distance to each dot, and assigned that distance - 3.0.
sXYZ yes yes screen XYZ coordinates, in pixels from the left, bottom, and camera, respectively
sXyesyes yes screen X coordinate, in pixels from the left
sYyesyes yes screen Y coordinate, in pixels from the bottom
sZyesyes yes screen Z coordinate, 0 at the camera, increasing with depth
symopyes  yes the first symmetry operation code that generated this atom by Jmol; an integer starting with 1. See also symmetry, below. 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 any symmetry (including no lattice translations), use NOT symmetry. Alternatively, one can use SYMOP=1555, corresponding to "x,y,z" and without any lattice translations.

The general form select SYMOP=nijk selects a specific translation of atoms from the given crystallographic symmetry operation, with ijk = 555 meaning "no additional translations. Comparators <, <=, >, >=, and != can be used and only apply to the ijk part of the designation. Note that the ijk values are relative, not absolute. Thus, symop=2555 selects for atoms that have been transformed by symop=2 but not subjected to any further lattice translation. Be aware that other than 1ijk, the result of this operation depends upon how the model was loaded. If the model was loaded using load "filename.cif" {444 666 1}, where the 1 indicates that all symmetry-generated atoms are to be packed within cell 555 and then translated to fill the other 26 specified cells, then select symop=3555 is the same as select symop=3 and within(unitcell). However, the situation is different if instead the model was loaded using load "filename.cif" {444 666 0}, where the 0 indicates that symmetry-generated atoms are to be placed exactly where their symmetry operator would put them, with x,-y,z being different then from x, 1-y, z. In that case, select symop=3555 is for all atoms that have been generated using symmetry operation 3 but have not had any additional translations applied to the x,y,z expression found in the CIF file.

If, for example,

load =ams/quartz 1 {555 555 0}
select on silicon and symop=4555


selects for the atom at {-0.4697 -0.4697 1/3}, the result of the operation -x,-x+y,-z+1/3 on the CIF file fractional coordinate (0.4697 0 0). But

load =ams/quartz 1 {555 555 1}
select on silicon and symop=4555


(or load =ams/quartz 1 PACKED) selects for the atom at {0.5303 0.5303 1/3}, the result of the normalized operation -x+1,-x+y+1,-z+1/3 on the same CIF atom.

Note that atoms in special positions will have multiple operator matches. Atoms in special positions can be selected using the boolean atom expression term SPECIALPOSITION, as in select specialposition or x = {specialposition}.
propertyselect xxx=ylabel %[xxx]label %xprint {*}.xxx{*}.xxx = ydescription
symmetry yes%o/%Oyes  as "symmetry" or in a label as lower-case "o" gives list of crystallographic symmetry operators generating this atom with lattice designations,such as 3555; upper-case "%O" in a label gives a list without the lattice designations. See also symop, above.
temperatureyesyes%b/%tyesyestemperature factor (B-factor)
translucentyes  yes 0.0 to 1.0, with 0 being opaque and 1 being transparent
unitid yes   Unit ID. Unit IDs consist of nine fields separated by |. unitid is allowed specfically in the %[unitid-MODE] context, where -MODE is a flag to indicate what aspects of the Unit ID to express:
unitid same as unitid-ra |1|A|G|1|OP1|||
unitid-ra include chain, residue, and atom |1|A|G|1|OP1|||
unitid-r chain,residue only |1|A|G|1||||
unitid-mr PDB model,chain,residue 1EHZ|1|A|G|1||||
unitid-mra full unitID 1EHZ|1|A|G|1|OP1|||
unitid-mrat full unitID, right-trimmed 1EHZ|1|A|G|1|OP1

Note that the use of unitid is not just for display. You can also generate them using {xxx}.label("%[unitid]") and use them in searching DSSR data structures.
uXYZ yes yes unit cell XYZ coordinates
uXyesyes yes unit cell X coordinate normalized to [0,1)
uYyesyes yes unit cell Y coordinate normalized to [0,1)
uZyesyes yes unit cell Z coordinate normalized to [0,1)
valenceyesyes yesyesthe valence of an atom (sum of bonds, where double bond counts as 2 and triple bond counts as 3
vanderwaalsyesyes%Vyesyesvan der Waals radius
vectorScaleyesyes yes vibration vector scale
volumeyesyes yes approximate van der Waals volume for this atom. Note, {*}.volume gives an average; use {*}.volume.sum to get total volume.
vXYZ yes%vyesyesvibration vector, or individual components as %vx %vy %vz. For atoms without vibration vectors, {xx}.vXYZ is -1; in a label, %[vXYZ] is blank.
vXyesyes yesyesvibration vector X coordinate; for atoms without vibration vector, {xx}.vX is NaN (same for vY and vZ)
vYyesyes yesyesvibration vector Y coordinate
vZyesyes yesyesvibration vector Z coordinate
xyesyes%xyesyesCartesian X coordinate
yyesyes%yyesyesCartesian Y coordinate
zyesyes%zyesyesCartesian Z coordinate
xyz yes yesyesCartesian XYZ coordinates; select xyz > 1.0 selects atoms more than one Angstrom from the origin.
   %W  PDB residue designator with x, y, z included: [%n]%r %x %y %z



See also:

[Jmol Command Syntax] [Jmol Math] [Jmol Parameters] [atom expressions] [functions] case default echo for if message reset set set (misc) switch while undefined



top search index

calculate 

Calculates specific quantities.

 calculate STRUCTURE type [atom-expression]

Calculates the secondary structure of proteins or nucleic acids . Options are based on the type keyword. The calculation is performed for all models containing any of the indicated atoms or, if no atoms are specified, the set of currently selected atoms. For these models all cartoons and other biomolecular shapes are turned off. The next cartoons on command will then show a complete set of cartoons. This command also recalculates the polymer chains making up a protein or nucleic acid. The results are affected by any bonding that has changed via the connect command. A typical use involves PDB files that load with incomplete bonding (because the author specified only a fraction of the bonds). After loading, one can issue connect to use Jmol's autobonding feature, then calculate structure to regenerate the secondary structure.

DSSP Calculates the secondary structure of proteins based on Jmol's implementation of DSSP.
RAMACHANDRAN Calculates protein secondary structure using a Ramachandran-angle-based method original to Jmol. The default DSSP setting is to ignore any file-based backbone amide hydrogens, but this can be changed using set dsspCalculateHydrogenAlways FALSE.
DSSR Defining the (Secondary) Structures of RNA. The calculation works equally well with DNA. ...TO DO...
If no type is given, DSSP is assumed unless the global setting set defaultStructureDSSP is set FALSE, in which case RAMACHANDRAN is assumed.



See also:

delete hbonds set (files and scripts) undefined



top search index

color (scheme) 

Jmol uses a variety of predefined and user-defined color schemes. Nine additional standard color schemes are available, including five "universally readable" scientific palettes (batlow,cividis,kry,thermal,viridis) as discussed in the paper The misuse of colour in science communication and four (inferno,magma,plasma,turbo) that are from the
R-Project viridis package. For example: load *1crn; color property atomno "viridis" Scheme palettes can be found in the src/org/jmol/util/colorschemes/ directory.Also reads files using https://... from any online source in binary or ASCII color scheme formats:

binary [optional 32-bit header ignored][rrrr...(256)][gggg...(256)][bbbb...(256)] 768 or 800 bytes total
ASCIIeither three columns of r g b per line, or four columns index r g b


For example:

load *1crn;
color property atomno ""https://github.com/fiji/fiji/blob/master/luts/cool.lut?raw=true"";


Filenames also work in the color() function:

print color(""viridis"").colors
print color(""https://github.com/Image-Py/imagepy/blob/master/imagepy/data/luts/Others/morgenstemning.lut?raw=true"").colors;


For more color palette look-up table files, see fiji-luts, Py-luts, and imagej-luts."
The following commands can be used to directly map those schemes to atoms and shapes based on a given range of values. In each case, the default property color scheme and range is set. So, for example, if color {*} property temperature "rwb" range 0 100 is issued, then after that one can use color {*} property_xxx , and color scheme RWB will be used again with the range 0 to 100. Note that using the color() function you can design your own color schemes based on progressions of RGB or HSL (hue/saturation/lightness).

 color {atomSet} PROPERTY DSSR "dssrStructureType" RANGE [min] [max]

Colors a selection of nucleotides having the DSSR specified type by a color scheme based on entry in the DSSR data structure for the model: 1 for first entry, 2 for second entry, etc. With 0 (gray) for "not of this type" based on a standard atom property such as temperature or occupancy using a specific color scheme and range. Allowed types are plural and include: bulges, coaxStacks, hairpins, hbonds, helicies, iloops, isoCanonPairs, junctions, kissingLoops, multiplets, nonStack, nts, pairs, ssSegments, stacks, and stems. For example: load =4fe5/dssr; cartoons only;set cartoonSteps; color property dssr junctions.


See also:

background color (atom object) color (bond object) color (element) color (model object) color (other) color labels color measures set (visibility) set userColorScheme show undefined



top search index

load 
(v. 13.00)

   [File types]
   [ZIP/JAR files and JmolManifest]
   [General Options]
   [Crystallographic Options]


   See examples-11/sym.htm 

Loads the specified file or URL or string data. A wide variety of file types are supported. In general, resolution of file type is based on internal file cues, not the filename or file extension. However, this resolution process can be overridden by specifying a prefix to the file name consisting of the file type followed by two colon characters: load "molpro(xml)::myfile". PDB-type files can be loaded with automatic addition of hydrogen atoms and multiple bonds using SET pdbAddHydrogens. For PDB, PQR, and mmCIF files that contain HELIX, SHEET, or TURN records provided by the author, those structures are created (though not initially displayed); for PDB, PQR, and mmCIF files that do not contain this information, Jmol will generate secondary structure using DSSP (W. Kabsch and C. Sander, Biopolymers, vol 22, 1983, pp 2577-2637; http://swift.cmbi.ru.nl/gv/dssp) for chains that contain backbone atoms and the method of Levitt and Greer [J.Mol.Biol.(1977) 114, 181-293] for alpha-carbon-only chains. (See also calculate STRUCTURE.)

Multiple files and a selected model from a multi-model file can be read as well. Files may be Gzipped, and multiple files can be read from compressed ZIP and JAR collections. A default directory can be set using set defaultDirectory, and for applets a proxy server can be set for non-host file loading using set appletProxy. After the filename, the options listed below are available. These options must appear in the order given in the table below. In addition, the load command can take parameters that specify the number of unit cells to generate, the the space group or Jones-Faithful operators to use, and the unit cell dimensions. Using these parameters, the space group and unit cell information within a file can be overridded, and even simple XYZ data files can be turned into crystallographic data sets. The FILTER keyword allows selective loading of atoms as well as construction of the biologically relevant molecule (PDB "BIOMOLECULE" records. See also the headings load APPEND, load FILES, load MENU, load MODELS, and load TRAJECTORY. Note that with the Jmol application (not the applet) you can also use Edit...Paste to load molecular coordinate from the system clipboard. The same capability for the applet can be had using data "model".

[File types]    back

Jmol reads a wide variety of data formats. Example files can be found at http://jmol.svn.sourceforge.net/viewvc/jmol/trunk/Jmol-datafiles. Supported file types include:


$identifierJmol can utilized the SMILES-to-3D and database service at the NIH Cactus server to load 3D models based simply on SMILES strings or chemical identifiers such as chemical names, CAS registry numbers, and InChI keys. For example, load $CCC loads the structure of propane, load $C1CCCCC1 loads a chair cyclohexane model, and load $tylenol loads a model of acetaminophen. Using "$?" offers a prompt to the user.
:nameLoad a model directly from PubChem. A name or a PubChem ID may be given. Using ":?" offers a prompt to the user. For example, load ":tylenol" or load ":1983" loads a model of acetaminophen. More specifically the syntax load :xxx:yyyy, where xxx is CAS, CID, NAME, INCHI or SMILES, specifies the exact sort of compound identifier yyyy that follows the second colon. Note that INCHI must be a standard inchi key, as perhaps generated using {*}.find("chemical", "stdinchikey")
=XXXXa PDB file directly from RCSB. For example, load "=1crn". Using "=?" offers a prompt to the user.
=XXXX.cifa CIF file directly from RCSB.
=xxxx.bcifSpecifies to read a Binary CIF file from RCSB. VERY large files can be loaded successfully. The recommendation is to load large protein files with filter "*.C" for backbone only, without autobonding:
  
  set autobond off;
  load =8glv.bcif filter "*.C";
  spacefill on;
  color chain;

=XXXX.mmtfan MMTF file directly from RCSB. The The Macromolecular Transmission Format is a new compact binary format to transmit and store biomolecular structural data quickly and accurately.
==XXXa ligand from RCSB. For example, load ==hem. Using "==?" offers a prompt to the user.
=XXXX/dssrAdding /DSSR instructs Jmol to also obtain the nucleic acid secondary structure 3DNA from Columbia University. For a full discussion of Jmol in relation to DSSR see Robert M. Hanson, Xiang-Jun Lu, DSSR-enhanced visualization of nucleic acid structures in Jmol, Nucleic Acids Research, Volume 45, Issue W1, 3 July 2017, Pages W528-W533.
=XXXX/rna3dloads mmCIF data from RCSB, also fetching RNA secondary structure annotations from http://rna.bgsu.edu/rna3dhub indicating hairpinLoops, internalLoops, and junctions. Allows for such constructs as

  select within(rna3d,"hairpinLoops")
  select within(rna3d,"hairpinLoops where index=5")
  x = getproperty("auxiliaryInfo.models[1].rna3d.internalLoops.5")
  x = getproperty("auxiliaryInfo.models[1].rna3d.internalLoops")[5]
  print x
  {
    _atoms : ({3023:3062 3639:3706})
    _isres : true
    _path : "internalLoops"
    index : 5
    units : "1S72|1|0|C|153,1S72|1|0|C|154,1S72|1|0|G|182,1S72|1|0|A|183,1S72|1|0|G|184"
  }
  y = x._atoms
  select y
=XXXX/dom see *XXXX/dom; mmCIF data retrieved from RCSB
=XXXX/val see *XXXX/val; mmCIF data retrieved from RCSB
*XXXX Similar to =XXXX, but retrieving data from http://www.ebi.ac.uk/pdbe. Using "*?" offers a prompt to the user.
*XXXX/dssr see =XXXX/dssr; mmCIF data retrieved from PDBe
*XXXX/rna3d see =XXXX/rna3d; mmCIF data retrieved from PDBe
*XXXX/dom mmCIF + domain annotations from PDBe.
*XXXX/val mmCIF + validation annotations from PDBe.
ADF/AMSAmsterdam Density Functional/Amsterdam Modeling Suite output file
=ams/nnnnnnn (seven-digit number) loads data from American Mineralogist Crystal Structure Database, fetching data from http://rruff.geo.arizona.edu/AMS; employs "#_DOCACHE_" flag, indicating to save the full structure in a state file, because this number is not a permanent reference in the database.For example: LOAD =ams/0014673 same as LOAD http://rruff.geo.arizona.edu/AMS/viewJmol.php?amcsd=14673&action=showcif#_DOCACHE_
=ams/nnnnn (five-digit number) loads that specific structure based on sequential id code.For example: LOAD =ams/10000 same as LOAD http://rruff.geo.arizona.edu/AMS/viewJmol.php?id=10000&action=showcif#_DOCACHE_
=ams/mineralName loads all AMS structures for a specified named mineral. For example: LOAD =ams/diamond same as LOAD http://rruff.geo.arizona.edu/AMS/viewJmol.php?mineral=diamond&action=showcif#_DOCACHE_
=chebi/nnnnnnChemical Entities of Biological Interest 2D model with minimal 100-step minimization
=cod/numberFor example, load =cod/1000041. Loads Crystallographic Open Database files by number
=AFLOWLIB/nnn.mThe AFLOW Encyclopedia of Crystallographic Prototypes is a collection of CIF files organized by space group. The encyclopedia "provides a complete description of each structure, including formulas for the primitive vectors, basis vectors, and AFLOW commands to generate the standardized cells." This load option retrieves the m-th AFLOW prototype in space group nnn. Each of the 230 space groups has at least one example structure. A full listing of the AFLOW codes in the encyclopedia (subject to updates) can be found in aflow_structures.json. Providing only a space group number retrieves the first structure for that space group. For example: load =AFLOWLIB/147.3 or load =AFLOWLIB/145 PACKED. References:[1] [2] [3] [4]
=AFLOWLIB/aflowlibidLoads a structure from the AFLOW Encyclopedia of Crystallographic Prototypes by its AFLOW id. For example, load =aflowlib/A3BC_tP5_99_ac_b_a-002 packed.
AIMSAb Initio Molecular Simulation Package (input files only)
AMPACAMPAC file
Argus(XML)ArgusLab AGL file
Bilbao(BCS)Bilbao Crystallographic Server file format. This simple format is similar to XYZ file format, but including International Tables space group number (first line), the unit cell parameters (second line), an atom count (third line), and then a list of atom names and positions. (examples)
CDX,CDXMLJmol Reads CDX and CDXML files, either to 2D or 3D. The reader cleans files of unattached "phantom" atoms that appear in stored warnings to users. Partial bonds and multiple-attachment bonds (e.g. ferrocene) are recognized and converted to partial bonds in Jmol. The reader can be used to generate SMILES, InChI, InChIKey, and 2D-MOL files.
CGDGavrog Systre Crystal Graph Data file format, as produced by TOPOS topological analysis of crystal structures.
Chem3D(XML)CambridgeSoft Chem3D C3XML file
CASTEPCASTEP input, .md, .geom, .phonon, .magres, and .ts file formats. .phonon files are read as trajectories -- see the FILTER specifications, below, to load specific q-point mode sets.
CIFInternational Union of Crystallography Crystallographic Information File, versions CIF 1.1 and CIF 2.0, including Macromolecular Crystallographic Information files (mmCIF), Binary CIF (a binary version of mmCIF), Modulated Structure files (msCIF), and Bilbao Magnetic structure files (mCIF). NOTE: The default for loading CIF files that have GEOM_BOND records is to make loading more similar to the way Mercury opens files. Such files are loaded by default as full molecules based on the idea that a "molecule" is "symop=1 or connected(symop=1)". The model is displayed WITHOUT a unit cell, and no unit cell information is made available. The standard load xxx.cif {1 1 1} is still available if a unit cell is desired. Jmol will accept CIF files with duplicate atom_site_label entries (even though those are technically invalid, since that key is an index key) by adding numbers to the label when two identical atom_site_label values are found. A warning message is reported in the Java console only.
CML(XML)Chemical Markup Language files.
CRYSTAL Crystal solid state computation output, including support for 1D (polymer) and 2D (slab) periodicity. This file format creates the atom properties property_spin and property_magneticMoment. Jmol reads TOPOND TRHO and TLAT data for Bader analysis.
CSFFujitsu Sygress Explorer (formerly CAChe) chemical structure file, including the reading of ab initio, semiemperical, gaussian, and density functional molecular orbitals
CUBEGaussian cubegen output file
DCD single precision binary (FORTRAN unformatted) DCD trajectory files (Jmol 12). These files require the COORD keyword and a file giving atom information, such as a PDB file. For example: load trajectory "t.pdb" coord "t.dcd"
DGRIDDGRID file reader (Jmol 12). These files are generalized representations of output from a variety of quantum mechanical calculation packages, including especially ADF.
FCHKGaussian formatted check-point file format
FoldingXYZXYZ file created by the Folding@home project
GAMESSGeneral Atomic and Molecular Electronic Structure System output file
GaussianGaussian output file. spin density will be read into an atoms's property_spin property .
GhemicalMMGhemical molecular mechanics file (MM1GP)
GROGROMACS .gro file format
GULPGULP file format
HINHyperChem native file
JaguarNational Center for Supercomputing Applications Jaguar output file
JANA2006 Jana2006 M40/M50 files can be read, and incommensurate structures can be displayed. Commensurately and incommensureately modulated structures can be read. Not supported to date: X-harmonic and Legendre polynomial modulation specifications, crenel-orthogonalized Fourier modulation functions.
JCAMP-DX Jmol can read specialized JCAMP-DX files containing ##$MODELS records and automatically sychronize user picking actions based on ##$PEAKS record information. See Jmol-JSpecView-specs.pdf.
JMEJava Molecular Editor file format (a 2D, not a 3D, format)
JSON Starting with Jmol 14.0, Jmol can read (and writemodel) JavaScript Object Notation-formatted data. The format is compatible with that developed for ChemDoodle, specifically implementing the "a" and "b" keys, but also adding optional keys "_is2D" and "_scale" (see below). Data must be wrapped in a JSON object named "mol": {"mol":{ "a":[...], "b":[...]} }. White space is allowed, but only after the opening seven characters, which identify the file type as JSON.
_is2Dtrue if data are to be converted to 3D automatically
_scalescale of data in x, y, and z directions. {"x":20,"y":-20,"z":20}, for example, indicates that the data need to be scaled down by a factor of 20, and the y axis needs to be reversed.
aan array of atom records of the format {"l":atomSymbol,"x":xCoord,"y":yCoord,"z":zCoord}, where "z" and "l" (the lower-case letter "L", for "label"; defaulting to "C") are optional.
ban array of bond records of the format {"b":atomIndex,"e":atomIndex,"o":order}, for "begin", "end", and optional "order" (defaults to 1). atom indexes are 0-based.
MAGRESMagres files
MDTOP, MDCRDAMBER Molecular dynamics topology files and associated coordinate files.
MOL, MOL2Accelrys (formerly Symyx, formerly Molecular Design) structure data files, including SDF and CTAB V2000 files. Starting with Jmol 14.1.12, using the forcing prefix MOL3D, as in load "MOL3D::xxx.mol" one can cause Jmol to throw an error if a 2D MOL file is attempted to be read. Starting with Jmol 14.9.2, Jmol will interpret a MOL file bond order 14 as bond order 4 (as in [Re2Cl8]2-), 15 as bond order 5 ([Mo2Cl8]4-), and 16 as bond order 6 (Mo2).
MOLDENMolden data file. Jmol 14.4 allows an extended version of MOLDEN files to be read that contains crystallographic information (from CASTEP), specifically [SpaceGroup], [Operators], and [Cell] or [CellAxes] (but not both). For example:

[SpaceGroup] (Number)
1

[Operators]
x, y, z

[Cell] (Angs)
2.96340697 6.51358688 -1 90.0000 90.0000 90.0000

(or)

[CellAxes] (Angs)
2.963407 0.0 0.0
0.0 6.513587 0.0
0.0 0.0 0.0

...
MOLPRO(XML)Molpro structure file
MopacOpenMopac output file (MOPOUT)
MopacGraphFOpenMopac GRAPHF output file (for molecular orbitals)
NWCHEMPacific Northwest National Laboratory NWChem output file
OdysseyWaveFunction Odyssey data file (ODYDATA)
Odyssey(XML)WaveFunction Odyssey XODYDATA file
OPTIMADEThe Open Databases Integration for Materials Design (OPTIMADE) consortium aims to make materials databases inter-operational by developing a common REST API. Using the explicit file type optimade::, Jmol will read files generated from various sources. For example, load Optimade::https://optimade.materialsproject.org/v1/structures?filter=nelements=6&page_limit=1.
PDBProtein Data Bank files. PDB reading of X-PLOR using hybrid-36 and NAMD files using hex is also supported. See http://www.schrodinger.com/AcrobatFile.php?type=supportdocs&type2=&ident=530 and http://cci.lbl.gov/cctbx_sources/iotbx/pdb/hybrid_36.py.
PQRPosition/Charge/Radius data file produced by the Adaptive Poisson-Boltzmann Solver project
P2NR.E.D. input files, also reading the AltName field and allowing label %[altName]
PSIPSI3 output reader (coordinates only)
PyMOL PSEPyMOL session files. Jmol will read most PyMOL session files, creating a very close representation of the view as seen in PyMOL 1.6. This ongoing project aims to faithfully reproduce the key features of PyMOL sessions. A representative sampling of how well this works can be found at http://ispcbck.weizmann.ac.il/a2jmolb/browse and misc/PyMOL2Jmol_browse.pdf. FILTER options "nosurface" and "docache" are explained below.
QCHEMQ-Chem output file
QuantumEspressosee http://www.quantum-espresso.org; XML files readable in Jmol.
SHELX RESSHELX output file. Jmol will read Q points as element Xx, assigning the labels Q1, Q2, ... etc. Both PART n and PART -n are recognized. Part -n (symmetry-related occupational disorder) atom are shown translucent by default.
SpartanWaveFunction Spartan data file
SMILESSee $smilesString, above.
SpartanSmolWaveFunction binary Spartan SMOL data file, including full MacSpartan Spartan directories in ZIP format
Tinker tinker files are simple coordinate files similar to XYZ format files, but including atom type and bonding information. If the first line only contains an atom count then the filename must be preceded by tinker::.
V3000Symyx (formerly Molecular Design) V3000 Connection Table (CTAB or SDF) data file. Starting with Jmol 14.2, Jmol supports DATA Sgroups for reading atom properties:

  M V30 BEGIN SGROUP
  M V30 1 DAT 0 ATOMS=(1 1) FIELDNAME=pc FIELDDATA=-0.2344
  M V30 1 DAT 0 ATOMS=(1 2) FIELDNAME=pc FIELDDATA=0.3344
  M V30 1 DAT 0 ATOMS=(1 3) FIELDNAME=pc FIELDDATA=-0.4344
  M V30 END SGROUP

If the field name contains "partial" then Jmol will assign atom partial charges directly. Other properties will be read as {*}.property_xxx, where xxx is the field name.
WebMOWebMO molecular orbital file reader
VASPVienna Ab Initio Simulation Package VASP vasprun.xml, CHGCAR, and OUTCAR files.
Wien2kWien2k data files. WIEN2k performs electronic structure calculations for solids using density functional theory. Using the option spacegroup "none" disregards symmetry information given in the file and simply reads the atom coordinates given in the file, including MULT atom records. For example, load t.struct {1 1 1} spacegroup "none"
XYZMinnesota Supercomputer Institute XMol file format. Various extensions to this file format allow reading of the following information separated by whitespace:
element x y z
element x y z vibX vibY vibZ
element x y z charge
element x y z charge radius
element x y z charge vibX vibY vibZ
element x y z charge vibX vibY vibZ atomNumber

If the charge is an integer, it is read as formalCharge; if it is decimal, then as partialCharge. Any information past x y z is optional, and if missing or uninterpretable as a number (for example, "X" or "--") will be ignored. The element may be either an atomic symbol or an isotope symbol such as 13C or an atomic number such as 6.
ZMatrixThe Z-Matrix format allows for molecules to be described by internal coordinates (distances, angles, and dihedrals) rather than in terms of actual Cartesian coordinates. Jmol can read several forms of Z-matrix data, including MOPAC and Gaussian format as well as a format designed for Jmol that allows also the simple introduction of bond order. Details are given in the Z-Matrix reader code itself. The reader supports dummy atoms, atom labels, symbolic variable definitions, Cartesian coordinates or a mix of Cartesian and internal coordinates, alternative distance + two angles rather than distance + angle + dihedral, and specification of bond order. (Jmol 12.3.8). Gaussian and MOPAC file names must be preceded with ZMATRIX:: to bypass attempted format identification, as those file formats have no easily recognizable internal characteristics.


[ZIP/JAR files and JmolManifest]    back

Jmol can read specific files within compressed ZIP and JAR collections. In addition, for the load command specifically, Jmol will look for a file within the collection with the name JmolManifest and follow the directives within it. These directives may be as simple as a list of files to be loaded, one filename per line (which will be read in the order listed). Lines starting with # are comment lines, which may contain any text, but also may contain one or more of the following keywords:


#EXCEPT_FILESThe list of files specifies files to ignore, not files to load; all other files will be loaded.
#IGNORE_ERRORSTry to read files, but ignore errors when a file is not recognized as a valid model format that Jmol can read. This option allows easy "mining" of ZIP collections for files that Jmol can recognize, ignoring all others.
#IGNORE_MANIFESTIgnore this manifest in its entirety -- simply read all files in the order retrieved by the ZIP file iterator.


[General Options]    back

The following options may be indicated after specifying the filename. Each is optional, but if more than one option is indicated, options must be given in the order listed in this table.


MANIFEST "manifestOptions" If the file being loaded is a ZIP or JAR file, Jmol will search for a file in that compressed file collection with the name "JmolManifest" and process it accordingly (see above). However, in the load command, if the keyword MANIFEST and a quoted string follows the filename, then Jmol will use this string as the manifest instead, with lines of the manifest separated by vertical bar "|" characters. In this way, standard ZIP collections can be read, and the order of file loading can be specified. For example: load "test.zip" manifest "CH3CL.MOL|CH4.MOL" reads only these two files from the ZIP collection, in this order. If the file contains a manifest and that manifest is simply to be ignored, the quoted string should read "IGNORE_MANIFEST".
(integer) Loads only the specified model number (if positive) or vibration number (if negative), skipping the others. For PDB files, the number indicated is the number specified in the MODEL record. (Not supported by all file types.) See also load MODELS.
{unitCell(s)} see Crystallographic Options, below
OFFSET {x y z} You can offset atoms in a file by a given amount at load time. The offset can be expressed in fractional coordinates, such as {1/2 1/2 1/2}, and although primarily intended for CIF file reading, can be applied to any file type. If a space group and/or unit cell are specified, the OFFSET parameter must follow that specification.
FILTER The FILTER parameter specifies file-type specific load options (see below). Options should be separated by commas. For atom selection, more than one specification may be made using a comma between specifications: *:1,*:2, but * and ! may not be mixed within any one type (atom name, group name, or chain ID). "|" indicates OR in a broader context: load 1blu.pdb filter "*.CA | HETATM,![HOH]" selects for alpha carbons OR (HETATM and not HOH).


[Crystallographic Options]    back

The following crystallographic options may be indicated, starting with the specification of the unit cell. If more than one option is indicated, options must be given in the order listed in this table.


{lattice} Jmol can read unit cell and symmetry information from selected file types (for example, CIF, PDB, or SHELX). The specific set of unit cells to load can be specified one of two ways -- either using the notation {i j k} or the notation {ijk i'j'k' n}.
{i j k} 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 unitcell {1 1 1}, and the display of atoms can be restricted to that center cell using restrict cell=666 or restrict cell={2 2 2}. Multiple unit cell loading can be combined with the single-model loading by indicating the model number first, then the number of unit cells: load "myfile.cif" 15 {3 3 3}. Quotes are not required. There is no restriction other than memory on the size of i, j, and k (except that all must be positive).
{ijk i'j'k' -1} Loads a block of unit cells within the range ijk and i'j'k' (which should include 555) and packs all atoms into the designated set of cells. If atoms are on faces, those atoms will be duplicated at each equivalent face.
{ijk i'j'k' 0} 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 spacegroup 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 symmetry.
{ijk i'j'k' 1} Loads a block of unit cells within the range ijk and i'j'k' (which should include 555), normalizing the operators to move the geometric center of the generated set of atoms into cell 555, then applying the lattice translation. Thus, load "filename" {555 555 1} is equivalent to load "filename" {1 1 1}. For example, load "myfile.cif" {444 666 1} 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/}.
CENTROID x.x The CENTROID keyword specifies that molecular crystal models should be created consisting of all molecules having their center of geometry, or centroid, within the specified block of unit cells (or {1 1 1} if not specified). The result is full molecules that are not broken across unit cell boundaries, with no duplication from one crystal face to another. Followed x.x allows expanding the range within which the geometric center of the molecule must lie. For example, load =aflowlib/45.2 CENTROID 0.5. The presence of a range forces packing; if packing is wanted without a range, use CENTROID PACKED. Note that only one shell of unit cells is added around the 555-unit cell in order to find molecular fragments. If atoms in a molecule extend beyond this range, they are truncated. To extend the number of molecules beyond this range, add a lattice range, as in load aflowlib/45.2 {2 2 2} CENTROID PACKED.
PACKED x.x The keyword PACKED may be used in place of {555 555 -1} or after a designated set of cells: load t.struct {2 2 2} PACKED in order to load a set of atoms packed into the unit cell. If atoms are on faces, those atoms will be duplicated at each equivalent face. An optional range in fractional coordinates can be specified for including atoms that are outside the specified unit cell (default 0.02).
SUPERCELL {na nb nc} The SUPERCELL option allows reassigning the unit cell as any multiple of the actual unit cell. If this option is used, the final loaded symmetry is automatically set to P1, and cell parameters a, b, and c will be modified. A larger lattice can still be indicated, in which case they refer to how many supercells will be loaded. For example: load "quartz.cif" {2 2 2} supercell {5 5 1} will create a supercell that is 5x5x1 standard unit cells in size and then load a set of eight of those. SUPERCELL defaults to PACKED, but simply adding a lattice overrides this: load ... {1 1 1} SUPERCELL ... .
SUPERCELL "axisFormula" This supercell option allows creating a supercell using a linear combination of the x, y, and z vectors of the file-based unit cell. If this option is used, the final loaded symmetry is automatically set to P1, and cell parameters a, b, c, alpha, beta, gamma will be modified. For example, load "quartz.cif" packed supercell "2x, x + 2y, z" will load a rectangular unit cell instead of the hexagonal cell indicated in the file. You can add an origin offset to this specification as well: load quartz.cif supercell "2a,2b+a,c;1/2,0,0" allows adjusting origin without changing symmetry operations. The supercell option is equivalent to FILTER with cell=: load quartz.cif filter "cell=2a,2b+a,c;1/2,0,0". Note that the default lattice is set to {555 555 -1} (i.e., PACKED) with a range based on the supercell dimensions. To indicate a specific range for packing that is not the default of 0.02, simply indicate that explicitly: load quartz.cif PACKED 0.10 supercell "2a,2b+a,c;1/2,0,0".
RANGE x.x Restricts the atoms loaded to those within a given range in angstroms. If x.x is positive, then this range is relative to the entire set of atoms that would be generated using load "filename" {1 1 1}, and all atoms within the given distance from ANY atom in that set is loaded; if x.x is negative, then the range is relative to the atoms that would be generated using just load itself (the base x,y,z symmetry set), and the atoms loaded are all those within a box that is the designated distance larger than that needed to just contain the set of atoms. Then, to later select atoms actually within a given distance from the base set, use within with select or display: load 1crn.pdb {1 1 1} range -4; display within(4.0, symop=1555). (This two-step sequence is very efficient.) Note that Jmol will expand the load box by one number in each direction in order to find atoms that are outside of {i j k} but still within the designated range: load {555 555 1} range 2 actually checks all atoms within the 27-cell range 444 through 666.
FILL Fills (packs) a 10x10x10 Angstrom box (bounded by {0 0 0} and {10 10 10}) with atoms, regardless of the unit cell. This option allows comparing and visualizing crystal structures in a common range of space.
FILL x.y fills cubic box of the specified dimension. For example, load quartz.cif FILL 20.0.
FILL BOUNDBOX Fill the space defined by the current boundbox.
FILL UNITCELL Fill the space defined by the current unit cell. additional options include FILL UNITCELL PRIMITIVE and FILL UNITCELL CONVENTIONAL. Usually used with load "", as the current unit cell is defined for the model currently loaded.
FILL [o vabc] Fill a rectangular space bounded by two corners of a diagonal. For example, load quartz.cif FILL [ {0 0 0} {10 10 10} ]. Note that the parameter after FILL is an array, not just two coordinates. Fractional coordinates are allowed, and if present refer to the current unit cell, not the one being loaded.
FILL [o va vb vc] Fill an arbitrary unit cell defined by an origin and three crystallographic axis vectors.
SPACEGROUP "name" Loads a block of unit cells between the origin, {0 0 0} and the specified unit cell system coordinate. If the name is empty quotes, the space group of the currently loaded file will be used. In addition, the symmetry inherent in the file is ignored, and the specified space group is applied. Quotes are required around the space group name. If the space group name itself includes double quotes, use two single quotes or an "escaped double quote" (\") instead. For example: P 32 2" (single quotes here) or P 32 2\", not P 32 2". Generally Jmol reads the Jones-Faithful operators from a file, however if the spacegroup name is specified as "ignoreOperators", Jmol will ignore any explict file-based Jones-Faithful operators and instead create the symmetry based on parsing of the space group symbol in the file (Hermann-Mauguin, Hall, or international table number). If the name is a semicolon-separated list of Jones-Faithful operators, such as "x,y,z;x+1/2,y,z", Jmol will ignore any explict file-based operators and instead create the symmetry based on the list provided.
UNITCELL [a,b,c,alpha,beta, gamma] or
"a=...,b=...,c=...,alpha=...,beta=...,gamma=...."
Specifies the unit cell to use for models in this file. If a unit cell is specified in a file, then this option allows overriding that specification. A 0 for b implies polymer (1D) periodicity (and c is ignored), otheriwse a 0 for c indicated slab (2D) periodicity. When both SPACEGROUP and UNITCELL are provided, Jmol can display molecules found in standard Cartesian coordinate files (XYZ, MOL, PDB) as packed unit cells. The second (string) format, if used, must specify the parameters in the indicated order.
UNITCELL [ax, ay, az, bx, by, bz, cx, cy, cz]Specifies the unit cell in terms of the XYZ coordinates for the vectors a, b, and c. If bx = by = bz = 0, then cx, cy, and cz are ignored, and polymer (1D) periodicity is implied; otherwise, if cx = cy = cz = 0, then slab (2D) periodicity is implied. UNITCELL "" uses the unit cell of the currently loaded file. This allows, for example, adding of atoms to a crystal model using fractional coordinates:

set appendNew false
LOAD DATA "append"
1
testing
Na 0.5 0 0.5
end "append" {1 1 1} spacegroup "" unitcell ""
UNITCELL "a=...,b=...,c=...,alpha=...,beta=...,gamma=...." Specifies the unit cell from a string such as "a=10,b=10,c=20,alpha=90,beta=90,gamma=129".


 load

The load command by itself or with empty quotes reloads the current file.

 load keyword "filename"

An optional keyword, APPEND, DATA, FILES, MENU, MODELS, or TRAJECTORY, may be supplied prior to the quoted filename. Other keywords are ignored. (Jmol does not use the Chime-style keyword to specify "file format". Rather, file format can be forced by prefixing a filename with "xxxx::" where "xxxx" is a Jmol file type. However, this should not be necessary in most cases, since Jmol determines file type by scanning the first lines of a file for file-type-specific content. (In certain cases, where there are extensive comments at the beginning of a file, it is possible for Jmol to fail to discover the file type or to misassign it. In that case, xxxx:: should be used.)

 load "filename" (integer)

Jmol automatically determines file type based upon the contents of the file. Quotes are recommended. Files containing fractional coordinates are displayed with their unit cell visible. load "" reloads the current file. For files containing multiple models, an optional integer after the file name will load only the specified model. If this number is negative, it refers to a specific vibrational mode in files that contain that information . If this number is 0, it refers to the last model in the set . In the case of PDB and mmCIF files, this number refers to the model number specied in the MODEL record or _atom_site.pdbx_PDB_model_num field, respectively.

 load "filename" [i j k l m...]

An additional way to load a specific set of models involes using an array just after the file name, starting with model 1 for the first. The order of models is not significant. Thus, [1 2 3] is the same as [3 2 1] and loads the first three models only. (Note that if you want to display models in a different sequence then they appear in a file, you can do that with the frame command.) In the case of PDB and mmCIF files, these numbers refer to the model number specied in the MODEL record or _atom_site.pdbx_PDB_model_num field, respectively. A comparison of load options using just a model number or an array is given below:

load "" loads the first model in a file when not PDB or mmCIF or the model with MODEL 1 record for a PDB file or the model with _atom_site.pdbx_PDB_model_num = 1 for an mmCIF file.
load "" [1] same as load "" 1; brackets allow for more than one model.
load MODELS ({1}) ""(see load MODELS) always loads the SECOND model in a file, regardless of its indicated model number.

 load "filetype::filename"

File format can be forced by prefixing a filename with "xxxx::" where "xxxx" is a Jmol file type. This should not be necessary in most cases, since Jmol determines file type by scanning the first lines of a file for file-type-specific content. In certain cases, however, where there are extensive comments at the beginning of a file, or a file type (such as MDCRD) does not have any distinguishing characteristics, it is possible for Jmol to fail to discover the file type or to misassign it. In that case, adding "xxxx::" is necessary.

 load "remoteFilename" AS "localFileName"

Loads a remote file and then also saves it locally. For use with the Jmol application and signed applet only.

 load @variableName

Loads the file with the name specified by variable variableName. You can load a set of files that are defined in an array variable.

 load INLINE "fileData"

Loads the file data given in quotes. Generally this would be a small molecule in JME or XYZ format.

 load "@variableName"

You can load a model from data contained in a variable. This allows modification of the data prior to display, for example. Quotes are necessary, as without them -- load @x -- it is the file name that is expected in variable x, not the file contents. For example: x = load("quartz.cif");load "@x" {2 2 2};reset x. Note that to save memory, it is a good idea to clear the variable using reset x just after loading. An interesting aspect of this option is that it allows data from a remote file to be saved in the state. This means that if you use write state "somefile.spt", then that single state script will contain the full file data in a DATA statement. It will be "transportable" and no additional model file will be required. (See also the PNGJ format for the write command, which is even better.)

 load VAR x

Loads the file data given in variable x; same as load "@x" but in the same syntax as write VAR x.

 load *XXXX

You can load mmCIF files directly from http://www.ebi.ac.uk/pdbe. Simply preface the four-letter PDB id code with "*", and Jmol will load the file. Using load "*?" offers the user a prompt for a PDB id. As for other file laoding, you can adding "AS ." ("as" with a period) you can save that file automatically in the default directory (as xxxx.cif), and using, for example, load *1crn AS "myfile.cif", you can save it to some other local file name. Starting with Jmol 14.4, you can add "/dssr" to the PDB id to also read RNA/DNA secondary structure information from Columbia University, "/rna3d" for RNA secondary structure annotations from http://rna.bgsu.edu/rna3dhub, sequence domain annotations using "/dom", and structure validation annotations using "/val".

 load *XXXX*

Appending a * to a PDBe ID loads a PDBe "updated" CIF file, which allows PDB CONECT-like bond creation. An example of such a file can be found here. This is a suitable replacement for PDB CONECT, integrating information found in _chem_comp_bond and _struct_conn categories. Note that the presence of _chem_comp_bond records in these files will enable processing of _struct_conn as well, regardless of filter "addbonds".

 load =XXXX

You can load PDB files directly from http://www.rcsb.org or another server of your choice. (This depends upon the setting of set loadFormat). Simply preface the four-letter PDB id code with "=", and Jmol will load the file. Using load "=?" offers the user a prompt for a PDB id. Adding "AS ." ("as" with a period) you can save that file automatically in the default directory (as xxxx.pdb.gz), and using, for example, load =1crn AS "myfile.pdb", you can save it to some other local file name. The default is to transfer the file in g-zipped format; If you add ".pdb" to the expression -- load =1crn.pdb, for example -- then Jmol will transfer and save the uncompressed PDB file. Starting with Jmol 14.2, you can add "/dssr" to the PDB id to also read RNA/DNA secondary structure information from Columbia University. Starting with Jmol 14.4, you can load "/rna3d" for RNA secondary structure annotations from http://rna.bgsu.edu/rna3dhub, sequence domain annotations using "/dom", and structure validation annotations using "/val".

 load ==XXX

You can load PDB ligand (chemical component) files directly from http://www.rcsb.org or another server of your choice. (This depends upon the setting of set loadLigandFormat). Simply preface the three-letter PDB id code with "==", and Jmol will load the file. Using load "==?" offers the user a prompt.

 load =database/id

You can load files from a named database. Options (Jmol.4.6) include:

mp load =mp/24972 loads a file from http://www.materialsproject.org
ligand load =ligand/hem RCSB chemical component file
nci load =nci/CC NCI CACTVS Resolver
pdb load =pdb/1crn RCSB pdb files
iucr load =iucr/wf5113sup1 IUCr Acta Cryst B supplemental files
cod load =cod/1000002 Crystallography Open Database
iucr load =pdbe/1crn CIF file from PDBe
iucr load =pdbe2/1crn CIF file from PDBe (alternative)
aflow load =aflow/AgAu AFLOW binary metal alloy file
magndata load =magndata/1.1.3 MAGNDATA magnetic crystal database (Bilbao Crystallographic Server
ams load =ams/quartz American Mineralogist Crystal Structure Database

 load ":chemical name"

You can load models from PubChem. Preface the compound name with colon. Quotes are only required if nonalphanumeric characters are present in the name.

 load $smilesString

You can load SMILES strings, and Jmol will turn them into 3D models using the NIH Cactus server. As for reading files from any source outside your domain, you will have to use the signed applet or Jmol application to do this. These files can be saved as MOL files using write xxx.mol or load $xxxx AS "myfile.mol", and if the conformation is not to your liking, switching to set modelkitMode or using set picking dragMinimize you can quickly adjust the model to the desired conformation. Quotation marks should be used for names that include the space character: load "$ethyl acetate".

 load $identifier

The service at https://cactus.nci.nih.gov is not limited to SMILES strings. The database includes several million known compounds, which are accessible by CAS registry number, InChI codes, and chemical name as well. For example, load $57-88-5 loads a model of chlolesterol, and load $taxol as "taxol.mol" loads a model of taxol and saves it on your hard drive. This service taps into the OPSIN service of Cambridge University to return structures from IUPAC or IUPAC-like names.

 load $?

Loads structure from NCI/CADD with prompt.

 load ==?

Loads chemical component from RCSB with prompt.

 load =?

Loads PDB ID from RCSB with prompt.

 load *?

Loads PDB ID from EBI with prompt.

 load :?

Loads structure from pubChem with prompt.

 load $

Using just LOAD $ will load the current structure from NCI/CADD by passing a SMILES string to that service. The NCI/CADD service will create 3D models directly from SMILES using CORINA, if necessary. Using load "$?" offers the user a prompt.

 load :

Using just LOAD : will load the current structure from PubChem by passing a SMILES string to that service. Note that PubChem, unlike NCI/CADD, will only deliver models that have been deposited in its database. Using load ":?" offers the user a prompt.

 load chebi/nnnnnn

chEBI 2D molecule load, with minimal 100-step minimization.

 load .. CENTROID

Use for molecular crystal structures and loads one or more unit cells (as specified by {nx ny nz})
exploring covalent bonding so that molecules that have their centroid (center of geometry) within the specified block of cells are built. For example:
load =cod/1001253 {1 1 1} centroid

Note that {1 1 1} here is unnecessary, as it is the default.

 load .. SPACEGROUP "Hall:P 2y"

Allows prefix "Hall:" to specify Hall notation along with SPACEGROOUP 3 or SPACEGROUP "10:b". Allows for experimentation with different space groups.

 load SPACEGROUP 213 UNITCELL [5 5 5 90 90 90]

Creates an empty structure with the designated space group and unit cell; User is expected to match the correct type of unit cell to the given space group.

 load ORIENTATION

The ORIENTATION keyword specifies that after the file is loaded, the orientation should be returned to its original value. This orientation can be restored later using restore orientation PRELOAD.

 load SMILES "smilesString"

An alternative to the $ syntax for loading SMILES strings.

 load "filename" FILL ..

The FILL option, described more fully under Crystallographic Options, allows filling an arbitrary space with a set of atoms from a crystallographic file. When the file has no unit cell, this option simply loads the file with the specified boundbox.

 load "filename" FILTER "filter specification"

For individual file types, it is possible to filter the data in the file as it is loaded. The FILTER keyword followed by a quoted string allows for this. The FILTER keyword must be the last keyword in the LOAD command. Specific filters include:

General file types
allFILTER "NAME=..." loads only those models with a name that contains a specified set of characters.
allFILTER "CENTER"centers all models in a file based on the first model"s position.
allFILTER "REVERSEMODELS" delivers the models in reverse order . Useful for intrinsic reaction coordinate (IRC) animations.
2D dataFILTER "NOH" or FILTER "noHydrogen"For 2D structures (MOL, V3000, CDX, CDXML, JME), loads the structure as is, without adding H or converting to 3D. This may be useful for automated processes that simply need to create SMILES or InChI but not actually display any structure.
2D dataFILTER "NOMIN"For 2D structures (MOL, V3000, CDX, CDXML, JME), loads the structure with added hydrogens but without converting to 3D. Atoms may be adjusted in preparation for minimization, but no minimization is carried out.
manyFILTER "NOVIB" skips the reading of vibrations for any file that contains them.
Small molecule file types
CDX, CDXML FILTER "NO3D" Some CDX and CDXML files contain both 2D and 3D coordinates. The default for Jmol is to read the 3D coordinates if they are present. This is not generally advisable, however, as they can be quite odd, particularly if abbreviations such as Ph or t-Bu have been used. This setting forces any 3D coordinates in the file to be ignored, loading the model in 2D followed by conversion to 3D in Jmol. The combination filter "no3d noH nomin" will display the CDX or CDXML file as it would be drawn, using only the 2D coordinates, adding no hydrogen atoms, and doing no minimization.
MOL FILTER "2D" indicates to consider the file a 2D file and to apply a automatic hydrogen addition and 2D-to-3D conversion immediately upon loading. "2D-noMIN" does the hydrogen addition but no minimization.
MOL FILTER “no 3D” Loads a 2D model with no conversion to 3D, particularly for V3000 and ChemDraw; no effect for standard 3D models.
MOL FILTER “noHydrogen”(Or just “NOH”) Loads a 2D model with no additional hydrogens and no minimization; allows for SMILES and InChI creation directly from the 2D model.
Biomolecular file types
PDB, mmCIF, MMTF, binCIF FILTER "ALLHET"By itself, does nothing, but in conjunction with any other atom filter, such as /=2 or *.CA passes any HETATM regardless of that atom filter.
mmCIF FILTER "ADDBONDS" One of the deficiencies of of the mmCIF format as originally defined is that it does not reproduce the CONECT records of PDB files. The ADDBONDS filter instructs Jmol to process mmCIF_struct_conn records. These records are similar to PDB CONECT records, but they indicate only inter-group connections, connecting one group with another. Types included by Jmol include covale, covale_base, covale_phosphate, covale_sugar, disulf, and metalc. Ignored types include hydrog, mismat, modres, and saltbr. This filter is not necessary when reading updated CIF files from PDBe (See *xxxx*, above).
mmCIF, PDB, MMTF FILTER "ADDHYDROGENS" Add hydrogens regardless of the setting of pdbAddHydrogens.
mmCIF, PDB, MMTF FILTER "ASSEMBLY n" loads a specific CIF assembly. (Same as BIOMOLECULE.) For example, load =1vif.cif filter "ASSEMBLY 1". Specific label_asym_id can be selected as well: load =1vif.cif filter "ASSEMBLY 1;$A" (just label_asym_id A); load =1vif.cif filter "ASSEMBLY 1;!$C" (just label_asym_id values not C).
mmCIF, PDB, MMTF FILTER "ATOM" selects only ATOM records (see also FILTER "HETATM")
mmCIF, PDB, MMTF FILTER "BIOMOLECULE n" where n is a number > 0 indicating which biomolecule to load. In addition, #<n or any number of # n or !#n can be indicated in order to load just a specific subset of biomolecular transformations related to the specified biomolecule. Adding "NOSYMMETRY" along with BIOMOLECULE, indicates that the symmetry transformations in the REMARK 350 BIOMT records should be ignored. See also the BMCHAINS filter option.
mmCIF, PDB, MMTF FILTER "BMCHAINS=mode" Rename chains when applying symmetry operations so that they have distinct names. "BMCHAINS=0" appends the symmetry operation number (2,3,...) to chain identifiers of all generated atoms, so {A B A B A B} mitght become {A B A2 B2 A3 B3}. "BMCHAINS=1" extends the single-character alphabetization, so {A B A B A B} might become {A B C D E F}.
mmCIF, PDB, MMTF FILTER "BYCHAIN" designed for extremely large high-symmetry biological assemblies, this filter loads a file in a coarse-grained fashion, assigning one pseudoatom per chain. The size of this atom can be made larger than the atom-size maximum of 16 Angstroms using set particleRadius with a larger value and then setting spacefill 30 (or any number greater than 16). Normally accompanied by BIOMOLECULE or ASSEMBLY, for example: load =3j3q.cif filter "ASSEMBLY 1;BYCHAIN".
mmCIF, PDB, MMTF FILTER "BYSYMOP" similar to BYCHAIN, but one pseudoatom per symmetry operation. For example: load =1m4x.cif filter "ASSEMBLY 1;BYSYMOP".
mmCIF, PDB, MMTF FILTER "HETATM" selects only HETATM records (see also FILTER "ATOM")
mmCIF, PDB, MMTF, GROMACS, MDTOP FILTER "[XXX], .XXX, :X, %X" to specify inclusion or exclusion of specific residue types, atom types, chains, or alternative locations. The prefix "!" indicates NOT. Within each of these four sets, multiple selections are treated as "OR" without "!" and "AND" when "!" is present. With % (alternative location), atoms with no alternative location marking are ALWAYS loaded regardless of this filter. For example, load "1sva.pdb" filter "*.CA,%B" loads only alpha carbons that correspond to the conformation involving alternative location B; filter "![HOH]" filters out water molecules.
PDB FILTER "CONF n" Loads only a specific configuration based on alternative locations. "CONF 1" loads only atoms in the first configuration -- usually %A and % ("undesignated")
PDB FILTER "TYPE i,n" loads customized column data into the atomType property of the atoms. The two numeric parameters are 1-based column number and number of columns. For example: load xxx.pdb filter "TYPE 73,4".
PDB FILTER "TYPE i,n=XXX" loads customized column data into the atomType property of the atoms, selecting only those atoms starting with the specified characters in the specified field.
P2N FILTER "ALTNAME" Use the altName field of the P2N file for atom names.
PYMOLFILTER "DOCACHE"caches surface data, creating a JVXL equivalent, specifically useful for JSmol. When using the "doCACHE" option (in the Jmol Java application), file loading should be followed immediately with WRITE PNGJ "xxx.PNG". The PNGJ file can then be loaded much more efficiently than the PSE file on a web page using JSmol/HTML5.
PYMOL FILTER "NOSURFACE"load a PyMOL file without surface creation, which can be slow.
PyMOLFILTER "ShowValence"May be needed for PyMOL files that have not been saved with valence setting ON in order to show multiple bonds in Jmol. Note that the PyMOL valence_mode setting is NOT implemented in Jmol.
Crystallographic file types
CIF, various FILTER "CELL=abc;offset" specifies a specific cell in relation to the unit cell given in the file using MCIF parent/standard cell notation. For example, filter "CELL=a/2,2b,c;0,0,1/2" (see unitcell).
CIF, various FILTER "LATTICESCALING=1.2"Scales the model based on a crystal lattice expansion factor, allowing direct comparison of related structures with slightly different lattice scalings.
CIF, variousFILTER "POLYMERX"Loads a crystal structure as a linear polymer, packing only in the X direction. Compatible only with P1 symmetry. For example: load =ams/quartz 1 packed;load inline @{write("CIFP1")} {3 1 1} filter "POLYMERXY"
CIF, variousFILTER "Precision=n" and FILTER "lowPrecision" "PRECISION=n" where n is up to 16 digits specifies the precision to use for a given file, possibly lowering the precision from what is in the file. For example, AFLOWLIB files tend to have their precision hidden by padding with zeros:
U1 U 4 a 0.00000 0.00000 0.00000 1.00000
B1 B 48 i 0.50000 0.66600 0.66600 1.00000
This could cause trouble with some edge cases or when determining Wyckoff positions. One could prevent the problem using filter "PRECISION=3" in this case, explicitly ignoring the padding and turning "0.666" into "0.66666667". Using filter "lowPrecision", one can set the precision to 4 (+/-0.0001) for fractional coordinates. This filter specifies that crystal structure readers should not attempt to raise the precision to single- or double-precision even if the file contains double-precision data. It also sets PACKED 0.0001 rather than the standard default value of 0.02 (which tends to allow too many atoms to be included) in some cases.
CIF, various FILTER “SLABXY” or “POLYMERX” Loads a crystal structure as a slab (SLABXXY) or polymer (POLYMERX). Packs only in the periodic direction (xy or x). This option is compatible only with P1 symmetry. For example:

load =ams/quartz 1 packed
x = write("CIFP1")
load INLINE @x {3 3 1} filter "SLABXY"

CIF, various FILTER "SYMOP=n" loads just the atoms that are the result of the nth symmetry operator.
CIF FILTER "MOLECULAR" instructs Jmol to attempt to complete molecules using either the bonding information in the CIF file or standard van der Waals radii. If this filter is not present and no lattice is indicated either, if bonding information is present in the file, Jmol will use that information to automatically complete molecules.
CIF FILTER "NOIDEAL" for mmCIF chemical composition files (for example, load ==HEM) uses the _chem_comp_atom.pdbx_model_Cartn_x set of coordinates rather than the default _chem_comp_atom.pdbx_model_Cartn_x_ideal set
CIFFILTER "NOWYCKOFF"Skip reading atom_site_wyckoff_label, allowing Jmol to calculate these positions itself. (For Jmol development testing purposes, primarily).
CIFfilter "StopOnSHELXHKL"Improves load time by stopping reading when a _shelx_hkl_file tag is found. This filter should not be used with multiple structures. Prior to Jmol 16.2.19, this filter was effectively set, but that causes problems for multiple-structure CIF files.
CIF, JANA2006 FILTER "NOSYM" do not apply symmetry
mCIF FILTER "CELL=parent" loads and packs the parent cell, if designated in the file. If packing is not desired, use "nopackcell" instead of "cell".
mCIF FILTER "cell=standard" loads and packs the standard cell, if designated in the file. If packing is not desired, use "nopackcell" instead of "cell".
msCIF, JANA2006 FILTER "MODAVERAGE" do not read modulation
msCIF, JANA2006 FILTER "MODAXES=xyz" read modulation only along specific axes -- x, y, and/or z
msCIF, JANA2006 FILTER "MODCELL=n" use subsystem n for initially created unit cell, generating the command unitcell {%1} for instance upon file loading.
msCIF, JANA2006 FILTER "MODNOPACK" do not pack subsystem cells
msCIF, JANA2006 FILTER "MODT=t" set initial (zero-point) modulation to t, where t can be a decimal number or a fraction such as 1/3.
msCIF, JANA2006 FILTER "MODTUV=t,u,v" set initial (zero-point) modulations for up to three cell wave vectors, where t,u,v can be decimal numbers or fractions such as 1/3.
BCS FILTER "NONORM" reads displacement data from BCS files (particularly in relation to AMPLIMODES files) without normalization, allowing comparison of displacement magnitudes between different models.
CGD FILTER "NOBONDSYM" Do not apply symmetry operators to bonds -- just create the ones present in the file.
CGD FILTER "NOPACK" Do not pack cell (default for this type is to pack the cell).
topoCIFFILTER "TOPOL"
FILTER "TOPOLNET"
For topological CIF files, reads the net from the _topol_* data blocks. Displays net 1 by default. load "xxx" {1 1 1} filter "TOPOL" will do the same, constructing the {1 1 1} unit cell, with symmetry. Also works with fill or packed. Displays net 1 by default. load "xxx" {1 1 1} filter "TOPOLNet=2" displays net.id=2; load "xxx" {1 1 1} filter "TOPOLNet=Net_2" displays net.name="Net_2". Additional filters include filter "topos_type=x" where x is v, vw, hb, or some concatenation of those using "+", and filter "topos_ignore", which skips reading of _topol records, reading as a standard CIF file.
Quantum computing file types
manyFILTER "NOMO" skips the reading of molecular orbitals for any file that contains them.
CASTEP FILTER "Q=..." for .phonon files, filter "q=n" loads the nth q-point frequency modes. "q=all" reads all phonon modes. For files with multiple extrapolations to q=0, "q=0.1", "q=0.2", etc... loads a specific extrapolation. Q-points can also be specified in terms of fractions, "q=(1/2 1/2 1/2)", or decimals, "q=(0.333 0.111 0.333)". If no filter is specified, but the SUPERCELL keyword is used, Jmol will attempt to find the appropriate matching q-point data for that supercell.
CRYSTAL FILTER "CONV" load conventional, not primitive cells.
CRYSTAL FILTER "INPUT" load input coordinates only.
CSF, SPARTANFILTER "NOORIENT" prevents application of the rotation matrix found in the file as the default rotation.
GAMESS, GAUSSIAN, GenNBO, Jaguar, Molden, NWChem, PSI, and QCHEM FILTER "xxx" where "xxx" is a word on the line Jmol uses to identify a molecular orbital. This allows selective loading of specific types of molecular orbitals -- such as "alpha", "beta", or "NBO" -- for any of these file types, "POPULATION" or "EDMISTON" or "PIPEK" for GAMESS. ("NBO" refers to orbitals generated with the NBO 5.0 option AONBO=P; "EIGEN" or "!NBO" will skip loading of these orbitals.)
GAMESS, Gaussian, QChem, NWChem FILTER "NBOCHARGES" specifies to use atomic partial charges from the NBO calculation. Note that this flag is independent of the NBO filter option. To use both, separate them with a comma: load "myfile.out" filter "NBO,nboCharges".
GAMESS (US) CHARGE=LOW indicates to load Lowden charges rather than Mulliken charges.
Gaussian FILTER "ORIENTATION:..."Orientation filters returning the specified orientation, one of filter "orientation:input" (includes Z-Matrix), filter "orientation:standard", filter "orientation:all". Note that vibrations are only returned if orientation is ALL or STANDARD.
Molden FILTER "NOSORT"Do not sort MOs by energy.
Molden FILTER "OPTONLY"Load optimized structure only.
Molden FILTER "SYM=xxx"Load only molecular orbitals for which the Sym= line in the [MO] block contains the text "xx".
Molden FILTER "VIBONLY"Load vibrations only, not the base geometry.
SPARTANFILTER "MULLIKEN" loads Mulliken charges rather than the default ESP charges. (ESP charges are better for displaying molecular electrostatic potential maps using isosourface molecular map MEP.)


Examples:

   See examples-11/sym.htm 


See also:

[Jmol Precision] [Jmol and Symmetry] [Jmol/JSpecView/MagresView] cache define initialize set (files and scripts) zap undefined



top search index

load FILES 

Adding FILES to the load command indicates that a set of files are to be loaded . Filenames must be quoted. Each model encountered is put into a new "frame." No additional parameters other than COORD are allowed (see below).

 load FILES "filename1" =+ "filename2"

If a + is used between file names, Jmol will load the files as a single stream based on the first file's type. This can be useful when part of the required information for the file loading is in a second file. For example, if a PDB file and its associated DSSR data are in two files, one can use load files "xxx.pdb"+"xxx.dssr" to load the structure and process the DSSR data. (One can also use load =1crn/dssr do accomplish this particular task if the PDB and DSSR files are not available locally.)



top search index

model or models 

The MODEL command functions the same as the frame command with one exception: In the case of model n where n is an integer, and a single PDB file containing MODEL records is loaded, the integer used here refers to the number specified in a MODEL record, not the model's sequential position in the file.

 model (integer) PROPERTY DSSR "filename"

Loads DSSR data from a file.

 model (integer) PROPERTY DSSR @v

Loads DSSR data from a variable.


See also:

frame undefined



top search index

set (structure)                      

This command group allows for customization of the rendering of PDB and mmCIF secondary structures. The default is set cartoonRockets OFF; set ribbonAspectRatio 16; set hermiteLevel 0; set ribbonBorder 0; set sheetSmoothing 1; set strands 5; set traceAlpha ON.

 set cartoonBlocks OFF

Displays the nucleotides of RNA and DNA as blocks corresponding to the DSSR convention.

 set cartoonSteps OFF

Setting this parameter ON produces cartoons that have connectors for bases that look like those found in RNA step diagrams (requires load =xxxx/dssr).



variablestop search index

Index (full)


[JmolSQL] 


[atom expressions] 


[atom properties] 


calculate 
calculate STRUCTURE type [atom-expression]


color (scheme) 
color {atomSet} PROPERTY DSSR "dssrStructureType" RANGE [min] [max]


load 
load
load keyword "filename"
load "filename" (integer)
load "filename" [i j k l m...]
load "filetype::filename"
load "remoteFilename" AS "localFileName"
load @variableName
load INLINE "fileData"
load "@variableName"
load VAR x
load *XXXX
load *XXXX*
load =XXXX
load ==XXX
load =database/id
load ":chemical name"
load $smilesString
load $identifier
load $?
load ==?
load =?
load *?
load :?
load $
load :
load chebi/nnnnnn
load .. CENTROID
load .. SPACEGROUP "Hall:P 2y"
load SPACEGROUP 213 UNITCELL [5 5 5 90 90 90]
load ORIENTATION
load SMILES "smilesString"
load "filename" FILL ..
load "filename" FILTER "filter specification"


load FILES 
load FILES "filename1" =+ "filename2"


model or models 
model (integer) PROPERTY DSSR "filename"
model (integer) PROPERTY DSSR @v


set (structure) 
set cartoonBlocks OFF
set cartoonSteps OFF


last updated: Feb 21, 2025 19:11:52

html

xml docbook