Deep Learning Models for Calcium Imaging Data
Install the package and make predictions on Neurofinder using a pre-trained UNet2DS model.
Note: This assumes python3.5 and pip3.
# Install from Github repo. Need to upgrade pip.
$ pip install --upgrade --user -I pip
$ pip install --user git+https://github.com/alexklibisz/deep-calcium.git
# Download the model from Github releases.
$ wget https://github.com/alexklibisz/deep-calcium/releases/download/v0.0.1-weights/unet2ds_model.hdf5
# Download the example script and evaluate predictions on the first training dataset.
# This will download and preprocess the dataset to ~/.deep-calcium-datasets, requiring ~3.1GB of disk space.
$ wget https://raw.githubusercontent.com/alexklibisz/deep-calcium/dev/examples/neurons/unet2ds_nf.py
$ CUDA_VISIBLE_DEVICES="0" python unet2ds_nf.py evaluate neurofinder.00.00 --model unet2ds_model.hdf5
You should see output similar to this:
$ INFO:predict:Loaded model from unet2ds_model.hdf5.
$ INFO:predict:neurofinder.00.00: prec=0.976, reca=1.000, incl=0.084, excl=0.109, comb=0.988
$ INFO:predict:Saved /home/kzh/.deep-calcium/checkpoints/neurons_unet2ds_nf/neurofinder.00.00_mp.png
$ INFO:predict:Mean prec=0.976, reca=1.000, comb=0.988
$ INFO:evaluation:Evaluation without TTA.
$ INFO:predict:Loaded model from unet2ds_model.hdf5.
$ INFO:predict:neurofinder.00.00: prec=0.919, reca=1.000, incl=0.106, excl=0.133, comb=0.958
$ INFO:predict:Saved /home/kzh/.deep-calcium/checkpoints/neurons_unet2ds_nf/neurofinder.00.00_mp.png
$ INFO:predict:Mean prec=0.919, reca=1.000, comb=0.958
Ground truth and predicted neurons are outlined in blue and red, respectively. Intersecting outlines become purple. |
U-Net2DS: U-Net segmenting 2D Summary Images
- Model described in the paper: Fast, Simple Calcium Imaging Segmentation with Fully Convolutional Networks by Aleksander Klibisz, Derek Rose, Matthew Eicholtz, Jay Blundon, Stanislav Zakharenko.
- See notebooks for figures and supplementary material.
- Usage with new data: see this example to understand how to use a trained model with new data.
- Trained on data from the Neurofinder challenge with results below.
Date | Summary | Mean F1 Score | All Scores | Model & Weights | Training Artifacts | Commit |
---|---|---|---|---|---|---|
6/16/17 | UNet with a single batchnorm layer at the input. Images scaled to [0,1]. | 0.5356 | Github | Google Drive | Google Drive | 0bda9d4 |
7/12/17 | Same as 6/16/17, but with 8x test-time augmentation. | 0.5422 | Github | Google Drive | Google Drive | f1b33bf |
7/13/17 | UNet with batchnorm between each conv and ReLU. Mean subtraction and normalization on each summary image. Mask-summary erosion to eliminate merged neurons in ground-truth mask. | 0.5611 | Github | Github | Google Drive | 2b15d1b |
7/13/17 | Same as 7/13/17, but with 8x test-time augmentation. Replaced UNet2DS submission with this one. | 0.5689 | Github | Github | Google Drive | 2b15d1b |
*Ground truth spikes marked in blue, predicted spike segments in red. |
U-Net1D: 1-dimensional U-Net segmenting calcium traces
- Model described in: Segmenting Neurons and Spikes in Calcium Imaging Data Using Deep Learning (poster)
- Currently used for non-public internal data only. It might be adaptable for Spikefinder data. Spikefinder is predicting a continuous output (number of action potentials at each time step). U-Net1D predicts a binary output (spike or no-spike at each time step).
- Trained weights are available on the releases page.