Tilt Validation in EMAN2
We have implemented Richard Henderson's tilt validation methodology in EMAN2. To do tilt validation you need to:
- Collect tilted micrograph pairs. Typically an untilted and tilted micrograph of the same specimen area are collected.
- Box out particle pairs. These are images of the same particle but in two different views. To implement this we have developed e2RCTboxer.py, a variant of e2boxer.py, to simultaneously pick pairs pairs from micrograph tilt pairs.
- If possible, CTF correct the particle pairs.
Build tilted and untilted stacks of images. The particles in these image stacks must maintain a one-to-one relationship. That is, particle n in the tilted stack must be paerticle n in the untilted stack, but in a different view caused by the tilt geometry.
- Determine Euler angles for each particle for each particle pair, using projection matching. Projections are dervied from the 3D model under question. Hence Euler angles wil only be determined correctly if both the 3D model is correct and your 2D image, both untilted and tilted, are of decent quality.
- From the Euler angles of the particle pairs, compute the tilt geometry.
- In polar format, plot the computed tilt geometries (there will be one tilt geometry for each particle pair). If the tilt geometries form a cluster, and the cluster centers around the experimental tilt geometry, the 3D model is said to be valid. If the cluster's tilt axis is 180 from the correct tilt axis, the 3D model is of the wrong hand, and this can be resolved by simply flipping the hand.
Steps 5-7 are implemented in e2tiltvalidate.py
Listed below are e2tiltvalidate.py options
- untiltdata, specifies the untilted particles stack
- tilteddata, specifies the tilted particles stack
- volume, specifies the volume to validate. The volume needs to be of the same dimensions, as the stacks and the mag(apix) need to be of same scale.
- maxtiltangle, specifies the maximum acceptable computed tilt angle. Any tilt angles above this value are rejected and not considered for further processing/plotting.
- quaternion, when this option is specified, the tilt angle and tilt axis are computed using quaternion mathematics, other wise Euler angles are utilized.
- sym, specifies the symmetry of the 3D volume. Note that the 3D model should be aligned to the tilt axis before symmetry can be utilized. To align a volume to the tilt axis, use e2sysmsearch.py
- parallel, specifies the parallelization. The projection matching and contour plot computation steps are parallelized.
- delta, specifies the angular projection step size for projection matching. Smaller is better, up to data quality limit.
- shrink, prior to projection matching, optionally shrink the images by an integer factor. For example --shrink=2, shrinks the images by 2, speeding computation by 4X. However, alignment will be less accurate.
simcmp, the comparitor for projection matching. This only applies to az and alt out of plane Euler angle determination.
- simalign, the aligner for projection matching.
- simaligncmp, the comparitor for the aligner. In actuality, this compartior doesn't have much effect, as cross correlation is used for translation and most of rotation alignment.
- simralign, the refine aligner for projection matching.
simraligncmp, the comparitor for the refine aligner. This comparitor applies to phi in plane Euler angle determination, unless a translation only aligner is chosen. Unlike the course aligner, this comparitor has a real effect on alignment.
docontourplot, when this option is specified, a validation contour plot is computed. For more information see: http://www.ncbi.nlm.nih.gov/pubmed/14568533
- tiltrange, the range of tilt angles to compute the contour plot over. Effectively specifies the X and Y range.
- align, the aligner to use for compution of the contour plot
- cmp, the comparitor to use for contour plot generation
Listed below are options specific to making validation plots using e2tiltvalidate.py
path, specifies the tiltvalidation path to use for plotting. Tiltvalidation results are placed in paths named: TiltValidate_*
- gui, this option needs to be specified to make validation plots rather than computing valdition results themselves
- radcut, specifies the maximum tilt angle to graph. Effectively, sets the polar plot maximum radius range.
- planethres, specifies that maximum out of plane Z component to tolerate. The computed tilt axis is three dimensional, but the experimental tilt angle should be in the X-Y plane. Any tilt axis Z component is considered to be an error, hence tilt axes with large Z components are considered to be junk and should not be plotted.
- datalabels, when this option is specified, the scatter point in the polar plot are labeled by particle pair number. zero is the first particle pair.
- datalabelscolor, specify data label color. This is an RGB 0-255 value in hexadecimal format following a pound sign. For example #00ff00 is pure green.
- colorzaxis, when this option is specified, the scatter points are colored by Z axis value. Zero Z axis is red and the maximum Z component is blue(regardless of when or not this point is plotted).
Listed below is the option to compute tiltvalidation from a Euler data file rather than from stacks
- eulerfile, If you want to compute tilt geometries from Euler angles computed externally, use this option and specify the file.
The file must be of the format:
untilt_image_num, image_name, az, alt, phi
tilt_image_num, image_name, az, alt, phi
0 untilted 45 45 -50
0 tilted 45 55 -50
1 untilted 20 10 -20
1 tilted 20 0 -20