Reconstruction via Random Conical Tilt (RCT)
In EMAN2 an initial model can be constructed using RCT and a stack of untilted and tilted particles whose set element relationship is on-to-one. Typically the tilt angle between the untilted and tilted is at least 45 degrees, but usually 60 degrees. A larger tilt angle is desirable because RCT produces reconstructions with a missing cone, in Fourier space, a larger tilt angle reduces the cone volume. In some cases -45 and 45 degree tilt data are collected to remove the missing cone altogether. For more information see: http://www.oup.com/us/catalog/general/subject/LifeSciences/MolecularCellBiology/?view=usa&ci=9780195182187
To do a RCT reconstruction in EMAN2:
- Pick untilted/tilted particle pairs using e2RCTboxer.py. While WEB/JWEB or DoG tiltpicker can be used, it is recommended to use e2RCTboxer.py ensuring that image attributes will be correct and avoiding file conversion (which can be a bit of a headache)
- If you are doing cryo electron-microscopy (i.e. not negative stain), CTF correct the untilted particles via phaseflipping (this improves in-plane rotation determination). Run e2ctf.py on the untilted image stack, for example: e2ctf.py myuntilted.hdf --voltage=300 --cs=4.1 --apix=2.1 --phaseflip --gui (of course voltage, Cs, and apix are specific to your project). Unfortuately CTF correction cannot be done, at this point, for the tilted particles because of the defocus gradient created by micrograph tilting. To remove distortion caused by the CTF, filter to the expected first zero using e2proc2d.py. For example: e2proc2d.py tilted.hdf tilted_filter.hdf --process=filter.lowpass.gauss:cutoff_abs=0.05 (You might want to play around with the filtering and observe its effects on the RCT recon)
- Run: e2refine2d.py on the untilted particle stack. Examine the class averages, and note the rubbish ones. These will be excluded from the RCT step.
- Run: e2rct.py using the the untilted data, tilted data, class average data, stagetilt and any desired options.The untilted data used for e2rct.py MUST be the same as that used for the e2refine2d.py step.
Using e2rct.py
To run e2rct.py the following 'options' are required for particles picked using e2RCTboxer.py: --untiltedata, --tiltdata, --classavg
If you did not use e2RCTboxer.py to particle selection, then the following 'options' are required: --untiltedata, --tiltdata, --classavg, --stagetilt
For example: e2rct.py --untiltdata="bdb:RCTparticles#myuntiltedparticles" --tiltdata="bdb:RCTparticles#mytiltedparticles" --classavg="bdb:r2d_01#classes_06" --stagetilt=50
e2rct.py writes out a RCT reconstruction for each class average, and and averaged RCT recon if the option, --avgrcts, is activated. In addition, if the option, --align, is chosen, then the centered tilted particles will be written out. Usually these output files are written to the database.
The e2rct.py options are:
- --path: directory that the RCT results will be placed
- --untiltdata: The stack of untilted particle images (usually this will be in the database)
- --tiltdata: The stack of tilted particle images (usually this will be in the database)
- --classavg: The stack of class averages created by e2refine2d.py (usually this will be in the database)
- --minproj: The minimum number of projections required for a RCT recon
- --sym: RCT recon symmetry. Only used during RCT averaging and this should not be used unless you give e2rct.py a reference that is aligned to the symmetry axis
- --cuda: If you have EMAN2 configured for CUDA, you can use this option to speed up the alingment step upto 80X, depending upon your hardware
- --stagetilt: The angle used to tilt the stage during data collection. This options can be omited if the particles were picked using e2RCTboxer.py, in which case the computed tiltangle is used.
- --careject: A comma delimited list of class averages to reject
- --align: Center the tilted images before RCT reconstruction (improves recon quality) (Boolean toggle switch)
- --maxshift: Maximum to shift the tilted images during centering
- --tiltaxis: Do a per micrograph tilt axis correction, which improves quality if there is large tiltaxis variation. (only works for e2RCTboxer.py data) (Boolean toggle switch)
- --avgrcts: Align in 3D and average each of the RCT recons, from each class average (Boolean toggle switch)
- --reference: A reference used to align the RCTs. If not specified, then the RCTs are aligned to each other using a running average
- --process: Process the RCT recons before 3D alignment using an EMAN2 processor
- --alignran: Fineness of the 3D alignment search. The default is 10 degrees but you may want to increase this to boost speed
- --weightrecons: During averaging weight the RCT recons by number of tilted images used to create each one
- --verbose: Set the verbosity level
e2rct.py algorithm
e2rct.py reads in the class averages from e2refine2d.py and extracts the particles making up each class average. The in plane rotation for each untilted particle in each class is used in conjunction with the stage tilt, and optionally tiltaxis, to insert the tilted particle into the RCT recon, after optional centering. The net result is a RCT recon for each class average. These RCT recons are then, optionally preprocessed and aligned, and averaged.
Strategies for success
- Set --minproj to a reasonable level, at least 30. If the number of projections in a RCT recon is too small then the RCT recon will be very poor quality
- If 3D alignment is chosen, then process the RCT recon by aggressively lowpass filtration to boost the signal to noise ratio, enabling a decent 3D alignment
- Reject any rubbish looking class averages (smeary, no CTF rings, etc). Binning the images into self similar bins is critical, if the images in a class average are random/junk, then your RCT will be random/junk
- Unless your tilted particles are precentered, use --align
- In most cases, you will want to use the actual stagetilt rather than the computed stagetilt, so be sure to use the option: --stagetilt
- If your particle dimensions are greater than 128x128, then shrink them down using e2proc2d.py with the option --medianshrink. You are not going to get a high resolution structure, so it makes sense to implement noise reduction via a median filter. In addition smaller particle sizes means a smaller volume size, which will speedup the alignment step (If you have a very large volume it may take eons to align).
- To speedup the aligment step use --cuda, if you have EMAN2 compiled for CUDA. You may get a 80X increase depending upon your hardware