December 2003
Miguel
The purpose of this memo is to define the behavior of bonding and
auto-bonding within Jmol.
Summary
-------
If bond connectivity information is present in a molecular model file
then Jmol uses this bond information. These bonds are applied directly,
without any type of checking to determine whether or not the bonds 'make
sense'.
If no bond information is present in the file then Jmol will apply
auto-bonding to infer bond connectivity. The rules for this auto-bonding
are simple and are based exclusively upon the distance between the
atoms.
.pdb files have special behavior because of the official specification
of CONECT records.
Detail
------
Some molecular file formats may contain bond connectivity information
(such as .mol). Other file formats (such as .xyz) contain atom positions
only and the bond connectivity must be calculated from atom positions.
And the PDB file format specifies a combination of explicit bonds
identified by CONECT records and implicit bonds for 'standard' bond
connectivity.
Because PDB files are special, they will be discussed separately in this
memo.
Non-PDB file types
==================
These rules apply to all file types other than .pdb
The bonding behavior is independent of the file type. Indeed, Jmol
builds its fundamental data structures without making any reference to
the underlying file type (with the exception of .pdb).
The rules for non-PDB files are as follows:
1. If there is *any* connectivity information in the file,
then auto-bonding is *not* applied.
a) bonds are taken exactly as specified
b) some file formats may include bond order information
c) no checking is made to determine whether or not
the bonds 'make sense' from a chemical perspective
d) there are no limits on the number of bonds that may
connect to an atom
2. If there is *no* connectivity information in the file,
the auto-bonding *is* applied. Auto-bonding rules are
described below.
Example 1.
A .mol file contains 4 atoms and 4 bonds: No auto-bonding is applied
Example 2.
A .mol file contains 125 atoms and 1 bond: No auto-bonding is applied
Example 3.
A .xyz file contains 10 atoms and 0 bonds: auto-bonding is applied
Example 4.
A .xyz file contains 1357 atoms and 0 bonds: auto-bonding is applied
Example 5.
A .mol file contains 1 Carbon atom and 6 Hydrogen atoms.
6 bonds are specified, each connecting a unique H atom
with the single C atom. No auto-bonding is applied.
Jmol respects these bonds and builds the model according to
the file contents.
Example 6.
A .xyz file contains 1 Carbon atom an 6 Hydrogen atoms.
The C is located at the origin. The H atoms are located
at +/- 1.0 angstroms along the x, y, and z axes. No bond
information is specified. Jmol applies auto-bonding and
and connects each of the 6 Hydrogen atoms to the central
Carbon atom. No bonds are build between the Hydrogen atoms
because they are too far apart.
PDB files
=========
PDB files are treated specially. The file format contains CONECT
records, but specifies that these records are used for 'non-standard'
bonds. However, some molecular modelling packages export .pdb files with
full bond connectivity specified in CONECT records.
The rules are as follows:
1) if the number of bonds specified in CONECT records is
greater-than-or-equal-to one half of the number of
atoms specified in ATOM and HETATM records then
auto-bonding is *not* applied.
2) if the number of bonds specified in CONECT records is
less than half the number of atoms specified in ATOM
and HETATM records, then autobonding *is* applied.
Example 1:
a .pdb file contains 357 atoms in ATOM and HETATM records. No
CONECT records are specified. Auto-bonding *is* applied.
Example 2:
a .pdb file contains 2468 atoms in ATOM and HETATM records. It
also contains 444 bonds specified in 111 CONECT records ... each
CONECT record can specify 4 bonds. Auto-bonding *is* applied.
Example 3:
a .pdb file contains 50 ATOM records and 60 bonds specified in
20 CONECT records. Some of the CONECT record entries are
duplicated to specify double-bonds. Auto-bonding is *not* applied.
Example 4:
a .pdb file contains 2 atoms and 1 bond. Auto-bonding is *not*
applied.
Note the following special characteristics of CONECT records:
1) A CONECT record contains a single 'source' atom and
up to 4 'target' atoms
2) Multiple bonds may be specified by:
a) repeating a target entry in the same CONECT record
or
b) having a second CONECT record with the same source
and target ordering
3) CONECT records may also contain SSBONDS and HBONDS
4) The PDB spec says that CONECT records must be redundant,
in the sense that bond information must be specified in
both directions. That is, there is an entry for connecting
atom A to atom B, and another entry for connecting atom B
to atom A.
*** IMPLEMENTATION NOTE ***
This ratio of bonds to atoms, currently at 1:2, *may* change in the
future. The idea is to have some criteria to determine whether or not
the bonds specified in CONECT records are complete. Based upon
real-world feedback this number may change in the future.
If a molecule contains *full* connectivity information specified in
CONECT records then the auto-bonding will *not* be applied.
Auto-bonding
============
The auto-bonding rules are as follows:
1. Atoms are bonded based upon position *only*
2. No reference is made to atom valence.
3. In .pdb files, each MODEL is auto-bonded independently.
That is, no bonds are connected between MODELs
4. The algorithm is:
a) compare every pair of atoms
b) the maximumBondingDistance is the sum of:
i. covalent radius atom A
ii. covalent radius atom B
iii. a bond tolerance of 0.45 angstroms
c) the minimumBondingDistance is 0.4 angstroms
d) A bond is constructed if distance is between
the minimuBondingDistance and the
maximumBondingDistance, inclusive.
The End!
-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills. Sign up for IBM's
Free Linux Tutorials. Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
_______________________________________________
Jmol-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jmol-users