@@ -119,72 +119,84 @@ jobs:
119119 - src/dmriprep
120120
121121 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
126127 steps :
127128 - restore_cache :
128129 keys :
129- - data-thp-v1-{{ .Revision }}
130- - data-thp-v1-
130+ - env-v1-{{ .Branch }}-
131+ - env-v1-master-
132+ - env-v1-
131133 - run :
132- name : Get test data from THP002
134+ name : Setup git-annex & DataLad
133135 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 'nipreps@gmail.com'
140+
142141 - run :
143- name : Get FreeSurfer derivatives for THP002
142+ name : Setup TemplateFlow
144143 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+
154149 - 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+
158155 - restore_cache :
159156 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-
173187 - run :
174- name : Get anatomical derivatives for ds001771
188+ name : Install ds000206
175189 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+
184195 - 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+
188200 - run :
189201 name : Store FreeSurfer license file
190202 command : |
@@ -201,13 +213,14 @@ jobs:
201213 - persist_to_workspace :
202214 root : /tmp
203215 paths :
216+ - templateflow
204217 - fslicense
205218 - config/nipype.cfg
206219
207- THP002 :
220+ ds000206 :
208221 machine :
209222 image : circleci/classic:201711-01
210- working_directory : /tmp/THP002
223+ working_directory : /tmp/ds000206
211224 environment :
212225 - FS_LICENSE : /tmp/fslicense/license.txt
213226 steps :
@@ -221,15 +234,19 @@ jobs:
221234 echo "Only docs build"
222235 circleci step halt
223236 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"
226239 circleci step halt
227240 fi
228241 - attach_workspace :
229242 at : /tmp
230243 - restore_cache :
231244 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-
233250 - restore_cache :
234251 keys :
235252 - build-v1-{{ .Branch }}-{{ epoch }}
@@ -249,67 +266,69 @@ jobs:
249266 docker tag localhost:5000/dmriprep nipreps/dmriprep:latest
250267 - restore_cache :
251268 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-
256273 - run :
257- name : Run anatomical workflow on THP002
274+ name : Run anatomical workflow on ds000206
258275 no_output_timeout : 2h
259276 command : |
260- mkdir -p /tmp/THP002 /work /tmp/THP002 /derivatives
277+ mkdir -p /tmp/ds000206 /work /tmp/ds000206 /derivatives
261278 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 \
264281 -v /tmp/fslicense/license.txt:/tmp/fslicense/license.txt:ro \
265282 -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 \
267285 --user $(id -u):$(id -g) \
268286 nipreps/dmriprep:latest /data /out participant -vv \
269287 --fs-subjects-dir /data/derivatives/freesurfer-6.0.1 --sloppy --anat-only \
270288 --notrack --skip-bids-validation -w /work --omp-nthreads 2 --nprocs 2
271289 - run :
272290 name : Clean-up after anatomical run
273291 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
276294 when : on_success
277295 - save_cache :
278- key : THP002 -anat-v01-{{ .Branch }}-{{ .Revision }}-{{ epoch }}
296+ key : ds000206 -anat-v01-{{ .Branch }}-{{ .Revision }}-{{ epoch }}
279297 paths :
280- - /tmp/THP002 /work
298+ - /tmp/ds000206 /work
281299 - run :
282- name : Run full diffusion workflow on THP002
300+ name : Run full diffusion workflow on ds000206
283301 no_output_timeout : 2h
284302 command : |
285- mkdir -p /tmp/THP002 /work /tmp/THP002 /derivatives
303+ mkdir -p /tmp/ds000206 /work /tmp/ds000206 /derivatives
286304 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 \
289307 -v /tmp/fslicense/license.txt:/tmp/fslicense/license.txt:ro \
290308 -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 \
292311 --user $(id -u):$(id -g) \
293312 nipreps/dmriprep:latest /data /out participant -vv \
294313 --fs-subjects-dir /data/derivatives/freesurfer-6.0.1 --sloppy \
295314 --notrack --skip-bids-validation -w /work --omp-nthreads 2 --nprocs 2
296315 - store_artifacts :
297- path : /tmp/THP002 /derivatives/dmriprep
316+ path : /tmp/ds000206 /derivatives/dmriprep
298317 - run :
299318 name : Clean working directory
300319 when : on_success
301320 command : |
302- sudo rm -rf /tmp/THP002 /work
321+ sudo rm -rf /tmp/ds000206 /work
303322 - run :
304323 name : Clean working directory
305324 when : on_fail
306325 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" \) \
308327 -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" \) \
310329 -exec sh -c 'rm -f {}; touch {}' \;
311330 - store_artifacts :
312- path : /tmp/THP002 /work
331+ path : /tmp/ds000206 /work
313332
314333 ds001771 :
315334 machine :
@@ -336,7 +355,11 @@ jobs:
336355 at : /tmp
337356 - restore_cache :
338357 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-
340363 - restore_cache :
341364 keys :
342365 - build-v1-{{ .Branch }}-{{ epoch }}
@@ -363,6 +386,7 @@ jobs:
363386 -v /tmp/data/ds001771:/data \
364387 -v /tmp/ds001771/derivatives:/out \
365388 -v /tmp/fslicense/license.txt:/tmp/fslicense/license.txt:ro \
389+ -v /tmp/templateflow:/home/dmriprep/.cache/templateflow \
366390 -v /tmp/config/nipype.cfg:/home/dmriprep/.nipype/nipype.cfg \
367391 -v /tmp/ds001771/work:/work \
368392 --user $(id -u):$(id -g) \
@@ -671,7 +695,7 @@ workflows:
671695 tags :
672696 only : /.*/
673697
674- - THP002 :
698+ - ds000206 :
675699 requires :
676700 - build
677701 - get_data
@@ -745,7 +769,7 @@ workflows:
745769 branches :
746770 ignore :
747771 - /tests?\/.*/
748- - /THP002 \/.*/
772+ - /ds000206 \/.*/
749773 - /ds001771\/.*/
750774 tags :
751775 only : /.*/
0 commit comments