Principles & Protocols

Helical Reconstruction using EMIP

This protocol uses software that originated at the Medical Research Council ( DeRosier and Moore, 1970 J. Mol. Biol. 52:355), which was further developed by Toyoshima & Unwin for the acetyl choline receptor. A protocol for unbending tubes was later developed by Beroukhim and Unwin (Ultramicroscopy 1997 70:57-81) for higher resolution reconstructions. Many scripts and minor improvements have been implemented by Bill Rice and the graphical interface called EMIP (EM Image Processor) has been developed by David Stokes.

Alternative image processing suites are provided by MRC (image2000) and Scripps (phoelix)

Another alternative is the real-space method known as Iterative Helical Real Space Reconstruction (IHRSR) developed by Ed Egelman (Ultramicroscopy 2000 85:225-234).

Tube Imaging and Selection

Images of frozen-hydrated tubes suspended over holes should be recorded on film at 1-2 um defocus at 50,000x magnification. To obtain the best results, the carbon film should be baked prior to freezing, which increases its conductivity and strength. Furthermore, the hole should be centered in the electron beam such that carbon film is illuminated at the periphery of the field. This procedure tends to reduce specimen-induced movement (charging?), which is prevalent when unsupported ice is imaged.

Very straight tubes of uniform diameter should be chosen for analysis. Other packages use a spline fitting algorithm for straightening curvy filaments. This approach has not been tested with the current software, but might be ok for low resolution work.

An optical bench is very useful for evaluating defocus, drift and order of the tubes; the presence of carbon film within the image is helpful because it generally produces strong Thon rings from which these parameters can be assessed. A rectangular mask should be used to evaluate diffraction from the tubes themselves. Sharp layers lines that are symmetric about the meridian are sometimes a better predictor than the presence of high resolution reflections.

Good areas should be marked and the very best tubes should be scanned at 7-14 um depending on expected resolution (14 um should be sufficient for 7 A resolution). The long axis of the tube should be carefully aligned with one axis of the scanner (preferably the y-axis). 512 pixels is often sufficient to include the entire width of the tube, whereas the length of the tube can be very large (e.g. 3000 pixels). Selection of the tube orientation depends on the scanner. For very old flat-bed scanners, the long axis was oriented parallel to the scan direction (typically x ). The tube was later rotated using a program such as axchgmrc ( label has a limit on the dimension). For CCD-based scanners that use "swatch", the long axis is again oriented parallel to the scan: y for the Zeiss Photoscan so there is no need to rotate the image for initial stages of processing. However, for refinement, the tube must be rotated 90deg and the corresponding program ( axchgmrc ) requires a dimension of either 512 or 1024 pixels, so plan accordingly.


This is a GUI written in wxPython that simply collects information from the user and runs existing programs from a variety of different software packages. Error messages and certain results are printed on the console. If the program or script required for any particular step does not exist, is not in your path, is incorrectly configured, or is a version that takes different parameters, EMIP will fail and will probably produce some kind of error message. You should regularly check the directory listing to see what files have been created and to verify that the programs have successfully completed.

  • create an alias to the following command in your .cshrc file
    • alias lshead 'ls -lt | head'
  • then use lshead to check for the last few files that have been created after each step in the process

See EmIP page for more information and screen shots.

Directory structure

EMIP expects a particular (simple) layout of directories. From a directory of your choice, create a series of directories named for the id of each tube (e.g. ./1791, ./1792-2, ./7796). Copy the scanned image into this directory and start EMIP. You may change directories within EMIP using the File menu.

A little later, you will need another directory at this same level for the first averaged structure (first reference for unbending, e.g. ./ref1).

For unbending, a subdirectory will be created (called refine) within each tube directory (e.g. ./1796/refine)

your processing directory .
indiv tube directories 7774 1921 1926 7771a 7771b ref1 ref2 recon
refinement subdirectories refine refine refine refine refine      

File Conversions and Image Display

The image files should be converted to MRC format. Either byte (8-bit integer, mode 0 in MRC header) or integer*2 (16-bit integer, mode 1 in MRC header) format should work. File conversions are handled on the first page of EMIP ("transform") or you can run another program manually (e.g. label or em2em) The width of the image should be 512 or 1024 pixels.

Image can be viewed using a number of different programs, all of which have pros and cons. These can be selected from the "transform" page of EMIP. v2 (from EMAN) or imod (Univ. of CO), Ximdisp (MRC) are all purpose viewers that work with many workstations.
mrcdisp is an old MRC viewer that requires 8-bit displays. It should probably be avoided.


If for some reason you really want to use mrcdisp, the easiest way to use 8-bit display is vnc :

  • Start server: vncserver -display 8 :10
  • Start viewer: vncviewer :10
  • Within this virtual desktop, you should be able to run mrcdisp (though other viewing programs may not work).

You can also create another virtual 8-bit display under Linux. Create the following csh script and make it executable:


# starts an 8-bit display on display 1

#first save current .Xclients setup

cp .Xclients .Xclients.sav 

#choose your favorite windows manager 

#echo exec /usr/local/bin/fluxbox > $home/.Xclients

echo exec /usr/X11R6/bin/twm > $home/.Xclients

#echo exec /usr/bin/icewm > $home/.Xclients

chmod a+x $home/.Xclients

startx -- :1 -depth 8 

#after exiting, restore the original .Xclients file

cp .Xclients.sav .Xclients

will give you a new login screen (at least it does on RedHat ? systems) login and then run your csh script. This will launch an 8-bit X-window session. You can move back to the original 24-bit X-window session using . Go to the 8-bit session with .

Overview of HELICAL1 and HELICAL2 pages

There are two pages for processing helical crystals.

  • helical1 is for processing individual tubes.
  • helical2 is for averaging tubes together and creating a map.

Note that in addition to tooltips, a "right-click" on the buttons will print out a description of the steps taken for that button on the console and will also bring up relevant log files in separate windows for inspection.

You will have to change directories depending on which tube you are processing. This can be done with a pop-up window found under the File menu.

If you exit EMIP, the next time you start it will read the relevant control files and populate the fields with the parameters previously used. This is true both for processing of individual tubes (helical1 page) and for merging of data and calculation of maps (helical2 page). This process is initiated by entering the ID, either of the individual tube (helica1) or of the reference tube (helical2)

Note that EMIP will read data from the local directory and fill in field with the relevant data from a previous session. On the first helical page, simply enter the ID of the tube and use TAB key or mouse to move to a different field. This will initiate the reading of relevant control and log files to find the data from a previous session. On the second helical page, simply click the mouse in the REF ID field to initiate this process.

Note also that all of the programs initiated by EMIP can also be run from the command line, independently of EMIP. EMIP is designed to make control/command files based on information displayed in the GUI (and some other common sense parameters) and then to execute the relevant programs. Each time it executes a program, the command line is echoed on STDOUT (see below for example).


ltlg < ltlg.cnt




In general, you should pay attention to the output on STDOUT (e.g., look for errors or other information). It is perfectly acceptable to step outside of EMIP and type the command in a terminal window. The relevant program should run again and give you the same result. If you choose, you can edit the control/command file to change the parameters, however note that EMIP will likely overwrite your changes the next time you press the relevant button within the GUI.

A few programs require an environment variable to be set and therefore may not work properly from the command line. Also, EMIP frequently redirects output to a log file, so you may see a lot more information coming out on the screen if you run it manually.

Initial boxing and Fourier transform - FFT, PRJPLT, HFTOUT


On the HELICAL1 page of EMIP, enter the img ID. the "imgID" is used for naming conventions: imgID.fft,, imgID.acf, etc. If files exist from a previous session, then most of the fields on this EMIP page will be populated with the corresponding parameters. Otherwise, enter the image filename (e.g. imgID.mrc) and a Title that describes the tube.

His the AXCHG button, which will rotate the image 90deg as required for many of the programs. This will create a file imgID.rot.

Enter the pixel size in Angstroms:

  • actual dimension of the image pixel (e.g. 15um) / magnification.
Note that if you have used a CCD, the magnification at the CCD plane is 1.2-1.5x higher than the magnification at the film plane.

Enter parameters for an initial box. This can be done either as xmin/xmax,ymin/ymax or as xcenter/xsize , ycenter/ysize parameter pairs. The center and width can be determined using one of the view programs. To start, a length of 1024 pixels is usually suitable (2500-3000 A). An initial FFT frame size of 1024x2048 is suitable. angle refers to an in-plane rotation of the tube to align its meridional axis with y . Hit FFT to calculate an fft using these parameters.

PRJPLT will produce a 1D plot representing the projection of real-space densities along the meridional axis of the tube. The plot starts from the center of the boxed area and reaches to the outer radius of the tube. The left side of the tube (green x's) is inverted and overlayed with the right side (red +'s) of the tube. If the tube is perfectly centered, then the projection from the right side matches that from the left side. The average (blue *'s) and the difference (dotted purple line) of the two sides is also plotted. This plot allow one to judge the precise width of the tube and the optimal in-plane rotation angle.

  • There is generally a dip in density due to defocus just outside the tube. The radius should be measured at the place where this dip returns to baseline (115 pixels in this example).

  • Optimal centering and in-plane rotation generally produces maximal contrast in this projection: i.e. highest peaks and lowest valleys. The two sides match and the difference is therefore minimized.


To view the transform graphically, use View FFT . A new image containing the amplitudes is created (imgID.amp) and viewed using the program selected on the transform tab.


To evaluate phases and location of the layer lines, use HFTOUT . The cutoff and threshhold control the contrast of the output and may need to be adjusted. The output consists of 2 pages: the first represents the amplitudes and the second represents the phases. The equator runs up the right-hand margin of the page. The meridian runs horizontally along the middle of the page.

  • Adjust the cutoff/threshhold until the layer lines are clearly visible above the background on the amplitudes page (e.g. '5' and '6' along the layer lines and lesser symbols for the background).

  • Examine the amplitudes for the equator and the layer lines. They should run parallel to the x pixels axis (vertical on the page). If not, adjust the angle until the amplitudes follow the scanning raster. The equator should remain along a single pixel. Use the sharpest layer lines that go to the highest radius to evaluate this angle. Also refer to PRJPLT output for finest adjustment.

  • On the first page, find the first 2 or three peaks along the equator. On the second page, find the phase at those peaks. There is a letter code for the phases, which is indicated along the top margin of the second page. A=0, B=10, C=20 . . . S=180, T=190 . . . 9=350. These uppercase letters correspond to locations on the first page that have amplitudes of '5' or above. For locations with smaller amplitudes, there is a similar code with lowercase letters: a=0, b=10 . . . s=180, t=190, etc.

  • When the tube is centered, the phases along the equator will all be 0 or 180 deg. When off-center, the phases will start gradually get farther and farther from these ideal values. Not the current values, move the center of the box xctr by 1 pixel. Recalculate the FFT and reexamine the corresponding transform using HFTOUT . Thus, adjust the xcenter until the phases at peaks along the entire length of the equator are close to 0 or 180 deg. Your tube is now close to center.

hftout amplitudes hftout.jpg
hftout phases hftout-phase.jpg

Index the helical symmetry - llindex

This can be the most difficult and frustrating part of helical reconstruction. Please read and understand the nl plot as discussed in the following paper:

Diaz, R., Rice, W.J., Stokes, D.L. 2010. Fourier-Bessel reconstruction of helical assemblies. 2010. Methods Enzmol. 482:131-165.

The first step is to identify the locations of layerlines from HFTOUT output and to record the following 3 parameters:

  • their location along the meridional direction ( l )
  • the location at which the initial peak in the radial starts to rise ( R )
  • the relationship of phases under the first peak from either side of the meridian
    • ideally, these phases should either be equal or vary by 180 deg
    • if the tube has out-of-plane tilt, then this phase relationship will be perturbed
    • this perturbation increases with l , so only low lying layer lines should be trusted
    • if the phases are equal, then the Bessel order for that layer line is even
    • if the phases differ by 180deg, then the Bessel order is odd

The next step is to assign "Miller indices" ( h,k ) to each of the layer lines.

  • Pick two strong, low-order layer lines and assign them as 1,0 and 0,1 layer lines respectively.
  • Based on this choice, all other layer lines can now be assigned their respective h,k
  • All you need to look at are the l values:
    • l(1,1) = l(1,0) + l(0,1)
    • l(2,1) = 2 * l(1,0) + l(0,1)
    • l(1,-1) = l(1,0) - l(0,1)

Now run the program llindex . You will need to guess at the correct indexing scheme by entering trial Bessel orders for the 1,0 and 0,1 layer lines (enter n and l for each as shown). Then enter the values you have measured for R for each of the layerlines. llindex will calculate the expected radius of the tube in real space from each layer line value according the the following equation:

  • 2piRr ~= n+2 ~= 1.1n + 0.9 - where r=real space radius of the tube

If you have selected the correct indexing scheme, then the estimates for r from all the layer lines should be consistent with one another and consistent with the plot from PRJPLT

  • keep in mind that out-of-plane tilt will cause high-order layer lines to move closer to the meridian. This is especially marked for layer lines that are close to the meridian (i.e. small Bessel order).

  • once you specify parameters for (1,0) and (0,1), you can type the layer line height ( l ) and llindex will calculate the corresponding h,k .


  • choose nlplot from the dropdown menu of llindex to get a graphical representation of all the predicted layer lines based on the (1,0) and (0,1) assignments.

  • n,l plot:

Determine the repeat distance - ACF

The repeat distance along the tube is determined by an auto-correlation function. You need to define a small reference area from the bottom of the tube and a larger "test" area composing the rest of the tube. These two areas cannot overlap. The reference area should be slightly thinner than the actual width of the tube. The test area should be 38 pixels wider (for clean output). In the corresponding boxes, enter the xmin/xmax and ymin/ymax of each area. The length of the reference area is usually chosen as 140 pixels, but this can be changed depending on the application (e.g. signal-to-noise ratio of the data).

The output consists of a large table of normalized cross-correlation coefficients as the reference area is moved across the test area. The highest value (100) is not necessarily the best repeat distance to use. Start by scanning down the table and recording the location of all peaks >80.


These peaks should coincide with the axis of the tube (i.e., if the tube has an in-plane rotation of 1 deg, then these peaks should reflect that rotation and gradually move towards one side). For each maximum, the repeat distance is shown on the left hand column. Make a table of peak strength vs. repeat distance. Look for any trends:

  • is there a second order or third order peak present
  • are there subsidiary peaks

Choose a couple of plausible repeat distances to evaluate. Optimal repeat distance is ~1024 pixels. A very short repeat distance will generate a lot of overlapping layer lines. A very long repeat distance will make you more susceptible to distortions and bending along the tube.

To evaluate a particular repeat distance, alter the y size of the box used for the FFT ( yctr/siz ) to match the repeat distance. Examine the output of HFTOUT and note the strength of the signal along the layer lines, particular high order layer lines. Try increasing or decreasing the repeat distance by 1, 2, or 3 pixels to look for subtle differences (only necessary for well ordered tubes). Note the location of layer lines and watch out for overlap (i.e. does the -1,1 layer line overlap with the 2,0 layer line). Ultimately, you will choose the repeat distance that gives you the best signal-to-noise ratio along the layer lines and produces minimal layer line overlap.

The choice of repeat distance is somewhat arbitrary. There is no correct repeat distance. There may be many approximate repeat distances that will produce comparable results. Choose the one that is most convenient for subsequent processing and that produces a good signal-to-noise ratio.

The details of the ACF button are as follows. It involves running a python script called , which runs a number of programs from the MRC suite in addition to a final program for printing out the correlation map in tabular format:

  • label and axchgmrc to decimate and rotate image if necessary (usually not)
  • bandpass.exe to apply bandpass filter with maximum between 40-50 A resolution
    • padimg and label are used to ensure a square image with suitable dimensions
  • boxim to select test and reference regions of the tube
  • fftrans to calculate fft of each of these regions
  • twofile to multiply fft's together
  • fftrans to calculate inverse fft of the product = correlation image
  • label to select relevant region of correlation image
  • acftable to convert image to table of numbers for easy inspection

Refine center and determine out-of-plane tilt - SRCH

Enter (n,l) for both the 1,0 and 0,1 layerlines. Also, identify the strong (good) layer lines that you want to use for this refinement. These are the layer lines that are visible in the output from hftout . Enter their height ( l ).

The output of SRCH (on the console) will indicate an out of plane tilt, an x shift (should be less than 1 pixel), and a residual (<30 deg is acceptable). The tilt and the xshift are multiplied by 100. The residual is multiplied by 1000. The following example corresponds to 1.73deg tilt, 0.4 pixels shift, 18.32deg residual:

Final srch residual:
173 40 18320
Actual out-of-plane tilt of the tube,
accounting for scale factor: 0.9 deg

The actual out-of-plane tilt takes into account the anisotropic stretching of the tube along the helical axis and is only for informational purposes.

If the x shift is larger than 1 pixel, change the xctr of the box and calculate a new transform using FFT button.

The details of the SRCH button are as follows. It involves running a number of programs and is derived from

  • nltable creates a table of layer lines based on 1,0 and 0,1 assignments
    • maxn and Rcutoff affect the output of nltabl.
    • Rcutoff should be chosen to coincide with the 1st zero of the CTF (at most)
    • output files are and and imgID.tbl. Feel free to view these important files.
  • Creates imgID.lnl with specific information about layer lines from,
    • only those layer lines matching the good ll specified in the GUI layerlines are used
    • these goodll are stored in a file call imgID.goodll
  • hlxs_thresh is run interatively to determine an amplitude threshhold for selecting peaks for refinement
    • hlxs_thresh plots the layer line data and picks off points from the strongest peaks along the selected layer lines
    • the phases from these points are used to refine the xshift and out-of-plane tilt
    • output file is hlxsall.log. Feel free to look at it as it plots the data along the layer lines
    • hlxsall.log can be used to evaluate the starting position of the layer line data for indexing purposes
  • srch uses the few points with highest signal-to-noise ratio to determine xshift and out-of-plane tilt (omega)
    • this is run in two steps. 1st with a coarse search then with fine search
    • log files are in srch1.log and srch2.log, respectively
    • the resulting values for xshift and omega are entered automatically into the GUI. They should not normally be changed.
  • You can view a plot of near and far sides of the layer lines by right-click of the SRCH button. Note that the phase of the left side has been corrected to remove the 180 deg phase difference expected for layer lines with odd Bessel orders.

  • SRCH plot of layer lines:

Extract layer lines and calculate statistics for the tube - STATS

The Amplitude threshhold is used to select data included in the statistical evaluation. This threshhold corresponds to the percentage of the maximum amplitude that is considered. Two statistical measures are run:

  • near/far phase residual compares phases across the meridian after applying corrections for xshift and out-of-plane tilt. This is the only measure you can use unless you have p2 symmetry. 90 deg corresponds to random data.
  • twofold phase residual compares the phases of the near/far average relative to those expected for twofold symmetry (i.e. 0 or 180 deg). 45 deg corresponds to random data.

An example from a moderately ordered tubular crystal (which appears on the console). Note that the two-fold statistics are broken down into resolution ranges. The % data included in each resolution range depends on the amplitude threshhold. Values of phi,z are used to adjust the phase origin to coincide with a two-fold axis. More information can be obtained from log files nfresid_imgID.log and twofold_imgID.log :

  Near/far phase residual:

Residual by Resolution bin (ampl cutoff = 3.0):

Resolution:      50.0      40.0      30.0      25.0      20.0      15.0

Phase resid:     12.84     15.89     19.48     30.83     48.12      0.00

R factor:        0.070     0.090     0.099     0.119     0.104     0.000

Num points:        141        84       197       147        77         0

Overall residual:        23.63 -  Selected ll:      18.11

Overall r-factor:         0.09 -  Selected ll:       0.09

Overall num of pts:        548  - Selected ll:        371


Overall twofold residual: 

    minimum residual :     16.360 at phi =  -16.220, z =   -2.470

 Resolution dependent residuals

 --50.00(A)  --40.00(A)  --30.00(A)  --25.00(A) --20.00(A)

  6.78(132)   8.56(124)  12.84(386)  19.50(423)   0.27(663)

  ( 96.35%)   ( 91.85%)   ( 93.92%)   ( 89.81%)   ( 75.17%)

   (   137)    (   135)    (   411)    (   471)    (   882)


Helical Selection Rule:

t= 257, u= 592 (l = 257n + 592m)

dphi = 156.283784, dz = 4.937093

The last part is the helical selection rule, which may be of interest in comparing the packing of different tubes. To do this, make a plot of r*dphi vs. dz for the various different tubes. where r is the radius of the tube. This corresponds to the unit cell for the tube.
N.B. If there is rotational symmetry down the axis of the tube (i.e., if all the Bessel orders have a common factor like 2 or 4), then the helical selection rule is probably not correct. In this case, run nltable manually and divide the Bessel orders by the relevant common factor.

Again, this is a complex of individual programs involving the following

  • hlxmk to create a control file for extracting layer lines using info from and from results of srch
    • takes data from imgID.tbl to create a control file for hlxfl
  • hlxfl to extract layer lines and create imgID.nea and imgID.far files (for near and far layer line data)
    • control file is imgID.hlx . output file is imgID.nea and imgID.far
  • nfavg to average near and far sides to create imgID.avg layer line data file
  • to calculate near/far phase residual (log is nfresid_imgID.log)
  • to calculate two-fold phase residual (control file is twofold_imgID.cnt & log is twofold_imgID.log)
  • to calculate selection rule (log is selection-rule_imgID.log)

You can plot the averaged layer lines using the LLPLOT button. Enter name of the averaged layer line file (e.g., 7774.avg ) and click LLPLOT . Any averaged layer line file can be viewed in this way, before or after averaging, ctf correction, etc.

  • layer line plot for averaged file:

Average data from multiple tubes - create an initial averaged dataset

The next step in processing a tube is unbending . However, in order to detect the distortions of an individual tube, a reference data set is requires. The initial reference data set could potentially come from a single tube and if you choose to do this, then the imgID.avg file created by the STATS button. A better idea is to average data from several tubes together, to produce a reference with better signal-to-noise ratio. To do this, use the second EMIP page entitled helical2 .

  • create a directory (e.g. ref ) to do this averaging. This should be at the same level as the individual tube directories which were names according to their id. If the directory structure is correct, then EMIP will be able to find the files for the individual tubes and move them when necessary to the ref directory.
  • move into this directory (under the File menu you can Change Dir )

With this page, the layer line files from all the tubes (imgID.avg) are adjusted to the same phase origin and then averaged. The first step is to designate a reference tube. This should be your best tube (best phase residuals). Enter information for that tube into the first line in the HELICAL2 window of EMIP . If the tube has two-fold symmetry, then the phase origin should be adjusted to coincide with one of the two-fold origins (determined in the previous step by the hlx2fld program run as part of the STATS button. If the tube has p1 symmetry, then the phase origin is arbitrary and does not need to be adjusted.

  • enter the id and filename of the reference file. The other fields should be automatically populated if the corresponding files are found
  • run ADJUST PHASE ORIGIN to adjust the phase origin of the reference file. This will also place an entry in the Tube list
    • if you have a p1 tube and do not want to change the phase origin, just enter "0 0" in the phase origin phi/z field
    • you must hit the ADJUST PHASE ORIGIN button to enter the reference tube info into the Tube list


Layer line data from each of the other tubes must be "reindexed" to match the indexing of the reference file. Although all the files must have the same helical symmetry (i.e., the same Bessel order for 1,0 and 0,1 layer lines), the height of these layer lines ( l ) will be variable. Reindexing simply changes the value of l for these layer lines to match the reference. In doing that, the repeat distance is artificially set to be the same as the reference tube also - so it is as if all tubes have exactly the same selection rule. This artificial procedure can produce slight distortions in the individual tubes and may ultimately limit resolution if the underlying unit cell of individual tubes is variable.

  • enter the ID and filename of each "test" tube. The n,l values should be automatically entered if the file is found in the expected location (i.e. ../imgID/)
  • run AddTube to create file (based on input file: ../imgID/imgID.avg)
    • for this initial dataset, you want to find a common phase origin relative to the reference. To do this, select the fit to ref checkbox.
    • when selected, the fit to ref checkbox will cause HLXFIT to be compare with refID.avg. The corresponding values for phi, z, rscale will be entered in Tube list along with the fitting residual. That residual should be 50-60 deg.
    • If the residual is too high, limit the extent of the layer lines being used (goodll and Rcutoff on helical1 page)
  • if two-fold symmetry is present, then you may want to use the phase origin determined by HLX2FLD instead of the one determined by HLXFIT . This is generally recommended. The two phase origins should be similar.
    • To do this, hit 2FLD-TST button, which will report the twofold origin for
    • you must run HLXFIT prior to HLX2FD in order to ensure that you use the same two-fold origin as the reference file. Just make sure the Fit to ref checkbox is selected when you hit AddTube
    • If satisfied with the two-fold origin, then manually substitute the corresponding origin (reported on the console) in the appropriate place in Tube list , thus replacing the values initially determined by HLXFIT .

Process all the tubes in this way and checking the data in Tube list for accuracy. This data will be used to create a control file for hlxadd and thus to create a global average. Enter a name for the output file and hit HLXADDALL button.

  • To check the two fold statistics for the average file, hit the 2FLD-AVG button. The statistics are reported on the console and should indicate a substantial improvement in resolution relative to the individual tubes.
  • The control file is twofold_xxx.cnt. You may edit this to extend the resolution range at the end of this file. Log file is twofold.log.

CTF determination: CTFFIND3 and PLTCTFX

Now you are ready to unbend the individual tubes. But first you need to determine the ctf values for each tube. Go to the ctf page of EMIP. Here you have three options for ctf determination. Because the tube images have unequal dimensions in x and y (e.g., 512x3000), a standard FFT will be distorted and the View CTF option will not give a good result. This program also has a limit in the file size that can be analyzed. This first option is described [[EmIP][here].
CTFFIND3 is often the best option and does not require as much user interaction.
PLTCTFX has the advantage of using the tube itself for ctf determination, rather than any carbon film that happens to surround it. It is more complex to use and is susceptible to parameters used when interacting with the program.
In both cases, it is often important to constrain the range of defocus values so as not to obtain a spurious result. Also, be sure to view the FFT and judge whether the position of the Thon rings is consistent with the result of these programs.


  • this first runs sctravgft using the Sectors to Calc parameter to determine the number of sectors in which to divide up the FFT
    • sctravgft creates _imgID.ctf
  • enter the relevant information about kV, Cs, fraction of amplitude contrast (see Toyoshima papers on this topic: 1988 Ultramicroscopy 25:279 and 1993 Ultramicroscopy 48:165).
  • sample size corresponds to the pixel size and magnification should be calibrated for your microscope
  • min/max defocus helps constrain PLTCTFX to get the correct solution.
  • PLTCTFX requires a definition file containing the above EM parameters ( pltctf.def ). Uncheck the box if you wish EMIP to create this file.
  • You may be able to get a result by simply hitting NEXT for the several windows presented by PLTCTFX . However, better results may obtained by selecting data along each of the sectors. Do this by clicking the start position along the axis followed by Start R . Then click the ending position along the axis followed by End R . Do this sequentially for each sector. Subsequent windows will indicate the region of the layer line that has been selected.
  • The result is obtained after running CTFFIT . If you don't like the result, just try again.
    • PLTCTFX creates a postscript record of the process if you choose HARCOPY ( ). Also, CTFFIT creates a control file imgIDctf.cnt and a log file ctffit.log .


  • CTFFIND3 divides the image up into tiles . Enter the size of those tiles
  • Res Min and Res Max correspond to high pass and low pass filters respectively
  • Step Size is for fitting the ctf to the resulting power spectrum. Smaller steps should provide more accurate fitting
  • hit View Output to see result graphically and printed out on the console. Check log file for more details.

Enter values for defocus into the helical1 page of EMIP

  • change directory to a given tube (imgID)
  • enter the imgID into the first field - the data in all the other fields should be repopulated
  • in add ctf info box
    • filename base, which prior to unbending is just imgID and after unbending is something like imgIDac150
    • enter the defocus values in the dfmin/max ang field.
    • adjust values for kV and Cs if necessary
    • ampC is the percentage of amplitude contrast, which has been estimated to be 4.5-7 % for 200kV helical tubes of acetylcholine and CaATPase ?
    • df diff is a parameter in ctfapply that specifies the difference in defocus applied to the near and far datasets. The idea is that the tube has a finite thickness. But unless you know the hand of the tube and are interested in high resolution, it may be best to leave this at zero.

Hit CTFAPPLY to make sure that a control file is created with the appropriate CTF parameters. This control file will be read the next time you start the program, thus preserving your information.

Prepare directory for unbending: UNBENDPREP

In the ref file field (next to the UNBENDPREP button), enter the name of the reference file that you created for unbending. You can locate this file using the popup window. Values for n,l should be entered automatically. Select a letter corresponding to the repeat that you will be unbending. This is generally a unless you have a very long tube and you wish to process a second repeat with different xmin/xmax/ymin/ymax values. It is probably less confusing to do this in a separate directory.

Hit UNBENDPREP button to create the refine directory and copy/create all the relevant files.

  • will run axchgmrc to rotate the tube 90 deg. If the tube dimension is not 512 or 1024, this program will fail. You can either trim/pad the image using label from the command line.
  • will reindex the reference tube to match the tube to be unbent
  • will make a file for ctfplot containing the defocus parameters
  • will use to create a box file with various tube alignment parameters
  • runs to finish setup of the refine directory


If everything is setup properly, then this is easy. Just select the number of segments to divide the tube into (2-5). The shorter the segment, the more able to follow deformations. However, the low signal-to-noise ratio may impede this process. 3 is the standard number, corresponding to segments 600-1000 A long. Then just hit UNBEND . Check the refine directory for the results. The desired files generally have the name imgIDac300.nea and imgIDac300.far.
  • this step is a very complicated series of steps described in the paper by Beroukhim and Unwin (Ultramicroscopy 1997 70:57-81) and in the document
  • the process is controlled by a csh script called and creates a log file hlx_unbend.log, results files __*.rr and imgIDa.curves
  • flowchart describing the unbending process: unwin-refine-outline.pdf

To check the result of unbending, right-click the UNBEND button to view the log files
Also, compare the phase statistics before/after unbending

  • enter name of resolution/limited unbent file in the input file field next to HLX2FLD
    • this filename will be something like imgIDac140 - check in the __refine__directory
    • the number in the filename depends on the radial position of the first ctf zero and depends on defocus
  • hit HLX2FLD button to obtain statistics for near/far residual and two-fold symmetry
  • replace input file with the file prior to unbending (i.e., imgID)
  • adjust the Amp threshld parameter to obtain comparable results (i.e. same number of points in corresponding resolution ranges)

Add CTF data to the unbent tube: CTFAPPLY, NFADD

Check defocus parameters as well as EM operating parameters in the relevant fields (you should have entered these previously).

  • find the base name for the files to correct (e.g., imgIDac300). They will be located in the refine directory and values for the ctf will be added.
  • CTFAPPLY actually multiplies the amplitides by the CTF and inverts the phases in the first, third, fifth maxima.
  • CTFAPPLY also adds a column of values corresponding to the CTF 2 at each position along the layer line
  • output files are prepended with "ctf". e.g. ctfimgIDac300.nea, ctfimgIDac300.far
  • control file is ctfapply.cnt , log file is ctfapply.log

Next, hit NFADD to average near and far data sets. This will create ctfimgIDac300.avg.

  • log file is nfadd.log

Average unbent data from several tubes: HLXADDALL

Now that the tubes have been unbent, return to the helical2 page and combine the data into an averaged data set. This new average can either be used as a reference for a second round of unbending, or for map calculation.

It is best to make a new directory: e.g., ref2.

For making a new unbending reference, do not use the ctf corrected files. For map calculation, you should use the ctf corrected files. The process is similar to previously, but in this case you do not want to adjust the phase origin or rscale of any files. These parameters have been adjusted during unbending and should be 0.0 0.0 1.

  • make a new directory (e.g., recon ) for the combining the files for the final reconstruction
  • enter the ref file ID and filename
  • change the phase origin phi/z to "0 0"
  • hit Adjust Ref Origin to add this reference file to the Tube list
  • although hlxfit is run, it doesn't actually create anything useful at this stage. The main purpose of this step is to add the entry to Tube list
  • enter the first tst file ID and filename
  • uncheck the fit to ref checkbox and hit AddTube
  • change the phi,z,rscale values in the Tube list to 0 0 1
  • this will run hreindex to alter the indexing and create the file *.ren and then add an entry to Tube list
    • log file is hreindex imgID.log

When finished adding all the tubes to the Tube list , enter filename for avg and hit HLXADDALL

  • HLXADDALL uses hlxadd to sum the amplitudes, perform amplitude-weighted averaging of the phases, and sum up the CTF 2 values at each radial position along the layer lines
  • control file is hlxadd.all , log file is hlxadd_all.log

You may check the two fold statistics of the resulting, averaged file using 2FLD-AVG button

  • as before, the control file for the hlx2fd program is twofold_avgfile.cnt and the log file is twofold.log
  • this twofold is done with amplitude threshhold of 0.1. Edit the control file if you want to change this parameter

If you wish to do another round of unbending, then you may repeat the entire process with this new average file (not twofold enforced)

  • two rounds of unbending are generally sufficient as judged by a lack of further improvement in resolution as judged by two-fold statistics


CTF correction: DIVCTF, g(n,l)

To correct the CTF, the summed amplitudes are divided by the sum of the CTF 2 . This is done by DIVCTF button. One potential problem is that CTF 2 can be close to zero due to the oscillatory behavior of the CTF. This is particularly problematic as the equator approaches the origin, where the value of the CTF becomes vanishingly small. This may also be the case at the nodes of the CTF, but by averaging several tubes together, the fact that they have different defocus values tends to fill in the nodes. At the origin, the CTF always goes to zero.

  • ctf min is a parameter that restricts the minimum CTF 2 that is used to correct the amplitudes. Actually, the values stored in the averaged layer line file (bigG file) represent the sum of the CTF 2 from all the tubes. So if you add together 10 tubes, the max value of CTF 2 is 10 and 0.3 actually corresponds to 0.03 for an individual tube. Choose a value that makes you comfortable. Remember that where the CTF is very low, the signal-to-noise ratio is also large and you do not want to allow noisy data to dominate your reconstruction.
  • equator corr is a parameter that controls the CTF correction along the equator. The equator is important because it determines the mean radial density distribution of the reconstruction. Values along the equator that are closer to the origin than equator corr are given full CTF correction, regardless of the value of ctf min . This is problematic if there are values of 0.000 for CTF 2 in the layer line file. In that case, you get INF in the CTF corrected file and it cannot be used in subsequent steps. The file is ascii and you can examine it using more . You only need to look at the first screen full of data, which corresponds to the region along the equator that is close to the origin.
  • The program is divctfbeq , control file is and log file is divctf.log

Truncate resolution and contrain two-fold symmetry: HCUT and HLX2FLD

It is generally wise to truncate the resolution of your data to match the expected (or documented) resolution of the data. You can use HLX2FLD to judge the resolution if two-fold symmetry is present. Otherwise, you can create two independent maps by dividing the data into two halves and use SPIDER to calculate an FSC from the two maps (not covered in EMIP).

  • uses hcut program to truncate layer line data
  • enter input filename and resolution range (Angstroms) into field, repeat distance is also required and taken from GUI
  • control file is , log file is hcut.log and output file is *.lmt (same base as input filename)
  • both lower and upper resolution limits are used by the program, creating a "band-pass" filter
    • entry of zero for lower resolution limit means that no lower limit is applied

If desired, run HLX2FLD button to assess resolution of your dataset and to create a two-fold constrained file for calculation of a 3d map. After CTF correction, the two-fold statistics, will be somewhat different than for HLXADDALL output file due to amplitude weighting that is affected by CTF correction.

  • uses hlx2fld program, twofold_filename.cnt for control file and twofold.log for logfile
    • runs hlx2fld iteratively until a minimum is found
  • if you wish a different resolution range, edit the control file and change the values at the end
    • number of resolution bins, followed by the upper limit of each bin
    • type " twofold_filename.cnt [outputfile.2fd]"
  • if you wish to center the map on a different two-fold origin, edit the control file and change the starting range for phi and z

Fourier-Bessel inversion and map calculation: g(n,l), HLXSEC, and MRDD

Use g(n,l) button to calculate little g's.

  • r limits are the min/max radius of little g in real space as well as their sampling interval. These
should be oversampled, as will the map. 2 A is standard. Feel free to use 4 A for faster and smaller maps, especially if calculating a large volume for visualization. The sampling interval used for g(n,l) should probably be the same and for the map ( HLXSEC ). The 2fld check box controls whether two-fold symmetry is assumed for the map. If so, only the real part of g(n,l) are calculated. Otherwise, both real and imaginary parts are calculated. Different programs are used in each case: ltlg for real data and ltlgab for complex data.
  • output filename is same as input filename but with extension .lgS, where S is the sampling interval
  • control file is either ltlg.cnt or ltlgab.cnt . logfile in both cases is ltlg.log
  • when restarting EMIP , twofold symmetry will be assumed if ltlg.cnt is found. This can be changed by simply unchecking the 2fld box.

Use MAP to calculate the 3D map. The resulting map can be viewed by chimera or any other program that can read MRC format files (e.g. IMOD ). This map can consist of sections tangential to the wall of the tube (longitudinal or X sections) or normal to the long axis of the tube (cross or Z sections). Although surface rendering programs like chimera do not care about this choice, plotting of sections using imgplot will be different. Depending on this choice, different programs are used to make the map. hlxsec for X sections and hlxhor for Z sections. These programs take slightly different parameters, as detailed below and in the tooltips of the GUI. These programs assume that data is two-fold enforced (i.e. only real g(n,l) data). If no two-fold symmetry, then hlxsecab and hlxhorab are used for an unsymmetrized map.

  • xlim, philim, zlim control the extent of the map.
    • for X sections (hlxsec):
      • xlim represents the min, max, stepsize of the sections along the x (radial) direction (xmin xmax xstep)
      • philim represents center of the map (in degrees) and the number of steps (same size as in z ) (phictr phisteps)
      • zlim represents min, max, stepsize of sections along the z direction (helical axis) (zmin zmax zstep)
    • for Z sections (hlxhor):
      • xlim represent size of the map in x and y in Angstroms (xsize ysize)
      • philim represents min and max of map in degrees (phimin phimax)
      • zlim represents min, max, stepsize of sections along z direction (helical axis) (zmin, zmax, zstep)
  • scale controls the density scale. *For helical maps, a positive scale factor is generally appropriate, though there have been occasions where the contrast needed to be inverted by using
a negative scale factor.
  • output filename is same as input filename, but with extension .xS, where S is the sampling interval for g(n,l)
  • When restarting EMIP , it will look first for hlxsec control files (X sections) and assume that is what you want to use. If these are not found
it will look for hlxhor control files (Z sections). You may have to update the GUI depending on what you want to do. Please look at control file (hlxsec.cnt, hlxhor.cnt etc) to find out parameters used during previous sessions.

Use MRDD to calculate the mean radial density distribution. This is a plot of the averaged density as a function of tube radius. This profile can be used to evaluate mass distribution across the tube. If it is a membrane tube, you will typically see the two highest peaks at the position of the phosphate headgroups of the lipid bilayer. This plot will resemble that from prjplt somewhat, except that correction of the CTF will alter the weighting of the profile substantially. This plot come from Fourier-Bessel transform of the equator. In fact, this plot is simply g(0,0), or the little g produced from the equator. It is very sensitive to CTF correction and if you use a different amount of amplitude contrast or different parameters for divctf , the shape of the distribution will change.

  • mrdd.dat is the actual data that is plotted
  • mrddplot.cnt is the control data for gnuplot , which generates the plot
  • mrddplot.csh is the csh script for running gnuplot
  • and mrdd.pdf contain the plots

Map display: IMGPLOT or CHIMERA

Use IMGPLOT to create a contour plot from the 3D map.

  • output files are and imgplot.pdf
  • intervals should be 4 numbers (e.g., 20 40 60 10):
    • scale is the mm/A for the plot
    • 1st three numbers are the density threshhold for dotted, solid, maximum contours.
    • 4th number is the interval between contours.
    • this plotting is done by CCP4 program npo and the environment for CCP4 must be set up correctly
      • eg., source $CCP4_MASTER/ccp4.setup-csh

X section through the map:

Z section through the map:

Alternatively, use display program like CHIMERA or IMOD or AMIRA for display

  • for chimera , specify file type as MRC map
  • for imod , you can view sections with countours overlaid or an isosurface
    • you may need to adjust the density min/max stored in the header
    • use alterheader and option "mmm" to do this
  • for amira , import file as real*4 and skip first 1024 bytes (which correspond to the header
    • use header to view the x,y,z dimensions of the map

Mask a molecule, or asymmetric unit, from the map: IMOD

  • To make a mask, open the file in imod and go to model mode.
  • For each section, create a new "contour" by typing "n". Then define a closed polygon using the middle button to enter the coordinates (read IMOD help for details about this process and functions of the various mouse buttons).
    • left button to select points along contour
    • middle button to create new points
    • right button to move selected point to new position
    • ctrl-right button deletes the point
    • use edit->model->offsets to move entire model to a new position

  • Everything outside the polygon will be excluded from the masked image. All sections should have an associated polygon contour. Sections with no polygon will not be included in the final mask.
  • Save the model with the same basename as the mrc file, but with the extension .mod
    • example: copa.mrc would have the model copa.mod
  • run imodmop (part of imod suite).
    • type: imodmop modelfile inputimagefile outputimagefile
    • imodmop does not offer a soft mask by gaussian blurring
    • for details on imodmop and its many options, type man imodmop

  • Alternatively, run . This pearl script requires proc2d (part of eman1 ) and spider to be in the path.
    • prompts for the model name and assumes the name of the mrc file.
    • offers the ability to do a soft mask by applying a gaussian blur to the mask. Full instructions and more information are located in comments at the start of the program.

Unit Cell parameters (hcellprm)

Not yet incorporated into EMIP, hcellprm will calculate the unit cell lengths and angle as a function of radius

  • will read file
  • output parameters mean the following
  r = radius

_1,0 = angle to 1,0

_0,1 = angle to 0,1

gamma = included angle

(1,0)x = x coordinate of 1,0

(0,1)x = x coordinate of 0,1

c 1 0 = length of 1,0 in cylindrical (curved) section (c = r*phi)

d 1 0 = length of 1,0 in x (planar) section (d = 2r*sin(phi/2))

ratio = c01/c10

area = area of unit cells based on c01 and c10

Most sensible to use c10 and c01, ratio and area

The output table looks like the following. Typically, unit cell parameters are taken at the radius that corresponds to the middle of the membrane.

  Unit cell parameters for : ""

       (n, l) for (1, 0) : -12  39

                  (0, 1) :   8  58

         repeat distance :  5163.3 Angstrom

     Coordidate of (1,0) :  20.714 deg,  40.978 Angstrom

     Coordidate of (0,1) : -13.929 deg,  61.467 Angstrom


r (A): /_1 0: /_0 1:gamma :(1,0)x:(0,1)x: c 1 0 (d10) : c 0 1 (d01) : ratio : area


 111:  45.60 -66.30  68.10  40.13 -26.98  57.36  57.20  67.13  67.10 1.170  3572.5

 114:  44.84 -65.73  69.43  41.21 -27.71  58.12  57.96  67.43  67.40 1.160  3669.0

 117:  44.09 -65.17  70.74  42.30 -28.44  58.89  58.73  67.73  67.70 1.150  3765.6

Create a contour plot map

See ContourPlotMap .

Unbend smilar images with different number of frames

For images acquired with a K2, a first run may be done with all the frames, then, to re-run the unbending on a second image done with a different number of frames:

  • copy /refine folder in new directory
  • remove .avg, .new and .far files
  • run /cryoem/helix/script/ ID seg_num a


DavidStokes - 3 Dec 2011