NAME
Chemistry::Bond::Find - Detect bonds in a molecule from atomic 3D coordinates
SYNOPSIS
use Chemistry::Bond::Find 'find_bonds';
find_bonds($mol, %options);
DESCRIPTION
Detects the bonds in a molecule from its 3D coordinates by using simple cutoffs. The current version does not guess the bond orders; all bonds will have a bond order of 1.
This module is part of the PerlMol project, http://www.perlmol.org/.
FUNCTIONS
- find_bonds($mol, %options)
-
Finds and adds the bonds in a molecule. Only use it in molecules that have no explicit bonds; for example, after reading a file with 3D coordinates but no bond orders.
Available options:
- tolerance
-
Defaults to 1.1. Two atoms are considered to be bound if the distance between them is less than the sum of their covalent radii multiplied by the tolerance.
- margin
-
NOTE: in general setting this option is not recommended, unless you know what you are doing. It is used by the space partitioning algorithm to determine the "bucket size". It defaults to 2 * Rmax * tolerance, where Rmax is the largest covalent radius among the elements found in the molecule. For example, if a molecule has C, H, N, O, and I, Rmax = R(I) = 1.33, so the margin defaults to 2 * 1.33 * 1.1 = 2.926. This margin ensures that no bonds are missed by the partitioning algorithm.
Using a smaller value gives faster results, but at the risk of missing some bonds. In this example, if you are certain that your molecule doesn't contain I-I bonds (but it has C-I bonds), you can set margin to (0.77 + 1.33) * 1.1 = 2.31 and you still won't miss any bonds (0.77 is the radius of carbon). This only has a significant impact for molecules with a thousand atoms or more, but you can reduce execution time by 50% in some cases.
VERSION
0.10
SEE ALSO
Chemistry::Mol, Chemistry::Atom, Chemistry::Bond, http://www.perlmol.org/.
AUTHOR
Ivan Tubert <itub@cpan.org>
COPYRIGHT
Copyright (c) 2004 Ivan Tubert. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.