Skip to content

Commit 82c954f

Browse files
authored
[FIX] properly identify run level contrasts (#1273)
* add build docker workflow * switch docker * fix contrast name regex for run level * update regex * update doc for naming of run and subject level contrasts * get results compare sessions * update doc * rm comments * fix test
1 parent 784d10e commit 82c954f

26 files changed

+561
-119
lines changed

.github/workflows/docker.yml

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
---
2+
name: docker
3+
4+
on:
5+
push:
6+
branches: [main]
7+
tags: ['*']
8+
pull_request:
9+
branches: ['*']
10+
release:
11+
types: [published]
12+
13+
concurrency:
14+
group: ${{ github.workflow }}-${{ github.ref }}
15+
cancel-in-progress: true
16+
17+
permissions:
18+
contents: read
19+
20+
env:
21+
USER_NAME: cpplab
22+
REPO_NAME: bidspm
23+
# DATA: /home/runner/work/giga_connectome/giga_connectome/giga_connectome/data/test_data
24+
IMAGE: /home/runner/work/bidspm/docker
25+
IS_TAGGED: ${{ github.ref_type == 'tag' }}
26+
IS_MAIN: ${{ github.ref == 'refs/heads/main' }}
27+
28+
jobs:
29+
docker-build:
30+
runs-on: ubuntu-latest
31+
steps:
32+
- uses: actions/checkout@v4
33+
with:
34+
submodules: recursive
35+
fetch-depth: 0
36+
37+
- name: Build the Docker image
38+
run: |
39+
docker build . --file Dockerfile --tag ${{env.USER_NAME}}/${{env.REPO_NAME}}
40+
mkdir -p ${{ env.IMAGE }}
41+
docker save "${{env.USER_NAME}}/${{env.REPO_NAME}}" > "${{ env.IMAGE }}/image.tar"
42+
docker images
43+
44+
- name: Upload docker artifacts
45+
uses: actions/upload-artifact@v4
46+
with:
47+
name: docker
48+
path: ${{ env.IMAGE }}
49+
50+
docker-run:
51+
runs-on: ubuntu-latest
52+
needs: [docker-build]
53+
steps:
54+
- name: Restore docker image
55+
uses: actions/download-artifact@v4
56+
with:
57+
name: docker
58+
path: ${{ env.IMAGE }}
59+
60+
- name: Test the Docker image
61+
run: |
62+
docker load -i ${{ env.IMAGE }}/image.tar
63+
docker run --rm \
64+
${{env.USER_NAME}}/${{env.REPO_NAME}} \
65+
--help
66+
docker run --rm \
67+
${{env.USER_NAME}}/${{env.REPO_NAME}} \
68+
--version
69+
70+
docker-push:
71+
runs-on: ubuntu-latest
72+
needs: [docker-run]
73+
steps:
74+
- name: Log in to Docker Hub
75+
uses: docker/[email protected]
76+
with:
77+
username: ${{ secrets.DOCKERHUB_USERNAME }}
78+
password: ${{ secrets.DOCKERHUB_TOKEN }}
79+
80+
- name: Restore docker image
81+
uses: actions/download-artifact@v4
82+
with:
83+
name: docker
84+
path: ${{ env.IMAGE }}
85+
86+
- name: Load image
87+
run: docker load -i ${{ env.IMAGE }}/image.tar
88+
89+
- name: Push unstable to dockerhub on tags or on main
90+
if: ${{ env.IS_MAIN == 'true' || env.IS_TAGGED == 'true' }}
91+
run: |
92+
echo "Pushing unstable versions to DockerHub"
93+
unstable="${{env.USER_NAME}}/${{env.REPO_NAME}}:unstable"
94+
docker tag "${{env.USER_NAME}}/${{env.REPO_NAME}}" "${unstable}"
95+
docker push "${unstable}"
96+
97+
- name: Push stable release to dockerhub on tags only
98+
if: ${{ env.IS_TAGGED == 'true' }}
99+
run: |
100+
echo "Pushing stable and latest versions to DockerHub for latest and ${{ github.ref_name }}"
101+
102+
unstable="${{env.USER_NAME}}/${{env.REPO_NAME}}:unstable"
103+
latest="${{env.USER_NAME}}/${{env.REPO_NAME}}:latest"
104+
docker tag "${unstable}" "${latest}"
105+
docker push "${latest}"
106+
107+
tagged_release="${{env.USER_NAME}}/${{env.REPO_NAME}}:${{ github.ref_name }}"
108+
docker tag "${unstable}" "${tagged_release}"
109+
docker push "${tagged_release}"

.github/workflows/system_tests_bms.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@
99

1010
cd(fullfile(root_dir, 'demos', 'bayes'));
1111

12-
run ds000114_run;
12+
run ds000114_bayes_run;

bidspm.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,7 @@ function update()
377377
function value = lowLevelActions()
378378
value = {'init'; ...
379379
'uninit'; ...
380-
'dev'
380+
'dev'; ...
381381
'version'; ...
382382
'run_tests'; ...
383383
'update'; ...
@@ -395,7 +395,7 @@ function update()
395395
'stats'; ...
396396
'contrasts'; ...
397397
'results'; ...
398-
'specify_only', ...
398+
'specify_only'; ...
399399
'bms'; ...
400400
'bms-posterior'; ...
401401
'bms-bms'};

demos/openneuro/Makefile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ data_ds000001:
1818
mkdir -p inputs
1919
cd inputs && datalad install ///openneuro/ds000001
2020
cd inputs && datalad install ///openneuro-derivatives/ds000001-fmriprep
21-
cd inputs/ds000001 && datalad get sub-0[1-2] -J 3
22-
cd inputs/ds000001-fmriprep && datalad get sub-0[1-2]/func/*tsv -J 12
23-
cd inputs/ds000001-fmriprep && datalad get sub-0[1-2]/func/*json -J 12
24-
cd inputs/ds000001-fmriprep && datalad get sub-0[1-2]/anat/*MNI*desc-preproc*.nii.gz -J 12
25-
cd inputs/ds000001-fmriprep && datalad get sub-0[1-2]/func/*MNI*desc-preproc*.nii.gz -J 12
26-
cd inputs/ds000001-fmriprep && datalad get sub-0[1-2]/func/*MNI*desc-*bold.nii.gz -J 12
21+
cd inputs/ds000001 && datalad get sub-0[1-5] -J 3
22+
cd inputs/ds000001-fmriprep && datalad get sub-0[1-5]/func/*tsv -J 12
23+
cd inputs/ds000001-fmriprep && datalad get sub-0[1-5]/func/*json -J 12
24+
cd inputs/ds000001-fmriprep && datalad get sub-0[1-5]/anat/*MNI*desc-preproc*.nii.gz -J 12
25+
cd inputs/ds000001-fmriprep && datalad get sub-0[1-5]/func/*MNI*desc-preproc*.nii.gz -J 12
26+
cd inputs/ds000001-fmriprep && datalad get sub-0[1-3]/func/*MNI*desc-*bold.nii.gz -J 12
2727

2828
data_ds000114:
2929
mkdir -p inputs

demos/openneuro/ds000001_aroma_run.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
fmriprep_dir = fullfile(root_dir, 'inputs', 'ds000001-fmriprep');
2222
output_dir = fullfile(root_dir, 'outputs', 'ds000001', 'derivatives');
2323

24-
participant_label = {'01', '02', '03', '04', '05'};
24+
participant_label = {'01', '02', '03'};
2525
task = {'balloonanalogrisktask'};
2626
space = {'MNI152NLin6Asym'};
2727

demos/openneuro/ds000001_smooth_run.m

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
% Runs:
22
% - smoothing of fmriprep data
33
% - stats at the suject level
4-
% - stats at the group level
54
%
65

76
% (C) Copyright 2020 bidspm developers
@@ -20,7 +19,7 @@
2019
fmriprep_dir = fullfile(root_dir, 'inputs', 'ds000001-fmriprep');
2120
output_dir = fullfile(root_dir, 'outputs', 'ds000001', 'derivatives');
2221

23-
participant_label = {'01', '02', '03', '04', '05'};
22+
participant_label = {'01', '02', '03'};
2423
task = {'balloonanalogrisktask'};
2524
space = {'MNI152NLin2009cAsym'};
2625

demos/openneuro/models/model-balloonanalogrisktaskDefault_smdl.json

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,19 @@
7575
"X": [
7676
1
7777
],
78-
"Type": "glm"
78+
"Type": "glm",
79+
"Software": {
80+
"bidspm": {
81+
"Results": [
82+
{
83+
"name": [
84+
"cash_demean"
85+
],
86+
"nidm": false
87+
}
88+
]
89+
}
90+
}
7991
},
8092
"DummyContrasts": {
8193
"Test": "t"

demos/openneuro/models/model-ds000114_desc-testRetestLineBisection_smdl.json

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,19 @@
115115
"X": [
116116
1
117117
],
118-
"Type": "glm"
118+
"Type": "glm",
119+
"Software": {
120+
"bidspm": {
121+
"Results": [
122+
{
123+
"name": [
124+
"Correct_Task",
125+
"TaskResponded_gt_CtrlResponded"
126+
]
127+
}
128+
]
129+
}
130+
}
119131
},
120132
"DummyContrasts": {
121133
"Test": "t"
@@ -133,7 +145,18 @@
133145
"session",
134146
1
135147
],
136-
"Type": "glm"
148+
"Type": "glm",
149+
"Software": {
150+
"bidspm": {
151+
"Results": [
152+
{
153+
"name": [
154+
"test_gt_retest-TaskResponded_gt_CtrlResponded"
155+
]
156+
}
157+
]
158+
}
159+
}
137160
},
138161
"Contrasts": [
139162
{

docs/source/demos/openneuro.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
- several tasks
3636
- several sessions
3737
- one or several runs depending on task
38+
- fmriprep data
3839

3940
### Scripts
4041

@@ -46,6 +47,10 @@
4647

4748
- [Source dataset](https://openneuro.org/datasets/ds000224)
4849

50+
### Features
51+
52+
- fmriprep data
53+
4954
### Scripts
5055

5156
```{eval-rst}

0 commit comments

Comments
 (0)