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.
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
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
> 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
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.