Direct detector lm-bfgs
Please see: Rubinstein JL and Brubaker MA (2015). Alignment of cryo-EM movies of individual particles by optimization of image translations. J Struct Biol 192, 188-95 for information on how these algorithms work.
The manuscript can also be found on ArXiv: http://arxiv.org/abs/1409.6789
Note: This software is still under development. Please email John Rubinstein or subscribe to changes on this page if you want to find out about (possibly critical) updates.
INSTRUCTIONS
1) Download from the links below: Makefile, Lbfgsb.3.0.tar.gz
you will also need the image2010 libraries (a simplified copy is available under "Compile scripts/libraries" on this website) and GNUplot is extremely helpful for optimizing conditions. Uncompress Lbfgsb.3.0.tar.gz and edit the Makefile so that it has the correct paths for the required image2010 and lbfgs libraries.
2) For aligning whole frames, download: alignframes_lmbfgs.f90, alignframes_lmbfgs.csh, shiftframes_list.f90, shiftframes_list.csh, gnuplotframeshifts.csh
3) For aligning particles, download: alignparts_lmbfgs.f90, alignparts_lmbfgs.csh, gnuplotvectorfield.script
4) For working with Relion, download: alignparts_lmbfgs_relion.csh, alignparts_starfilehandler.f90
5) Compile all of the .f90 files with "make -f Makefile program-name" (NB: program-name does not include ".f90"
7) Align entire frames (this can be done with alignframes_lmbfgs in combination with shiftframes_list provded here)
- The movie frame defined as unshifted (i.e. the "zeroframe" in alignframes_lmfgs) must match the frame defined as unshifted (the zeroframe) in alignpart_lmbfgs or else particles will appear shifted after alignparts_lmbfgs. Often it is best to choose the middle frame in the movie as the unshifted frame.
- The boxsize (ftsize) used in alignframes must be smaller than the smallest dimension of the frames being aligned
8) Determine CTF parameters (e.g. from the average of aligned frames)
9) Pick particles from the average of aligned frames (e.g. with Ximdisp or Relion)
10) Use alignparts_lmbfgs to extract and align individual particles from the unaligned movies.
- If the previous steps have been done with Relion, alignparts_lmbfgs_relion.csh can be used to run alignparts_lmbfgs (and alignparts_starfilehandler) using the starfile after particle picking to give the necessary information to alignparts_lmbfgs (i.e. particle coordinates, filenames, etc). Do not use a starfile after extracting particles from movies for Relion polishing; alignparts_lmbfgs requires only one starfile line per particle. The parameters provided to alignparts_lmbfgs_relion.csh tell the starfilehandler where to find the unaligned movies given the names of the frame averages used to pick particles.
11) After performing step 10 for a single typical movie, inspect the trajectories of particles. Alignparts_lmbfgs produces a .vec file that contains the trajectories of all particles in each image. Edit gnuplotvectorfield.script so that file1="nameofyourimage.vec". Execute the gnuplot script by typing "gnuplot gnuplotvectorfield.script". Adjust the "smooth" constant (1.0d4 means 1x104; making the number bigger, e.g. 1.0d5, increases smoothing) and "localsigma" (bigger enforces more local correlation) and repeat step 10 until trajectories look smooth and have some local correlation.
12) Run alignparts_lmbfgs on your entire dataset before proceeding with further image processing.