Skip to content

Commit 022cb25

Browse files
committed
set up binder, notebooks and infra
1 parent 5986937 commit 022cb25

File tree

7 files changed

+268
-10
lines changed

7 files changed

+268
-10
lines changed

binder/apt.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
octave
2+
liboctave-dev
3+
gnuplot
4+
ghostscript
5+
tree

binder/environment.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
dependencies:
2+
- octave_kernel

binder/postBuild

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
cd ${HOME}
2+
3+
octave --no-gui --no-window-system --silent --eval "addpath (getenv (\"HOME\")); savepath ();"
4+
octave --no-gui --no-window-system --silent --eval "addpath (fullfile (getenv (\"HOME\"), \"+bids\")); savepath ();"
5+
6+
git clone git://github.com/gllmflndn/JSONio.git --depth 1
7+
cd JSONio; mkoctfile --mex jsonread.c jsmn.c -DJSMN_PARENT_LINKS; cd ..
8+
9+
octave --no-gui --no-window-system --silent --eval "addpath (fullfile (getenv (\"HOME\"), \"JSONio\")); savepath ();"
10+
11+
cd ${HOME}/examples
12+

examples/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.ipynb_checkpoints

examples/demo.ipynb

Lines changed: 237 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,237 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"id": "a4c07e0c-8673-4fa8-bc31-800409fb09c4",
6+
"metadata": {},
7+
"source": [
8+
"# SPM_2_BIDS DEMO\n",
9+
"\n",
10+
"**Helping you convert your SPM output into a BIDS compliant datasets.**\n"
11+
]
12+
},
13+
{
14+
"cell_type": "code",
15+
"execution_count": 2,
16+
"id": "68482373-0288-4920-99a6-68e7db8bac44",
17+
"metadata": {},
18+
"outputs": [
19+
{
20+
"name": "stdout",
21+
"output_type": "stream",
22+
"text": [
23+
"Correct matlab/octave verions and added to the path!\n"
24+
]
25+
}
26+
],
27+
"source": [
28+
"run ../init_spm_2_bids.m"
29+
]
30+
},
31+
{
32+
"cell_type": "code",
33+
"execution_count": 13,
34+
"id": "0d1179df-bfa6-494c-a900-ab667d6bfa5d",
35+
"metadata": {},
36+
"outputs": [
37+
{
38+
"name": "stdout",
39+
"output_type": "stream",
40+
"text": [
41+
"sub-01_T1w_seg8.mat\t-->\tsub-01_label-T1w_segparam.mat\n",
42+
"sub-01_task-auditory_bold_uw.mat\t-->\tsub-01_task-auditory_label-bold_unwarpparam.mat\n",
43+
"y_sub-01_T1w.nii\t-->\tsub-01_from-T1w_to-IXI549Space_mode-image_xfm.nii\n",
44+
"iy_sub-01_T1w.nii\t-->\tsub-01_from-IXI549Space_to-T1w_mode-image_xfm.nii\n",
45+
"y_sub-01_T2w.nii\t-->\tsub-01_from-T2w_to-IXI549Space_mode-image_xfm.nii\n",
46+
"susub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-individual_desc-smth_bold.nii\n",
47+
"swuasub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-IXI549Space_desc-smth_bold.nii\n",
48+
"c1sub-01_T1w.nii\t-->\tsub-01_space-individual_label-GM_probseg.nii\n",
49+
"c2sub-01_T1w.nii\t-->\tsub-01_space-individual_label-WM_probseg.nii\n",
50+
"c3sub-01_T1w.nii\t-->\tsub-01_space-individual_label-CSF_probseg.nii\n",
51+
"msub-01_T1w.nii\t-->\tsub-01_space-individual_desc-biascor_T1w.nii\n",
52+
"wmsub-01_T1w.nii\t-->\tsub-01_space-IXI549Space_desc-preproc_T1w.nii\n",
53+
"wsub-01_T1w.nii\t-->\tsub-01_space-IXI549Space_desc-preproc_T1w.nii\n",
54+
"wc1sub-01_T1w.nii\t-->\tsub-01_space-IXI549Space_label-GM_probseg.nii\n",
55+
"wc2sub-01_T1w.nii\t-->\tsub-01_space-IXI549Space_label-WM_probseg.nii\n",
56+
"wc3sub-01_T1w.nii\t-->\tsub-01_space-IXI549Space_label-CSF_probseg.nii\n",
57+
"asub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-individual_desc-stc_bold.nii\n",
58+
"usub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-individual_desc-realignUnwarp_bold.nii\n",
59+
"rp_sub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_desc-confounds_regressors.tsv\n",
60+
"rp_asub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_desc-confounds_regressors.tsv\n",
61+
"meansub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-individual_desc-mean_bold.nii\n",
62+
"meanusub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-individual_desc-mean_bold.nii\n",
63+
"meanuasub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-individual_desc-mean_bold.nii\n",
64+
"wsub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-IXI549Space_desc-preproc_bold.nii\n",
65+
"wuasub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-IXI549Space_desc-preproc_bold.nii\n",
66+
"wusub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-IXI549Space_desc-preproc_bold.nii\n",
67+
"wrsub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-IXI549Space_desc-preproc_bold.nii\n",
68+
"wrasub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-IXI549Space_desc-preproc_bold.nii\n",
69+
"wmeanusub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-IXI549Space_desc-mean_bold.nii\n",
70+
"swsub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-IXI549Space_desc-smth_bold.nii\n",
71+
"swuasub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-IXI549Space_desc-smth_bold.nii\n",
72+
"swusub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-IXI549Space_desc-smth_bold.nii\n",
73+
"swrsub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-IXI549Space_desc-smth_bold.nii\n",
74+
"swrasub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-IXI549Space_desc-smth_bold.nii\n",
75+
"ssub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-individual_desc-smth_bold.nii\n",
76+
"suasub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-individual_desc-smth_bold.nii\n",
77+
"susub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-individual_desc-smth_bold.nii\n",
78+
"srsub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-individual_desc-smth_bold.nii\n",
79+
"srasub-01_task-auditory_bold.nii\t-->\tsub-01_task-auditory_space-individual_desc-smth_bold.nii\n"
80+
]
81+
}
82+
],
83+
"source": [
84+
"input_files = { 'sub-01_T1w_seg8.mat'; ...\n",
85+
" 'sub-01_task-auditory_bold_uw.mat'; ...\n",
86+
" 'y_sub-01_T1w.nii'; ...\n",
87+
" 'iy_sub-01_T1w.nii'; ...\n",
88+
" 'y_sub-01_T2w.nii'; ...\n",
89+
" 'susub-01_task-auditory_bold.nii'; ...\n",
90+
" 'swuasub-01_task-auditory_bold.nii'; ...\n",
91+
" 'c1sub-01_T1w.nii'; ... \n",
92+
" 'c2sub-01_T1w.nii'; ... \n",
93+
" 'c3sub-01_T1w.nii'; ... \n",
94+
" 'msub-01_T1w.nii'; ... \n",
95+
" 'wmsub-01_T1w.nii'; ... \n",
96+
" 'wsub-01_T1w.nii'; ...\n",
97+
" 'wc1sub-01_T1w.nii'; ... \n",
98+
" 'wc2sub-01_T1w.nii'; ... \n",
99+
" 'wc3sub-01_T1w.nii'; ... \n",
100+
" 'asub-01_task-auditory_bold.nii'; ...\n",
101+
" 'usub-01_task-auditory_bold.nii'; ...\n",
102+
" 'rp_sub-01_task-auditory_bold.nii'; ... \n",
103+
" 'rp_asub-01_task-auditory_bold.nii'; ...\n",
104+
" 'meansub-01_task-auditory_bold.nii'; ... \n",
105+
" 'meanusub-01_task-auditory_bold.nii'; ... \n",
106+
" 'meanuasub-01_task-auditory_bold.nii'; ...\n",
107+
" 'wsub-01_task-auditory_bold.nii'; ... \n",
108+
" 'wuasub-01_task-auditory_bold.nii'; ... \n",
109+
" 'wusub-01_task-auditory_bold.nii'; ... \n",
110+
" 'wrsub-01_task-auditory_bold.nii'; ... \n",
111+
" 'wrasub-01_task-auditory_bold.nii'; ...\n",
112+
" 'wmeanusub-01_task-auditory_bold.nii'; ...\n",
113+
" 'swsub-01_task-auditory_bold.nii'; ... \n",
114+
" 'swuasub-01_task-auditory_bold.nii'; ... \n",
115+
" 'swusub-01_task-auditory_bold.nii'; ... \n",
116+
" 'swrsub-01_task-auditory_bold.nii'; ... \n",
117+
" 'swrasub-01_task-auditory_bold.nii'; ...\n",
118+
" 'ssub-01_task-auditory_bold.nii'; ... \n",
119+
" 'suasub-01_task-auditory_bold.nii'; ... \n",
120+
" 'susub-01_task-auditory_bold.nii'; ... \n",
121+
" 'srsub-01_task-auditory_bold.nii'; ... \n",
122+
" 'srasub-01_task-auditory_bold.nii'; ...\n",
123+
"};\n",
124+
" \n",
125+
"\n",
126+
"for i = 1:size(input_files, 1)\n",
127+
"\n",
128+
" filename = spm_2_bids(input_files{i, 1});\n",
129+
" \n",
130+
" fprintf(1, '%s\\t-->\\t%s\\n', input_files{i, 1}, filename);\n",
131+
"\n",
132+
"end"
133+
]
134+
},
135+
{
136+
"cell_type": "markdown",
137+
"id": "cdb56e9a-3757-45a6-ba5a-c1228f478a3e",
138+
"metadata": {},
139+
"source": [
140+
"# Override the default name map"
141+
]
142+
},
143+
{
144+
"cell_type": "code",
145+
"execution_count": 20,
146+
"id": "547873ea-d673-4338-998e-a10ea80b1682",
147+
"metadata": {},
148+
"outputs": [],
149+
"source": [
150+
"map = Mapping();\n",
151+
"\n",
152+
"map = map.default();\n",
153+
"\n",
154+
"name_spec = map.cfg.preproc_norm;\n",
155+
"name_spec.entities.res = '1pt0';\n",
156+
"map = map.add_mapping('prefix', 'wm', ...\n",
157+
" 'suffix', 'T1w', ...\n",
158+
" 'ext', '.nii', ...\n",
159+
" 'entities', struct('desc', 'skullstripped'), ...\n",
160+
" 'name_spec', name_spec);\n",
161+
"\n",
162+
"name_spec = struct('suffix', 'T1w', ...\n",
163+
" 'ext', '.gii', ...\n",
164+
" 'entities', struct('desc', 'pialsurf'));\n",
165+
"map = map.add_mapping('prefix', 'c1', ...\n",
166+
" 'suffix', 'T1w', ...\n",
167+
" 'ext', '.surf.gii', ...\n",
168+
" 'entities', '*', ... % allows any entity, if empty only prefix is used\n",
169+
" 'name_spec', name_spec);\n",
170+
"\n",
171+
"map = map.flatten_mapping();\n"
172+
]
173+
},
174+
{
175+
"cell_type": "code",
176+
"execution_count": 21,
177+
"id": "6dde6430-e419-4771-8a61-1b5ba6d362d6",
178+
"metadata": {},
179+
"outputs": [
180+
{
181+
"name": "stdout",
182+
"output_type": "stream",
183+
"text": [
184+
"c1sub-01_T1w.surf.gii\t-->\tsub-01_desc-pialsurf_T1w.gii\n",
185+
"wmsub-01_desc-skullstripped_T1w.nii\t-->\tsub-01_space-IXI549Space_res-1pt0_desc-preproc_T1w.nii\n",
186+
"wmsub-01_desc-skullstripped_T2w.nii\t-->\tsub-01_space-IXI549Space_desc-preproc_T2w.nii\n",
187+
"wmsub-01_desc-preproc_T1w.nii\t-->\tsub-01_space-IXI549Space_desc-preproc_T1w.nii\n"
188+
]
189+
}
190+
],
191+
"source": [
192+
"input_output = {'c1sub-01_T1w.surf.gii'; ... % new mapping for surface data\n",
193+
" 'wmsub-01_desc-skullstripped_T1w.nii'; ... % new mapping for skulltripped data\n",
194+
" 'wmsub-01_desc-skullstripped_T2w.nii'; ... % wrong suffix: use only prefix\n",
195+
" 'wmsub-01_desc-preproc_T1w.nii'; ... % wrong entity: use only prefix\n",
196+
" };\n",
197+
"\n",
198+
"for i = 1:size(input_output, 1)\n",
199+
"\n",
200+
" filename = spm_2_bids(input_output{i, 1}, map);\n",
201+
" \n",
202+
" fprintf(1, '%s\\t-->\\t%s\\n', input_output{i, 1}, filename);\n",
203+
"\n",
204+
"end"
205+
]
206+
}
207+
],
208+
"metadata": {
209+
"kernelspec": {
210+
"display_name": "Octave",
211+
"language": "octave",
212+
"name": "octave"
213+
},
214+
"language_info": {
215+
"file_extension": ".m",
216+
"help_links": [
217+
{
218+
"text": "GNU Octave",
219+
"url": "https://www.gnu.org/software/octave/support.html"
220+
},
221+
{
222+
"text": "Octave Kernel",
223+
"url": "https://github.com/Calysto/octave_kernel"
224+
},
225+
{
226+
"text": "MetaKernel Magics",
227+
"url": "https://metakernel.readthedocs.io/en/latest/source/README.html"
228+
}
229+
],
230+
"mimetype": "text/x-octave",
231+
"name": "octave",
232+
"version": "4.2.2"
233+
}
234+
},
235+
"nbformat": 4,
236+
"nbformat_minor": 5
237+
}

miss_hit.cfg

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,16 @@ project_root
44
line_length: 100
55

66
regex_function_name: "[a-z]+(_[a-z0-9]+)*"
7-
regex_script_name: "[a-z]+(_[a-z0-9]+)*"
8-
# regex_parameter_name: "[a-z]+(_[a-z0-9]+)*"
7+
regex_class_name: "[A-Z]{1}[a-z]+"
8+
regex_script_name: "[a-z]+(_[a-z]+)*"
9+
regex_parameter_name: "[a-z]+(_[a-z0-9]+)*"
910

1011
exclude_dir: "lib"
1112

1213
copyright_entity: "spm_2_bids developers"
1314

1415
# metric for code quality
15-
metric "cnest": limit 6
16+
metric "cnest": limit 5
1617
metric "file_length": limit 500
17-
metric "cyc": limit 25
18+
metric "cyc": limit 15
1819
metric "parameters": limit 5

requirements.txt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
Sphinx
2-
sphinxcontrib-matlabdomain
3-
sphinxcontrib-napoleon
4-
sphinx_rtd_theme
5-
miss_hit==0.9.22
6-
pre-commit
1+
miss_hit==0.9.26
2+
pre-commit
3+
jupyterlab
4+
octave_kernel
5+
jinja2
6+
-r docs/requirements.txt

0 commit comments

Comments
 (0)