Chemical Descriptors Library: Properties
CDL Molecular Properties

A molecule in CDL is represented as a graph, with properties attached to its vertices and edges, being vertex properties the 'atom', and the edge properties the 'bond'. There are also some properties that concern only to the molecule in general; these are called molecule's properties.
As one of the basic design goals CDL attempts to achieve is genericity, all these properties are templated on the molecule<> class. The user can provide its own property classes. The only requirenment CDL places on the user, is the definition of Property Accessors.
There is one property accessor per property of the molecule: atom, bond and molecule property accessors. Each one of them is partially specialized for each of the property the entity has. For example, the semantics to access all atomic properties are the same, but there is one specialization to retrieve the atomic mass, and another to retrieve the atomic symbol. The specializations are accessed with a tag.
Table 1 shows the three property accessors, the template parameters, and the defaults values.

Table 1:Property Selectors
AccessorTemplate ParametersDefault
AtomProperty<> Selector, Atom No defaults
BondProperty<> Selector, Bond No defaults
MolProperty<> Selector, Molecule No defaults

Table 2 shows the atomic propeties selectors that CDL requires. The default properties of the molecule<> provide all these properties.

Table 2: Atomic Property Selectors
atomic_numberS atomic number
atomic_massS atomic mass
burden_electronegS Electronegativity as described by Burden
sanderson1_electronegS Electronegativity as described by Sanderson
sanderson2_electronegS Electronegativity as described by Sanderson
atomic_radiusS Atomic radius
melting_temperatureS Melting temperature
boiling_temperatureS Boiling temperature
critical_temperatureS Critical temperature
standard_stateS Standard physical state: 0 solid, 1 liquid, 2 gas
symbolS Correlates the atomic symbol with the position on the periodic table. Enumerator type
groupS Periodic's table group. Enumerator type:
0 = alkali_metals
1 = alkaline_earth_metals
2 = transition_elements
3 = non_metals
4 = halogens
5 = inert_gases
6 = lanthanide_series
7 = actinide_series
short_symbolS Short symbol
bondi_vdw_radiiS Van der Waals rii as described by Bondi
rohrbaugh_vdw_radiiS Van der Waals rii as described by Rohrbaugh
gavezzotti_vdw_radiiS Van der Waals rii as described by Gavezzotti
substrS Substructure enumerator. User defined. Default morpho::cdl::substructure_t
hybridS Hybridization level. User defined. Default morpho::cdl::hybridization_t
valenceS Valence
chargeS Charge
hetero_atom_flagS Flag to indicate heteroatom
aromaticy_flagS Flag to indicate aromaticy
chiral_center_flagS Flag to indicate a chiral center
ring_sizeS Size of the smallest ring the atom belongs to
coordinatesS Coordinates for depiction
lone_pairsS Number of lone pairs the atom has
atom_chirality_typeS Orientation of the chirality. Please refer to the specific section for documentation

In the same way, bond and molecule provide their own accessors for their internal properties. Table 3 and 4 show the selector for internal properties of bond and molecule, respectively.

Table 3: Bond Property Selectors
type_of_bondS Type of bond
chiralityS Orientation of the bond respect to the chiral center
ring_bond_sizeS Size of the smallest ring the bond belongs to
rotatable_flagS Flag indicates if the bond is rotatable
aromatic_bond_flagS Flag indicates if the bond is aromatic
bond_characterS Character of the bond: sigma or pi
isomerismS Isomerism of the bond: cis, trans or none.

Table 4: Molecule Property Selectors
cyclic_verticesS Sequence containing lists of vertices that belongs to each cyclic structure (ie. rings)
cyclic_edgesS Sequence containing lists of edges that belongs to each cyclic structure (ie. rings)
distance_matrixS Symmetric matrix with the shortest paths between the atoms of the molecular graph
adjacency_matrixS Adjacency matrix of the molecular graph
back_edgesS Sequence containing the back edges
num_non_h_atomsS Number of non hydrogen atoms

Copyright © Vladimir Sykora 2003-2006