Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ENH: Use TemplateFlow and niworkflows-0.8.x #782

Merged
merged 50 commits into from Apr 5, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
ac3dec9
enh(dependencies): update dependencies
oesteban Apr 2, 2019
76faced
enh(Dockerfile): make Dockerfile closer to that of fMRIPrep. Close #775.
oesteban Apr 2, 2019
97b275a
fix(workflows): update workflows to operate with templateflow and a r…
oesteban Apr 2, 2019
cae6d38
Merge remote-tracking branch 'upstream/master' into enh/update-depend…
oesteban Apr 2, 2019
f836e99
enh(webapi): bump MRIQC WebAPI version
oesteban Apr 2, 2019
11bf2b7
fix(webapi): ffi was missing and docker compose install failed
oesteban Apr 2, 2019
e63feeb
enh(webapi): set WebAPI first
oesteban Apr 2, 2019
f4c1055
fix(webapi): add missing packages impeding cffi installation
oesteban Apr 2, 2019
af25fbf
fix(webapi): add missing gcc impeding cffi installation
oesteban Apr 2, 2019
e982f9a
fix(webapi): add missing packages impeding cffi installation
oesteban Apr 2, 2019
c7ca7ec
fix(flake8): remove unused dependencies
oesteban Apr 2, 2019
3eff52c
fix(circle): change paths for docs and test builds
oesteban Apr 2, 2019
caf7a50
fix(T1w): bet -A requires fsl-templates
oesteban Apr 2, 2019
3b52af4
sty(python3): remove ``__futures__``, stylistic changes
oesteban Apr 2, 2019
7f8171a
fix(tests): update BOLD MD5 sums
oesteban Apr 2, 2019
b2be09b
fix(Dockerfile): revise duplicities, roll AFNI-17 back
oesteban Apr 2, 2019
1b4d62c
fix(circleci): cache work directory
oesteban Apr 2, 2019
8babfd0
fix(dependencies): roll back installing extras from nipype
oesteban Apr 2, 2019
0bc8bff
enh(bids): use ``ReadSidecarJSON`` from niworkflows
oesteban Apr 2, 2019
85f4f7d
fix(deps): add missing dependency for containers
oesteban Apr 2, 2019
2062738
fix(docs): minor updates, minor fixes, relax build errors
oesteban Apr 2, 2019
1c12497
ref(nibabel): replace all ``get_affine`` and ``get_header``, which ha…
oesteban Apr 2, 2019
3f6e9f3
fix(templateflow): query for label instead of desc
oesteban Apr 3, 2019
f01e253
tst(md5): update md5 checksums
oesteban Apr 3, 2019
dfab457
fix(misc): delayed imports, stylistic changes
oesteban Apr 3, 2019
bb57edb
sty(warnings): replace deprecated warn() with warning()
oesteban Apr 3, 2019
e60e35a
fix(circleci): update md5 summary file of T1w
oesteban Apr 3, 2019
3055ce2
fix(circle): fix path of sourcecode in the container
oesteban Apr 3, 2019
3c141a9
fix(bold-upload): MRIQC WebAPI requires run_id to be a string
oesteban Apr 3, 2019
4ae3ccd
pin(templateflow-0.1.7): make sure TemplateFlow has the correct head …
oesteban Apr 3, 2019
b4130a0
sty(interfaces): a boolean array is better than creating an explicit …
oesteban Apr 3, 2019
d1d9b90
enh(anatomicalwf): improve resampling of head mask
oesteban Apr 3, 2019
797f72d
fix(circle): run docker as user
oesteban Apr 3, 2019
b5bde29
fix(Dockerfile): install consistent templateflow, stylistic improvements
oesteban Apr 3, 2019
7b7683b
fix(tests): update T1w MD5 checksums
oesteban Apr 3, 2019
1a34bed
sty(interfaces): remove unused import
oesteban Apr 4, 2019
6bf54de
enh(ICA): increase memory expectation for MELODIC
oesteban Apr 4, 2019
1f695c9
tst(iqms): update reference values for T1w
oesteban Apr 4, 2019
8b37d51
Merge remote-tracking branch 'upstream/master' into enh/update-depend…
oesteban Apr 4, 2019
f191246
enh(data): delete unnecessary templates - use TemplateFlow
oesteban Apr 4, 2019
fa6dd69
Merge remote-tracking branch 'upstream/master' into enh/update-depend…
oesteban Apr 4, 2019
6d65c63
fix(run): disable Nipype config ``raise_insufficient``
oesteban Apr 4, 2019
a640230
fix(EPI2MNI): investigating the huge increase in runtime
oesteban Apr 4, 2019
023681f
enh(circleci): reduce Nipype polling interval
oesteban Apr 4, 2019
0c57f44
fix(circleci): update functional MD5 checksums of intermediate results
oesteban Apr 4, 2019
eed43b0
pin(niworkflows): test changes in poldracklab/niworkflows#330
oesteban Apr 4, 2019
629c748
rel(0.15.0): Update CHANGES
oesteban Apr 4, 2019
7e9ad67
pin(niworkflows): test latest commit of niworkflows fixing a problem …
oesteban Apr 4, 2019
f0e1824
fix(reports): do not compress MELODIC reportlet, as it hides panels i…
oesteban Apr 5, 2019
9272ca6
pin(niworkflows): set a stable release in the process of rolling out …
oesteban Apr 5, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
69 changes: 40 additions & 29 deletions .circleci/config.yml
Expand Up @@ -4,7 +4,7 @@ jobs:
build:
environment:
- TZ: "/usr/share/zoneinfo/America/Los_Angeles"
- MRIQC_API_TAG: 1.0.5
- MRIQC_API_TAG: 1.0.6

docker:
- image: docker:18.01.0-ce-git
Expand Down Expand Up @@ -133,8 +133,8 @@ jobs:
name: Create Nipype config files
command: |
mkdir -p /tmp/t1w /tmp/bold
printf "[execution]\nstop_on_first_crash = true\nremove_unnecessary_outputs = false\n" > /tmp/t1w/nipype.cfg
echo "poll_sleep_duration = 0.2" >> /tmp/t1w/nipype.cfg
printf "[execution]\nstop_on_first_crash = true\n" > /tmp/t1w/nipype.cfg
echo "poll_sleep_duration = 0.01" >> /tmp/t1w/nipype.cfg
echo "hash_method = content" >> /tmp/t1w/nipype.cfg
cp /tmp/t1w/nipype.cfg /tmp/bold/nipype.cfg
- persist_to_workspace:
Expand Down Expand Up @@ -187,9 +187,8 @@ jobs:
no_output_timeout: 2h
command: |
docker run -ti --rm=false \
-v $PWD:/scratch -w /usr/local/src/mriqc \
--entrypoint="py.test" \
poldracklab/mriqc:latest mriqc/ \
-v $PWD:/scratch --entrypoint="py.test" -w /src/mriqc \
poldracklab/mriqc:latest mriqc \
--junitxml=/scratch/tests.xml \
--doctest-modules --ignore=docs --ignore=src --ignore=mriqc/bin \
--ignore=mriqc/classifier/sklearn --ignore=mriqc/interfaces/transitional.py
Expand Down Expand Up @@ -219,10 +218,10 @@ jobs:
name: Build MRIQC documentation
no_output_timeout: 2h
command: |
docker run -ti --rm=false -v /home/circleci/out/docs:/scratch/docs \
-w /usr/local/src/mriqc/docs \
docker run -u $( id -u ) -e PYTHONPATH=/src/mriqc -ti --rm=false \
-v /home/circleci/out/docs:/scratch/docs \
--entrypoint=sphinx-build poldracklab/mriqc:latest \
-T -E -W -D language=en -b html source/ /scratch/docs 2>&1 \
-T -D language=en -b html /src/mriqc/docs/source/ /scratch/docs 2>&1 \
| tee $PWD/builddocs.log
cat $PWD/builddocs.log
grep -qv "ERROR" $PWD/builddocs.log
Expand Down Expand Up @@ -261,29 +260,36 @@ jobs:
docker-compose -f /tmp/src/mriqcwebapi/dockereve-master/docker-compose.yml --verbose up -d
background: true

- restore_cache:
keys:
- t1w-v2-{{ epoch }}
- t1w-v2-
- run:
name: Run participant-level on T1w images
no_output_timeout: 2h
command: |
mkdir -p /tmp/t1w/work /tmp/t1w/derivatives
sudo setfacl -d -m group:$(id -gn):rwx /tmp/t1w/derivatives
sudo setfacl -m group:$(id -gn):rwx /tmp/t1w/derivatives
sudo setfacl -d -m group:$(id -gn):rwx /tmp/t1w/work
sudo setfacl -m group:$(id -gn):rwx /tmp/t1w/work
# Run MRIQC
docker run --rm=false -ti -v /tmp/data/${TEST_DATA_NAME}:/data:ro \
-v $PWD:/scratch -w /scratch \
docker run -u $( id -u ) --rm=false -ti \
-v /tmp/data/${TEST_DATA_NAME}:/data:ro \
-v /tmp/t1w:/scratch -w /scratch \
poldracklab/mriqc:latest \
/data derivatives/ participant \
-vv --verbose-reports --profile -m T1w --dsname circletests \
--n_procs 2 --ants-nthreads 1 --ants-float \
--webapi-url http://$( hostname -I | awk '{print $1}' )/api/v1 --upload-strict
- save_cache:
key: t1w-v2-{{ epoch }}
paths:
- /tmp/t1w/work

- run:
name: Run group-level on T1w images
no_output_timeout: 2h
command: |
docker run --rm=false -ti -v /tmp/data/${TEST_DATA_NAME}:/data:ro \
-v $PWD:/scratch -w /scratch \
docker run -u $( id -u ) --rm=false -ti \
-v /tmp/data/${TEST_DATA_NAME}:/data:ro \
-v /tmp/t1w:/scratch -w /scratch \
poldracklab/mriqc:latest \
/data derivatives/ group \
-m T1w -vv
Expand All @@ -303,7 +309,7 @@ jobs:
name: Checking changes on MD5 sums of intermediate files of MRIQC
command: |
mkdir -p /tmp/t1w/test
export HASHCMD="docker run --rm=false -i -v $PWD:/scratch -w /scratch \
export HASHCMD="docker run -u $( id -u ) --rm=false -i -v $PWD:/scratch -w /scratch \
--entrypoint=/usr/local/miniconda/bin/nib-hash \
poldracklab/mriqc:latest"
find /tmp/t1w/work -name "*.nii.gz" -type f | sed s+/tmp/t1w/++ | sort | xargs -n1 $HASHCMD >> /tmp/t1w/test/nii_outputs.txt
Expand All @@ -324,7 +330,7 @@ jobs:
docker run --rm=false -ti -v $PWD:/scratch -w /scratch \
--entrypoint="dfcheck" poldracklab/mriqc:latest \
-i /scratch/derivatives/group_T1w.tsv \
-r /usr/local/src/mriqc/mriqc/data/testdata/group_T1w.tsv
-r /src/mriqc/mriqc/data/testdata/group_T1w.tsv

- run:
name: WebAPI - Check records
Expand All @@ -340,7 +346,7 @@ jobs:
command: |
docker run --rm=false -ti -v $PWD:/scratch -w /scratch \
--entrypoint=mriqc_clf poldracklab/mriqc:latest \
--train --test -P /usr/local/miniconda/lib/python3.6/site-packages/mriqc/data/mclf_run-20170724-191452_mod-rfc_ver-0.9.7-rc8_class-2_cv-loso_data-all_settings.yml -v
--train --test -P /usr/local/miniconda/lib/python3.7/site-packages/mriqc/data/mclf_run-20170724-191452_mod-rfc_ver-0.9.7-rc8_class-2_cv-loso_data-all_settings.yml -v
# Run the classifier on the test data
docker run --rm=false -ti -v $PWD:/scratch -w /scratch \
--entrypoint=mriqc_clf poldracklab/mriqc:latest \
Expand Down Expand Up @@ -380,30 +386,35 @@ jobs:
docker-compose -f /tmp/src/mriqcwebapi/dockereve-master/docker-compose.yml --verbose up -d
background: true

- restore_cache:
keys:
- bold-v1-{{ epoch }}
- bold-v1-

- run:
name: Run participant-level on BOLD images
no_output_timeout: 2h
command: |
mkdir -p /tmp/bold/work /tmp/bold/derivatives
sudo setfacl -d -m group:$(id -gn):rwx /tmp/bold/derivatives
sudo setfacl -m group:$(id -gn):rwx /tmp/bold/derivatives
sudo setfacl -d -m group:$(id -gn):rwx /tmp/bold/work
sudo setfacl -m group:$(id -gn):rwx /tmp/bold/work
# Run MRIQC
docker run --rm=false -ti -v /tmp/data/${TEST_DATA_NAME}:/data:ro \
docker run -u $( id -u ) --rm=false -ti -v /tmp/data/${TEST_DATA_NAME}:/data:ro \
-v $PWD:/scratch -w /scratch \
poldracklab/mriqc:latest \
/data derivatives/ participant \
-vv --verbose-reports --profile -m bold --dsname circletests \
--n_procs 2 --ants-nthreads 1 --ants-float \
--testing --ica \
--webapi-url http://$( hostname -I | awk '{print $1}' )/api/v1 --upload-strict
- save_cache:
key: bold-v1-{{ epoch }}
paths:
- /tmp/bold/work

- run:
name: Run group-level on BOLD images
no_output_timeout: 2h
command: |
docker run --rm=false -ti -v /tmp/data/${TEST_DATA_NAME}:/data:ro \
docker run -u $( id -u ) --rm=false -ti -v /tmp/data/${TEST_DATA_NAME}:/data:ro \
-v $PWD:/scratch -w /scratch \
poldracklab/mriqc:latest \
/data derivatives/ group \
Expand All @@ -424,7 +435,7 @@ jobs:
name: Checking changes on MD5 sums of intermediate files of MRIQC
command: |
mkdir -p /tmp/bold/test
export HASHCMD="docker run --rm=false -i -v $PWD:/scratch -w /scratch \
export HASHCMD="docker run -u $( id -u ) --rm=false -i -v $PWD:/scratch -w /scratch \
--entrypoint=/usr/local/miniconda/bin/nib-hash \
poldracklab/mriqc:latest"
find /tmp/bold/work -name "*.nii.gz" -type f | sed s+/tmp/bold/++ | sort | xargs -n1 $HASHCMD >> /tmp/bold/test/nii_outputs.txt
Expand All @@ -442,10 +453,10 @@ jobs:
- run:
name: Checking changes on IQMs
command: |
docker run --rm=false -ti -v $PWD:/scratch -w /scratch \
docker run -u $( id -u ) --rm=false -ti -v $PWD:/scratch -w /scratch \
--entrypoint="dfcheck" poldracklab/mriqc:latest \
-i /scratch/derivatives/group_bold.tsv \
-r /usr/local/src/mriqc/mriqc/data/testdata/group_bold.tsv
-r /src/mriqc/mriqc/data/testdata/group_bold.tsv

- run:
name: WebAPI - Check records
Expand Down