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.