Product: Chem3D
Do you have any further documentation on the topological calculations?
Name | Type | Ref. | Description |
Formula |
string |
Molecular Formula |
|
Weight |
double |
Molecular weight, using average atomic masses |
|
ExactMass |
double |
Molecular weight, using commonest isotopes |
|
int |
Returns the adjacency value for a pair of atoms. |
||
ccMatrix |
The distance matrix stores the shortest path between all pairs of atoms. |
||
int |
Returns an element of the distance matrix: the shortest path between two atoms. |
||
int |
Number of heavy atoms attached to an atom. |
||
int |
Sum of adjacent bond orders, including to hydrogens. |
||
int |
Number of adjacent hydrogens, both implicit and explicit. |
||
int |
Number of fundamental rings. |
||
int | 1 |
How far from center an atom resides. |
|
int | 1 |
Longest dimension of molecule. |
|
int | 1 |
|
|
double | 1 |
|
|
int |
Number of valence electrons of a given element |
||
double | 5 |
|
|
double |
|
||
double |
|
||
double |
|
||
double |
|
||
double | 5 |
|
|
Total Valence Connectivity | double | 5 |
|
int |
Measures number of clusters |
||
double |
Measures branching |
||
double |
Atom size parameter. Reflects varying atom types. |
||
double |
|
||
double |
|
||
int |
|
||
int |
Average distance sum connectivity |
||
int | 2,3 |
|
|
double |
|
||
int |
|
Details
Adjacency Matrix. An element Aij in the adjacency matrix has value 1 if atom i is adjacent to atom j, zero otherwise. If i=j, the value is zero.
int AdjacencyMatrix (ATOMNO a_1, ATOMNO a_2) const;
The distance matrix (D) stores the length of the shortest path between one atom and another. Dij is the path length from atom i to atom j. Distance() simply returns an element of the matrix.
const ccMatrix& DistanceMatrix()
const;
int Distance (ATOMNO a_1, ATOMNO a_2) const;
An atom's degree is the number of non-hydrogen atoms to which it is adjacent. Its valence is equal to the sum of its adjacent bonds' orders, including hydrogens. NumHydrogens() is the number of attached hydrogens (both implicit and explicit). The cyclomatic number, also known as FrereJacques' number, counts the number of fundamental rings, and is equal to NB - NA + 1, where NB=#bonds, NA=#atoms.
int Degree (ATOMNO a) const;
int Valence (ATOMNO a) const;
int NumHydrogens (ATOMNO a) const;
int CyclomaticNumber() const;
The eccentricity of an atom is the largest value in its row (or column) of the distance matrix, and represents how far away from the molecular center it resides.
The diameter (D) is the maximum such value for all atoms, and is held by the most outlying atom(s). Examples: Diameter: methane = 0; ethane = 1; propane = 2; n-butane = 3.
The radius (R) is the minimum such value, and is held by the most central atom(s). Examples: Radius: methane = 0; ethane = 1; propane = 1; n-butane = 2.
The shape coefficient (I) is given by:
I = (D - R) / R
E.g. methane is undefined; ethane = (1-1)/1=0; propane = (2-1)/1=2; butane = (3-1)/1 = 2; isobutane = (2-1)/1 = 2; anthracene = (7-4)/4 = 0.75. These functions are described in Ref.1.
int Eccentricity (ATOMNO a)
const;
int Diameter() const;
int Radius() const;
ccSet CentralAtoms() const;
double ShapeCoefficient() const;
NumValenceElectrons returns the number of valence electrons of a given element.
int NumValenceElectrons (int atomicNumber) const;
The valence degree is affected by the atomic number. For atom i:
VDi = (ZVi - Hi) / (Zi - ZVi - 1)
where ZV is the # of valence electrons (e.g. 1 for H, Li and Na, 3 for B, Al,
Sc),
H is the number of adjacent hydrogens,
and Z is the atomic number.
For first row elements, the equation simplifies to:
VDi(first row) = ZVi - Hi
See Ref.5. Example: Carbon in H2N-CH3 is (4 - 3) / (6 - 4 - 1) = 1
We need to clarify if deuteria count as hydrogens or heavy elements.
double ValenceDegree (ATOMNO a) const;
The connectivity index of order D is the sum over all clusters of order D+1 of the square root of the product of the degrees of the atoms in the cluster:
CId = Sum[over all clusters of order D] sqrt (Degree_1 * Degree_2 * ... Degree_D)
where Degree_n is the degree of the n'th atom in the cluster. The first-order connectivity index is known as the Randic index [Ref.4].
double ConnectivityIndex (int degree) const;
The valence connectivity index is like the connectivity index, but the valence degree is used in place of the simple degree.
double ValenceConnectivityIndex (int degree) const;
The sum-of-degrees is the sum of the degrees of every atom.
int SumOfDegrees() const;
The Sum-of-valence-degrees is like the sum of the degrees, but uses the valence degree.
double SumOfValenceDegrees() const;
The total (valence) connectivity is the (valence) connectivity considered over all the heteroatoms [Ref.5].
double TotalConnectivity()
const;
double
TotalValenceConnectivity() const;
The path count (cluster count) is the number of paths of a given length. In fact, we count clusters which are a superset of the paths.
int ClusterCount (int order) const;
The shape attribute (kappa) measures the branching of a molecule, and is scaled so as to fall between the minimum and maximum values possible for the given order. The first-order shape attribute counts the number of one-bond paths. The second-order attribute counts the number of two-bond paths, etc. Only the first three orders (1..3) are available.
double ShapeAttribute (int order) const;
A molecule's atom size parameter (alpha) reflects its varying atom types:
Alpha = Sum[over all atoms i] (Ri / Rc) - 1
where Ri is the covalent radius of atom i, and Rc is the covalent radius of an sp3-hybridized carbon. The argument "atomsCovalentRadii" must be provided. It contains the covalent radius of the atoms, and is indexed by atom number, 0..NA-1.
double AtomSizeParameter (const double *atomsCovalentRadii, const double carbonSp3Radius = 1.4) const;
The shape attribute can take the atom sizes into account.
double ShapeAttribute_AtomEncoded (int order, const double *atomsCovalentRadii, const double carbonSp3Radius = 1.4) const;
The flexibility index is defined as:
Phi = ShapeAttribute_AtomEncoded(1) * ShapeAttribute_AtomEncoded(2) / n,
where n is the number of atoms.
double FlexibilityIndex (const double *atomsCovalentRadii, const double carbonSp3Radius = 1.4) const;
The Wiener Index also provides some measure of branching, and is defined as:
1/2 Sum (Dij)
where Dij are the off-diagonal elements of the distance matrix.
int WienerIndex() const;
The Balaban Index (J), the average distance sum connectivity, is:
J = NB * Sum sqrt (XiXj) / (F + 1)
where F is the cyclomatic number (#edges - #vertices + 1), and Xi is the distance sum, i.e., the sum of the entries in row (or column) "i" of the distance matrix.
double BalabanIndex() const;
The Molecular Topological Index (MTI) [Ref.2,Ref.3] is defined as:
MTI = Sum[j=1..NA] Ej
Ej = Sum[i=1..NA] Vi (Aij + Dij)
where Vi is atom i's valence, Aij is the element in the adjacency matrix, and Dij is the element in the distance matrix.
int MolecularTopologicalIndex() const;
Calculation of the polar surface area is based on fragment contributions (TPSA).
Peter Ertl, Novartis Pharma AG, Basel, August 2000.
peter.ertl@pharma.novartis.com ||
peter.ertl@altavista.net
The program uses the SMILES Daylight Toolkit module. For a description of the methodology see:
P. Ertl, B. Rohde, P. Selzer, "Fast Calculation of Molecular Polar Surface Area as a Sum of Fragment-based Contributions and Its Application to the Prediction of Drug Transport Properties", J.Med.Chem. 43, 3714-3717, 2000.
double PolarSurfaceArea() const;
A rotatable bond is defined as an acyclic bond that is drawn as a single bond (amide C-N bonds, O=C--N, *are* rotatable) where the atom on each end has at least one other non-hydrogen substituent.
int NumberOfRotatableBonds() const;
References
1. Michel Petijean, "Applications of the Radius-Diameter Diagram to the Classification of Topological and Geometrical Shapes of Chemical Compounds", JCICS 32, 331-337 (1992).
2. Schultz, H.P, "Topological Organic Chemistry. 1. Graph Theory and Topological Indices of Alkanes", JCICS 29, 227-228 (1989).
3. Klein, Mihalic & Trinajstic, "Molecular Topological Index: A Relation with the Wiener Index", JCICS 32, 304-305 (1992).
4. Randic, M. "On Characterization of Molecular Branching", J.Am.Chem.Soc. 1975, 97, 6609.
5. Lionello Pogliani, "Modeling Properties with Higher-Level Molecular Connectivity Descriptors", JCICS 1999, 39, 104-111.
Comments
0 comments
Article is closed for comments.