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)

  • 1. Identify the path to your installed VMD package, e.g. /Computer/Programs/VMD/

  • 2. Save the bendix1.1 folder in a special VMD plugin subdirectory:
  • On Macs: right-click the VMD icon in Applications, choose Show Package Contents and navigate to Contents > vmd > plugins > noarch > tcl

  • 3. Identify (or create) and open the the vmd startup file vmdrc
    By default, VMD ships with a vmdrc file that you find where you installed VMD,
    e.g. /Computer/Programs/VMD/
    (N.B. this is a hidden file in Linux and Mac distributions)

  • 4. Append this to vmdrc:
    vmd_install_extension bendix bendix "Analysis/Bendix"
    menu main on

  • 5. Start VMD.
    Bendix appears under the VMD Main window tab
    Extensions > Analysis > Bendix
  • Integrate Bendix with VMD using a path of your choice

  • 1. Save Bendix anywhere you like, e.g. /Computer/Programs/bendix1.1

  • 3. Identify (or create) and open the the vmd startup file vmdrc
    By default, VMD ships with a vmdrc file that you find where you installed VMD,
    e.g. /Computer/Programs/VMD/
    (N.B. this is a hidden file in Linux and Mac distributions)

  • 3. Append this to vmdrc:
    set auto_path [linsert $auto_path 0 [file join /Computer/Programs/bendix1.1]]
    vmd_install_extension bendix bendix "Analysis/Bendix"
    menu main on

  • 4. Start VMD.
    Bendix appears under the VMD Main window tab
    Extensions > Analysis > Bendix
  • Run Bendix from VMD's terminal

  • 1. Save Bendix anywhere you like, e.g. /Computer/Programs/bendix1.1

  • 2. Start VMD and locate the terminal (alternatively use the Tk Console in the VMD Main window, under Extensions > Tk Console)

  • 3. Type
    source /dir/where/you/saved/bendix1.1/bendix.tcl

    N.B. You will need to do these steps every time you restart VMD, and supplied Bendix GIFs may not work.
    Integrating Bendix with VMD, on the other hand, makes it permanently available under Extensions.

  • 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 5,000 lines long (circa 120 A4 pages) and consists of 36 functions (procedures). It is written in Tcl with a user interface implemented in Tcl's graphical user interface extension, the Tk toolkit.

  • Code structure
  • 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
  • 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.

  • Helix axis generation
  • 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
  • Since four C alphas generate a single, middle axis coordinate, half a helix turn's worth of helix length is lost at the start and end of helices. Bendix calculates average local helix vectors in each direction, and uses these to extend the helix by 1.8 Angstrom, which, graphed by Bendix' spherical helix-ends, corresponds to the full-length helix.

  • 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

  • The Hermite spline
  • 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.
  • If you read the paragraph above regarding generation of the helix axis, you might already have spotted that this 4-point-window business shortens the data set. However, there are mathematical solutions to this, and Bendix generates Phantom knots, minute artificial extensions to the axis, prior to spline-calculation, to overcome this issue.
  • Control point interval
  • The input coordinates used to generate a spline curve are called control points. Since the result Hermite spline curve goes through each control point, it follows its input closely. By using, say, only every other control point, the output Hermite spline curve follows the precise axis half as closely, and is able to generate a smoother, more global approximation of the axis.

  • Bendix allows the user to set the number of control points to be used when graphing the axis and calculating helix geometry. The Control point interval refers to the distance, in alpha-helix turns between axis points that are to be used as control points. A control point interval of 0.5, 1 or 2 will employ every 2, 4 or 7 axis points, respectively, for the spline. Geometry calculation automatically uses a triangle of side length equal to the control point interval. As a result, control point interval 0.5 gives the closest fit to the calculated helix axis, but geometry calculations will only reflect highly local axis. A higher control point interval gives a more global angle.
  • Angle-values for helix ends are standardised
  • Since control-point interval sized triangle sides are used to evaluate helix geometry, it follows that angles between points at a distance from a helix end that is smaller than one control point interval can not be evaluated. 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 at one control-point interval distance from the helix tips. These values should be ignored, and were only implemented to denote the real length of the helix to orient the user.

  • Q&A

  • Q: Bendix doesn't appear under VMD Extensions > Analysis, or doesn't run.
  • A: Here are four ways to troubleshoot:
    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
    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.

  • Q: I tried Bendix on a coarse-grained protein file, but I get the error-message 'No helices? Bendix could not detect any helicity in your protein...'. What should I do?
  • A: Because software does not currently exist for prediction of secondary structure for coarse-grained proteins, Bendix text-mines your input file for particle types, and uses these to tell what secondary structure to depict. This will, of course, only work if the particle type reveals the local secondary structure, which the MARTINI coarse-grain particles do. There are therefore three possible reasons for this error message:
    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.

  • Q: I have a coarse-grained system and ERROR> messages appear in the VMD terminal. What is wrong?
  • A: Nothing is wrong - do not worry. VMD runs STRIDE behind the scenes to generate secondary structure for your protein. When STRIDE attempts to decipher your protein, it fails, as it was not built to analyse CG proteins. No STRIDE output file is created, and you receive an error message from the VMD script that expects this file. This does not affect the operating of Bendix, which is autonomous from STRIDE when it deals with CG input.

  • Q: I have heatmap-coloured my helix and want to analyse a loaded trajectory, but I get the error message "No trajectory loaded? bendix does not detect frames!..". How can I fix this?
  • A: Bendix saves axis coordinates as you play your trajectory, and erase this data every time you reach the end of your trajectory and it restarts on the first frame. Therefore, in order to analyse a complete trajectory, you need to Play it from the start to the very last frame, without allowing it to go back to the first frame again.

  • Q: I'm in the Surf module and hit Surf, and I think that it is done drawing, but I see nothing on my screen! Where is my surf graph?
  • A: If this happens, the first thing to try is to display the graph axes. To do this, tick the 'Show axes' box. The axes will give you a good idea about the surf graph. It might be evident now that you need to zoom in or out to see your graph (click 's' in the VMD Display window and scale by click-and-dragging your mouse), or rotate the scene a bit to get a better angle. If you are still struggling to see anything, the graph may be occluded by VMD's default Depth Cueing (the fog that lets you distinguish between near and far objects) or it may be poorly resolved against your VMD background colour. To disable Depth Cueing, go to VMD Main > Display and untick Depth Cueing. To change the VMD Display background colour, go to VMD Main > Graphics > Colors... and choose Category Display, Name Background and a new Color. For clarity, we suggest white.

  • Q: The surf graph of my trajectory is uneven (high resolution for some frames and low resolution elsewhere), or data is only displayed for some frames. Why is this?
  • A: As mentioned in the Answer above, Bendix records helix data as you play your trajectory. If your surf graph resolution is uneven, you have jumped through your trajectory either manually using the scrollbar, or using a Play step higher than 1. Exit the surf window and replay your trajectory using step 1.

  • Q: Bendix takes a lot of time drawing my surf graph! Why does this happen?
  • A: The surf graphs are made of many, many graphics primitives, all of which needs to be drawn to the screen. If you want your data to be drawn faster, consider reducing the resolution or graphing every, say, 10th frame. Since Bendix only saves data for played frames, you can graph every 10th frame by putting step 10 in the VMD Main Window. Alternatively you can export the data (File > Save surf data...) to a dedicated graphing suite such as MatLab, without first drawing it in Bendix.

  • Q: I tried the Surf analysis tool and my protein disappeared! How do I get it back?
  • A: Your protein is still there, but Bendix temporarily hid it so that the Surf graph could be displayed without interfering with your protein. Your protein will automatically be revealed and the perspective shifted back to your 'pre-surf' perspective when you hit Return in the Surf module.

  • Q: New! My protein travelled across the periodic boundary of the box, and now its bendices are drawn across the box length. How do I fix this?
  • A: You get around this issue by preprocessing your trajectory. A single protein can be centered in the box, so that it never reaches the edges. To do this in VMD, go to VMD Main > Extensions > Tk Console. Replacing protein with your selection of interest, type
    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.

  • Q: I use Bendix for my paper. How do I cite you?
  • A: We're pleased to hear that Bendix is useful to you! If Bendix contributes towards your publication, please use the following reference:
  • Dahl ACE, Chavent M and Sansom MSP (2012) Bendix: intuitive helix geometry analysis and abstraction. Bioinformatics 28 (16): 2193-2194

    The paper can be found here.

  • More help is available from Bendix under the Help menu. Alternatively contact us.