@@ -119,72 +119,84 @@ jobs:
119
119
- src/dmriprep
120
120
121
121
get_data :
122
- machine :
123
- # Ubuntu 14.04 with Docker 17.10.0-ce
124
- image : circleci/classic:201711-01
125
- working_directory : /home/circleci/data
122
+ docker :
123
+ - image : continuumio/miniconda3:4.9.2-alpine
124
+ working_directory : /tmp/data
125
+ environment :
126
+ - TEMPLATEFLOW_HOME : /tmp/templateflow
126
127
steps :
127
128
- restore_cache :
128
129
keys :
129
- - data-thp-v1-{{ .Revision }}
130
- - data-thp-v1-
130
+ - env-v1-{{ .Branch }}-
131
+ - env-v1-master-
132
+ - env-v1-
131
133
- run :
132
- name : Get test data from THP002
134
+ name : Setup git-annex & DataLad
133
135
command : |
134
- mkdir -p /tmp/data
135
- if [[ ! -d /tmp/data/THP002 ]]; then
136
- wget --retry-connrefused --waitretry=5 --read-timeout=20 --timeout=15 -t 0 -q \
137
- -O THP002_data.tar.gz "https://files.osf.io/v1/resources/8k95s/providers/osfstorage/5d7d89fc9defac0019179fdf"
138
- tar xvzf THP002_data.tar.gz -C /tmp/data/
139
- else
140
- echo "Dataset THP002 was cached"
141
- fi
136
+ conda install -y -c anaconda -c conda-forge git-annex datalad
137
+ python -m pip install --no-cache-dir -U datalad-osf
138
+ git config --global user.name 'NiPreps Bot'
139
+ git config --global user.email '[email protected] '
140
+
142
141
- run :
143
- name : Get FreeSurfer derivatives for THP002
142
+ name : Setup TemplateFlow
144
143
command : |
145
- if [[ ! -d /tmp/data/THP002/derivatives/freesurfer-6.0.1 ]]; then
146
- mkdir -p /tmp/data/THP002/derivatives
147
- wget --retry-connrefused --waitretry=5 --read-timeout=20 --timeout=15 -t 0 -q \
148
- -O THP002_derivatives_freesurfer.tar.gz "https://files.osf.io/v1/resources/8k95s/providers/osfstorage/5d7d87ce7483ec0017530cc9"
149
- tar xvzf THP002_derivatives_freesurfer.tar.gz -C /tmp/data/THP002/derivatives
150
- mv /tmp/data/THP002/derivatives/freesurfer /tmp/data/THP002/derivatives/freesurfer-6.0.1
151
- else
152
- echo "FreeSurfer derivatives of THP002 were cached"
153
- fi
144
+ python -m pip install --no-cache-dir -U templateflow
145
+ python -c "from templateflow import api as tfapi; \
146
+ tfapi.get('OASIS30ANTs', resolution=1, desc=None, suffix='T1w'); \
147
+ tfapi.get('OASIS30ANTs', resolution=1, desc='BrainCerebellumExtraction', suffix='mask'); "
148
+
154
149
- save_cache :
155
- key : data-thp-v1-{{ .Revision }}-{{ epoch }}
156
- paths :
157
- - /tmp/data/THP002
150
+ key : env-v1-{{ .Branch }}-{{ .BuildNum }}
151
+ paths :
152
+ - /tmp/templateflow
153
+ - /opt/conda
154
+
158
155
- restore_cache :
159
156
keys :
160
- - data-ds001771-v1-{{ .Revision }}
161
- - data-ds001771-v1-
162
- - run :
163
- name : Get test data (ds001771)
164
- command : |
165
- mkdir -p /tmp/data
166
- if [[ ! -d /tmp/data/ds001771 ]]; then
167
- wget --retry-connrefused --waitretry=5 --read-timeout=20 --timeout=15 -t 0 -q \
168
- -O ds001771_sub-36.tar.gz "https://files.osf.io/v1/resources/8k95s/providers/osfstorage/5e1f89d36822bd01f0febbdc"
169
- tar xvzf ds001771_sub-36.tar.gz -C /tmp/data/
170
- else
171
- echo "Dataset ds001771_sub-36 was cached"
172
- fi
157
+ - data-ds001771-v3-{{ .Branch }}-{{ .Revision }}-
158
+ - data-ds001771-v3-{{ .Branch }}-
159
+ - data-ds001771-v3-master-
160
+ - data-ds001771-v3-
161
+ - run :
162
+ name : Install ds001771
163
+ command : |
164
+ datalad install -r https://github.com/nipreps-data/ds001771.git
165
+ datalad update -r --merge -d ds001771/
166
+ datalad get -J 2 -r -d ds001771/ ds001771/sub-36/anat/*
167
+ datalad get -J 2 -r -d ds001771/ ds001771/sub-36/dwi/*
168
+ datalad get -J 2 -r -d ds001771/ ds001771/sub-36/fmap/*
169
+ datalad get -J 2 -r -d ds001771/derivatives/ ds001771/derivatives/smriprep-0.6.0/*
170
+ datalad get -J 2 -r -d ds001771/derivatives/ ds001771/derivatives/freesurfer-6.0.1/sub-36/mri/*
171
+ datalad get -J 2 -r -d ds001771/derivatives/ ds001771/derivatives/freesurfer-6.0.1/sub-36/surf/lh.white \
172
+ ds001771/derivatives/freesurfer-6.0.1/sub-36/surf/rh.white \
173
+ ds001771/derivatives/freesurfer-6.0.1/sub-36/surf/lh.thickness \
174
+ ds001771/derivatives/freesurfer-6.0.1/sub-36/surf/rh.thickness
175
+
176
+ - save_cache :
177
+ key : data-ds001771-v3-{{ .Branch }}-{{ .Revision }}-{{ epoch }}
178
+ paths :
179
+ - /tmp/data/ds001771
180
+
181
+ - restore_cache :
182
+ keys :
183
+ - data-ds000206-v1-{{ .Branch }}-{{ .Revision }}-
184
+ - data-ds000206-v1-{{ .Branch }}-
185
+ - data-ds000206-v1-master-
186
+ - data-ds000206-v1-
173
187
- run :
174
- name : Get anatomical derivatives for ds001771
188
+ name : Install ds000206
175
189
command : |
176
- if [[ ! -d /tmp/data/ds001771/derivatives ]]; then
177
- mkdir -p /tmp/data/ds001771/derivatives
178
- wget --retry-connrefused --waitretry=5 --read-timeout=20 --timeout=15 -t 0 -q \
179
- -O ds001771-derivs.tar.gz "https://files.osf.io/v1/resources/8k95s/providers/osfstorage/5eb251fba2199500215d1dc3"
180
- tar xvzf ds001771-derivs.tar.gz -C /tmp/data/ds001771/
181
- else
182
- echo "Anatomical derivatives of ds001771 were cached"
183
- fi
190
+ datalad install -r https://github.com/nipreps-data/ds000206.git
191
+ datalad update -r --merge -d ds000206/
192
+ datalad get -J 2 -r -d ds000206/ ds000206/sub-05/*
193
+ datalad get -J 2 -r -d ds000206/derivatives/ ds000206/derivatives/freesurfer-6.0.1/sub-05/*
194
+
184
195
- save_cache :
185
- key : data-ds001771-v1-{{ .Revision }}-{{ epoch }}
186
- paths :
187
- - /tmp/data/ds001771
196
+ key : data-ds000206-v1-{{ .Branch }}-{{ .Revision }}-{{ epoch }}
197
+ paths :
198
+ - /tmp/data/ds000206
199
+
188
200
- run :
189
201
name : Store FreeSurfer license file
190
202
command : |
@@ -201,13 +213,14 @@ jobs:
201
213
- persist_to_workspace :
202
214
root : /tmp
203
215
paths :
216
+ - templateflow
204
217
- fslicense
205
218
- config/nipype.cfg
206
219
207
- THP002 :
220
+ ds000206 :
208
221
machine :
209
222
image : circleci/classic:201711-01
210
- working_directory : /tmp/THP002
223
+ working_directory : /tmp/ds000206
211
224
environment :
212
225
- FS_LICENSE : /tmp/fslicense/license.txt
213
226
steps :
@@ -221,15 +234,19 @@ jobs:
221
234
echo "Only docs build"
222
235
circleci step halt
223
236
fi
224
- if [[ "$( git log --format=oneline -n 1 $CIRCLE_SHA1 | grep -i -E '\[skip[ _]?THP002 \]' )" != "" ]]; then
225
- echo "Skipping THP002 build"
237
+ if [[ "$( git log --format=oneline -n 1 $CIRCLE_SHA1 | grep -i -E '\[skip[ _]?ds000206 \]' )" != "" ]]; then
238
+ echo "Skipping ds000206 build"
226
239
circleci step halt
227
240
fi
228
241
- attach_workspace :
229
242
at : /tmp
230
243
- restore_cache :
231
244
keys :
232
- - data-thp-v1-{{ .Revision }}
245
+ - data-ds000206-v1-{{ .Branch }}-{{ .Revision }}-{{ epoch }}
246
+ - data-ds000206-v1-{{ .Branch }}-{{ .Revision }}-
247
+ - data-ds000206-v1-{{ .Branch }}-
248
+ - data-ds000206-v1-master-
249
+ - data-ds000206-v1-
233
250
- restore_cache :
234
251
keys :
235
252
- build-v1-{{ .Branch }}-{{ epoch }}
@@ -249,67 +266,69 @@ jobs:
249
266
docker tag localhost:5000/dmriprep nipreps/dmriprep:latest
250
267
- restore_cache :
251
268
keys :
252
- - THP002 -anat-v01-{{ .Branch }}-{{ .Revision }}
253
- - THP002 -anat-v01-{{ .Branch }}
254
- - THP002 -anat-v01-master
255
- - THP002 -anat-v01-
269
+ - ds000206 -anat-v01-{{ .Branch }}-{{ .Revision }}
270
+ - ds000206 -anat-v01-{{ .Branch }}
271
+ - ds000206 -anat-v01-master
272
+ - ds000206 -anat-v01-
256
273
- run :
257
- name : Run anatomical workflow on THP002
274
+ name : Run anatomical workflow on ds000206
258
275
no_output_timeout : 2h
259
276
command : |
260
- mkdir -p /tmp/THP002 /work /tmp/THP002 /derivatives
277
+ mkdir -p /tmp/ds000206 /work /tmp/ds000206 /derivatives
261
278
docker run -e FS_LICENSE=$FS_LICENSE --rm \
262
- -v /tmp/data/THP002 :/data \
263
- -v /tmp/THP002 /derivatives:/out \
279
+ -v /tmp/data/ds000206 :/data \
280
+ -v /tmp/ds000206 /derivatives:/out \
264
281
-v /tmp/fslicense/license.txt:/tmp/fslicense/license.txt:ro \
265
282
-v /tmp/config/nipype.cfg:/home/dmriprep/.nipype/nipype.cfg \
266
- -v /tmp/THP002/work:/work \
283
+ -v /tmp/templateflow:/home/dmriprep/.cache/templateflow \
284
+ -v /tmp/ds000206/work:/work \
267
285
--user $(id -u):$(id -g) \
268
286
nipreps/dmriprep:latest /data /out participant -vv \
269
287
--fs-subjects-dir /data/derivatives/freesurfer-6.0.1 --sloppy --anat-only \
270
288
--notrack --skip-bids-validation -w /work --omp-nthreads 2 --nprocs 2
271
289
- run :
272
290
name : Clean-up after anatomical run
273
291
command : |
274
- rm -rf /tmp/THP002 /work/dmriprep_wf/fsdir*
275
- rm -rf /tmp/THP002 /work/reportlets
292
+ rm -rf /tmp/ds000206 /work/dmriprep_wf/fsdir*
293
+ rm -rf /tmp/ds000206 /work/reportlets
276
294
when : on_success
277
295
- save_cache :
278
- key : THP002 -anat-v01-{{ .Branch }}-{{ .Revision }}-{{ epoch }}
296
+ key : ds000206 -anat-v01-{{ .Branch }}-{{ .Revision }}-{{ epoch }}
279
297
paths :
280
- - /tmp/THP002 /work
298
+ - /tmp/ds000206 /work
281
299
- run :
282
- name : Run full diffusion workflow on THP002
300
+ name : Run full diffusion workflow on ds000206
283
301
no_output_timeout : 2h
284
302
command : |
285
- mkdir -p /tmp/THP002 /work /tmp/THP002 /derivatives
303
+ mkdir -p /tmp/ds000206 /work /tmp/ds000206 /derivatives
286
304
docker run -e FS_LICENSE=$FS_LICENSE --rm \
287
- -v /tmp/data/THP002 :/data \
288
- -v /tmp/THP002 /derivatives:/out \
305
+ -v /tmp/data/ds000206 :/data \
306
+ -v /tmp/ds000206 /derivatives:/out \
289
307
-v /tmp/fslicense/license.txt:/tmp/fslicense/license.txt:ro \
290
308
-v /tmp/config/nipype.cfg:/home/dmriprep/.nipype/nipype.cfg \
291
- -v /tmp/THP002/work:/work \
309
+ -v /tmp/templateflow:/home/dmriprep/.cache/templateflow \
310
+ -v /tmp/ds000206/work:/work \
292
311
--user $(id -u):$(id -g) \
293
312
nipreps/dmriprep:latest /data /out participant -vv \
294
313
--fs-subjects-dir /data/derivatives/freesurfer-6.0.1 --sloppy \
295
314
--notrack --skip-bids-validation -w /work --omp-nthreads 2 --nprocs 2
296
315
- store_artifacts :
297
- path : /tmp/THP002 /derivatives/dmriprep
316
+ path : /tmp/ds000206 /derivatives/dmriprep
298
317
- run :
299
318
name : Clean working directory
300
319
when : on_success
301
320
command : |
302
- sudo rm -rf /tmp/THP002 /work
321
+ sudo rm -rf /tmp/ds000206 /work
303
322
- run :
304
323
name : Clean working directory
305
324
when : on_fail
306
325
command : |
307
- find /tmp/THP002 /work \( -name "*.nii.gz" -or -name "*.nii" -or -name "*.gii" -or -name "*.h5" \) \
326
+ find /tmp/ds000206 /work \( -name "*.nii.gz" -or -name "*.nii" -or -name "*.gii" -or -name "*.h5" \) \
308
327
-exec sh -c 'rm -f {}; touch {}' \;
309
- find /tmp/THP002 /work_partial \( -name "*.nii.gz" -or -name "*.nii" -or -name "*.gii" -or -name "*.h5" \) \
328
+ find /tmp/ds000206 /work_partial \( -name "*.nii.gz" -or -name "*.nii" -or -name "*.gii" -or -name "*.h5" \) \
310
329
-exec sh -c 'rm -f {}; touch {}' \;
311
330
- store_artifacts :
312
- path : /tmp/THP002 /work
331
+ path : /tmp/ds000206 /work
313
332
314
333
ds001771 :
315
334
machine :
@@ -336,7 +355,11 @@ jobs:
336
355
at : /tmp
337
356
- restore_cache :
338
357
keys :
339
- - data-ds001771-v1-{{ .Revision }}
358
+ - data-ds001771-v3-{{ .Branch }}-{{ .Revision }}-{{ epoch }}
359
+ - data-ds001771-v3-{{ .Branch }}-{{ .Revision }}-
360
+ - data-ds001771-v3-{{ .Branch }}-
361
+ - data-ds001771-v3-master-
362
+ - data-ds001771-v3-
340
363
- restore_cache :
341
364
keys :
342
365
- build-v1-{{ .Branch }}-{{ epoch }}
@@ -363,6 +386,7 @@ jobs:
363
386
-v /tmp/data/ds001771:/data \
364
387
-v /tmp/ds001771/derivatives:/out \
365
388
-v /tmp/fslicense/license.txt:/tmp/fslicense/license.txt:ro \
389
+ -v /tmp/templateflow:/home/dmriprep/.cache/templateflow \
366
390
-v /tmp/config/nipype.cfg:/home/dmriprep/.nipype/nipype.cfg \
367
391
-v /tmp/ds001771/work:/work \
368
392
--user $(id -u):$(id -g) \
@@ -671,7 +695,7 @@ workflows:
671
695
tags :
672
696
only : /.*/
673
697
674
- - THP002 :
698
+ - ds000206 :
675
699
requires :
676
700
- build
677
701
- get_data
@@ -745,7 +769,7 @@ workflows:
745
769
branches :
746
770
ignore :
747
771
- /tests?\/.*/
748
- - /THP002 \/.*/
772
+ - /ds000206 \/.*/
749
773
- /ds001771\/.*/
750
774
tags :
751
775
only : /.*/
0 commit comments