Multireference alignment is a common algorithm in cryo-EM image processing.
Cryo-RAlib provides a gpu-accelerated version of multireference alignment based on the EMAN2 package.
Multireference alignment (Class averages)
Reference-free alignment (Average of the first 10 iterations)
- Multireference alignment
We compared the CPU implementation from EMAN2 and used Ribosome 80s benchmark dataset but downsampling to 90 pixels. The following chart is running on TWCC c.super instance. The
xr,yr,ou,maxitis set to 3,3,36,6 respectively.
The speedup is 22x~37x with different reference number.
- Reference-free alignment
The following chart is running on TWCC c.super instance. The ts, ou, maxit is set to 1,36,6 respectively.
The speedup is 2.4x~9.4x with different 2D shift.
The python environment exposed by EMAN2 can be couple with CuPy and other libraries for drop-in acceleration and visualization. See the Example Notebook where we accelerate the rotation and shift operations by five-fold and visualize the results.
The library can be used for exploratory data analysis as demonstrated in the notebook. You will need the utils_ralib.py and scikit-learn for analysis.
The code is used in the 2020 NCHC GPU Hackathon.
Team member: Szu Chi Chung, Cheng-Yu Hung, Huei-Lun Siao, Hung-Yi Wu, Institute of Statistical Science, Academia Sinica
Mentor: Ryan Jeng, Nvidia
Some of the code is built upon Cuda code from gpu_isac 2.3.2.

