EMAF is an alignment algorithm program which aims at cryo-EM two-dimensional particle images. The program is implemented in C++ under C++11 standard. Some other alignment methods like Fourier-Mellin transform and XMIPP alignment are also re-implemented and included in this program. Both source code and complied program are available. This program has been tested on Ubuntu 14.04, Ubuntu 16.04 and Ubuntu 18.04. Other Linux system should also be able to run this program. For Windows, you may be able to use this program after installation of FFTW.
Apply Fourier tansform to two input images to convert them to frequency domain.
Computing power spectrum of two input images, then apply corresponding filter and threshold cutting to suppress background information and noise.
Option1: Compute local maximum of power spectrum which can be further refined by computing their gravity centers in neighborhood. Option2: Compute main direction of power spectrum after applying filtering and threshold cutting.
Regard one image as reference image. Compute the rotation angle according to coordinates of two gravity centers or differences between two main directions and generate another possible solution according to the periodicity.
Use the estimated rotation angles to genenate rotation corrected image and estimated shiftment using phase-only method.
Compare two output parameters through calculating the correntropy between corrected image and reference image. Output parameters with higher correntropy.
Since most utilities are implemented in our own source code, the only dependent package is FFTW. You may simply install FFTW3 using "sudo apt-get install libfftw3-dev" in ubuntu command line or compiling from source code following instructions on the official website http://fftw.org/.
You may directly use the complied program "EMAF" in format "./EMAF -h" in Linux commandline to see commandline intructions. If some error occurs like GLIBC error, you may install the required libraries or consider compile from source code following the below instructions.
You may compile from source code using the following command in Linux system. CMake version 3.5.1 and above have been tested. You may change the CMakeLists.txt if other CMake version are used.
cd /path/to/this README.md mkdir build cd build cmake .. make
This program temporally uses an INT variable to store the whole size of data (number_of_images * width * height). Then it might crash if the data size is too big. Consider using the BIGDATA version if data size is very large. By now, only MRC format and certain XMD format are supported as input file. XMD format is used for XMIPP relied programs and only tested under certain cases. Therefore, data is strongly recommended to be converted to MRC format when it is feed into this program.
Please complete the relevant information to help us improve this program and get additional support (not mandatory). Click to get the code and the data. We have also provided a re-organized version of code which fixes some tiny problems in the original version and provides much richer comments in source code to help user understand the program.
Reference: Fast cryo-EM image alignment algorithm using power spectrum features, Yuxuan Chen, Rui Xie, Yang Yang, Lin He, Dagan Feng, and Hong-Bin Shen, Journal of Chemical Information and Modeling, 2021 (in press).