OEGetRotatableBondCount¶
unsigned int OEGetRotatableBondCount(const OEChem::OEMolBase &mol, bool adjust = false)
Returns the number of rotatable bond counts in a molecule. Rotatable bond is defined as any single non-ring bond, bounded to nonterminal heavy (i.e., non-hydrogen) atom. In addition, It considers the carbon-carbon triple bond in acetylene rotatable. The function excludes single bonds observed in a certain groups, such as sulfonamides, esters, and amidine.
- adjust
This parameter allows optional adjustment for aliphatic rings following the method of [Oprea-2000]. In this case, it also estimates the number of flexible bonds in aliphatics rings.
Note
The Oprea’s method is individual ring based. Since Smallest set of smallest rings perception is not available in OEChem TK (see section Smallest Set of Smallest Rings (SSSR) Considered Harmful for more details), we modified Oprea’s method to be ring system based (Ring Systems Identification), and implemented the function relatively closed to Oprea’s definition. The function works for various complex fused ring-systems and simple bridge ring-systems.
Examples
The number of rotatable bonds calculated for the molecule below is 0
.
When considering the flexibility of the aliphatic ring
(setting the adjust parameter to true
), the
OEGetRotatableBondCount
function returns 3,
based on Oprea’s method that considers the amide bonds as non-rotatable.
The number of rotatable bonds calculated for the molecule below is 7
.
When considering the flexibility of the aliphatic ring
(setting the adjust parameter to true
), the
OEGetRotatableBondCount
function returns 11
,
adjusting the rotatable bond count by 2
from each of the two aliphatic
rings.
See also
Rotor Count subsection describing filter files
rotatable bond definition in OEChem TK
OEIsRotor functor in OEChem TK
Smallest Set of Smallest Rings (SSSR) Considered Harmful and Ring Systems Identification sections in OEChem TK