All user manipulations are applied to molecular models.
In this program, each model corresponds to an individual graphical widow and a file.
While multitasking is not supported, actions can be applied either to the active model
or to all opened models. For instance, comparison can be applied to all models.
A model is a set of atoms and their associations such as bonds,
molecules, and residues. Consequently, associations can be included into other associations.
For instance, molecules contain atoms and residues, which consequently include atoms
and joints. Models can also include operation methods, e.g.,
simulation options, periodic boundary conditions, etc. Other methods can be common for
all models, e.g., geometric measurements. The principal structure of the
program can be presented as a tree:
This structure can be seen in models stored in mlm format.
The notion of joint deserves specific consideration.
A joint defines the connection between residues and
consists of three atoms:
- Stub atom belongs to the neighboring residue.
- Terminal atom belongs to the current residue.
The bond between the stub and terminal atoms is the bond between residues.
- Directional atom can belong to anything.
Atoms of two residues directional_1—terminal_1—terminal_2—directional_2
determine the way to measure the torsion angle between residues.
The work of the Sequence editor is based on manipulations with joints.
Accordingly, only fragments defined in the mlm
format can be used to construct chain molecules.