![]() |
Three Dimensional Reconstruction of Single Particle Specimens using Reference Projections |
![]() |
This page describes methods for creating a 3D reconstruction of a ribosome from electron micrographs. Once a set of particle images has been obtained, an initial 3D reconstruction is calculated using coarse projection angles. This is followed by refinement, which iteratively adjusts the angles for finer resolution. The following procedures are described in greater detail below.
For further information:
The data below is sometimes shown plotted with gnuplot. An online manual for gnuplot is available. Much more about gnuplot is at Gnuplot Central
In the sections below, various file types are denoted by different fonts:
output files created by that procedure file
are marked in green.
Running SPIDER procedure filesAt the start of a reconstruction project, a project directory has to be set up with the proper subdirectories and procedure files. |
Processing steps are carried out by procedure files, which run many SPIDER operations automatically. To use a procedure in this document, click the procedure filename and copy the procedure to your current working directory. At the beginning of each procedure, there is a list of parameters that can be adjusted according to the particular project. Some of the procedures will call a corresponding procedure (listed below the procedure filename). You need not change anything in the procedures. Use the following format to run a SPIDER procedure:
spider spi/dat @procwhere spi is the procedure file extension, dat is
the project data file extension, and proc.spi is the
procedure file.
Create a project directory with the required subdirectories and procedure files
The procedure files below are packed into the zipped tar file spiproject.tar.gz (for the archive of older procedure files, click here). Download this file to your working directory and unpack it:gunzip spiproject.tar.gz; tar xvf spiproject.tar
mv myproject acn
Some information is stored in project-wide document files that are used by many procedure files. The following files should be run in the top-level project directory:
Create a parameter document file
Many procedure files read project parameters from this doc file. Run the interactive procedure makeparams.spi in the top directory of your project. It makes a document file:| ¤ | params: |
A doc. file containing the reconstruction parameters |
Create a selection doc file for micrograph file numbers
The procedure makefilelist.spi creates a micrograph selection doc file in the top-level project directory:| ¤ | sel_micro: |
Micrograph selection doc file listing the numbers of the micrograph files to be processed. |
cd to your project directory, remove Micrographs, and
make a symbolic link:
rmdir Micrographs
ln -s /the/actual/location/of/the/micrographs
Micrographs
| ¤ | reference_volume: |
Resized reference volume. |
Contrast Transfer Function estimationEstimate the defocus of each micrograph by calculating its power spectrum. Then group the micrographs into groups of similar defocus. These procedures should be run in the Power_Spectra directory. |
For more information, see the
contrast transfer function correction tutorial,
ctfdemo, a program that demonstrates
the effects of various parameters on the CTF, and
Penczek et al. 1997 for a fuller discussion.
Calculate the power spectrum for each micrograph
power.spi, and its procedure power_p1.spi, read each micrograph and compute an averaged power spectrum for it. Each micrograph has two corresponding output files:
| ¤ | power/pw_avg*** |
2D power spectra, each is an average of many smaller power spectra calculated over the surface of the micrograph. |
| ¤ | power/roo*** |
Doc files of 1D profiles of the rotationally averaged power spectra. These doc files can be plotted with gnuplot or pyplot |
Check the rings in the power spectrum images.
Make a montage using WEB (reduction factor 4) to look at these power spectra. They are equivalent to diffraction patterns obtained in the optical diffractometer. It is absolutely important that you screen these spectra before proceeding any further. Things to look out for:
Determine defocus
Use one of the following methods to estimate defocus for each micrograph:
| ¤ | defocus: |
A doc file of defocus and astigmatism values. |
| ¤ | power/ctf***: |
Doc files of the background-subtracted 1D power spectra. |
ctf*** files can be analyzed with
ctfmatch.py
defocus. It calls
ctffind, a shell script, and
readmrc.py, a python script.
See the defmrc manual page for more
information.
Assign defocus groups according to the power spectrum.
defsort.spi: reads
the "defocus" doc file generated by one of the above methods, and creates:
| ¤ | def_sort: |
A doc file with the same information sorted by defocus. |
Spectral profiles (that is, the roo*** or ctf*** files) from the same defocus group should be plotted together, to ensure that their zeroes (minima) line up, and do not cancel out. Plot the power spectrum for each micrograph and assign them to defocus groups such that the curves are in phase. Use either:
gnuplot> load 'plotpower'
def_sort, which is used in the next step.
Compute averages for each defocus group
When you have finalized the values in def_sort.ext, compute the averages for each defocus group using defavg.spi which creates:| ¤ | def_avg: |
A selection doc file of defocus group averages. |
| ¤ | order_defgrps: |
A selection doc file of defocus group averages. |
| ¤ | dat_group: |
A doc file of defocus group averages. |
| ¤ | dat_mic: |
A doc file of micrograph defocus values. |
Particle Picking and SelectionA particle picking procedure file analyzes each micrograph, cutting out small windows of likely particle candidates. This is followed by a manual selection process that identifies the good particle images and rejects the bad ones. Particles automatically output by the procedure file are said to be picked; the subset that are manually chosen are said to be selected. These procedures should be run in the Particles directory. |
Select a background noise file
A noise image is required to normalize the backgrounds of the particle images. Do one of the following:| ¤ | noise.ext: |
A noise image. |
tmpnoise/noi***).
View the selected noise file;
if it has any structure (particle, junk), then select one of the other
candidates and copy it to noise.ext. This
procedure file requires a micrograph in SPIDER format. If your micrographs
are tif and/or gzipped files, use
convert.spi and
its procedure
convert_p.spi to convert one of these images to SPIDER format.
Run automatic phase of particle selection.
Either of the following two approaches can be used. They both require the converting procedure convert_p.spi| ¤ | winser_****: |
Stacked particle images. |
| ¤ | coords/ndc***: |
Peak coordinates from 1/4 decimated image. |
| ¤ | coords/sndc***: |
Top left pixel coordinates for particle images. |
| ¤ | win/winser_***: |
Stacks of particle images for each micrograph. |
| ¤ | win/sel_particle_***: |
Particle selection doc file for each micrograph. |
| ¤ | coords/sndc***: |
Pixel coordinates for center of particle images. |
[Optional] Low-pass filter particle images before particle selection
| ¤ | flt/winser_***: |
Stacks of low-pass filtered particle images. |
Verify the automatically selected particles
Sort through the output files to eliminate any non-particles. This can be done in WEB using the Categorize from sequential montage operation. When the particle image files are displayed on the screen, use the mouse to click on each good particle. For each micrograph, save your selections to a file calledgood/good***. (More
details in the SPIDER FAQ and
partpick.html).
This procedure creates: | ¤ | good/good***: |
A set of particle selection doc files, one for each micrograph. |
Remove any duplicated particles and list number of picked and selected particles by micrograph
The procedure: renumber.spi creates:| ¤ | good/ngood***: |
A set of particle selection doc files, one for each micrograph, listing unduplicated selected particle numbers. |
| ¤ | percent_selected: |
A doc file listing percentages of automatically picked vs manually selected particles for each micrograph and overall. |
ngood*** files as input.
AlignmentReference images are generated from the reference volume. Data particles are compared to each reference to find the best match, and the corresponding transformations (shifts and rotations) are written to a doc file. Finally, the transformations are applied to the data images, aligning them to the references. These procedures should be run in the Alignment directory. |
Reference projections
Reference projections (images) are views of the object at known angles.
In what follows, angular accuracy is set to 15 degrees, which
results in 83 reference projections. A reference volume
is needed in the top level project directory to create the projections.
The row and column dimensions of the reference volume must match the
dimensions of the particle windows. (see
resizevol.spi)
Create reference projections for alignment from a reference volume
refproj.spi creates two sets of files:| ¤ | refangles: |
A doc. file listing the three Euler angles for each of the projections, generated with the SPIDER operation VO EA |
| ¤ | projs/prj_****: |
Stacked reference images produced with PJ 3Q using the above file. |
projs/prj_001
Create lists of images in each defocus group
sel_by_group.spi creates selection document files and a group summary file:| ¤ | sel_particles_***: |
A doc file for each defocus group, listing all the particles in that group. |
| ¤ | sel_group: |
A summary doc file with 4 columns listing: Defocus group, Number of particles, Cumulative number of particles, and Average defocus value for each group. |
Create stacks of images for each defocus group
win2stk.spi creates stacks:| ¤ | data***: |
A stack file for each defocus group, containing all particle images from that group. |
Align particles to the reference projections
| ¤ | align_01_001: |
Shift and rotation parameters for the best matched projection. |
| ¤ | dala01_001: |
Aligned stack of the particle images. |
| ¤ | align_01_***: |
Shift and rotation parameters for the best matched projections. |
| ¤ | dala01_***: |
Aligned stacks of the particle images. |
Compute AveragesFor all projections, all aligned particles of a given reference view are averaged together. Further particle selection is made by selecting a correlation cutoff threshold to reject some particles. The distribution of particles among projections can be displayed. These procedures should be run in the Reconstruction directory. |
Make particle selection document files listing particles for each projection
select.spi creates the following doc files:| ¤ | df***/how_many: |
Lists number of particles associated with each reference view for each group. |
| ¤ | df***/select/sel???: |
Lists the particles associated with each reference view for each group. |
| ¤ | how_many: |
Summary file listing total number of particles associated with each reference view. |
Create average images for all projection groups and combine all alignment parameter files into a single summary file (if necessary).
average.spi creates the following files for a selected defocus group.| ¤ | avg/avg***: |
Average images for each projection group. |
| ¤ | avg/var***: |
Variance images for each projection group. |
| ¤ | align_01_all: |
Merged alignment parameters from all defocus groups. (Not necessary if only a single group is used). |
The next several operations help to identify a threshold correlation coefficient that describes true particles as opposed to any erroneously selected particles. Create histograms of each defocus group that plots the number of particles vs. the cross correlation value. For example, if the histograms display a bimodal distribution, the higher peak may correspond to actual particles, while the lower peak may show noise. The threshold should be chosen between two such peaks.
Identify a threshold correlation coefficient for selecting true particles
cchistogram.spi creates histograms and a gnuplot control script:| ¤ | hist/cchist_***: |
Set of histograms by defocus group. |
| ¤ | hist/cchist_all: |
Overall histogram. |
| ¤ | plot_hist: |
Gnuplot script for displaying overall histogram. |
gnuplot -persist plot_hist.ext >
View the particles corresponding to each reference view.
Use the Montage from doc file operation in
WEB to display the aligned
particles identified in the selection doc file (sel001.ext for
example). The greater the correlation coefficient value, the more
similiar the particle will look to the reference projection.
Identify a minimum correlation coefficient that describes true
particles as opposed to erroneously selected particles. Select
Compute Average to view an average of the particles
displayed.
Compute correlation thresholds for discarding particles
ccthresh.spi, given a percent cutoff level, creates threshold and select doc file:| ¤ | thresh |
Thresholds for each defocus group. |
| ¤ | df***/seltotal |
Particle selection files. |
The correlation thresholds in thresh may be
edited, if you wish to use different cutoff levels.
Select particles above the correlation thresholds
dftotals.spi applies the cutoff levels fromthresh to create: | ¤ | sel_particles_*** |
Particle selection files. |
Check the distribution of reference views (angular directions)
plotview.spi creates a
text file of gnuplot commands:
| ¤ | plot_view |
gnuplot commands |
| ¤ | display/cndis***: |
SPIDER image files showing distribution of sample images among various reference projections. |
Use the Montage operation in WEB to display the plots.
[Optional] Limit strongly over-represented angular projections
bestim.spi
creates:
| ¤ | sel_group_cclim |
Group selection file for specified defocus group |
| ¤ | sel_particles_*** |
Particle selection file for specified defocus group |
3D ReconstructionUse the selected aligned particles to create an initial 3D volume. To estimate the resolution of the resulting structure, the particle images are split into two equal sets, and the two resulting reconstruction volumes are compared. These procedures should be run in the Reconstruction directory. |
Split the particle images, create paired reconstructions, and compute resolution for each defocus group
deffsc.spi creates two selection doc files for particles by randomly partitioning the images into two equal sets:| ¤ | df***/seleven: |
Odd numbered images for each defocus group. |
| ¤ | df***/selodd: |
Even numbered images for each defocus group. |
| ¤ | df***/vol001_odd: |
Reconstructed volume from odd images for each defocus group. |
| ¤ | df***/vol001_even: |
Reconstructed volume from even images for each defocus group. |
| ¤ | df***/doccmp001: |
Doc files containing FSC curves for each defocus group: |
Check the defocus group volumes by viewing a central slice from each volume
slices.spi extracts a central slice from a volume in each defocus group:| ¤ | slices/slice***: |
Central slice from each defocus group volume. |
Apply CTF correction, construct an initial volume, and compute the combined resolution
The procedure ctf.spi applies CTF correction to all the defocus group odd/even volumes (see the TF CTS operation), adds together the odd and even volumes to make a volume for the entire data set. Finally it calculates the FSC resolution curve for the combined data set (see RF 3 operation) creating the following files:| ¤ | combires: |
Combined resolution doc file. |
| ¤ | vol001: |
3D structure from entire set of particles. |
Determine resolution of the initial volume
View the combined resolution doc file to determine where the Fourier shell correlation drops below threshold (0.5), and identify the corresponding spatial frequency. Then, resolution = pixel size/spatial frequency.| ¤ | resolution: |
Doc. file ontaining the cutoff, the corresponding normalized frequency, and resolution (in Angstroms). |
| ¤ | plot_res: |
Gnuplot script for plotting the resolution curve of each defocus group, along with the combined resolution curve. |
Filter the initial volume
Information at spatial frequencies above the cutoff value are considered to be uncorrelated noise, and must be filtered out.| ¤ | volfq001: |
Filtered volume. |
RefinementRefinement essentially performs the above steps repeatedly, decreasing the angular resolution of reference projections with each iteration, thereby giving the data particles a chance to find a better approximating reference match each time. Thus the data particles are allowed to "settle in" and find better fitting angles, than the initial choices. Refinement is a computationally expensive operation. Before starting a refinement, check the results of the above reconstructions, to ensure that all defocus groups have reasonable particle volumes. These procedures should be run in the Refinement directory. |
Collect necessary files in the Refinement/input directory
copyin.pam assembles the necessary input files:| ¤ | input: |
Directory for input files. |
| ¤ | input/order_select: |
Group selection file. |
| ¤ | input/order_select_sort: |
Sorted group selection file. |
| ¤ | input/vol01: |
Initial starting volume. |
| ¤ | input/select_{***[grp]}: |
Particle selection files. |
| ¤ | input/align_01_{***[grp]}: |
Alignment parameter files. |
| ¤ | input/data{***[grp]}: |
Unaligned stacked image files. |
| ¤ | input/dala01_{***[grp]}: |
Initial aligned stacked image files. |
Set the parameters in refine_settings.pam.
Run refine.pam (or pub_refine.pam if running on the cluster with PubSub).
There are a number of sub-procedures used in refinement: refine_settings.pam, prepare.pam, grploop.pam, mergegroups.pam, saveresp.pam, endmerge.pam, and endrefine.pam If you are running on a cluster with PubSub you will also need: publish.perl, pub_refine_start.pam, pub_refine_doc_sync.pam, and pub_refine_wait.pam. Further Details are given in the Refinement page. Among the outputs of refinement are image and document files with '***' denoting group number and '##' denoting iteration number:| ¤ | final/align_##_***: |
Alignment parameter doc files |
| ¤ | final/dres##_***: |
Resolution curve doc. file |
| ¤ | final/val##: |
Unfiltered volume |
| ¤ | final/vol##: |
Filtered volume from even numbered images |
| ¤ | final/vol##_odd: |
Filtered volume from odd numbered images |
| ¤ | final/vol##_even: |
Filtered volume from all images |
| ¤ | final/defgrp***/dbpr##: |
Resolution curve doc file |
| ¤ | final/defgrp***/bpr##: |
Group volume |
| ¤ | final/defgrp***/bpr_##_odd: |
Group volume from odd numbered images |
| ¤ | final/defgrp***/bpr_##_even: |
Group volume from even numbered images |
| ¤ | final/bpr##: |
Final filtered volume from all images |
| ¤ | final/bpr1##: |
Final filtered volume from even numbered images |
| ¤ | final/bpr2##: |
Final filtered volume from odd numbered images |
| ¤ | final/dbpr##: |
Overall resolution curve doc file |
| ¤ | resolutions: |
Doc file containing resolution at each iteration. |
Plot the refinement resolution curves
The procedure plotref.spi creates two text files of gnuplot commands:| ¤ | plot_refi: |
Plots combined resolution curve for each iteration of refinement. |
| ¤ | plot_refd: |
Plots resolution curve for each defocus group for the last iteration. |
[Optional] View angular data output from Refinement procedure files
The procedure angdisp.spi creates angular distribution images:| ¤ | disp_ii_***: |
Set of images showing angular positions from the
align_ii_*** refined alignment
parameter output files. |
| ¤ | diff_ii_***: |
Image showing changes in angular positions from iteration n-1 to iteration n. |
Other Useful Methods |
chmod 775 backupand run it in the project directory. It creates 2 tar files
order.tar, and
project.tar
References |
Source: mr.html Page updated: 04/05/07