README
for Extra Geometry Programs

What's this? / Distribution / H-bonds / Contacts / Axes / Radii / Further Links

What is this?

This page documents extra programs (available by popular demand!) that calculate additional things besides surfaces and volumes -- in particular, axes, H-bonds, and VDW contacts. These programs are only roughly (!) documented at present and are meant as a supplement to the main geometry distribution. Volume and surface programs are also provided which can use alternate parameter sets for atom radii.

If you use these programs, you may want to cite:

M Gerstein (1992). "A Resolution-Sensitive Procedure for Comparing Protein Surfaces and its Application to the Comparison of Antigen-Combining Sites," Acta Cryst. A48: 271-276.


Distribution


H-bonds

find-h-bonds.exe

A executable and source for this program is provided.

How to run the program


GENERAL
~~~~~~~
To calculate hydrogen-bonds, run program like this:

% FindHbonds.SGI.exe -i in.pdb > out.txt

You can supply "-aml" and "-sort" options which are described below.

CRITERIA FOR COVALENT BONDS
~~~~~~~~~~~~~~~~~~~~~~~~~~~
I get covalent bonds by getting all distances to a given atom i,
sorting by increasing distance and then checking the
shortestdistances.  I take two atoms X as being bonded if the distance
between them is less than 1.7 Angstroms.  If one of the X is S
(sulfur) I use 2 A and if both are S I use 2.8 A.  If one of the X is
H, I use 1.2 A.

DEFAULT CRITERIA FOR HBONDS 
~~~~~~~~~~~~~~~~~~~~~~~~~~~
This is adapted from Mike Levitt.

For hydrogen bonds, the program uses a criterion based on distances
and angles.  If there are no explicit hydrogen atoms, it uses the
coordinates of the acceptor (O), the donor (N) and an atom bonded to
the donor (C).  The conditions are d(O..N) < 3.6 A, angle (O..N-C)
between 90 and 150.

LESK CRITERIA FOR HBONDS [-aml option]
~~~~~~~~~~~~~~~~~~~~~~~~
This is adapted from Arthur Lesk.

I calculate the N-H..O-C angle (for backbone atoms, for instance) I
expect the angles to be distributed around 120 degrees for a hydrogen
bond to a carbonyl group.

One would expect a different "ideal" angle depending on whether you
were dealing with a quaternary nitrogen (as in lysine) or a tertiary
nitrogen (as in the distal nitrogens in arg), because the C-N-H angle
differs -- even if the actual hydrogen bond N-H ...O is linear.

Currently default angle threshold    = 110. degrees
          default distance threshold = 3.5 A

ATOMS USED
~~~~~~~~~~

 Checks if donor is nitrogen or oxygen. 
 Only includes following oxygens as donors:
    - gamma oxygen on serine and threonine
    - eta oxygen or OH on tyrosines
    The following two due to difficulty in distinguishing between
      nitrogen and oxygen since they differ by only one electron
    - delta oxygen on asparagines
    - epsilon oxygen on glutamines

 Sulfurs are not included. In particular, 
 the Cys SG is not allowed as an H-bond acceptor.

KNOWN BUGS
~~~~~~~~~~
The program seems to crash on one pdb file that had a list of H2O
coordinates at the end. Once they were removed, the program ran fine.


DEFAULT OUTPUT
~~~~~~~~~~~~~~
** Each H-bond is listed once. Levitt criteria is used.

% FindHbonds.SGI.exe -i 4pti.pdb > out.txt

   Donor              Acceptor        Dist  CNH_O   NH_OC
   --------------     --------------  ----  ------  -----
#     5   CYS N   ... O      2   PRO  3.11  133.20  120.0
#     6   LEU N   ... O      3   ASP  3.01  131.89  121.3
#     7   GLU N   ... O      4   PHE  3.20  130.67  110.9
#    43   ASN ND2 ... O      5   CYS  3.27  116.47  109.9
#    43   ASN ND2 ... O      7   GLU  2.74  134.95  158.3
#    43   ASN N   ... OE2    7   GLU  3.22  123.73  167.0
#    36   GLY N   ... O     11   THR  2.88  135.65  137.7
#    35   TYR N   ... O     18   ILE  2.75  123.48  162.6
#    33   PHE N   ... O     20   ARG  2.84  109.97  165.4


SORTED  OUTPUT
~~~~~~~~~~~~~~
** Output is sorted residue number and each H-bond is listed twice. 
   Levitt criteria is used. 

% FindHbonds.SGI.exe -sort -i 4pti.pdb > out.txt

  Donor              Acc.    or    Don.     Acceptor        Dist  CNH_O   NH_OC
  --------------     ------------------     --------------  ----  ------  -----
#                           1   ARG NE  ... O     55   CYS  2.83  133.37  154.3
#                           1   ARG NH2 ... OH    23   TYR  3.33   98.73  123.7
#    5   CYS N   ... O      2   PRO                         3.11  133.20  120.0
#    6   LEU N   ... O      3   ASP                         3.01  131.89  121.3
#    7   GLU N   ... O      4   PHE                         3.20  130.67  110.9
#                           5   CYS N   ... O      2   PRO  3.11  133.20  120.0
#   43   ASN ND2 ... O      5   CYS                         3.27  116.47  109.9
#                           6   LEU N   ... O      3   ASP  3.01  131.89  121.3
#   43   ASN N   ... OE2    7   GLU                         3.22  123.73  167.0
#                           7   GLU N   ... O      4   PHE  3.20  130.67  110.9
#   43   ASN ND2 ... O      7   GLU                         2.74  134.95  158.3
#   36   GLY N   ... O     11   THR                         2.88  135.65  137.7
#                          11   THR OG1 ... O     34   VAL  3.11  102.86  162.0
#                          16   ALA N   ... O     36   GLY  2.95  131.72  125.5
#                          18   ILE N   ... O     35   TYR  3.07  134.24  156.6
#   35   TYR N   ... O     18   ILE                         2.75  123.48  162.6


LESK  OUTPUT
~~~~~~~~~~~~
** H-bond criteria of Arthur Lesk is used. 

% FindHbonds.SGI.exe -aml -sort -i 4pti.pdb > out        
% FindHbonds.SGI.exe -aml -i 4pti.pdb > out        

   Donor              Acceptor        Dist  CNH_O   NH_OC
   --------------     --------------  ----  ------  -----
#     5   CYS N   ... O      2   PRO  3.11  133.20  120.0
#     6   LEU N   ... O      3   ASP  3.01  131.89  121.3
#     7   GLU N   ... O      4   PHE  3.20  130.67  110.9
#    43   ASN ND2 ... O      7   GLU  2.74  134.95  158.3
#    43   ASN N   ... OE2    7   GLU  3.22  123.73  167.0
#    36   GLY N   ... O     11   THR  2.88  135.65  137.7
#    35   TYR N   ... O     18   ILE  2.75  123.48  162.6
#    33   PHE N   ... O     20   ARG  2.84  109.97  165.4


VDW contacts

VDWCont1to2.exe

This will determine the VDW contacts between structure 1 and structure 2 in rather inefficient fashion. A much more elegent method of doing this is via the Delauney triangulation, which is accomplished by the program full-dump-polyhedra.exe in the main distribution.

Sample Run

aragorn> VDWCont1to2.exe -ia frag-1.pdb -ib frag-2.pdb 
Hello:  program VDWCont1to2.exe at line 5 in source VDWCont1to2.main.c,
Hello:  which was compiled on Jul 29 1997 at 14:58:57.
[New String    ] -ia = frag-1.pdb
[GetEnvAndJoin ] No expansion of frag-1.pdb
open_and_read_pdb(): Trying to read frag-1.pdb
open_and_read_pdb(): Finished reading frag-1.pdb
[New String    ] -ib = frag-2.pdb
[GetEnvAndJoin ] No expansion of frag-2.pdb
open_and_read_pdb(): Trying to read frag-2.pdb
open_and_read_pdb(): Finished reading frag-2.pdb
[T/F Option    ] -VerifyRadii = 0
[T/F Option    ] -hbond = 0
[Default Double] -thresh = 0.600000
Structure A has 37 atoms and structure B has 92 atoms
ATOM      6  CG  ARG     1      30.976  12.589 -11.819  0.00  0.00
ATOM      7  CD  ARG     1      29.608  12.016 -11.694  0.00  0.00
ATOM     29  C   PRO     2      34.652  12.135  -9.374  0.00  0.00
ATOM     30  O   PRO     2      33.583  11.537  -9.255  0.00  0.00
ATOM     31  CB  PRO     2      34.826  14.292  -8.056  0.00  0.00
ATOM     32  CG  PRO     2      33.927  15.515  -8.135  0.00  0.00
ATOM     33  CD  PRO     2      32.967  15.143  -9.243  0.00  0.00
ATOM     43  C   ASP     3      35.296   9.402  -8.236  0.00  0.00
ATOM     44  O   ASP     3      34.812   8.288  -8.260  0.00  0.00
ATOM     54  N   PHE     4      35.466  10.210  -7.174  0.00  0.00
ATOM     55  CA  PHE     4      34.975   9.704  -5.855  0.00  0.00
ATOM     56  C   PHE     4      33.438   9.514  -5.843  0.00  0.00
ATOM     57  O   PHE     4      32.937   8.733  -5.020  0.00  0.00
ATOM     58  CB  PHE     4      35.435  10.423  -4.613  0.00  0.00
ATOM     59  CG  PHE     4      34.960  11.819  -4.512  0.00  0.00
ATOM     60  CD1 PHE     4      33.708  12.036  -3.946  0.00  0.00
ATOM     62  CE1 PHE     4      33.249  13.321  -3.826  0.00  0.00

Helix Axes

HelixTips.exe

An executable is supplied for the calculation of helix axes (HelixTips.exe). It is for IRIX 5.3. The source of the program is in HelixTips.main.c. However, no further documentation is given for this.

Sample Run

Sample runs using the CA atoms for two helices (helix-1.pdb and helix-2.pdb) are shown below.

> HelixTips.exe -i helix-2.pdb 
Hello:  program HelixTips.exe at line 5 in source HelixTips.main.c,
Hello:  which was compiled on Aug 19 1994 at 00:52:01.
[New String    ] -i = helix-2.pdb
[GetEnvAndJoin ] No expansion of helix-2.pdb
open_and_read_pdb(): Trying to read helix-2.pdb
centroid.c [75]: m=( -25.149900 -17.273200 3.755700 )
centroid.c [83]: EigenVals=( 2.494127 3.484771 16.789797 )
centroid.c [112]: ntip=( 22.137974 18.284412 2.429341 )
centroid.c [124]: ctip=( 27.620504 16.443729 -8.829126 )
HelixTips.main.c [11]: Vector for N-terminal tip and then vector for C-terminus

22.137974 18.284412 2.429341 27.620504 16.443729 -8.829126
> 
> HelixTips.exe -i helix-2.pdb
Hello:  program HelixTips.exe at line 5 in source HelixTips.main.c,
Hello:  which was compiled on Aug 19 1994 at 00:52:01.
[New String    ] -i = helix-2.pdb
[GetEnvAndJoin ] No expansion of helix-2.pdb
open_and_read_pdb(): Trying to read helix-2.pdb
centroid.c [75]: m=( -25.149900 -17.273200 3.755700 )
centroid.c [83]: EigenVals=( 2.494127 3.484771 16.789797 )
centroid.c [112]: ntip=( 22.137974 18.284412 2.429341 )
centroid.c [124]: ctip=( 27.620504 16.443729 -8.829126 )
HelixTips.main.c [11]: Vector for N-terminal tip and then vector for C-terminus

22.137974 18.284412 2.429341 27.620504 16.443729 -8.829126


Using Alternate Radii Sets with the Surface and Volume Programs

calc-vol-wrad.exe

An executable is supplied. It is for IRIX 5.3. The source of the program is in calc-vol-wrad.main.c. However, no further documentation is given for this beyond the sample run below.

Sample Run of Volume Program

A sample run using the pdb file 5pti, the plane positioning method 4, the radii file FMR.ad, and the residue definitions file FMR.rd is shown below.
aragorn> calc-vol-wrad.exe -i 5pti.pdb \
         -method 4 -types_file FMR.ad -res_file FMR.rd \
         > output2.dat
Hello:  program calc-vol-wrad.exe at line 14 in source calc-vol-wrad.main.c,
Hello:  which was compiled on Feb  5 1998 at 14:49:50.
Hello:  citation is J. Mol. Biol. 249: 955-966 & Structure 2: 641-649.
Hello:  e-mail M Gerstein .
[New String    ] -types_file = FMR.ad
[GetEnvAndJoin ] No expansion of FMR.ad
[New String    ] -res_file = FMR.rd
[GetEnvAndJoin ] No expansion of FMR.rd
Modified Program to Accept Alternate Atomic Radii
(Mark.Gerstein@yale.edu, 980205)
Expecting atoms definitions to be in FMR.ad
Expecting residue definitions to be in FMR.rd
Reading types file FMR.ad
Reading residue definitions file FMR.rd
[New String    ] -i = 5pti.pdb
[GetEnvAndJoin ] No expansion of 5pti.pdb
open_and_read_pdb(): Trying to read 5pti.pdb
 CYS5   / SG  CYS55  / SG   adding sulpur bridge
 CYS14  / SG  CYS38  / SG   adding sulpur bridge
 CYS30  / SG  CYS51  / SG   adding sulpur bridge
open_and_read_pdb(): Finished reading 5pti.pdb
[Default String] -o = (null)
[T/F Option    ] -RichardsRadii = 0
calc-vol-wrad.main.c [34]: Method-1: Normal Voronoi (bisection)
calc-vol-wrad.main.c [35]: Method-2: Richards' Method B
calc-vol-wrad.main.c [36]: Method-3: Radical Plane
calc-vol-wrad.main.c [37]: Method-4: Simplified Method B
[New Double    ] -method = 4.000000
[Default Double] -VolMaxDist = 64.000000
[Default Double] -DistCheck = 8.500000
ModifiedVolume.c [10]: PrintVolumeParameters():
CalcVHookFcn=     0  the_method= 4  
volume_max_distance= 64.0000 distance_check=  8.5000
vertices_count=    0 plot_file= 0

calc-surf-wrad.exe

An executable is supplied. It is for IRIX 5.3. The source of the program is in calc-surf-wrad.main.c. However, no further documentation is given for this beyond the sample run below.

Sample Run of Surface Program

A sample run using the pdb file 5pti, a probe of size 2.0 A, the radii file FMR.ad, and the residue definitions file FMR.rd is shown below.
aragorn> calc-surf-wrad.exe -i 5pti.pdb \
         -probe 2.0 -types_file FMR.ad -res_file FMR.rd \
         > output2.dat
Hello:  program calc-surf-wrad.exe at line 5 in source calc-surf-wrad.main.c,
Hello:  which was compiled on Feb  5 1998 at 14:57:02.
Hello:  citation is J. Mol. Biol. 249: 955-966 & Structure 2: 641-649.
Hello:  e-mail M Gerstein .
[New String    ] -types_file = FMR.ad
[GetEnvAndJoin ] No expansion of FMR.ad
[New String    ] -res_file = FMR.rd
[GetEnvAndJoin ] No expansion of FMR.rd
Modified Program to Accept Alternate Atomic Radii
(Mark.Gerstein@yale.edu, 980205)
Expecting atoms definitions to be in FMR.ad
Expecting residue definitions to be in FMR.rd
Reading types file FMR.ad
Reading residue definitions file FMR.rd
[New String    ] -i = 5pti.pdb
[GetEnvAndJoin ] No expansion of 5pti.pdb
open_and_read_pdb(): Trying to read 5pti.pdb
 CYS5   / SG  CYS55  / SG   adding sulpur bridge
 CYS14  / SG  CYS38  / SG   adding sulpur bridge
 CYS30  / SG  CYS51  / SG   adding sulpur bridge
open_and_read_pdb(): Finished reading 5pti.pdb
[Default String] -o = (null)
[New Double    ] -probe = 2.000000

Further Links

Peter Kahn at Rutgers also has some code available for the calculation of helix axes.

If you really want to get into calculating hydrogen bonds, I suggest you get the program X-PLOR, which is distributed by Axel Brunger at Yale.


Mark.Gerstein@yale.edu / 7/25/97