This is a work in progress
Add your related questions in e2make3d FAQ.
This program reconstructs 3D volumes using a set of 2D images. Euler angles are extracted from the 2D image headers and symmetry is imposed. Several reconstruction methods are available (see e2help.py reconstructors) - the fourier method is the default and recommended reconstructor. Input images need not be square, and need not have even dimensions.
A simple example of usage is:
e2make3d.py --input=classes.img --sym=c3 --output=recon.mrc --pad=128
Because there are several default settings, this is more or less equivalent to:
e2make3d.py --input=classes.img --sym=c3 --output=recon.mrc --pad=128 --keep=1 --recon=fourier --iter=3
Because the padding is always done using zeroes it is best if your data (or preferably the edge pixels of your data) have mean zero. If you are unsure whether your data are appropriately normalized you can add the --preprocess flag:
e2make3d.py --input=classes.img --sym=c3 --output=recon.mrc --pad=128 --preprocess=normalize.edgemean
You can add as many --preprocess arguments as you like, and they are applied in the order in which they are specified, before padding occurs.
If you specify a value of the keep parameter that is not one, i.e. --keep=0.9, it allows for the automatic exclusion of those images that agree poorly with the rest of the data set. If constructing large volumes use the --lowmem option.
It is also possible to reconstruct tomograms. Example usage would be something like:
e2make3d.py --input=aligned_tomogram.img --sym=c1 --recon=fourier:zsample=100 --pad=1296 --preprocess=normalize.edgemean --preprocess=tomo.tiltedgemask:angle_fim=1:biedgemean=1
If the input images are 1024x1024, then the reconstructed volume will have dimensions 1024x1024x100. However, the input images must have their Euler angles stored in the image header - for example they can be aligned using IMOD, and then converted into imagic format using e2ali2img.py. Contact us for more details. Note the use of the tomo.tiltedgemask processor which masks out the regions of tilted images that are not present in the 0 tilt image, based on Euler angles stored in the image headers. If you are curious to see what the processors does run
e2proc2d.py tomoseries.img tomoseries_edgemasked.img --process=tomo.tiltedgemask:angle_fim=1:biedgemean=1
on the command line and observe the output.
See e2make3d.py -h for further information on parameters.
The Fourier reconstructor is designed to work in an iterative fashion. In the first iteration all of the 2D projection images (or "slices") are inserted and averaged into a 3D volume in their correct orientations. In subsequent iterations the slices are compared to the previous 3D volume to determine two things: (1) A quality metric which indicates how well the slice agrees with all the other slices in the 3D volume; and (2) a normalization score which indicates how the slice should be weighted so that the contribution from each slice is equal. This iterative reconstruction procedure can continue until no further slices are excluded from the reconstruction and the normalization scores more or less converge.
This approach was first utilized as the main reconstruction method in EMAN1, and has some modifications in EMAN2 including:
1. Fourier ring correlation (FRC) is now used to generate the quality metric as opposed to the phase residual, which was used in EMAN1 (aka the "hard" parameter). In particular, the FRC of the slice in the 3D volume is determined, but the slice is removed from the 3D volume before doing this calculation. Therefore the score reflects the extent to which the slice agrees with the contribution of the other slices in the 3D volume. The FRC is converted to SNR using the relationship described by Penczek ( Three-dimensional spectral signal to noise ratio for a class of reconstruction algorithms, JSB 2002 138 (24-46) )
FRC = S/(sqrt(S+N1)sqrt(S+N2))
Where N1 is the noise in the slice of the 3D volume and N2 is the noise in the image slice being inserted. We make the assumption that the noise in the 3D volume is 0 (N1=0) to get
FRC^2 = SNR/(1+SNR)
which gives a spectral SNR plot - we then divide each SNR value by the number of particles in the class average (seeing as SNR should scale linearly with the number of particles) to get the estimated SNR per contributing particle in this class average. If the particles that have been averaged are not homogenous this score should be low etc. The scaled SNR curve is then converted back to a FRC curve and integrated. This integral is the similarity metric, and depends on how far information extends to in Fourier space - typical values range from 0.05 to 0.2, but can vary substantially depending on the data.
2. The EMAN2 Fourier reconstructor uses 60% of the memory used by EMAN1's equivalent reconstruction algorithm.
3. The normalization value is calculated according to the Fourier reconstruction method used (i.e. 1-7). This is different from EMAN1, where the normalization value was calculated using a method that resembled reconstruction mode 1. This has no dramatic effect, but is more internally consistent. Also, the normalization value is no longer cumulative - instead its optimal value is determined using a technique akin to a convergent bisection method.