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.
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 "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".
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.