Skip to content

Commit 25ecfc0

Browse files
authored
Merge branch 'master' into miscellaneous_emc_helper_functions_images
2 parents abf5186 + f5c9a4f commit 25ecfc0

33 files changed

+1909
-1048
lines changed

.circleci/config.yml

Lines changed: 145 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,8 @@ jobs:
126126
steps:
127127
- restore_cache:
128128
keys:
129-
- data-v0-{{ .Revision }}
130-
- data-v0-
129+
- data-v1-{{ .Revision }}
130+
- data-v1-
131131
- run:
132132
name: Get test data from THP002
133133
command: |
@@ -142,19 +142,20 @@ jobs:
142142
- run:
143143
name: Get FreeSurfer derivatives for THP002
144144
command: |
145-
if [[ ! -d /tmp/THP002/derivatives/freesurfer ]]; then
146-
mkdir -p /tmp/THP002/derivatives
145+
if [[ ! -d /tmp/data/THP002/derivatives/freesurfer ]]; then
146+
mkdir -p /tmp/data/THP002/derivatives
147147
wget --retry-connrefused --waitretry=5 --read-timeout=20 --timeout=15 -t 0 -q \
148148
-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/THP002/derivatives
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
150151
else
151152
echo "FreeSurfer derivatives of THP002 were cached"
152153
fi
153154
- run:
154-
name: Get test data from DS001771_sub-36
155+
name: Get test data (ds001771)
155156
command: |
156157
mkdir -p /tmp/data
157-
if [[ ! -d /tmp/data/DS001771 ]]; then
158+
if [[ ! -d /tmp/data/ds001771 ]]; then
158159
wget --retry-connrefused --waitretry=5 --read-timeout=20 --timeout=15 -t 0 -q \
159160
-O ds001771_sub-36.tar.gz "https://files.osf.io/v1/resources/8k95s/providers/osfstorage/5e1f89d36822bd01f0febbdc"
160161
tar xvzf ds001771_sub-36.tar.gz -C /tmp/data/
@@ -164,13 +165,14 @@ jobs:
164165
- run:
165166
name: Get FreeSurfer derivatives for ds001771_sub-36
166167
command: |
167-
if [[ ! -d /tmp/DS001771/derivatives/freesurfer ]]; then
168-
mkdir -p /tmp/DS001771/derivatives
168+
if [[ ! -d /tmp/data/ds001771/derivatives/freesurfer-6.0.1 ]]; then
169+
mkdir -p /tmp/data/ds001771/derivatives
169170
wget --retry-connrefused --waitretry=5 --read-timeout=20 --timeout=15 -t 0 -q \
170171
-O ds001771_sub-36_derivatives_freesurfer.tar.gz "https://files.osf.io/v1/resources/8k95s/providers/osfstorage/5e21e74fedceab00ad82e047"
171-
tar xvzf ds001771_sub-36_derivatives_freesurfer.tar.gz -C /tmp/DS001771/derivatives
172+
tar xvzf ds001771_sub-36_derivatives_freesurfer.tar.gz -C /tmp/data/ds001771/derivatives
173+
mv /tmp/data/ds001771/derivatives/freesurfer /tmp/data/ds001771/derivatives/freesurfer-6.0.1
172174
else
173-
echo "FreeSurfer derivatives of DS001771 were cached"
175+
echo "FreeSurfer derivatives of ds001771 were cached"
174176
fi
175177
- run:
176178
name: Store FreeSurfer license file
@@ -191,10 +193,9 @@ jobs:
191193
- fslicense
192194
- config/nipype.cfg
193195
- save_cache:
194-
key: data-v0-{{ .Revision }}-{{ epoch }}
196+
key: data-v1-{{ .Revision }}-{{ epoch }}
195197
paths:
196198
- /tmp/data
197-
- /tmp/THP002/derivatives/freesurfer
198199

199200
THP002:
200201
machine:
@@ -221,7 +222,7 @@ jobs:
221222
at: /tmp
222223
- restore_cache:
223224
keys:
224-
- data-v0-{{ .Revision }}
225+
- data-v1-{{ .Revision }}
225226
- restore_cache:
226227
keys:
227228
- build-v1-{{ .Branch }}-{{ epoch }}
@@ -241,27 +242,24 @@ jobs:
241242
docker tag localhost:5000/dmriprep nipreps/dmriprep:latest
242243
- restore_cache:
243244
keys:
244-
- THP002-anat-v00-{{ .Branch }}-{{ .Revision }}
245-
- THP002-anat-v00-{{ .Branch }}
246-
- THP002-anat-v00-master
247-
- THP002-anat-v00-
245+
- THP002-anat-v01-{{ .Branch }}-{{ .Revision }}
246+
- THP002-anat-v01-{{ .Branch }}
247+
- THP002-anat-v01-master
248+
- THP002-anat-v01-
248249
- run:
249250
name: Run anatomical workflow on THP002
250251
no_output_timeout: 2h
251252
command: |
252253
mkdir -p /tmp/THP002/work /tmp/THP002/derivatives
253-
sudo setfacl -d -m group:$(id -gn):rwx /tmp/THP002/derivatives && \
254-
sudo setfacl -m group:$(id -gn):rwx /tmp/THP002/derivatives
255-
sudo setfacl -d -m group:$(id -gn):rwx /tmp/THP002/work && \
256-
sudo setfacl -m group:$(id -gn):rwx /tmp/THP002/work
257254
docker run -e FS_LICENSE=$FS_LICENSE --rm \
258255
-v /tmp/data/THP002:/data \
259256
-v /tmp/THP002/derivatives:/out \
260257
-v /tmp/fslicense/license.txt:/tmp/fslicense/license.txt:ro \
261258
-v /tmp/config/nipype.cfg:/home/dmriprep/.nipype/nipype.cfg \
262259
-v /tmp/THP002/work:/work \
263260
--user $(id -u):$(id -g) \
264-
nipreps/dmriprep:latest /data /out participant -vv --sloppy --anat-only \
261+
nipreps/dmriprep:latest /data /out participant -vv \
262+
--fs-subjects-dir /data/derivatives/freesurfer-6.0.1 --sloppy --anat-only \
265263
--notrack --skip-bids-validation -w /work --omp-nthreads 2 --nprocs 2
266264
- run:
267265
name: Clean-up after anatomical run
@@ -270,26 +268,23 @@ jobs:
270268
rm -rf /tmp/THP002/work/reportlets
271269
when: on_success
272270
- save_cache:
273-
key: THP002-anat-v00-{{ .Branch }}-{{ .Revision }}-{{ epoch }}
271+
key: THP002-anat-v01-{{ .Branch }}-{{ .Revision }}-{{ epoch }}
274272
paths:
275273
- /tmp/THP002/work
276274
- run:
277275
name: Run full diffusion workflow on THP002
278276
no_output_timeout: 2h
279277
command: |
280278
mkdir -p /tmp/THP002/work /tmp/THP002/derivatives
281-
sudo setfacl -d -m group:$(id -gn):rwx /tmp/THP002/derivatives && \
282-
sudo setfacl -m group:$(id -gn):rwx /tmp/THP002/derivatives
283-
sudo setfacl -d -m group:$(id -gn):rwx /tmp/THP002/work && \
284-
sudo setfacl -m group:$(id -gn):rwx /tmp/THP002/work
285279
docker run -e FS_LICENSE=$FS_LICENSE --rm \
286280
-v /tmp/data/THP002:/data \
287281
-v /tmp/THP002/derivatives:/out \
288282
-v /tmp/fslicense/license.txt:/tmp/fslicense/license.txt:ro \
289283
-v /tmp/config/nipype.cfg:/home/dmriprep/.nipype/nipype.cfg \
290284
-v /tmp/THP002/work:/work \
291285
--user $(id -u):$(id -g) \
292-
nipreps/dmriprep:latest /data /out participant -vv --sloppy \
286+
nipreps/dmriprep:latest /data /out participant -vv \
287+
--fs-subjects-dir /data/derivatives/freesurfer-6.0.1 --sloppy \
293288
--notrack --skip-bids-validation -w /work --omp-nthreads 2 --nprocs 2
294289
- store_artifacts:
295290
path: /tmp/THP002/derivatives/dmriprep
@@ -302,14 +297,119 @@ jobs:
302297
name: Clean working directory
303298
when: on_fail
304299
command: |
305-
sudo chown $(id -un):$(id -gn) -R /tmp/THP002
306300
find /tmp/THP002/work \( -name "*.nii.gz" -or -name "*.nii" -or -name "*.gii" -or -name "*.h5" \) \
307301
-exec sh -c 'rm -f {}; touch {}' \;
308302
find /tmp/THP002/work_partial \( -name "*.nii.gz" -or -name "*.nii" -or -name "*.gii" -or -name "*.h5" \) \
309303
-exec sh -c 'rm -f {}; touch {}' \;
310304
- store_artifacts:
311305
path: /tmp/THP002/work
312306

307+
ds001771:
308+
machine:
309+
image: circleci/classic:201711-01
310+
working_directory: /tmp/ds001771
311+
environment:
312+
- FS_LICENSE: /tmp/fslicense/license.txt
313+
steps:
314+
- checkout:
315+
path: /home/circleci/src/dmriprep
316+
- run:
317+
name: Check whether build should be skipped
318+
command: |
319+
cd /home/circleci/src/dmriprep
320+
if [[ "$( git log --format='format:%s' -n 1 $CIRCLE_SHA1 | grep -i -E '^docs?(\(\w+\))?:' )" != "" ]]; then
321+
echo "Only docs build"
322+
circleci step halt
323+
fi
324+
if [[ "$( git log --format=oneline -n 1 $CIRCLE_SHA1 | grep -i -E '\[skip[ _]?ds001771\]' )" != "" ]]; then
325+
echo "Skipping ds001771 build"
326+
circleci step halt
327+
fi
328+
- attach_workspace:
329+
at: /tmp
330+
- restore_cache:
331+
keys:
332+
- data-v1-{{ .Revision }}
333+
- restore_cache:
334+
keys:
335+
- build-v1-{{ .Branch }}-{{ epoch }}
336+
- build-v1-{{ .Branch }}-
337+
- build-v1-
338+
paths:
339+
- /tmp/docker
340+
- run:
341+
name: Set-up a Docker registry
342+
command: |
343+
docker run -d -p 5000:5000 --restart=always --name=registry \
344+
-v /tmp/docker:/var/lib/registry registry:2
345+
- run:
346+
name: Pull images from local registry
347+
command: |
348+
docker pull localhost:5000/dmriprep
349+
docker tag localhost:5000/dmriprep nipreps/dmriprep:latest
350+
- restore_cache:
351+
keys:
352+
- ds001771-anat-v00-{{ .Branch }}-{{ .Revision }}
353+
- ds001771-anat-v00-{{ .Branch }}
354+
- ds001771-anat-v00-master
355+
- ds001771-anat-v00-
356+
- run:
357+
name: Run anatomical workflow on ds001771
358+
no_output_timeout: 2h
359+
command: |
360+
mkdir -p /tmp/ds001771/{work,derivatives}
361+
docker run -e FS_LICENSE=$FS_LICENSE --rm \
362+
-v /tmp/data/ds001771:/data \
363+
-v /tmp/ds001771/derivatives:/out \
364+
-v /tmp/fslicense/license.txt:/tmp/fslicense/license.txt:ro \
365+
-v /tmp/config/nipype.cfg:/home/dmriprep/.nipype/nipype.cfg \
366+
-v /tmp/ds001771/work:/work \
367+
--user $(id -u):$(id -g) \
368+
nipreps/dmriprep:latest /data /out participant -vv \
369+
--fs-subjects-dir /data/derivatives/freesurfer-6.0.1 --sloppy --anat-only \
370+
--notrack --skip-bids-validation -w /work --omp-nthreads 2 --nprocs 2
371+
- run:
372+
name: Clean-up after anatomical run
373+
command: |
374+
rm -rf /tmp/ds001771/work/dmriprep_wf/fsdir*
375+
rm -rf /tmp/ds001771/work/reportlets
376+
when: on_success
377+
- save_cache:
378+
key: ds001771-anat-v00-{{ .Branch }}-{{ .Revision }}-{{ epoch }}
379+
paths:
380+
- /tmp/ds001771/work
381+
- run:
382+
name: Run full diffusion workflow on ds001771
383+
no_output_timeout: 2h
384+
command: |
385+
docker run -e FS_LICENSE=$FS_LICENSE --rm \
386+
-v /tmp/data/ds001771:/data \
387+
-v /tmp/ds001771/derivatives:/out \
388+
-v /tmp/fslicense/license.txt:/tmp/fslicense/license.txt:ro \
389+
-v /tmp/config/nipype.cfg:/home/dmriprep/.nipype/nipype.cfg \
390+
-v /tmp/ds001771/work:/work \
391+
--user $(id -u):$(id -g) \
392+
nipreps/dmriprep:latest /data /out participant -vv \
393+
--fs-subjects-dir /data/derivatives/freesurfer-6.0.1 --sloppy \
394+
--notrack --skip-bids-validation -w /work --omp-nthreads 2 --nprocs 2
395+
- store_artifacts:
396+
path: /tmp/ds001771/derivatives/dmriprep
397+
- run:
398+
name: Clean working directory
399+
when: on_success
400+
command: |
401+
sudo rm -rf /tmp/ds001771/work
402+
- run:
403+
name: Clean working directory
404+
when: on_fail
405+
command: |
406+
sudo chown $(id -un):$(id -gn) -R /tmp/ds001771
407+
find /tmp/ds001771/work \( -name "*.nii.gz" -or -name "*.nii" -or -name "*.gii" -or -name "*.h5" \) \
408+
-exec sh -c 'rm -f {}; touch {}' \;
409+
find /tmp/ds001771/work_partial \( -name "*.nii.gz" -or -name "*.nii" -or -name "*.gii" -or -name "*.h5" \) \
410+
-exec sh -c 'rm -f {}; touch {}' \;
411+
- store_artifacts:
412+
path: /tmp/ds001771/work
313413

314414
deploy_docker_patches:
315415
machine:
@@ -451,7 +551,7 @@ jobs:
451551
which dmriprep | grep sdist\\/bin
452552
INSTALLED_VERSION=$(dmriprep --version)
453553
INSTALLED_VERSION=${INSTALLED_VERSION%$'\r'}
454-
INSTALLED_VERSION=${INSTALLED_VERSION#*"dmriprep v"}
554+
INSTALLED_VERSION=${INSTALLED_VERSION#*"dMRIPrep v"}
455555
echo "VERSION: \"$THISVERSION\""
456556
echo "INSTALLED: \"$INSTALLED_VERSION\""
457557
test "$INSTALLED_VERSION" = "$THISVERSION"
@@ -470,7 +570,7 @@ jobs:
470570
which dmriprep | grep wheel\\/bin
471571
INSTALLED_VERSION=$(dmriprep --version)
472572
INSTALLED_VERSION=${INSTALLED_VERSION%$'\r'}
473-
INSTALLED_VERSION=${INSTALLED_VERSION#*"dmriprep v"}
573+
INSTALLED_VERSION=${INSTALLED_VERSION#*"dMRIPrep v"}
474574
echo "VERSION: \"$THISVERSION\""
475575
echo "INSTALLED: \"$INSTALLED_VERSION\""
476576
test "$INSTALLED_VERSION" = "$THISVERSION"
@@ -604,6 +704,18 @@ workflows:
604704
- /docker\/.*/
605705
tags:
606706
only: /.*/
707+
- ds001771:
708+
requires:
709+
- build
710+
- get_data
711+
filters:
712+
branches:
713+
ignore:
714+
- /docs?\/.*/
715+
- /tests?\/.*/
716+
- /docker\/.*/
717+
tags:
718+
only: /.*/
607719
- test_deploy_pypi:
608720
filters:
609721
branches:
@@ -655,6 +767,7 @@ workflows:
655767
ignore:
656768
- /tests?\/.*/
657769
- /THP002\/.*/
770+
- /ds001771\/.*/
658771
tags:
659772
only: /.*/
660773

.dockerignore

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ dmriprep.egg-info/**/*
1212
dmriprep.egg-info
1313
.eggs/**/*
1414
.eggs
15+
.pytest_cache/**/*
16+
.pytest_cache
17+
.ipynb_checkpoints/**/*
18+
.ipynb_checkpoints
19+
1520

1621
# housekeeping tools
1722
.maintenance/**/*
@@ -27,6 +32,8 @@ src/
2732
.gitignore
2833
.git/**/*
2934
.git
35+
.github/**/*
36+
.github
3037
.mailmap
3138

3239
# other
@@ -41,7 +48,6 @@ out/
4148
.codecov.yml
4249
.coveragerc
4350
.pep8speaks.yml
44-
.readthedocs.yml
4551
.travis.yml
4652
.zenodo.json
4753

MANIFEST.in

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,3 @@ include LICENSE
55
# versioneer
66
include versioneer.py
77
include dmriprep/_version.py
8-
9-
# data
10-
include dmriprep/config/reports-spec.yml

dmriprep/__init__.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,14 @@
11
"""Top-level package for dmriprep."""
2-
import warnings as _warnings
32
from .__about__ import (
43
__version__,
54
__copyright__,
65
__credits__,
76
__packagename__,
87
)
98

10-
119
__all__ = [
1210
'__version__',
1311
'__copyright__',
1412
'__credits__',
1513
'__packagename__',
1614
]
17-
18-
# cmp is not used by dmriprep, so ignore nipype-generated warnings
19-
_warnings.filterwarnings('ignore', r'cmp not installed')
20-
_warnings.filterwarnings('ignore', r'This has not been fully tested. Please report any failures.')
21-
_warnings.filterwarnings('ignore', r"can't resolve package from __spec__ or __package__")
22-
_warnings.simplefilter('ignore', DeprecationWarning)
23-
_warnings.simplefilter('ignore', ResourceWarning)

0 commit comments

Comments
 (0)