Interested in EM?
Using the NYSBC
Principles & Protocols
NYSBC Equipment
Seminars & Courses
Publications associated with CEM at NYSBC
Jobs Available


Microscope Schedule
Logbook
NYSBC Intranet
NYSBC Contacts
Cryo-EM home



NYSBC home
NMR Facility
X-Ray Facility
Protein Production Facility
Electron Crystallography Center


Cryo-EM Site map

Reconstruction by Random Conical Tilt

Principals

  • For a very good description, see Frank (2006) Three-Dimensional Electron Microscopy of Macromolecular Assemblies, chapters 2.3 (alignment), 4 (classification) and 5.5 (RCT)

Technique

Data Collection

Grid preparation

  • Usually used for negative stain data, since the high contrast allows for better reference-free alignment and classification
  • Best to use sandwich negative stain, to ensure that particle is well stained
  • Stain should be fairly deep, to prevent particle collapse

Microscopy

  • Need to be eucentric, otherwise tlting will move particles out of the plane
  • General procedure is to take tilted image (50 degrees), then tilt to 0 and take untilted image
  • Should use low-dose techniques
  • Tilted image is taken first, because reconstruction is done from the tilted images
  • SerialEM can be handy, and we have some scripts which will automatically tilt the grid, focus, take image, tilt back to 0, focus, and take untilted image

Processing

Extract files from stack

  • If files were collected in SerialEM, they need to be exttracted to single files and converted to spider format
  • Command to extract all files to series of numbered MRC images:
    • /cryoem/script/extract.pl
  • Command to convert all .mrc files in current directory to spider files:
    • /cryoem/script/convert_mrc_spider (or use EmIP)
  • suggest to move the spider images to a micrographs/ subdirectory

Pick Particles

  • must use web or jweb (jweb recommended)
  • change to directory which contains the spider images, and type "jweb"
  • Best to choose option --> reduce 2-fold to start, otherwise there may not be enough room on screen to pick
spider_rct11.png
  • Choose Open Image Series / Image Stacks
spider_rct01.png
  • Choose the pair of images
  • Note that you may have to edit order, as the untilted image must be the FIRST image, but numerically it will probably be the second
spider_rct02.png

  • In new Image Series window, choose the Markers_Tilt_Pair tab
  • Edit the Marker File number to match the image number of your untilted file
spider_rct03.png
  • Click "Show/Edit Marker", and the pair of images should appear
  • Be sure that the images labeled "tilted" and "untilted" correspond to the right images
  • Find an untilted particle which is also easily visible in the tilted image
  • Left-click on the untilted particle
  • Focus will change to the tilted image. Left click on the corresponding tilted particle
  • Focus will move back to the untilted image. Repeat for around 5 particles
    spider_rct04.png   spider_rct12.png
  • When several are picked, go back to the Markers/tilt pair tab
  • Click "Save Marker File" (this saves the particle locations) spider_rct05.png
  • Next click (in order) Determine Theta, Fit Anges, Draw Fitted Locations, and Save angles
spider_rct06.png Determine Theta
spider_rct07.png Fit Angles
spider_rct08.png Draw Fitted Locations
spider_rct09.png Save Angles
  • Tilted image will now show the locations where you clicked (circles) and locations where it predicts particle should be (boxes)
spider_rct10.png
  • Now, after clicking on untilted particle, mouse should jump to exact location of tilted particle, making the picking much easier
  • While working, occasionally click "Save Marker File" so as not not lose any work
  • When done, close the Image Series Viewer window.
  • Output files :
    • dcb000.spd (000 will be replaced by number entered in Marker File Number. Extension will be identical to image extension.)
    • dct000.spd
    • dcu000.spd
    • dft000.spd

Determine CTF parameters of untilted images (optional)

  • If you will want to use these untilted images for traditional refinement, need to know the defocus
  • Use ctffind3:

Box (Window) the particles

  • Edit the script make_database.pl so that the tilted image, untilted image, and spider docfiles correspond to the right numbers
  • run ./make_database.pl
    • outputs ../doc/imagedata.spd
  • Edit the script window.spi
  • run window.spi
    • outputs windowed particles

Make docfiles of particle lists

  • edit combine_data.spi - -to combine all data from picking into one file
  • go to ../doc, and edit all dcb???.spd to remove lines starting with ";"
           foreach F (dcb???.spd)
              grep -v ';' $F > $F:r.dat
           end
           zip -m dcb_orig.zip dcb???.spd
           rename .dat .spd dcb???.dat
       

  • run combine_data.spi
    • outputs ../doc/all_exo.spd, a docfile wich has particle number, tilt angle, tilt axis (untilt) tilt axis (tilt)

Normalise, filter, and center the particles

  • edit norm_only.spi to match particle filenames
  • mkdir ../part_norm
  • run norm_only.spi
  • edit lowpass.spi for correct lowpass and highpass radius, input particles
  • mkdir ../part_filt
  • run lowpass.spi
  • edit center.spi for input particles, approx radius
  • mkdir ../part_cen
  • run center.spi
  • check the centered particles -- convert to imagic stack:
             foreach F (../part_cen/untilt*)
                proc2d $F part_cen/centered.hed
             end
           

Verify particle stack and eliminate any bad ones

  • delete bad particles:
    • open all of the untilted particles in jweb
    • choose pick particle/categorize
    • choose individual particles
    • click on all bad ones
    • default output file will be .ctg
    • Do the same for tilted set
    • combine files somehow
    • Edit deletebad.pl -- need to edit input filenames (all particles, bad particles, output list of good ones)
    • run deletebad.pl

Align and classify

  • Can use kmeans (eman or spider) or hierarchical clustering (spider)

eman

  • Convert the filtered, centered good particles to an eman stack
    • stack.spi will stack the good files inot a single spider file
    • then run "proc2d part_good.spd part_good.hed" to convert to EMAN (Imagic) stack
  • run refine2d.py -- refine2d.py part_good.hed --iter=8 --ninitcls=50 --proc=4
  • convert final output back to spider
    • proc2d iter.final.sort.hed emanclasses.spd spider

  • Now need to convert eman alignments back to spider, as we need the inplane rotation angle and class identification of each particle:
    • a) Use spider command apmq to determine classes and orientations
      • apmqeman.spi
      • make selection doc files for each class
        • script make_seldoc_files_apmq.spi
      • renumber the apmq docfile according to particle number
        • script apmqdoc_renumber
    • b) untar the last tar file which eman made. Perl script get_eman_angles.pl will get the alignment params and convert them to spider format

spider

  • script pairwise.spi (courtesy of T Shaikh, Wadsworth Center) will do reference-free alignment of the particles using a pairwise algorithm
  • script classify.spi will do iterative k-means classification followed by multireference alignment with the classes
  • script make_class_montages.spi will make montages of each class consisting of the aligned particles and the class average, sorted by cross-correlation
  • Can then use jweb to manually pick bad particles
  • Can also run script deletebad.spi. to get rid of particles a set number of std deviations from the mean

Make files describing Euler angles

  • edit and run fixtiltangle.spi -- problem is that web tilt axes may be off by 180 degrees. Check the tilt angles file and see they are consistent, or what needs to be changed
  • edit and run makethetaphigamma.spi -- outputs thetadoc1, with particle as key and theta as first col, phi (web) second, gamma (web) as third
  • edit and run makephi_apmq.spi -- outputs ../doc/phidocnorevsortkey.spd, particle as key, phi as first col, mirror flag as second
  • edit and run make_angles.spi -- outputs an "angle file" consisting of particle number (key), psi,theta,phi angles for reconstruction

3D reconstruction

  • ruin center_tilt.spi, to pre-center the tilted particles. Particles must be well-centered, as there is no positional information at this point
  • run splitmirror.spi -- splits each group in half , one for mirror and one for nonmirror
  • edit and run prelim3d_withmirror.spi -- uses the selection docfile from classification and the euler angles files to do a reconstruction from the tilted particles
  • edit and run refine_3d_withmirror.spi -- reprojects the initial reconstruction along the pre-determined Euler angles, uses these reprojections to refine the centering of the tilted particles
  • Run mirror_vol.spi, which mirrors the mirrred volume for each class and adds it to the unmirrored volume to produce a final map
  • edit and run prj_test.spi, which reprojects the refined volumes along angle (0,0,0). Compare with untilted class average as a measure of reconstruction quality

download links

* rct_scripts.zip: rct scripts

* classify_iter.zip: spider scripts for iterative classification (sim to refine2d.py)

Script Input Files Output Purpose
make_database.pl dcu???.spd dct???.spd ../doc/imagedata.spd list of tilted imagenum, untilted imagenum, docfilenum for corresponding pair
combine_data.spi dcb???.spd ../doc/imagedata.spd ../doc/all_particles.spd List of all particles, tilt angle, tilt axis locations
window.spi ../doc/imagedata.spd ../part/untilt_part_nnnnn.spd, ../part/tilt_part_nnnnn.spd Box the tilted and untilted particles
norm_only.spi ../part/untilt_part_nnnnn.spd, ../part/tilt_part_nnnnn.spd ../part_norm/untilt_part_nnnnn.spd, ../part_norm/tilt_part_nnnnn.spd Normalise the particles
lowpass.spi ../part_norm/untilt_part_nnnnn.spd, ../part_norm/tilt_part_nnnnn.spd ../part_filt/untilt_part_nnnnn.spd, ../part_filt/tilt_part_nnnnn.spd Lowpass, highpass filter the particles
center.spi ../part_filt/untilt_part_nnnnn.spd ../part_cen/untilt_part_nnnnn.spd center the particles
deletebad.pl ../doc/all_particles.spd partbad.ctg ../doc/all_particles_good.spd Run after picking all bad particles using jweb Categorize function
stack.spi ../part_cen/untilt_part_nnnnn.spd ../r2d/untilt_part.spd stack all of the good untilted particles
refine2d.py ../r2d/untilt_part.hed ../r2d/untilt_part.img cls.*.tar iter.*.hed Reference free alignment and classification (EMAN)
pairwise.spi ../doc/all_particles_good.spd ../part_cen/untilt_part_nnnnn.spd tapu/pairwise/* Reference free alignment of particles (SPIDER)
classify.spi tapu/pairwise/ali-reffree/alia????.spd ../doc/coranipca_IMC Iterative classification of aligned particles -- determine eigenvectors, eigenvalues etc
make_class_montages doc/.. r2d/.. Makes a montage of each class average, sorted by cross-correlation coefficient. Can be used to verify class, manually discard bad particles
deletebad.spi doc/apmq_seldoc_nnn doc/apmq_seldoc_nnngood.spd To automatically discard particles a set number of std deviations from the class average
get_eman_angles.pl ../r2d/iter.?.tar, ../doc/all_particles_good.spd ../r2d/cls????_lst.spd Directly convert the EMAN aligmnent params into spider format
apply_eman_alignments.spi ../r2d/cls????_lst.spd ../part_ali/eman/class????_al.spd, ../part_ali/eman/avg.spd Apply EMAN alignment, make class averages and stacks of aligned particles (check)
fixtiltangle.spi ../doc/all_particles_good ../doc/all_particles_goodfix Fixes tilt axis placement, since web may put it at 0 or 180
makethetaphigamma.spi ../doc/all_particles_goodfix ../doc/thetaphigammadoc1 particle number=key, theta=col1, phi (web)=col2, gamma(web)=col3
makephi_apc_norev.spi   ../doc/phidocsortkey.spd particle number=key, inplane phi (from alignment) =col1, mirror flag=col2 used to extract angles from alignment -- spider apc
makephi_apmq.spi   ../doc/phidocsortkey.spd particle number=key, inplane phi (from alignment) =col1, mirror flag=col2 used to extract angles from alignment -- spider apmq
makephi_angles_from_eman.spi   ../doc/phidocsortkey.spd particle number=key, inplane phi (from alignment) =col1, mirror flag=col2 used to extract angles from alignment -- angles directly from eman alignment
make_angles.spi ../doc/phidocsortkey.spd ../doc/thetaphigammadoc1 ../doc/apmq_angles.spd Combine all angles into spider "angles" file with particle number as key, followed by psi theta phi Eulers
splitmirror.spi doc/apmq_seldoc_nnngood.spd doc/apmq_seldoc_nnngoodmir.spd doc/apmq_seldoc_nnngoodnomir.spd Splirts selection doc files into mirrored and non-mirrored halves
prelim3d.spi ../doc/apmq_angles.spd ../part_ali/tilt*** doc/apmq_seldoc_nnngood.spd r3d/apmq_recon*** Calculates a 3D reconstruction from the tilted image sin each class, using above Eulers
prelim3d_mirror.spi ../doc/apmq_angles.spd ../part_ali/tilt*** doc/apmq_seldoc_nnngoodmir.spd doc/apmq_seldoc_nnngoodnomir.spd r3d/apmq_recon*** Calculates two 3D reconstructions (mirrored half, non-mirrored half) from the tilted image sin each class, using above Eulers
refine_3d.spi ../doc/apmq_angles.spd ../part_ali/tilt*** doc/apmq_seldoc_nnngood.spd r3d/apmq_recon*** r3d/apmq_recon*** r3d/apmq_reconref*** Iteratively recenters the tilted particles to produce a refined map for each class
refine_3d_mirror.spi ../doc/apmq_angles.spd ../part_ali/tilt*** doc/apmq_seldoc_nnngood.spd r3d/apmq_recon*** r3d/apmq_recon*** r3d/apmq_reconrefmir*** r3d/apmq_reconrefnomir*** Iteratively recenters the tilted particles to produce a refined map for each mirrored, non-mirrored class
prj_test_mirror.spi r3d/apmq_reconref*** r3d/ Reprojects volumes along Euler (0,0,0) for comparison with untilted class average (mirrored and non-mirrored volumes)
mirror_vol.spi r3d/apmq_reconrefmir*** r3d/apmq_reconrefnomir*** r3d/apmq_reconrefcomb*** Mirrors the mirrored fil, averages with non-mirrored to produce a final volume
prj_test.spi r3d/apmq_reconref*** r3d/ Reprojects volumes along Euler (0,0,0) for comparison with untilted class average

  • after converting eman alignments to spider, run
    • cat ../r2d/cls????_lst.spd > ../doc/eman_ali_tmp.spd
    • then, use spider command DOC REN to convert the above file to ../doc/eman_ali.spd

-- BillRice - 28 Jan 2010

* rct11:

* rct12: