For file formats that provide 3D coordinates, but not explicit bond information (or only partial bond information), OEChem uses the OEDetermineConnectivity function. This function deduces the pattern of covalent bonding in a molecule from the proximity of atoms. Two atoms are considered bonded if they within the sum of their covalent radii plus an additional ``slop'' factor of 0.45 Angstroms. The covalent radii used are those prescribed by the Cambridge Crystallographic Database. The values used for the common organic subset of elements is given by the table below.
|
These values may also be retrieved from OEChem using the OEGetCovalentRadius function.
OEDetermineConnectivity will not create a bond between two atoms that are less than 0.4 Angstroms apart. Such unreasonably short bond lengths indicate the structure is either severely distorted, or doesn't have coordinate information at all. All bonds created by OEDetermineConnectivity have bond orders set to one. To perceive bond order information, see OEChem's OEPerceiveBondOrders function described below.
The OEDetermineConnectivity function checks whether a bond already exists between two atoms before creating a new bond. This allows this function to be used with file formats that may specify partial connectivity, such as only multiple (double, triple or quadruple) bonds.