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.
Accessor | Template Parameters | Default |
---|---|---|
AtomProperty<> | Selector, Atom | No defaults |
BondProperty<> | Selector, Bond | No defaults |
MolProperty<> | Selector, Molecule | No defaults |
Selector | Description |
---|---|
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 |
Selector | Description |
---|---|
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. |
Selector | Description |
---|---|
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 |