/EPFL-CryoEM

Implementation of a Bayesian approach to cryo-EM structure determination

Primary LanguageMatlabMIT LicenseMIT

Research Internship at EPFL

This repository contains the implementation of two leading software in Cryo-EM - Relion and CryoSPARC in 2-D. We frame the entire problem in a Bayesian framework. In particular, the reconstruction problem is formulated as finding the model that has the highest probability of being the correct one in the light of both the observed data and available prior information. We optimize it using stochastic gradient descent to arrive at an initial estimate followed by an expected maximization algorithm to refine the model.

Mathematical details of the algorithm

TO have a look at the derivation of all the formulas, how the SGD is implemented and how the expectation maximation algorithm has been formulated, you may have a look at reports/cryosparc-algorithm for CryoSPARC and reports/math-relion.pdf for RELION.

Implementation details

The CryoSPARC algorithm resides in scripts/cryoSPARC.m which produces an initial estimate for the image by iteratively gradient descending to the right structure.

The RELION algorithm resides in scripts/MAP2D.m which, from the projections of the image, correctly estimates the orientation of each of those projections and then reconstructs the image using the formulae derived in the expectation maximization algorithm.

The back-projection and the projection algorithms algortihms have been implemented in scripts/backproject_fourier_alternate.m and scripts/project_fourier_alternate.m. The probability of each projection having a particular orientation is calculated by scripts/calc_prob_for_each_orientation.m.

Report

For a more detailed overview please refer to this comprehensive review over here.

Credits

This work would not have been possible without the guidance of professor Victor Panaretos and the resources provided to me by EPFL. Also, some of the references used in this work are -