Chazin Home Chazin Home | Ca-binding Protein DB | Vanderbilt Home Vanderbilt Home
Research Description | Publications | Wisdom | Search
How to contribute | About this page

Calculating Interhelical Angles with Signs Using Kyoko Yap's Program interhlx

Written by: Melanie Nelson, 10/15/98


The program interhlx (written by Kyoko Yap in Mitsu Ikura's lab at the University of Toronto) will calculate the angle between two helices, including the sign, in a structure or a family of structures. If the program is run on a family of structures, the output includes the angle for each member of the family as well as the average angle and standard deviation.


How the program calculates the sign of the angle: The program uses the following convention to calculate the sign of the angle between two helices:
The two helices are taken to be positioned such that helix I is "in front of" helix II. Helix I (from N to C) is used to define a vertical vector. A second vertical vector is defined, with its tail at the C-terminus of helix II. The angle between helices I and II is the rotation required to align the head of the second vector with the N-terminus of helix II. The vector is rotated in the direction (clockwise or counterclockwise) that produces an angle of less than 180 degrees. If the rotation is clockwise, the sign is positive. If it is counterclockwise, the sign is negative.

It seems that the program can only run if helix I comes before helix II in the protein's sequence. The program will hang if the order is reversed.

Obtaining the program: People at TSRI can find the SGI executable in /usr/local/bin on bianca. People from other institutions will need to contact Kyoko Yap directly to request a version of the program.

Using the program: The program reads the pdb files and the limits of the helices from an input file. The format of the input file is:
pdbfile hlx1_start hlx1_end hlx2_start hlx2_end
The program can handle families of structures. Each structure in the family should be in a separate file, and each file should be listed in the input file:
pdbfile1 hlx1_start hlx1_end hlx2_start hlx2_end
pdbfile2 hlx1_start hlx1_end hlx2_start hlx2_end
pdbfile3 hlx1_start hlx1_end hlx2_start hlx2_end
etc.

Here is a handy trick to generate a list of the pdb files in an input file, stolen from UNIX Power Tools by Jerry Peek, Tim O'Reilly, and Mike Loukides:
Open a new vi session:
vi
Issue the following command in the vi session to read in a list of files ending with the pdb extension:
:r !ls *.pdb
Write the list to a new file:
:w filename

If you want to calculate more than one interhelical angle you can either: 1) run the program repeatedly, once for each interhelical angle, altering the input file between each run, or 2) make one big input file listing all the pdbfiles for each set of helical limits, as shown in this sample input file provided by Kyoko Yap.

To run the program, type:
interhlx inputfile outputfile
The output file must be empty. If you are not running in the directory in which the pdb files are stored, you will have to include the complete path to these files in the filenames in the input file:
/home/userX/directoryX/pdbfile1 hlx1_start hlx1_end hlx2_start hlx2_end

However, there seems to be a limit to the length of the pathname that the program can accomodate. If the pathname is too long, the program will return an empty output file.

If you get output that looks something like this:

Angle nan0x7ffffe00   Distance nan0x7ffffe00

____________________________________________________________

Average             Std dev                          Std dev
Angle nan0x7ffffe00 +/- nan0x10000000   Distance    0.000 +/- 0.000

____________________________________________________________

the most likely problem is a slight formatting error in your input PDB files. It seems that the atom names (i.e. N, C, CB, etc.) in the third column of the PDB file must be aligned to the left of the column, not the right. Here is a sample PDB file that works with the program. If your PDB file is not in this format, try fixing it and running the script again. Here is a simple awk script that will output a PDB file in the format that interhlx will accept. This script will work on old format PDB files (ones in which the last two columns are the PDB code and the line number). A different script is requred for new format PDB files (ones in which the last column is the atom type). Here is an example of a new format PDB file that works with interhlx.