Skip to content

Commit 667f836

Browse files
Merge pull request #78 from MATLAB-Community-Toolboxes-at-INCF/wds_2024_wrap
readability improvements and bug fixes
2 parents b32cbf2 + 4be336b commit 667f836

15 files changed

+240
-27
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
2+
% this script was made to explore the input/output requirements of the
3+
% pretrained neuropixels network
4+
5+
E = [[1:192]' [1:192]'+0.5]; % number electrodes by Y (whole number) and X 2*(mod 1)
6+
7+
NP = repmat(E,1,1,500); % 500 frames of data
8+
% now transpose to be the same as the expected neuropixels data
9+
NP = permute(NP, [3 1 2]);
10+
11+
nb_probes = 384; % Number of probes
12+
13+
pre_post_omission = 3; % Number of frames omitted before and after the inferred frame
14+
15+
pre_frame = 30; % Number of frames provided before the inferred frame
16+
post_frame = 30; % Number of frames provided after the inferred frame
17+
18+
batch_size = 100;
19+
20+
start_frame = 100;
21+
22+
end_frame = 200;
23+
24+
25+
input_full = single(zeros(batch_size, nb_probes, 2, pre_frame + post_frame));
26+
27+
28+
for frame_index = start_frame:end_frame
29+
30+
input_index = (frame_index - pre_frame - pre_post_omission) : (frame_index + post_frame + pre_post_omission );
31+
32+
input_index = input_index(input_index ~= frame_index); % drop the predicted frame
33+
34+
for index_padding = 1: pre_post_omission % drop pre_post_omission number of frames surrounding the predicted frame
35+
input_index = input_index(input_index ~= frame_index - index_padding);
36+
input_index = input_index(input_index ~= frame_index + index_padding);
37+
end
38+
39+
data_img_input = ephys(input_index, :, :);
40+
41+
data_img_input = permute(data_img_input,[2,3,1]);
42+
43+
data_img_input = (single(data_img_input) - local_mean) / local_std;
44+
45+
% alternating filling with zeros padding
46+
odd = 1: 2: nb_probes;
47+
even = odd + 1;
48+
49+
input_full(frame_index-start_frame+1, odd, 1, :) = data_img_input(:, 1, :);
50+
input_full(frame_index-start_frame+1, even, 2, :) = data_img_input(:, 2, :);
51+
52+
53+
end
54+
55+

+deepinterp/NPcheckerboard2frame.m

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
function frame = checkerboard2NPframe(cb)
2+
% CHECKERBOARD2NPFRAME - convert geometrically realistic matrix to raw Neuropixels Phase 3 format
3+
%
4+
% FRAME = CHECKERBOARD2NPFRAME(CB)
5+
%
6+
% Convert geometrically-realistic matrix data CB (384 x 2 x NSAMPLES)
7+
% into a format that matches the raw data output of Neuropixels Phase 3
8+
% probes. CB is expected to reflect the checkerboard layout of electrodes,
9+
% where every even linear index is 0.
10+
%
11+
% FRAME will be a 192 x 2 x NSAMPLES matrix.
12+
%
13+
% For example, the following single-frame example input where each data point has
14+
% been set, for illustration purposes, to the electrode number (incremented by 0.25)
15+
% would be transformed as follows:
16+
%
17+
% 1.0000 0
18+
% 0 1.2500
19+
% 2.0000 0
20+
% 0 2.2500
21+
% 3.0000 0
22+
% 0 3.2500
23+
% ...
24+
% 190.0000 0
25+
% 0 190.2500
26+
% 191.0000 0
27+
% 0 191.2500
28+
% 192.0000 0
29+
% 0 192.2500
30+
%
31+
% to
32+
%
33+
% 1.0000 1.2500
34+
% 2.0000 2.2500
35+
% 3.0000 3.2500
36+
% ...
37+
% 189.0000 189.2500
38+
% 190.0000 190.2500
39+
% 191.0000 191.2500
40+
% 192.0000 192.2500
41+
42+
% Check input dimensions
43+
if size(cb, 1) ~= 384 || size(cb, 2) ~= 2
44+
error('Input matrix CB must be 384 x 2 x NSAMPLES.');
45+
end
46+
47+
frame = zeros(size(cb,1)/2, size(cb,2), size(cb,3));
48+
odd = 1:2:size(cb,1);
49+
even = odd + 1;
50+
frame(:,1,:) = cb(odd,1,:);
51+
frame(:,2,:) = cb(even,2,:);
52+
53+
54+
55+
56+
57+
58+

+deepinterp/NPframe2checkerboard.m

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
function cb = NPframe2checkerboard(frame)
2+
% NPFRAME2CHECKERBOARD - convert raw Neuropixels Phase 3 to geometrically realistic matrix
3+
%
4+
% CB = NPframe2checkerboard(FRAME)
5+
%
6+
% Convert Neuropixels data frame data FRAME (192 x 2 x NSAMPLES)
7+
% into a geometrically-realistic matrix that reflects the checkerboad
8+
% layout of electrodes such as the Phase 3 version.
9+
%
10+
% CB will be a 384 x 2 x NSAMPLES matrix where every even linear index
11+
% will be 0.
12+
%
13+
% For example, the following single-frame example input where each data point has
14+
% been set, for illustration purposes, to the electrode number (incremented by 0.5)
15+
% would be transformed as follows:
16+
%
17+
% 1.0000 1.5000
18+
% 2.0000 2.5000
19+
% 3.0000 3.5000
20+
% ...
21+
% 189.0000 189.5000
22+
% 190.0000 190.5000
23+
% 191.0000 191.5000
24+
%
25+
% to
26+
%
27+
% 1.0000 0
28+
% 0 1.5000
29+
% 2.0000 0
30+
% 0 2.5000
31+
% 3.0000 0
32+
% 0 3.5000
33+
%...
34+
% 190.0000 0
35+
% 0 190.5000
36+
% 191.0000 0
37+
% 0 191.5000
38+
% 192.0000 0
39+
% 0 192.5000
40+
41+
cb = zeros(size(frame,1)*2,size(frame,2),size(frame,3));
42+
43+
odd = 1:2:size(frame,1)*2;
44+
even = odd + 1;
45+
46+
cb(odd,1,:) = frame(:,1,:);
47+
cb(even,2,:) = frame(:,2,:);
48+

+deepinterp/Net.m

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
options.Npost (1,1) double {mustBeInteger} = 30
6666
options.Nomit (1,1) double {mustBeInteger} = 1
6767
options.modelParameters (1,1) struct = struct('none',[])
68+
options.varname (1,:) char = "net"
6869
end
6970

7071
networkType = options.type;
@@ -77,13 +78,17 @@
7778
obj.network=deepinterp.internal.importKerasMAE(options.file);
7879
case 'tensorflowzip',
7980
obj.network=deepinterp.internal.openTensorFlowNetwork(options.file,matlab.lang.makeValidName(options.model));
81+
case 'matlab',
82+
matdata = load(options.file);
83+
obj.network = getfield(matdata,options.varname);
8084
case 'pretrained',
8185
[modelfilename, modelparams] = deepinterp.internal.getPretrainedModelFilename(options.model);
8286
obj = deepinterp.Net(modelparams.format,'file',modelfilename,...
8387
'N',modelparams.dim(1),'M',modelparams.dim(2),...
8488
'Npre',modelparams.pre,'Npost',modelparams.post,'Nomit',modelparams.omit,...
8589
'type',modelparams.type,...
86-
'modelParameters',modelparams.parameters);
90+
'modelParameters',modelparams.parameters,'model',options.model,...
91+
"varname",options.varname);
8792
return;
8893
otherwise,
8994
error(['Unknown command: ' command]);
@@ -131,22 +136,26 @@
131136
options.progbar (1,1) logical = true;
132137
end
133138

139+
if obj.networkType=="fMRI",
140+
error(['fMRI not yet supported by deepinterp.Net class.']);
141+
end;
142+
134143
output = input;
135144
Nomit_pre = (obj.Nomit+1)/2;
136145
Nomit_post = (obj.Nomit+1)/2;
137146
offsets = [ fliplr(-[Nomit_pre:obj.Npre+Nomit_pre-1]) Nomit_post:obj.Npost+Nomit_post-1];
138147
if options.progbar,
139148
deepinterp.internal.progressbar();
140149
end;
141-
totalWork = size(input,3)-(obj.Npost+obj.Npre);
142-
for t = obj.Npre+1 : size(input,3) - obj.Npost,
150+
totalWork = size(input,3)-(obj.Npost+obj.Npre+Nomit_pre-1+Nomit_post-1);
151+
for t = obj.Npre+1+Nomit_pre-1 : size(input,3) - obj.Npost-Nomit_post+1,
143152
if options.progbar,
144153
deepinterp.internal.progressbar((t-(obj.Npre+1))/totalWork);
145154
end;
146155
output(:,:,t) = predict(obj.network,input(:,:,offsets+t));
147156
end;
148157
if options.progbar,
149-
deepinterp.internal.progressbar(0.9999999999);
158+
deepinterp.internal.progressbar(1);
150159
end;
151160
end; % interp()
152161

@@ -168,10 +177,12 @@
168177
inSz = obj.network.Layers(1).InputSize;
169178
obj.N = inSz(1);
170179
obj.M = inSz(2);
171-
assert(inSz(3)==obj.Npre+obj.Npost,...
172-
['Npre + Npost must add up to the total ' ...
173-
'number of image inputs to ' ...
174-
'deepinterp.net.ImageTimeSeries.']);
180+
if numel(inSz)<4,
181+
assert(inSz(end)==obj.Npre+obj.Npost,...
182+
['Npre + Npost must add up to the total ' ...
183+
'number of image inputs to ' ...
184+
'deepinterp.net.ImageTimeSeries.']);
185+
end;
175186
end;
176187
end; % SetInputSize
177188
end;

+deepinterp/setup.m

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
function setup()
1+
function tbd = setup()
22
% SETUP - add DeepInterpolation Toolbox folders to the MATLAB path
33
%
4-
% SETUP()
4+
% TBD = SETUP()
55
%
66
% Adds DeepInterpolation Toolobx folders to the MATLAB path.
77
%
8+
% Returns the toolbox directory TBD.
9+
%
810

911
tbd = deepinterp.toolboxpath();
1012

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ Get started with inference examples which apply the DeepInterpolation principle
1414

1515
| Data Type | Pretrained<br />Model| Sample<br />Data | View <br />:eyes: | Run <br /> ▶️
1616
| :--- | :---: | :---: | --- | --- |
17-
|🔬"Ophys"<br /> (optical physiology<sup>2</sup>)| [🤖](https://github.com/MATLAB-Community-Toolboxes-at-INCF/DeepInterpolation-MATLAB/blob/main/pretrainedModels/pretrained.json)<br /> (AWS, 120 MB) | [💾](sampleData/ophys_tiny_761605196.tif) | [![View Deep-Interpolation-MATLAB on File Exchange](https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg)](https://viewer.mathworks.com/?viewer=live_code&url=https%3A%2F%2Fwww.mathworks.com%2Fmatlabcentral%2Fmlc-downloads%2Fdownloads%2F84c22101-bffc-435a-910c-b0c7dcd5b386%2F29e7e92d-4639-4178-8e19-739580981e60%2Ffiles%2Fexamples%2Ftiny_ophys_inference.mlx&embed=web) | [![Open in MATLAB Online](https://www.mathworks.com/images/responsive/global/open-in-matlab-online.svg)](https://matlab.mathworks.com/open/github/v1?repo=INCF/DeepInterpolation-MATLAB&file=examples/tiny_ophys_inference.mlx)
18-
|⚡"Ephys" (electrophysiology<sup>1</sup>)| [:robot:](https://github.com/MATLAB-Community-Toolboxes-at-INCF/DeepInterpolation-MATLAB/blob/main/pretrainedModels/pretrained.json) | [💾](sampleData/ephys_tiny_continuous.dat2) | [![View Deep-Interpolation-MATLAB on File Exchange](https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg)](https://viewer.mathworks.com/?viewer=live_code&url=https%3A%2F%2Fwww.mathworks.com%2Fmatlabcentral%2Fmlc-downloads%2Fdownloads%2F84c22101-bffc-435a-910c-b0c7dcd5b386%2F29e7e92d-4639-4178-8e19-739580981e60%2Ffiles%2Fexamples%2Ftiny_ephys_inference.mlx&embed=web) | [![Open in MATLAB Online](https://www.mathworks.com/images/responsive/global/open-in-matlab-online.svg)](https://matlab.mathworks.com/open/github/v1?repo=INCF/DeepInterpolation-MATLAB&file=examples/tiny_ephys_inference.mlx)
17+
|🔬"Ophys"<br /> (optical physiology<sup>2</sup>)| [🤖](https://github.com/MATLAB-Community-Toolboxes-at-INCF/DeepInterpolation-MATLAB/blob/main/pretrainedModels/pretrained.json#L3)<br /> (AWS, 120 MB) | [💾](sampleData/ophys_tiny_761605196.tif) | [![View Deep-Interpolation-MATLAB on File Exchange](https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg)](https://viewer.mathworks.com/?viewer=live_code&url=https%3A%2F%2Fwww.mathworks.com%2Fmatlabcentral%2Fmlc-downloads%2Fdownloads%2F84c22101-bffc-435a-910c-b0c7dcd5b386%2F29e7e92d-4639-4178-8e19-739580981e60%2Ffiles%2Fexamples%2Ftiny_ophys_inference.mlx&embed=web) | [![Open in MATLAB Online](https://www.mathworks.com/images/responsive/global/open-in-matlab-online.svg)](https://matlab.mathworks.com/open/github/v1?repo=INCF/DeepInterpolation-MATLAB&file=examples/tiny_ophys_inference.mlx)
18+
|⚡"Ephys" (electrophysiology<sup>1</sup>)| [:robot:](https://github.com/MATLAB-Community-Toolboxes-at-INCF/DeepInterpolation-MATLAB/blob/main/pretrainedModels/pretrained#L54.json) | [💾](sampleData/ephys_tiny_continuous.dat2) | [![View Deep-Interpolation-MATLAB on File Exchange](https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg)](https://viewer.mathworks.com/?viewer=live_code&url=https%3A%2F%2Fwww.mathworks.com%2Fmatlabcentral%2Fmlc-downloads%2Fdownloads%2F84c22101-bffc-435a-910c-b0c7dcd5b386%2F29e7e92d-4639-4178-8e19-739580981e60%2Ffiles%2Fexamples%2Ftiny_ephys_inference.mlx&embed=web) | [![Open in MATLAB Online](https://www.mathworks.com/images/responsive/global/open-in-matlab-online.svg)](https://matlab.mathworks.com/open/github/v1?repo=INCF/DeepInterpolation-MATLAB&file=examples/tiny_ephys_inference.mlx)
1919

2020

2121
<sub><sup>1</sup> via Neuropixels neural probes <sup>2</sup> via two-photon (2P) calcium imaging<sub>
@@ -28,9 +28,9 @@ First-time users on MATLAB Online will be prompted to install the [Deep Learning
2828
Expected use cases involve training on a user's representative or actual dataset. The following examples illustrate the transfer learning workflow for (re)training DeepInterpolation pretrained models along with subsequent inference. Notably the DeepInterpolation principle **does not require separate ground truth data**; thus training and inference can be run using the same dataset.
2929

3030
| Data Type | Pretrained Model | Sample Data | View :eyes:| Run ▶️
31-
|---|---|---|---|---|
32-
| 🔬"Ophys" (optical physiology<sup>1</sup>)| [TODO](sample_data/pretrainedNetwork.mat) | [sample data](sampleData/ophys_tiny_761605196.tif) | [![View Deep-Interpolation-MATLAB on File Exchange](https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg)](https://viewer.mathworks.com/?viewer=live_code&url=https%3A%2F%2Fwww.mathworks.com%2Fmatlabcentral%2Fmlc-downloads%2Fdownloads%2F84c22101-bffc-435a-910c-b0c7dcd5b386%2Fbfd58de9-1242-48ba-81bc-dfe9c37fae6b%2Ffiles%2Fexamples%2Fcustomdatastore_example.mlx&embed=web) | [![Open in MATLAB Online](https://www.mathworks.com/images/responsive/global/open-in-matlab-online.svg)](https://matlab.mathworks.com/open/github/v1?repo=INCF/DeepInterpolation-MATLAB&file=examples/tiny_ophys_training.mlx)
33-
| ⚡ Ephys" (electrophysiology<sup>2</sup>) | ["Ephys-Neuropixels_Phase_3a_1050"](pretrainedModels/pretrained.json) | [sample data](sampleData/ephys_tiny_continuous.dat2) | [![View Deep-Interpolation-MATLAB on File Exchange](https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg)](https://viewer.mathworks.com/?viewer=live_code&url=https%3A%2F%2Fwww.mathworks.com%2Fmatlabcentral%2Fmlc-downloads%2Fdownloads%2F84c22101-bffc-435a-910c-b0c7dcd5b386%2F29e7e92d-4639-4178-8e19-739580981e60%2Ffiles%2Fexamples%2Ftiny_ephys_training.mlx&embed=web) | [![Open in MATLAB Online](https://www.mathworks.com/images/responsive/global/open-in-matlab-online.svg)](https://matlab.mathworks.com/open/github/v1?repo=INCF/DeepInterpolation-MATLAB&file=examples/tiny_ephys_training.mlx)
31+
|---| :---: |---|---|---|
32+
| 🔬"Ophys" (optical physiology<sup>1</sup>)| [:robot:](https://github.com/MATLAB-Community-Toolboxes-at-INCF/DeepInterpolation-MATLAB/blob/main/pretrainedModels/pretrained#L3.json) | [sample data](sampleData/ophys_tiny_761605196.tif) | [![View Deep-Interpolation-MATLAB on File Exchange](https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg)](https://viewer.mathworks.com/?viewer=live_code&url=https%3A%2F%2Fwww.mathworks.com%2Fmatlabcentral%2Fmlc-downloads%2Fdownloads%2F84c22101-bffc-435a-910c-b0c7dcd5b386%2Fbfd58de9-1242-48ba-81bc-dfe9c37fae6b%2Ffiles%2Fexamples%2Fcustomdatastore_example.mlx&embed=web) | [![Open in MATLAB Online](https://www.mathworks.com/images/responsive/global/open-in-matlab-online.svg)](https://matlab.mathworks.com/open/github/v1?repo=INCF/DeepInterpolation-MATLAB&file=examples/tiny_ophys_training.mlx)
33+
| ⚡ Ephys" (electrophysiology<sup>2</sup>) | [:robot:](https://github.com/MATLAB-Community-Toolboxes-at-INCF/DeepInterpolation-MATLAB/blob/main/pretrainedModels/pretrained#L54.json) | [sample data](sampleData/ephys_tiny_continuous.dat2) | [![View Deep-Interpolation-MATLAB on File Exchange](https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg)](https://viewer.mathworks.com/?viewer=live_code&url=https%3A%2F%2Fwww.mathworks.com%2Fmatlabcentral%2Fmlc-downloads%2Fdownloads%2F84c22101-bffc-435a-910c-b0c7dcd5b386%2F29e7e92d-4639-4178-8e19-739580981e60%2Ffiles%2Fexamples%2Ftiny_ephys_training.mlx&embed=web) | [![Open in MATLAB Online](https://www.mathworks.com/images/responsive/global/open-in-matlab-online.svg)](https://matlab.mathworks.com/open/github/v1?repo=INCF/DeepInterpolation-MATLAB&file=examples/tiny_ephys_training.mlx)
3434

3535
<sub><sup>1</sup> via two-photon (2P) calcium imaging <sup>2</sup> via Neuropixels neural probes<sub>
3636

@@ -40,9 +40,9 @@ Expected use cases involve training on a user's representative or actual dataset
4040
Expected use cases will involve larger data sizes, for which remote data locations and/or big data handling become important considerations. The following examples utilize larger datasets from cloud-hosted public scientific data archives to illustrate these data acccess & handling workflows.
4141

4242
| Data Type | Pretrained Model | Public Data Archive | View :eyes: | Run ▶️
43-
|---|---|---|---|---|
44-
|🔬"Ophys" (optical physiology) | [model](pretrainedModels/pretrained.json) | [Allen Brain Observatory](http://allen-brain-observatory.s3.amazonaws.com/visual-coding-2p/ophys_movies/ophys_experiment_496908818.h5) (55.6 GB) | [![View Deep-Interpolation-MATLAB on File Exchange](https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg)](https://viewer.mathworks.com/?viewer=live_code&url=https%3A%2F%2Fwww.mathworks.com%2Fmatlabcentral%2Fmlc-downloads%2Fdownloads%2F84c22101-bffc-435a-910c-b0c7dcd5b386%2F29e7e92d-4639-4178-8e19-739580981e60%2Ffiles%2Fexamples%2Fophys_AllenBrainObservatory.mlx&embed=web) | (\*) |
45-
|🧠 fMRI (functional magnetic resonance imaging) | [TODO](pretrainedModels/pretrained.json) (AWS)| [Open Neuro](https://openneuro.org/datasets/ds001246/versions/1.2.1) (18.3 GB)| [![View Deep-Interpolation-MATLAB on File Exchange](https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg)](https://viewer.mathworks.com/?viewer=live_code&url=https%3A%2F%2Fwww.mathworks.com%2Fmatlabcentral%2Fmlc-downloads%2Fdownloads%2F84c22101-bffc-435a-910c-b0c7dcd5b386%2F29e7e92d-4639-4178-8e19-739580981e60%2Ffiles%2Fexamples%2Ftiny_fMRI_inference.mlx&embed=web) | [![Open in MATLAB Online](https://www.mathworks.com/images/responsive/global/open-in-matlab-online.svg)](https://matlab.mathworks.com/open/github/v1?repo=INCF/DeepInterpolation-MATLAB&file=examples/other/fMRI_OpenNeuro.mlx)
43+
|---|:---:|---|---|---|
44+
|🔬"Ophys" (optical physiology) | [:robot:](https://github.com/MATLAB-Community-Toolboxes-at-INCF/DeepInterpolation-MATLAB/blob/main/pretrainedModels/pretrained#L92.json) | [Allen Brain Observatory](http://allen-brain-observatory.s3.amazonaws.com/visual-coding-2p/ophys_movies/ophys_experiment_496908818.h5) (55.6 GB) | [![View Deep-Interpolation-MATLAB on File Exchange](https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg)](https://viewer.mathworks.com/?viewer=live_code&url=https%3A%2F%2Fwww.mathworks.com%2Fmatlabcentral%2Fmlc-downloads%2Fdownloads%2F84c22101-bffc-435a-910c-b0c7dcd5b386%2F29e7e92d-4639-4178-8e19-739580981e60%2Ffiles%2Fexamples%2Fophys_AllenBrainObservatory.mlx&embed=web) | (\*) |
45+
|🧠 fMRI (functional magnetic resonance imaging) | [:robot:](https://github.com/MATLAB-Community-Toolboxes-at-INCF/DeepInterpolation-MATLAB/blob/main/pretrainedModels/pretrained#L74.json) | [Open Neuro](https://openneuro.org/datasets/ds001246/versions/1.2.1) (18.3 GB)| [![View Deep-Interpolation-MATLAB on File Exchange](https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg)](https://viewer.mathworks.com/?viewer=live_code&url=https%3A%2F%2Fwww.mathworks.com%2Fmatlabcentral%2Fmlc-downloads%2Fdownloads%2F84c22101-bffc-435a-910c-b0c7dcd5b386%2F29e7e92d-4639-4178-8e19-739580981e60%2Ffiles%2Fexamples%2Ftiny_fMRI_inference.mlx&embed=web) | [![Open in MATLAB Online](https://www.mathworks.com/images/responsive/global/open-in-matlab-online.svg)](https://matlab.mathworks.com/open/github/v1?repo=INCF/DeepInterpolation-MATLAB&file=examples/other/fMRI_OpenNeuro.mlx)
4646

4747
<sub>(\*) This data-intensive example is recommended for use on a local machine, not for MATLAB online.</sub>
4848

11 Bytes
Binary file not shown.

examples/other/fMRI_OpenNeuro.mlx

-109 KB
Binary file not shown.
-27 Bytes
Binary file not shown.

examples/tiny_ephys_inference.mlx

142 KB
Binary file not shown.

0 commit comments

Comments
 (0)