Introduction

The PSL (Portable Selection List) is an implementation of the AMF (Advanced Modeling Facility) selection list system. This document is a complete technical overview of all the features currently implemented.

The PSL is a set of tools which have been developed to allow programming teams to develop and support multiple "chemistry" based applications, all with the same underlying data structures, in particular, atom selection mechanisms. The PSL allows programmers to easily incorporate selection methods into existing platforms as well as systems currently under development.


The PSL currently provides functionality for selecting the following objects in molecular systems:

Additionally, each selection list may be filtered at the atom or residue level.

"selection_list" = term[/filters][ + term[/filters] ]

where:

"term" = mol_chains:residues.atoms = sites = topological_descriptors

A selection list is a notation by which a modeling user defines the atoms on which a particular command is to act.


Default Values

The PSL in conjunction with the local molecular working storage (MWS) must maintain a default value for the "mol_chains:" and "residues." fields of a "mol_chains:residues.atoms" (MRA) atom specification. The default value for the "atoms" field is always *. These default values are used when an user enters an incomplete "mol_chains:residues.atoms" atom specification.

A user should be able to specify a default value for the "mol_chains:" and "residues." fields from within the local MWS. This will be application specific.


Omitted Fields

Default rules for omitted fields of a "mol_chains:residues.atoms" selection list specification depend on whether the omitted field(s) precede or follow the explicitly defined fields.

Omitted "trailing" fields always default to "*", meaning "all". The default for omitted "leading" fields depends on whether this is the first "term" of the selection list.

For a "mol_chains:residues.atoms" specification that is the first "term" of a selection list, omitted "leading" fields assume their value from the current default value for that field.

If a "mol_chains:residues.atoms" specification is not the first "term" of a selection list, omitted "leading" fields assume their value from the value of the corresponding field in the preceding "term".


Order of Atoms

Each "term" of a selection list generates a list of atoms which may, or may not, be ordered.

A "term" of the form "mol_chains:residues.atoms" generates an ordered list of atoms.

For simple "terms" with one mol_chain and one residue, the order of atoms is the order specified by the user as a comma-separated list, processing from left-to-right.

For more complicated terms, the order is determined by the following algorithm:

  For each mol_chain, in the order specified
   For each residue range, in the order specified
    For each residue in the residue range, (in sequence order)
     For each atom of the residue, in the specified atom order
     Next atom, if any
    Next residue in the residue range, if any
   Next residue range, if any
  Next mol_chain, if any

A wildcard character "*" in the "mol_chains:" or "residues." field is the same as typing a comma-separated list for that field in the order the entities (mol_chains or residues) are stored internally within the PSL.