School of Physics
Huazhong University of Science and Technology
Improving the quality and interpretability of cryo-EM maps by local and non-local deep learning
Copyright © 2022 Jiahua He, Tao Li, Sheng-You Huang and Huazhong University of Science and Technology Released under GNU General Public License Version 3EMReady is freely available for academic or commercial users. If you have any questions regarding EMReady, please don't hesitate to contact us via firstname.lastname@example.org Reference:
He J, Li T, Huang S-Y.* Improvement of cryo-EM maps by simultaneous local and non-local deep learning. Nature Communications, 2023;14:3217. [link] Click here to download the data supporting the findings of EMReady paper.
News: EMReady v2.0 beta version , which supports both proteins and nucleic acids, is ready for test. Please send your valuable feedbacks to us at email@example.com.
List of files      EMReady.sh: the main program of EMReady      pred.py: Python prediction program of EMReady      frn.py: Pytorch implementation of Filter Response Normalization Layer used in EMReady      interp3d.f90: Fortran source code for the interpolation of EM grid      scunet.py: Pytorch implementation of 3D Swin-Conv-UNet used in EMReady      utils.py: Python utilities used in EMReady      model_state_dicts/:              model_state_dicts/model_grid_size_1.0.pth: the trained EMReady model with 1.0 Angstrom grid size              model_state_dicts/model_grid_size_0.5.pth: the trained EMReady model with 0.5 Angstrom grid size      environment.yml: Required packages for Python virtual environment of EMReady
Quick installation of required online packages
This command will create a Python conda virtual environment named "emready_env" and install all the required packages
Details of required online packagesPython (3.8.8) (https://www.python.org)      Python package requirements:          pytorch (1.8.1+cuda11.1) (https://pytorch.org)          torchvision (0.9.1+cuda11.1) (https://pytorch.org)          cudatoolkit (11.1) (https://developer.nvidia.com/cuda-toolkit)          numpy (1.19.2) (https://www.numpy.org)          einops (0.3.2) (https://einops.rocks/)          mrcfile (1.3.0) (https://github.com/ccpem/mrcfile)          timm(0.4.12) (https://github.com/rwightman/pytorch-image-models)          tqdm (4.60.0) (https://github.com/tqdm/tqdm)
How to Run EMReady
Required arguments:                  in_map.mrc: File name of input EM density map in MRC2014 format.                  out_map.mrc: File name of the output EMReady-processed density map.         Options:                 -g  GPU_ID:    ID(s) of GPU devices to use. e.g. '0' for GPU #0, and '2,3,6' for GPUs #2, #3, and #6. (default: '0')                 -s STRIDE:    The step of the sliding window for cutting the input map into overlapping boxes. Its value should be an integer within [12,48]. (default: 12)                 -b BATCH_SIZE:    Number of boxes input into EMReady in one batch. (default: 10)                 --use_cpu:    Run EMReady on CPU instead of GPU.
Notes:1. Users can specify a larger STRIDE of sliding window (default=12) to reduce the number of overlapping boxes to calculate. If users run out of memory, they may set it to a larger value. Howerver, since the size of the overlapping boxes is 48×48×48, the value of STRIDE should not exceed 48. 2. By default, EMReady will run on GPU(s). Users can adjust the BATCH_SIZE according to the VRAM of their GPU. Empirically, an NVIDIA A100 with 40 GB VRAM can afford a BATCH_SIZE of 30. Users can run EMReady on CPUs by setting --use_cpu. But this may take very long time for large density maps.
or download one of the examples listed in the following to test EMReady.