Tomographic series alignment and reconstruction
An example of gold fiducial markers on
holy carbon is provided for training:
The pixel size is about 5 Å/pixel, the fiducial markers are about
100 Å in diameter, the tilt axis is close to the x-axis (-5˚), and the
tilt series start at -60˚ and proceed in 5˚ steps.
The tomographic tilt series is represented in the parameter files in
Bsoft as a
single field-of-view with multiple micrographs, one for each image. The
image must therefore be in a multi-image format such as PIF or Spider
before it is processed. The programs bhead, bimg and bnorm have an
option to convert 3D slices into a stack of 2D images for multi-image
formats, and the program btomo automatically does the conversion:
bimg -v 7 -images gold3.map gold3.pif
In preparation for alignment and reconstruction, the contrast variation in the series due to increased thickness at higher tilt angles must be compensated. To normalize the contrast in the series, the central part of the histogram of each micrograph is fitted to a Gaussian function, and rescaled to a given average and standard deviation:
bnorm -v 7 -rescale 127,10 -data byte -out gold3.star gold3.pif gold3_norm.pif
Alternatively, the normalization can also be done after setting the initial parameters in a parameter file (see next section to set initial parameters):
bnorm -v 7 -rescale 127,10 -data byte -out gold3_norm.star gold3_2.star
2. Setting the initial parameters
Some of the initial parameters can be set up with btomo, starting from either the tilt series images, or an initial parameter file (such as generated from normalization in the previous section):
btomo -v 7 -sampling 5 -axis -5.7 -tilt -60,5 -gold 10 -out
btomo -v 7 -sampling 5 -axis -5.7 -tilt -60,5 -gold 10 -out gold3_2.star gold3.star
All of the initial parameters can set up in bshow:
bshow gold3.star &
Set the following parameters:
- Enter the correct pixel size in the main window
- Select the menu item "Micrograph/Tomography" and enter the fiducial marker radius in pixels
- Enter the tilt axis and angles:
- Select the menu item "Tomography/Set tilt angles" and enter the tilt axis angle, the startimg angle and the angular increment.
- or select the menu item "Tomography/Read rawtlt file" and read the angles from a *.rawtlt file
3. Generating seed fiducial markersIn bshow, change to the zero-degree tilt image and select the menu item “Tomography/Find markers in current image”. This will cross-correlate a synthetic marker based on the marker radius with the image, and present a set of peaks and a dialog box. Adjust the FOM slider in the dialog box until a satisfactory set of markers are selected and click on "Done". Markers can be added or deleted manually. Eliminate markers that are close to edges, because they might not stay within the frames of all the images in the series. Save to a parameter file using the menu item "Micrograph/Write parameters" - in this case the file is called "gold3_seed.star".
4. Finding the tilt axis
Often the tilt axis for a particular magnification on a microscope is not known accurately, or there might be a misunderstanding of the definition of the tilt axis. In Bsoft, the tilt axis angle is defined as the counterclockwise rotation angle from the x-axis to the tilt axis. To find the tilt axis angle to within acceptable accuracy, two methods are available.
4.1. The tomax script
This script uses full tracking runs with different tilt axis angles to determine the best residual. It is very compute-intensive and should only be used if the faster method (see below) doesn't work. The tomax script is run specifying the initial angle, the angle step size, and the final angle to test for:
tomax -angles -10,1,10 gold3_seed.star
The output gives the residual for a single iteration attempt at tracking the markers, and the tilt axis angle with the lowest residual should be used subsequently.
Output from the tomax script:
|Tilt axis angle determination:
Tue Mar 27 15:25:05 EDT 2007
File = gold3_seed.star
Angles = -10,1,10
The best tilt axis angle is -5˚ and that will be used for tracking.
4.2. Using btrack with the -findaxis option
The program btrack offers a faster alternative to the tomax script with potentially less accuracy. This method uses only two micrographs close to a user-defined tilt angle to test for the tilt axis angle. The following command line selects micrographs close to 15° tilt and with a tilt axis angle step size of 1.5°:
btrack -v 1 -findaxis 15,1.5 -out gold3_ax.star gold3_2.star
The best tilt axis angle is written into the micrograph parameters. A plot of the correlation coefficients indicate that the tilt axis angle is better determined at around 20°, although this may be different in other cases.
Test for the tilt axis angle with different pairs of micrographs.
5. Alignment using fiducial markers
From the fiducial marker seed in the zero-degree tilt image, the z
coordinates of the markers as well as the image shift for each
micrograph is determined (btrack). The basic algorithm first attempts
to find the z-coordinate for each marker in an image by doing real
space correlations along a line determined by the tilt direction. It
then generates a projection image from the whole marker set at the
nominal tilt angle and cross-correlates it with the image to find the
shift. The process proceeds from the low-angle tilts to higher tilts in
both directions, using the lower dependence of the low-tilt images on
correct marker z-coordinates. This process is iterated (typically 2-5
times) until the change in z-coordinates drop below one pixel on
average or up to the maximum number of iterations. The exact positions
of the markers in each micrograph are then
refined (-refine markers).
btrack -v 1 -reset -axis -5 -exclude none -update -track 5 -refine markers -out gold3_trk.star gold3_seed.star >& gold3_trk.log &
The -resetmodel option ensures that the zero-tilt marker positions agree with those of the 3D model at the start of tracking. The -updatematrix option recalculates the micrograph orientation matrices from the tilt axis and tilt angles.
After every iteration a parameter file is written to allow for user inspection (file names gold3_trk_01.star, gold3_trk_02.star, ... ). To follow the progress in tracking, the log file can be queried:
grep Cycle gold3_trk.log
Cycle 1: Average change in positions = 35.8846
Cycle 2: Average change in positions = 0.440963
This gives the change in marker positions for every iteration, with the first always a high number because the z-coordinates are zero at the start. When the change in positions drop below 1, a reasonable alignment has been reached and the program finishes. The overall residual is given at the end of the log file:
tail -2 gold3_trk.log
Average residual = 1.98881 pixels
The new parameter file can read with bshow to examine the marker positions:
bshow gold3_trk.star &
The markers are indicated with orange lines, where each line indicates the difference between the current marker position and the position predicted from the 3D marker model. Markers with big deviations or those that are obviously incorrect, can be adjusted manually and the results saved into a new parameter file (gold3_trk2.star). The menu item "Tomography/Show marker table", provides a listing of the markers and buttons to find the lowest and highest residuals and FOM's.
Next, several rounds of refinement of the z-coordinates, the view and origin of each image are done to improve the alignment. A general rigid-body target function is used with no restrictions on the view (such as assuming a tilt axis perpendicular to the electron beam), so that the final alignment can be used directly in reconstruction.
btrack -v 1 -reset -refine 10,z,o,v -out gold3_ref.star gold3_trk2.star >& gold3_ref.log &
tail -2 gold3_ref.log
Average residual = 1.13986 pixels
In bshow, single iterations of these refinements can also be done. Select the "Tomography/Refine alignment" menu item. One of three types can be selected:
- Markers, which refines the marker positions on the micrographs
- Z-coordinates, which refines the 3D model z-coordinates
- Micrographs, which refines the geometry associated with each micrograph
- Scales (be careful here, scale refinement may compensate for tilts and should only be done once and as the last refinement)
If the residual remains high (> 5 pixels), please see the section on trouble shooting at the bottom.
6. Tomogram reconstructionThe reconstruction is done in Fourier space with the same algorithm as for single particle analysis, with the modification that separate slabs in Fourier space can be calculated, assembled and backtransformed later (bmgft, btomrec, bzfft). The use of the programs is rather involved, and to handle all the different issues and dependencies, the reconstruction can be done using the tomrec script:
tomrec -rec gold3_rec.pif -resol 30 -size 1024,1024,120 -thick 20 -scale 1 -out gold3_rec.star gold3_ref.star >& gold3_rec.log &
The reconstruction can be denoised using the non-linear anisotropic
diffusion algorithm Frangakis et al. (2001) (bnad). To allow
piecewise and distributed denoising, the tomogram is divided into
(btile), each tile denoised (bnad), and the tiles reassembled (bpatch).
The key parameter is the tile overlap, which must be at least as many
pixels as the number of cycles used for denoising. The memory
requirement is high, so the tiles should not be too large (1 Gb of
memory would allow a block of maximum 400x400x200 to be denoised).
The tomogram is first tiled:
btile -v 7 -size 400,400,240 -overlap 100,100,0 gold3_rec.pif tile.mrc
Each tile is then denoised, using the script tomnad.
The tiles are finally reassembled into the full tomogram as floating point:
bpatch -v 7 -tiles tile.tiles -out patch.mrc tile_0??_nad.mrc
The tomogram is then truncated to the average +- 5*standard deviation and converted to byte data type:
bimg -v 7 -dat byte -trunc 74,179 patch.mrc gold3_den.pif
8. Resolution determination
The resolution for each micrograph with respect to the reconstruction can be determined using the scripts mgft and tomres, based on the method of Cardone et al. (2005) and described (btomres) in Heymann et al. (2007).
The mgft script prepares the Fourier transforms of all the micrographs:
mgft -size 2048,2048,240 -pad 0 -output ft.star gold3_ref.star
The tomres script subsequently calculates the resolution for each micrograph:
tomres -size 2048,2048,240 -resolution 30 -postscript gold3_res.ps ft.star >& gold3_res.log &
Marker reference images
The marker tracking and location refinement rely on a marker reference images produced as an average of the marker images in the zero-tilt micrograph. These images are written into the files "marker_track_ref.map" and "marker_refine_ref.map" for tracking and refinement, respectively. They should look something like this:
If they look significantly different from the example, please send me a bug report with all the details (email@example.com).
Manual marker positioning
If marker tracking completely fails, the markers can be manually positioned. To alleviate some of the manual labor required, markers can be generated from a seed in the zero-tilt micrograph, using the nominal tilt axis and tilt angles:
btrack -v 1 -generate -out gold3_gen.star gold3_seed.star
This can also be done in bshow using the menu item "Tomography/Generate markers from seed".