This repository is about synthesizing 3D Cryo-EM structures using deep learning. Now the network performs well on some structures (see the results under ./eval), but I will continue working on the refinement.
Thanks for Professor Garrett Katz's instruction.
The network is based on 3D-R2N2, a multi-view 3D reconstruction network.
My environment is Python 3.7.4 and Ubuntu 18.04. Also you need to install
Before running the code, you need to install RELION, which is used for synthesizing 2D projections. To visualize the predicted structures, download UCSF Chimera.
You can use any real dataset or a synthetic dataset from here.
-
Install all the requirements by
pip install -r requirements.py
-
Synthesize 2D projections by
./syn_2dproj.sh
-
Start the training by
python -u train.py
-
Visualize the loss by
tensorboard --logdir=/your/summary/path/
When training with different structures, please modify the variable 'n_gru_vox' in res_net_gru.py. It depends on the input image size.
Normalization on 2D projections and the 3D structure ground truth can improve the performance. I used the following EMAN2 command line:
1. `e2proc2d.py /your/2d/projection/stack/path /your/output/path --process normalize.edgemean`
2. `e2proc3d.py /your/3d/structure/path /your/output/path --process normalize.edgemean`
You can get the synthetic training data from here.