This tool is being developed at Xu Labs, CMU to aid the exploration of MRC models. Currently, Zooming into a model and extracting a slice is supported
These instructions will help you to run AITOM GUI on your own system
python3
numpy==1.18.5
mrcfile==1.1.2
Django==3.0.8
mayavi==4.7.1 (needs a system with a display)
django2_resumable
matplotlib
a javascript enabled browser
Make sure that you have installed all the prerequisite python packages. Clone the repository and execute the following command at remote
directory
python manage.py runserver
Then browse to the following URL for accessing the application
http://localhost:8000
The UI is pretty straight forward, and instructions are provided at each step.
backend
folder contains the code that is used in the processing of .mrc file
frontend
folder contains the GUI related files. The HTML templates are designed for django.
django_server
folder contains django related files
library
is the library directory for the project.
tmp
and uploads
contain temporary files, as explained below.
In the first step, the user can choose to upload a new MRC file or select an existing MRC file form the library. If a new file is uploaded, it can be used only once, and will be eventually deleted from the system by a cron
job. The file is uploaded to /uploads/mrc
directory.
tmp
file contains the files used in zooming into the model. Files in /tmp/mrc
are generated by the program, while files in /tmp/vtk
are served to the frontend to display to the user.
All the contents of tmp
directory are periodically cleared by a cron
job as well.
(Listed in order of importance in the project)
- Django - The web framework used
- MDL Stepper - Used to build the frontend GUI
- Mayavi - For visualizing MRC files
- three.js - For Rendering 3D models in browser
- matplotlib - For plotting the slices of MRC models
- django2-resumable - To support robust uploads for large cryo ET models
- Haoyuan Deng - Developed the modules for zooming into and slicing the MRC models (
backend
folder in the repo) - CCDV2 - Abhinav Agarwal - Developed the user interface and interfaced the GUI with backend scripts(code other than the
backend
folder) - anshabhi
- Dr Min Xu for his valueable guidance for the project
- Ms Sinuo Liu for her guidance and facilitation of communication between stakeholders