Detection of objects in a synthetic image with ODIN. Bounding boxes: purple - ground truth, yellow - prediction.
Electron Microscopy aims to image particles (e.g., proteins, molecules) on a near atomic resolution. However, with great resolution comes low signal-to-noise ratio. As such, computer vision models need to be trained on noisy datasets in order to detect objects.
The structure of the objects being imaged is calculated by averaging hundreds if not thousands of frames of said object in different orientations, rotations and positions. The dataset generated is, consequently, large - usually, the pre-processed images (or with some degree of processing like motion correction) are uploaded onto an online database called EMPIAR.
In this notebook, we use scivision to load memory-friendly synthetic data (AlphabetSoup with a noise filter) and real data from the online database of EM images (EMPIAR), and run them through our pre-trained Object Detection in Images with Noise (odin) model.
To run the notebook on your local machine:
- Open your terminal
- Check your conda installation with
conda --version
. If you don't have conda, install it by following these instructions - Clone the repository into your current folder:
git clone https://github.com/scivision-gallery/cryoEM-object-detection.git
- Change directory to the cloned repository,
cd cryoEM-object-detection
- Install the dependencies in a new environment
conda env create -f environment.yml
- Activate the installed environment,
conda activate cryoEM-scivision-py39
- Launch the jupyter interface of your preference by running either
jupyter notebook
orjupyter lab