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, select='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) –
- select (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: ValueError
– If the specified start (begin) time occurs after the end of the trajectory object. 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 select. 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.
Changed in version 0.20.0: ProgressMeter now iterates over the number of frames analysed.
Changed in version 1.0.0: Changed selection keyword to select
-
MDAnalysis.analysis.helanal.
helanal_main
(pdbfile, select='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: 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: 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", select="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 select.
Changed in version 1.0.0: Changed selection keyword to select