4.7.2. HELANAL — analysis of protein helices

Author:Benjamin Hall <benjamin.a.hall@ucl.ac.uk>, Oliver Beckstein, Xavier Deupi
Year:2009, 2011, 2013
License:GNU General Public License v2 (or higher)

The MDAnalysis.analysis.helanal module is a Python implementation of the HELANAL algorithm [Bansal2000] in helanal.f, which is also available through the HELANAL webserver.

Please cite the paper [Bansal2000] (and possibly [Kumar1996] and [Kumar1998]) in published work when using helanal_trajectory or helanal_main.

HELANAL quantifies the geometry of helices in proteins on the basis of their Cα atoms alone. It can extract the helices from the structure files and then characterises the overall geometry of each helix as being linear, curved or kinked, in terms of its local structural features, viz. local helical twist and rise, virtual torsion angle, local helix origins and bending angles between successive local helix axes. Even helices with large radius of curvature are unambiguously identified as being linear or curved. The program can also be used to differentiate a kinked helix and other motifs, such as helix-loop-helix or a helix-turn-helix (with a single residue linker) with the help of local bending angles. In addition to these, the program can also be used to characterise the helix start and end as well as other types of secondary structures.

4.7.2.1. Background

From the HELANAL home page:

HELANAL can be used to characterize the geometry of helices with a minimum 9 residues. The geometry of an alpha helix is characterized by computing local helix axes and local helix origins for four contiguous C-Alpha atoms, using the procedure of Sugeta and Miyazawa [Sugeta1967] and sliding this window over the length of the helix in steps of one C-alpha atom.

The angles between successive local helix axes can identify local bends or kinks as well as occurrence of smooth curvature in the helix. A matrix, whose elements M(I, J) are the bending angles between local helix axes I and J, is obtained to get an idea about the overall geometry of the helix.

Unit twist and unit height of the alpha helix are also computed to analyze the uniformity of the helix. The local helix origins trace out the path described by the helix in three dimensional space. The local helix origins are reoriented in X-Y plane and the reoriented points are used to fit a circle as well as a line, by least squares method. Based on the relative goodness of line and circle fit to local helix origins, the helix is classified as being linear or curved. A helix is classified as being kinked, if at least one local bending angle in the middle of the helix is greater than 20 degrees.

References

[Sugeta1967]Sugeta, H. and Miyazawa, T. 1967. General method for calculating helical parameters of polymer chains from bond lengths, bond angles and internal rotation angles. Biopolymers 5 673 - 679
[Kumar1996]Kumar, S. and Bansal, M. 1996. Structural and sequence characteristics of long alpha-helices in globular proteins. Biophysical Journal 71(3):1574-1586.
[Kumar1998]Kumar, S. and Bansal, M. 1998. Geometrical and sequence characteristics of alpha helices in globular proteins. Biophysical Journal 75(4):1935-1944.
[Bansal2000](1, 2) Bansal M, Kumar S, Velavan R. 2000. HELANAL - A program to characterise helix geometry in proteins. J Biomol Struct Dyn. 17(5):811-819.

4.7.2.2. Functions

MDAnalysis.analysis.helanal.helanal_trajectory(universe, selection='name CA', begin=None, finish=None, matrix_filename='bending_matrix.dat', origin_pdbfile='origin.pdb', summary_filename='summary.txt', screw_filename='screw.xvg', tilt_filename='local_tilt.xvg', fitted_tilt_filename='fit_tilt.xvg', bend_filename='local_bend.xvg', twist_filename='unit_twist.xvg', prefix='helanal_', ref_axis=None, verbose=False)[source]

Perform HELANAL helix analysis on all frames in universe.

Parameters:
  • universe (Universe) –
  • selection (str (optional)) – selection string that selects Calpha atoms ["name CA"]
  • begin (float (optional)) – start analysing for time (ps) >= begin; None starts from the beginning [None]
  • finish (float (optional)) – stop analysis for time (ps) =< finish; None goes to the end of the trajectory [None]
  • matrix_filename (str (optional)) – Output file- bending matrix ["bending_matrix.dat"]
  • origin_pdbfile (str (optional)) – Output file- origin pdb file ["origin.pdb"]
  • summary_filename (str (optional)) – Output file- all of the basic data ["summary.txt"]
  • screw_filename (str (optional)) – Output file- local tilts of individual residues from 2 to n-1 ["screw.xvg"]
  • tilt_filename (str (optional)) – Output file- tilt of line of best fit applied to origin axes ["local_tilt.xvg"]
  • bend_filename (str (optional)) – Output file- local bend angles between successive local helix axes ["local_bend.xvg"]
  • twist_filename (str (optional)) – Output file- local unit twist between successive helix turns ["unit_twist.xvg"]
  • prefix (str (optional)) – Prefix to add to all output file names; set to None to disable ["helanal__"]
  • ref_axis (array_like (optional)) – Calculate tilt angle relative to the axis; if None then [0,0,1] is chosen [None]
  • verbose (bool (optional)) – Toggle diagnostic outputs. [True]
Raises:

FinishTimeException – If the specified finish time precedes the specified start time or current time stamp of trajectory object.

Notes

Only a single helix is analyzed. Use the selection to specify the helix, e.g. with “name CA and resid 1:20” or use start=1, stop=20.

Changed in version 0.13.0: New quiet keyword to silence frame progress output and most of the output that used to be printed to stdout is now logged to the logger MDAnalysis.analysis.helanal (at logelevel INFO).

Changed in version 0.16.0: Removed the start and end keywords for selecting residues because this can be accomplished more transparently with selection. The first and last resid are directly obtained from the selection.

Deprecated since version 0.16.0: The quiet keyword argument is deprecated in favor of the new verbose one.

MDAnalysis.analysis.helanal.helanal_main(pdbfile, selection='name CA', ref_axis=None)[source]

Simple HELANAL run on a single frame PDB/GRO.

Computed data are returned as a dict and also logged at level INFO to the logger MDAnalysis.analysis.helanal. A simple way to enable a logger is to use start_logging().

Parameters:
  • pdbfile (str) – filename of the single-frame input file
  • selection (str (optional)) – selection string, default is “name CA” to select all C-alpha atoms.
  • ref_axis (array_like (optional)) – Calculate tilt angle relative to the axis; if None then [0,0,1] is chosen [None]
Returns:

result

The result contains keys
  • Height: mean, stdev, abs dev
  • Twist: mean, stdev, abs dev
  • Residues/turn: mean, stdev, abs dev
  • Local bending angles: array for computed angles (per residue)
  • Unit twist angles: array for computed angles (per residue)
  • Best fit tilt
  • Rotation angles: local screw angles (per residue)

Return type:

dict

Notes

Only a single helix is analyzed. Use the selection to specify the helix, e.g. with “name CA and resid 1:20”.

Example

Analyze helix 8 in AdK (PDB 4AKE); the standard logger is started and writes output to the file MDAnalysis.log:

MDAnalysis.start_logging()
data = MDAnalysis.analysis.helanal_main("4ake_A.pdb", selection="name CA and resnum 161-187")

Changed in version 0.13.0: All output is returned as a dict and logged to the logger MDAnalysis.analysis.helanal instead of being printed to stdout.

Changed in version 0.16.0: Removed the start and end keywords for selecting residues because this can be accomplished more transparently with selection.