Alternative description of Molecules
Within the CCPN data model there are several packages that deal with molecular information. The Molecular system (MolSystem) is the top of the hierarchy and contains “molecules” in form of chains, residues and atoms that are assignable for a given set of NMR experiments. To create a MolSystem, it is first necessary to create at least one “molecule” (which then is a reference object). To create a “molecule”, it is first necessary to create a molecule template (Molecule), which in turn is created from at least one chemical component (ChemComp). The chemical elements (ChemElement) are building blocks of the ChemComp’s. Starting from the bottom of the hierarchy, the packages can in more detail be described as following:
ChemElement stores chemical elements, i.e. periodic table, information. Contained within the package are isotope objects which are frequently used with NMR data, e.g. by linking to the observed NMR resonances. The package is reference data and is not normally modifiable by the user.
ChemComp stores templates for the molecular building blocks (e.g. the atoms, bonds, angles, torsion angles, etc., that are present in a standard amino acid). Each type of compound is stored in a separate XML file and describes often several variants of the compound, e.g. charged and uncharged Lysine. The most commonly used ChemComps contain templates for the standard amino acid and nucleic acid residues. CCPN provides a large list of reference compounds, but the user can also define new ones.
Molecule stores how specific versions of ChemComps are linked into larger “molecules”, for example to specify the sequence and protonation state of a protein. Molecule sequences need not be linear, and thus can be used to describe branching arrangements. Also, a Molecule may refer to only one compound, e.g. a glucose monomer. In Analysis, Molecule is a rather abstract word defined as the template for the “real molecule” and is fully editable by the user. This definition is important to understand, thus the “real molecule” is what the user assigns and is therefore not editable.
MolSystem represents all distinct atoms that are available (e.g. for resonance assignment) within a given sample or molecular complex. The objects in this package are based upon Molecule’s which are translated into “molecules” in the MolSystem. The MolSystem does not describe the covalent connectivity of the “molecules”. This is done in the ChemComp and Molecule packages. Rather, it describes which “molecules” are found together and any interactions between them. Molecules can therefore be seen as editable building blocks of a MolSystem that become not editable “molecules” after they are added to a MolSystem. For example to make a MolSystem representing a protein homodimer you can use one Molecule to make two identical chains in the MolSystem. If the chains have at least one molecular difference on the atom level, you will instead need two Molecules.