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:
conda --version
. If you don't have conda, install it by following these instructionsgit clone https://github.com/scivision-gallery/cryoEM-object-detection.git
cd cryoEM-object-detection
conda env create -f environment.yml
conda activate cryoEM-scivision-py39
jupyter notebook
or jupyter lab