EMAF

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.

Download   Learn more

Steps of algorithm

1.Fourier Tansform

Apply Fourier tansform to two input images to convert them to frequency domain.

2.Power Spectrum

Computing power spectrum of two input images, then apply corresponding filter and threshold cutting to suppress background information and noise.

3.Feature Computation

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.

4.Rotation Estimation

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.

5.Shiftment Estimation

Use the estimated rotation angles to genenate rotation corrected image and estimated shiftment using phase-only method.

6.Final Results

Compare two output parameters through calculating the correntropy between corrected image and reference image. Output parameters with higher correntropy.

Installation and Instructions

1.Dependencies

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/.

2.Binary File Usage

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.

3.Compile from Source Code

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
					

4.Support

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.

Code&Data download

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).