Atom Specification

Atoms may be specified in commands by

or combinations of these.

When a plus sign (+) has been typed into the Command Line, it will be replaced by the atom specification string of the next picked atom. Each plus sign must be preceded and followed by a space (or the end of the line). In addition, the following are valid atom specifications:

Those familiar with atom specification in Midas may wish to consult the summary of differences.

Hierarchical Specifiers

Symbol Reference Level Definition
# model number assigned to the model by default or by the user with the open command.
: residue residue name
residue sequence number, with any insertion code appended
:: residue residue name
@ atom atom name

Multiple models (structures from multiple input files) may be displayed simultaneously. Model numbers are assigned by the user with the open command or sequentially by default. Each model consists of one or more residues, each with a sequence number. The atoms that make up a residue have names which are unique within that residue. Thus, each atom may be described by its model number, residue number, and atom name. Note that the lack of any specifier is interpreted to mean all units of the associated reference level.

The residue and atom names are determined when the input file is read in, and generally match the standard Protein Data Bank (PDB) residue and atom names. If * occurs within an atom or residue name read from a PDB file, it is changed to ' (prime symbol). Any HETATM residue that does not already have a chain identifier is assigned to chain HET, unless the residue is named WAT or HOH, in which case it is assigned to chain WATER; residue numbers are unchanged. Chain specification is described below.

Model and residue numbers are integers, although a residue number may have an insertion code directly appended. Multiple model numbers or residue numbers may be indicated by comma-separated lists and/or one or more ranges of the form start-end. The words start and end may be substituted for start and end, respectively, and all can be substituted for the whole range (same as no specification at that level).

General Form Explanation
#model(s).submodel(s) when a single PDB file contains multiple MODELs, they are considered submodels 1, 2, ... of a single model in Chimera
:residue(s).chain(s) when a single model contains multiple chains, a unique specification includes both residue number and chain identifier
@atom(s).altloc(s) when a single residue contains alternate locations of certain atoms, an independent specification includes both atom name and alternate location identifier

As explained in the preceding table, there are cases in which the basic symbols cannot uniquely specify the model, residue, or atom of interest. Submodel(s) are integers and may be indicated by a single value or a range of the form start-end; the words start and end may be substituted for start and end, respectively, and all can be substituted for the whole range (same as no submodel specification). Chain(s) and altloc(s) are alphabetical characters.

Capitalization of residue and atom names, chain identifiers, insertion codes, or alternate location identifiers is not important, with one exception: when a model contains both uppercase and lowercase chain identifiers, case matters for chain specification in that model only.

Subcategorizations are appended to the basic specification. The symbol for the relevant category (#, :, or @) must precede the subcategory specification, although they need not be immediately adjacent. Because commas are used only to separate values of the basic reference levels (model, residue, and atom), they cannot be used to separate values of the sublevels directly. For example,

is interpreted as submodels 1-3 of model 0 and all of model 5, while
indicates submodels 1-3 of model 0 and submodel 5 of all models. A subcategory specification applies only to the preceding category value(s) not separated from it by any commas (and remember that the absence of a residue number means "all"); thus
specifies CA atoms within residues 12-15 (with no chain ID), residues 16 to 18 in chain A, and residue 15 within chain B, and
means residue 50 in chain B and all residues in chain D.

Additional examples of hierarchical atom specification:

- all atoms in model 0
- peptide backbone atoms in chain A
- HETATM residue 50 in model 1
- water residue 522 (a HETATM residue named HOH or WAT)
- alpha carbon of residue 12 in chain A, model 0
- or -
- all lysine residues
- residues 45 through 83 and 90 through 98 in model 3
- alpha carbon and nitrogen of residue 12 in model 0 (in that order)
- alpha carbon and nitrogen of residue 12 in model 0 (not ordered)

Notice in the two preceding examples that the atoms CA and N may be delimited by either a comma or the @ symbol. In either case, the preceding (most recent) molecule and residue information applies to the named atoms. Using the @ notation for both atoms specifies their order. Using commas specifies a "group" of atoms, in no particular order. Thus, in specifications where the order of the atoms is significant (e.g., the match command), the @ notation should be used. For models and residues, the same conventions are followed, with @ replaced by # and :, respectively. For example, for atoms on different residues but the same model:

- alpha carbons in residue 12 and residue 14
- all atoms in residue 12 and alpha carbon in residue 14

Of the two examples above, the first gives two residues which make up a single residue specification. Therefore, the carbon atoms in both residues are selected. In the second example, the entire residue 12 and only the carbon in residue 14 are selected.

- alpha carbons in residues 12 through 20 and nitrogen in residue 14


The global wild card * matches all atoms in a residue or all residues in a model. It stands alone as a symbol, that is, it cannot be used to match parts of names, such as G* or *A. The partial wild card = matches parts of atom or residue names but not parts of residue sequence numbers; similarly, the single-character wild card ? matches single characters within residue or atom names but not single digits within residue sequence numbers. For example:

- or -
- all atoms in residue 12 of model 1
- all alpha carbon atoms in residues 50 to the end of models 0, 1 and 2
- all residues which have three-letter names beginning with G in model 2
- atoms within residue FMN which have two-letter names ending with 1
- all atoms which have names beginning with S; in general, this will be all sulfur atoms
- or -
- all atoms with one-, two-, or three-letter names beginning with H in model 0


Zone specifiers are used to select atoms and residues that are within a given distance of the referenced atom(s). z< and zr< specify all residues with any atom within the given distance from the referenced atoms. za< specifies all atoms within the given distance. z>, zr>, and za> yield the sets complementary to their < counterparts. For example,

#1:gtp za<10.5
selects all atoms within 10.5 angstroms of any atom in residue GTP, model 1.

Built-in Classifications

Atoms may be specified using the names of entries in the following parts of the Select menu:

The same pattern of capitalization and spaces, if any, as shown in the Select menu should be used. Where there is ambiguity, the parent menu should be included in the specification, for example, "IDATM type.H" or "element.H" instead of "H" alone. The parent menu can be included in this manner even when not necessary.

One can also use the names of custom amino acid categories defined with ResProp and custom categories for surface calculation defined with the command msms cat (surfcat). If a saved selection has the same name as a surface category, the saved selection will be used.

Some examples:

side chain/base.without CA/C1'
- or -
without CA/C1'
- atoms in amino acid side chains (not including CA) and atoms in nucleic acid bases (not including C1')
#1 & Mg
- magnesium atoms/ions in model 1
- atoms in carboxylate groups
- atoms automatically categorized as solvent


Attributes are properties of atoms, residues and models. The slash mark / indicates specification by attribute value. The symbol for the relevant category (@ for atom attributes, : for residue attributes, # for model attributes) must precede the slash mark, although it need not be immediately adjacent.

Multiple attributes at the same reference level (different atom properties, for example) can follow a single slash mark and should be separated by and or or. When and and or occur in the same list, and has higher priority (and-separated lists can be considered as grouped within parentheses).

The attribute names are case-sensitive; the attribute values, if any, are case-sensitive if specified with ==, but not if specified with =. Attribute values containing spaces (some color names, for example) must be enclosed by double quotes. Attributes with numerical values can also be used with > (greater than), < (less than), >= (greater than or equal to), and <= (less than or equal to).

The exclamation mark ! indicates that the atoms, residues, or models must not match the subsequent attribute specification. For yes/no properties the syntax is !attribute_name, and for multivalued properties the syntax is attribute_name!=value.

When placed before an attribute name, the caret ^ indicates that the atoms, residues, or models have not been assigned any value for the attribute. For example, :/^kdHydrophobicity designates residues (such as water or nucleic acids) that lack a Kyte-Doolittle hydrophobicity assignment.

The operators ~ and !~ can be used instead of = and !=, respectively, to indicate that the subsequent string should be treated as a regular expression.

Name and Usage Explanation
/altLoc=altloc altloc is the alternate location identifier of the atom
/bfactor=bfactor bfactor is the B-factor value of the atom
/color=color color is the color of the atom (assigned on a per-atom basis; see coloring hierarchy)
/drawMode=mode mode can be 0 (synonyms: dot, wire, wireframe), 1 (sphere, cpk, space-filling), 2 (endcap, stick), or 3 (ball, ball and stick, ball-and-stick, ball+stick, bs, b+s); see draw mode
/defaultRadius=rad rad is the default VDW radius of the atom in angstroms
/display whether display is enabled at the atom level (see display hierarchy)
/element=atno atno is the atomic number
/idatmType=type type is the atom type
/label whether the atom is labeled
/label=label label is the text of the atom label
/labelColor=labcolor labcolor is the color of the atom label
/name=name name is the atom name
/occupancy=occupancy occupancy is the occupancy value of the atom
/radius=radius radius is the radius of the atom in angstroms (may have been changed by the user from the default VDW radius)
/serialNumber=n n is the atom serial number in the input file
/surfaceCategory=category category is the name of the category to which the atom has been assigned automatically or manually using msms cat (or surfcat)
/surfaceColor=surfcolor surfcolor is the color of the atom's surface
/surfaceDisplay whether molecular surface display is turned on for the atom (however, this can be true even when the atom does not contribute to the molecular surface)
/vdw whether VDW surface display is turned on for the atom (however, this can be true even when the atom does not contribute to the VDW surface)


@ca/!label and color!=green and color!=red
- or -
@/name=ca and !label and color!=green and color!=red
- atoms named CA which are not labeled, and are not green or red
@n/drawMode=1 and color=green
- atoms named N that are green and drawn as spheres
@n/drawMode=1 or color=green
- atoms named N that are green and/or drawn as spheres
@/color=yellow or color=blue and label
- atoms that are yellow and atoms that are both blue and labeled
@/color!=yellow or color!=blue
- all atoms, because if an atom is yellow it fulfills the criterion of not being blue, and vice versa
- atoms with B-factor values greater than or equal to 50

Name and Usage Explanation
/isHelix whether the residue is in an alpha helix (true only possible for amino acids)
whether the residue is in a beta strand (true only possible for amino acids)
/isTurn whether the residue is in a turn according to PDB TURN records (true only possible for amino acids)
/kdHydrophobicity=value value is the Kyte-Doolittle hydrophobicity of the residue
/ribbonColor=ribcolor ribcolor is the color of the residue's ribbon segment (see coloring hierarchy)
/ribbonDisplay whether ribbon display is turned on for the residue (however, this can be true even when the residue is a type that does not have any ribbon, such as water)
/type=resname resname is the residue name

Amino acid residue secondary structure attributes are determined from HELIX and SHEET records in the input file, or if these are not present, using ksdssp.


:/type!=gly and type!=pro
- all residues not named GLY or PRO
:/isStrand :/isHelix
- or -
:/isStrand or isHelix
- all amino acid residues in beta strands or alpha helices
:/isStrand and isHelix
- nothing, because the criteria are mutually exclusive

Name and Usage Explanation
/color=color color is the color assigned on a per-model basis (see coloring hierarchy)
/display whether display is enabled at the model level (see display hierarchy)
/explicitHydrogens whether the model has hydrogen atoms
/lineWidth=width width is the linewidth of bonds in the model in the wire representation
/pointSize=size size is the font size of labels on the model
/vdwDensity=density density is the dot density used for VDW surfaces on the model


Atom specifications can be combined with the operators:

These operators must be space-separated from other characters. When & and | occur in the same list, & has higher priority (&-separated lists can be considered as grouped within parentheses).

Note that a different set of operators (and, or, !, etc.) are used to combine attribute tests; however, any operators can be used within the same specification (as shown in the following example).


#1:/type=asp or type=glu & #0 z<10
- or -
#1:asp,glu & #0 z<10
- aspartate residues and glutamate residues in model 1 that are within 10 angstroms of model 0
:cys@sg & ~ disulfide
- or -
:cys & S & ~ disulfide
- cysteine sulfur atoms not participating in a disulfide bond
ions za<4 & ~ ions
- atoms within 4 angstroms of atoms categorized as ions, excluding the ions themselves
ligand z<5 & ~ ligand & ~ solvent
- residues with any atoms within 5 angstroms of residues categorized as ligand, excluding ligand and solvent
Ng+ | N3+
- guanidinium nitrogens and sp3-hybridized, formally positive nitrogens (see atom types)