Step-by-step installation instructions
Bendix is written in tcl and works on most operating systems, including Windows, Linux and Mac. To run Bendix, please download the software, decompress the files and follow the instructions below. You may also run Bendix without installing it, but please note that you will miss out on a couple of Help-features.
It is recommended that you install Bendix.
Integrate Bendix into VMD's native plugin directory (may require root/administrator priviliges)
Integrate Bendix with VMD using a path of your choice
Run Bendix from VMD's terminal
Technical detail
This section provides an overview of how the bendix source code is structured, and the algorithms used. For more detail, please refer to the code itself, which is commented.
bendix.tcl is approximately 6,000 lines long (circa 150 A4 pages) and consists of 39 functions (procedures). It is written in Tcl with a user interface implemented in Tcl's graphical user interface extension, the Tk toolkit.Procedures are grouped according to utility into the following sections:
Graphical User Interface setup and maintenance
Load and save files
User help and acknowledgements
Draw non-bendices
2D and 3D helix analysis (whereof scatter plots are generated by Multiplot)
Trajectory and molecule ID detection
Particle and subset validation
Informative error messages
Hide, erase and reset visuals
Main bendix procedure:
Input verification
Obtain user-assigned or automated helicity (latter by STRIDE or input file text-mining)
Coordinate retrieval
Generate helix axis (see Sugeta and Miyasawa (1967) and discussion below)
Extend the axis peripherally to reclaim length lost to the axis generating algorithm
Apply Hermite spline to the axis according to user settings
Retrieve user settings for screen output (heatmap, material, resolution et.c.)
Draw to screen
Calculate and store data for 2D and 3D helix analysis
Reset variables to enable rerun
The code is modulated to speed up operation and avoid unnecessary calculations. Where possible, protein atom indices are stored for fast coordinate retrieval while drawing trajectories to the screen.Bendix' helix axis generation is a Tcl implementation of the C language algorithm used by Dalton et al., 2003.
This algorithm is also used by Bansal et al., 2000 and was originally presented by Sugeta and Miyazawa (1967).
This algorithm calculates a helix axis coordinate using vector algebra on four consequitive backbone C-alphas.
This window slides along the length of the helix in steps of one C alpha.
Special circumstances at the ends of helices
The Sugeta and Miyazawa algorithm generates a helix axis that is two residues short of the original helix length.
To remedy this, Bendix computes the local helix vector at the ends of the helix, and extends the helix by one residue's worth in each direction.
Both length and direction of each extension is based on averaged end axis coordinates.
References
Bansal M, Kumar S and Velavan R (2000) HELANAL - A program to characterise helix geometry in proteins. J Biomol Struct Dyn. 17(5):811-819
Dalton JA, Michalopoulos I and Westhead DR (2003) Calculation of helix packing angles in protein structures. Bioinformatics 19(10):1298-1299.
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(7):673-679
A spline inputs coordinates and generates an averaged, smooth curve through them, using third degree polynomials.
The Hermite spline moves through input coordinates (the helix axis, in this case) using a four-point window,
generating a smooth curve between the middle points. The peripheral points gives the gradient at which the spline interpolates the middle points.
Bendix uses the Catmull-Rom definition of the gradient with the constant set to 0.5.
The spline 4-point-window shortens the helix axis. However, Bendix generates Phantom knots, artificial axis extensions,
prior to spline-calculation, to overcome this issue. This way the helix axis length is preserved.
Use every [N] residues: the spline's control point interval
The input coordinates used to generate a spline curve are called control points.
In Bendix, each C alpha gives rise to a corresponding control point that is located on the helix axis.
This allows us to refer to axis control points by their respective residues, and to choose to use more or less of these to generate a spline.
The Hermite spline curve goes through each selected control point, so if you, for example, use every 4 residues' control points,
the output Hermite spline curve follows the Sugeta and Miyazawa helix axis less closely than if you would use every 2 residues.
This generates a smoother, more global approximation of the axis.
Angle-values for helix ends are standardised
Angles can't be evaluated for peripheral axis points that are located smaller than one Side's distance from a helix end.
Instead, the nearest calculatable angle is evaluated, and angle measurements along helix ends are made to increase linearly from 0 at the tip
to the first calculatable angle.
As a result, a linear rise in angle can be seen in 2D and 3D plots within one angle side's worth of helix ends.
These angle values should be ignored, and were only implemented to denote the real length of the helix, to orient the user.
bendix.tcl is approximately 6,000 lines long (circa 150 A4 pages) and consists of 39 functions (procedures). It is written in Tcl with a user interface implemented in Tcl's graphical user interface extension, the Tk toolkit.
Code structure
The code is modulated to speed up operation and avoid unnecessary calculations. Where possible, protein atom indices are stored for fast coordinate retrieval while drawing trajectories to the screen.
Helix axis generation
The Hermite spline
Measure local or global helix geometry
The helix geometry algorithm uses a triangle with side length in units of residues. At low resolution, the helix axis is only sparsely populated by spline points, so the exact angle length is difficult to obtain. Increase your resolution to ensure that your chosen angle side length is executed precisely. A large angle side measures a global angle, whereas a small angle side measures more local angles. Adjust the Side setting to reflect what you wish to analyse.
Q&A
1. Check what version of VMD you're running. Bendix is written in Tcl and requires tcl 8.5 or above, which comes with the latest VMD versions (Bendix was developed using VMD 1.9). If you have an old VMD version, consider upgrading.
2. If your VMD version is up to date, VMD might not have found vmdrc, the tcl startup file that you edited to point VMD in Bendix' direction. VMD looks for vmdrc in three directories; first your current directory, then your home directory and lastly where you installed VMD, and uses the first vmdrc file that it finds. Launch VMD and type
pwd in the vmd terminal that opens by VMD startup. VMD will definitely search that directory, so try saving vmdrc there.
3. If neither of the above works, verify that the downloaded, unzipped Bendix package contains the following files: pkgIndex.tcl bendix.tcl Monsieur_Bendix_smaller_still.gif GUI-tips.gif
4. Check that the variable pck_pkdir points to the directory where you keep the bendix1.1 folder.
New! Bendix will ship as part of VMD 1.9.2, so you will soon be able to load it from VMD Main > Extensions.
1. Your protein does not feature helices!
2. Your input file does not feature the MARTINI force field. You can supply helicity for your protein using the "Helices:" field under the Helix features box, that you reach by clicking the Settings button. Either type in your own helicity, working your way through your protein, or draw bendices for the original atomistic protein or a MARTINI version, and save this helicity (under File > Save helix assignment...). Reload it for your coarse-grained protein to generate helices (under File > Load helix assignment...).
3. Your MARTINI input file has insufficient space for particle names, or particle names have become scrambled (some MD software do this). If this is the case, Bendix can't work on your file. Bendix mines your file for particle names that start with BH, BBh, BE or BBe. Check that your file contains these. If it does not, load an alternate file that does. Bendix users that use GROMACS say that any sort of MD treatment to your system, where you use the MARTINI forcefield to generate a .gro file (e.g. a very short energy minimisation) will correct the input file.
pbc wrap -all -center com -centersel "protein" and hit Enter. For several independent proteins, you will need to unwrap the trajectory coordinates prior to loading them into VMD.
The paper can be found here.