|
1 | 1 | # DeepInterpolation with MATLAB |
2 | | -DeepInterpolation with MATLAB is a MATLAB implementation of the DeepInterpolation general-purpose algorithm used to denoise data by removing independent noise. Importantly training does NOT require ground truth. This repository is currently meant to provide livescripts to illustrate the training and inference pipelines. |
| 2 | +A MATLAB implementation of the DeepInterpolation principle |
| 3 | +### About DeepInterpolation |
| 4 | +DeepInterpolation is a general-purpose algorithm used to denoise data by removing independent noise. The Allen Institute developed the principle and created a [reference implementation in Python](https://github.com/AllenInstitute/deepinterpolation). |
| 5 | +The principle of DeepInterpolation has been [published](https://www.nature.com/articles/s41592-021-01285-2) in the Nature Methods journal, with applications to systems neuroscience data. |
3 | 6 |
|
4 | | -The associated bioRxiv publication can be accessed from here: https://www.biorxiv.org/content/10.1101/2020.10.15.341602v1 |
| 7 | +### Getting started |
| 8 | +Get started with one of the example inference workflows. You can individually view (:eyes:) or run (:arrow_forward:) these examples on MATLAB Online: |
5 | 9 |
|
6 | | -# Principle of DeepInterpolation |
7 | | - |
| 10 | +| Nickname| Trained Model| Sample data | View | Run |
| 11 | +| --- | --- | --- | --- | --- | |
| 12 | +| "Ephys" (electrophysiology) | [model](sample_data\2020_02_29_15_28_unet_single_ephys_1024_mean_squared_error-1050.h5) | [sample data](sample_data\ephys_tiny_continuous.dat2) | [:eyes:](examples\tiny_ephys_inference.mlx) | :arrow_forward: |
| 13 | +| "Ophys" (optical physiology) | [model](https://www.dropbox.com/sh/vwxf1uq2j60uj9o/AAC0sZWahCJFBRARoYsw8Nnra/2019_09_11_23_32_unet_single_1024_mean_absolute_error_Ai93-0450.h5?dl=0) (Dropbox, 120 MB) | [sample data](examples\tiny_ophys_inference.mlx) | [:eyes:](examples\tiny_ephys_inference.mlx) | :arrow_forward: |
8 | 14 |
|
9 | | -Figure 1 - Schematic introducing the principles of DeepInterpolation. A. An interpolation model is trained to predict a noisy block from other blocks with independent noise. The loss is the difference between the predicted data and a new noisy block. B. The interpolation model is used to create a noiseless version of the input data. (Lecoq et al., 2020) |
10 | 15 |
|
11 | | -# Example training |
| 16 | +#### Requirements |
| 17 | +* [Deep Learning Toolbox Converter for TensorFlow Models](https://nl.mathworks.com/matlabcentral/fileexchange/64649-deep-learning-toolbox-converter-for-tensorflow-models) support package. |
12 | 18 |
|
13 | | -To try out training your own DeepInterpolation network, we recommend to start with: |
14 | | -* [tiny_ephys_training.mlx](https://github.com/INCF/DeepInterpolation-MATLAB/blob/main/examples/tiny_ephys_training.mlx) for ephys data from a Neuropixels probe |
15 | | -* [ophys_training_inference.mlx](https://github.com/INCF/DeepInterpolation-MATLAB/blob/main/examples/ophys_training_inference.mlx) for 2-photon ophys data |
| 19 | +### Going Further |
16 | 20 |
|
17 | | -# Example Inference |
| 21 | +#### Training examples |
| 22 | +Try out training your own DeepInterpolation network. You can individually view (:eyes:) or run (:arrow_forward:) these examples on MATLAB Online: |
18 | 23 |
|
19 | | -To try out inference with your own DeepInterpolation network, we recommend to start with: |
20 | | -* [tiny_ephys_inference.mlx](https://github.com/INCF/DeepInterpolation-MATLAB/blob/main/examples/tiny_ephys_inference.mlx) for ephys data from a Neuropixels probe |
21 | | -* [tiny_ophys_inference.mlx](https://github.com/INCF/DeepInterpolation-MATLAB/blob/main/examples/tiny_ophys_inference.mlx) for 2-photon ophys data |
| 24 | +| Nickname | Model | Dataset | View | Run |
| 25 | +|---|---|---|---|---| |
| 26 | +| "Ephys" (electrophysiology) | [model](sample_data\2020_02_29_15_28_unet_single_ephys_1024_mean_squared_error-1050.h5) | [dataset](sample_data\ephys_tiny_continuous.dat2) | [:eyes:](examples\tiny_ephys_training.mlx) | :arrow_forward: | |
| 27 | +| "Ophys" (optical physiology) | [model](sample_data\2021_07_31_09_49_38_095550_unet_1024_search_mean_squared_error_pre_30_post_30_feat_32_power_1_depth_4_unet_True-0125-0.5732.h5) | [dataset](http://allen-brain-observatory.s3.amazonaws.com/visual-coding-2p/ophys_movies/ophys_experiment_501254258.h5) (AWS, 52 GB) | [:eyes:](examples\ophys_training_inference.mlx) | :arrow_forward: | |
22 | 28 |
|
23 | | -Raw pre-trained models are available as separate h5 files on Dropbox. |
24 | | - |
25 | | -Neuropixel DeepInterpolation network: |
26 | | - |
27 | | -Key recording parameters: |
28 | | - |
29 | | -Neuropixels Phase 3a probes |
30 | | -* 374 simultaneous recording sites across 3.84 mm, 10 reference channels |
31 | | -* Four-column checkerboard site layout with 20 µm spacing between rows |
32 | | -* 30 kHz sampling rate |
33 | | -* 500x hardware gain setting |
34 | | -* 500 Hz high pass filter in hardware, 150 Hz high-pass filter applied offline. |
35 | | -* Pre-processing: Median subtraction was applied to individual probes to remove signals that were common across all recording sites. Each probe recording was mean-centered and normalized with a single pair of value for all nodes on the probe. |
36 | | -* Docker hub id : 245412653747/deep_interpolation:allen_neuropixel |
37 | | -* Dropxbox link : https://www.dropbox.com/sh/tm3epzil44ybalq/AACyKxfvvA2T_Lq_rnpHnhFma?dl=0 |
38 | | - |
39 | | -Two-photon Ai93 excitatory line DeepInterpolation network: |
40 | | - |
41 | | -Key recording parameters: |
42 | | - |
43 | | -* 30Hz sampling rate, 400x400 μm2 field of view, 512x512 pixels. |
44 | | -* 0.8 NA objective. |
45 | | -* 910 nm excitation wavelength. |
46 | | -* Gcamp6f calcium indicator. |
47 | | -* Ai93 reporter line expressed in excitatory neurons. |
48 | | -* Docker hub id : 245412653747/deep_interpolation:allen_400um_512pix_30hz_ai93 |
49 | | -* Dropbox link : https://www.dropbox.com/sh/vwxf1uq2j60uj9o/AAC9BQI1bdfmAL3OFO0lmVb1a?dl=0 |
50 | | -* Training data : https://github.com/AllenInstitute/deepinterpolation/blob/master/examples/paper_generation_code/json_data/2019-09-05-train-very-large-single-plane-Ai93-norm.json |
51 | | - |
52 | | - |
53 | | -NB for Linux users: If a Live Script demo finishes its run without any output or error, please consider running the corresponding *.m file for debugging the error. If the error is related to a bug in DeepInterpolation-MATLAB and you have a solution please submit a pull request, else please raise an issue stating the error message along with OS and MATLAB version details. |
54 | 29 |
|
55 | 30 |
|
| 31 | +### Support |
| 32 | +DeepInterpolation with MATLAB is a public repository. Contributions can be made in the form of adding issues or submitting pull requests. |
0 commit comments