junifer 0.0.8.dev329__tar.gz → 0.0.8.dev339__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {junifer-0.0.8.dev329/junifer.egg-info → junifer-0.0.8.dev339}/PKG-INFO +1 -1
- junifer-0.0.8.dev339/docs/changes/newsfragments/530.change +1 -0
- junifer-0.0.8.dev339/docs/changes/newsfragments/530.enh +1 -0
- junifer-0.0.8.dev339/docs/changes/newsfragments/530.enh.1 +1 -0
- junifer-0.0.8.dev339/docs/changes/newsfragments/533.enh +1 -0
- junifer-0.0.8.dev339/docs/changes/newsfragments/533.enh.1 +1 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/using/configuring.rst +6 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/_version.py +3 -3
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/fsl/run_fsl_docker.sh +4 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/maps/_ants_maps_warper.py +7 -5
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/maps/_fsl_maps_warper.py +3 -2
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/masks/_ants_mask_warper.py +7 -5
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/masks/_fsl_mask_warper.py +3 -2
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/parcellations/_ants_parcellation_warper.py +7 -5
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/parcellations/_fsl_parcellation_warper.py +3 -4
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/falff/_afni_falff.py +12 -2
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/falff/_junifer_falff.py +21 -9
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/falff/falff_base.py +23 -3
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/falff/falff_maps.py +1 -1
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/falff/falff_parcels.py +1 -1
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/falff/falff_spheres.py +1 -1
- junifer-0.0.8.dev339/junifer/markers/falff/tests/test_falff_mask.py +99 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/reho/_junifer_reho.py +1 -1
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/reho/reho_base.py +3 -40
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/tests/test_marker_utils.py +40 -1
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/utils.py +44 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/pipeline/tests/test_workdir_manager.py +24 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/pipeline/workdir_manager.py +23 -13
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/_temporal_filter.py +6 -4
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/_temporal_slicer.py +5 -3
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/confounds/fmriprep_confound_remover.py +6 -4
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +7 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/smoothing/_fsl_smoothing.py +2 -1
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/smoothing/_nilearn_smoothing.py +5 -2
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/smoothing/tests/test_smoothing.py +6 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/tests/test_temporal_filter.py +6 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/tests/test_temporal_slicer.py +6 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/warping/_ants_warper.py +49 -34
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/warping/_fsl_warper.py +45 -33
- junifer-0.0.8.dev339/junifer/preprocess/warping/_utils.py +106 -0
- junifer-0.0.8.dev339/junifer/preprocess/warping/tests/test_warping_utils.py +163 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339/junifer.egg-info}/PKG-INFO +1 -1
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer.egg-info/SOURCES.txt +8 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer.egg-info/scm_file_list.json +8 -0
- junifer-0.0.8.dev339/junifer.egg-info/scm_version.json +8 -0
- junifer-0.0.8.dev329/junifer.egg-info/scm_version.json +0 -8
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/.dockerignore +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/.github/dependabot.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/.github/pull_request_template.md +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/.github/workflows/check-stale.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/.github/workflows/ci.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/.github/workflows/docker-publish.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/.github/workflows/docs-preview.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/.github/workflows/docs.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/.github/workflows/lint.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/.github/workflows/publish.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/.gitignore +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/.gitmodules +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/.pre-commit-config.yaml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/.python-version +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/AUTHORS.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/Dockerfile +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/Dockerfile-ci +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/LICENSE.md +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/README.md +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/codecov.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/conda-env.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/Makefile +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/_static/css/custom.css +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/_static/css/version_selector.css +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/_static/js/custom.js +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/_templates/versions.html +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/api/api.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/api/cli.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/api/configs.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/api/data.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/api/datagrabbers.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/api/datareaders.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/api/index.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/api/markers.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/api/nilearn.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/api/onthefly.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/api/pipeline.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/api/preprocessing.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/api/stats.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/api/storage.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/api/testing.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/api/utils.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/builtin.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/contributors.inc +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/.gitignore +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/239.enh +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/364.doc +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/364.enh +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/364.feature +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/474.misc +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/482.bugfix +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/492.bugfix +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/499.enh +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/502.bugfix +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/503.enh +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/504.bugfix +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/504.misc +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/509.enh +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/510.bugfix +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/511.bugfix +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/511.bugfix.1 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/511.change +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/511.enh +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/511.enh.1 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/511.feature +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/511.misc +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/511.misc.1 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/513.doc +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/513.misc +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/514.bugfix +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/514.bugfix.1 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/514.enh +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/515.doc +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/515.enh +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/515.enh.1 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/515.misc +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/515.misc.1 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/516.bugfix +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/516.bugfix.1 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/516.bugfix.2 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/516.change +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/516.change.1 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/516.misc +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/520.bugfix +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/520.bugfix.1 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/520.bugfix.2 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/520.bugfix.3 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/520.bugfix.4 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/520.bugfix.5 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/520.bugfix.6 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/520.change +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/520.doc +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/520.misc +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/520.misc.1 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/520.misc.2 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/520.misc.3 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/520.removal +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/521.bugfix +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/522.bugfix +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/522.enh +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/523.misc +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/524.bugfix +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/524.bugfix.1 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/524.change +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/524.change.1 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/524.change.2 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/524.doc +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/524.enh +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/524.feature +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/524.feature.1 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/525.bugfix +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/525.bugfix.1 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/525.change +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/525.change.1 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/525.change.2 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/525.change.3 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/525.change.4 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/525.doc +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/525.enh +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/525.feature +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/528.bugfix +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/528.change +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/528.doc +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/529.bugfix +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/529.bugfix.1 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/529.bugfix.2 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/529.bugfix.3 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/529.doc +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/529.enh +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/changes/newsfragments/531.enh +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/conf.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/contribution.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/extending/confounds_format.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/extending/coordinates.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/extending/data_dump_asset.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/extending/data_registries.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/extending/data_types.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/extending/datagrabber.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/extending/dependencies.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/extending/extension.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/extending/index.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/extending/logging.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/extending/maps.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/extending/marker.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/extending/masks.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/extending/parcellations.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/extending/plugins.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/extending/preprocessor.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/faq.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/help.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/images/junifer_logo.png +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/index.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/installation.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/internals.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/links.inc +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/maintaining.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/poly.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/poly_files/patches/version_banner.html +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/poly_files/patches/versions.html +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/poly_files/templates/index.html +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/starting.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/understanding/data.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/understanding/datagrabber.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/understanding/datareader.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/understanding/index.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/understanding/marker.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/understanding/pipeline.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/understanding/preprocess.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/understanding/storage.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/using/codeless.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/using/dumping.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/using/index.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/using/masks.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/using/queueing.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/using/running.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/docs/whats_new.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/examples/README.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/examples/norun_hcpfc_pearson.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/examples/norun_ukbvm_gmd.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/examples/run_compute_parcel_mean.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/examples/run_datagrabber_bids_datalad.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/examples/run_ets_rss_marker.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/examples/run_junifer_julearn.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/examples/run_run_gmd_mean.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/examples/yamls/gmd_mean.yaml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/examples/yamls/ukb_gmd_mean.yaml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/ignore_words.txt +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/decorators.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/functions.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/queue_context/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/queue_context/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/queue_context/htcondor_adapter.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/queue_context/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/queue_context/queue_context_adapter.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/afni/3dRSFC +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/afni/3dReHo +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/afni/afni +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/afni/run_afni_docker.sh +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/ants/ResampleImage +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/ants/antsApplyTransforms +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/ants/run_ants_docker.sh +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/freesurfer/mri_binarize +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/freesurfer/mri_mc +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/freesurfer/mri_pretess +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/freesurfer/mris_convert +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/fsl/applywarp +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/fsl/flirt +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/fsl/img2imgcoord +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/fsl/std2imgcoord +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/run_conda.bash +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/run_conda.zsh +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/run_venv.bash +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/res/run_venv.zsh +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/tests/test_decorators.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/api/tests/test_functions.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/cli/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/cli/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/cli/cli.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/cli/parser.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/cli/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/cli/tests/test_cli.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/cli/tests/test_cli_utils.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/cli/utils.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/configs/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/configs/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/configs/juseless/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/configs/juseless/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/configs/juseless/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/configs/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/conftest.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/_dispatch.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/coordinates/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/coordinates/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/coordinates/_ants_coordinates_warper.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/coordinates/_coordinates.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/coordinates/_fsl_coordinates_warper.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/coordinates/tests/test_coordinates_names.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/maps/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/maps/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/maps/_maps.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/maps/tests/test_maps.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/masks/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/masks/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/masks/_masks.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/masks/tests/test_masks.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/parcellations/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/parcellations/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/parcellations/_parcellations.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/pipeline_data_registry_base.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/template_spaces.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/tests/test_data_utils.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/tests/test_dispatch.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/tests/test_template_spaces.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/utils.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/aomic/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/aomic/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/aomic/_types.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/aomic/id1000.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/aomic/piop1.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/aomic/piop2.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/aomic/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/base.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/datalad_base.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/hcp1200/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/hcp1200/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/multiple.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/pattern.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/pattern_datalad.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/pattern_validation_mixin.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/tests/test_base.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/tests/test_multiple.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/tests/test_pattern.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datareader/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datareader/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datareader/default.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datareader/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/datareader/tests/test_default_reader.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/.codecov.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/.codespellignore +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/questions-help-support.md +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/.github/dependabot.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/.github/workflows/build.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/.github/workflows/code-style.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/.github/workflows/doc.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/.github/workflows/publish.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/.github/workflows/pytest.yml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/.gitignore +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/LICENSE +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/README.md +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/brainprint/cli/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/brainprint/cli/help_text.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/brainprint/cli/parser.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/brainprint/cli/utils.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/brainprint/commands/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/brainprint/commands/sys_info.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/brainprint/utils/tests/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/brainprint/utils/tests/test_config.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/doc/Makefile +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/doc/_static/.gitkeep +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/doc/_templates/autosummary/class.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/doc/_templates/autosummary/function.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/doc/_templates/autosummary/module.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/doc/api/index.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/doc/conf.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/doc/index.rst +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/doc/links.inc +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/doc/make.bat +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/doc/references.bib +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/pyproject.toml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/BrainPrint/setup.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/nilearn/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/nilearn/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/nilearn/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/external/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/base.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/brainprint.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/complexity/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/complexity/complexity_base.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/complexity/hurst_exponent.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/complexity/perm_entropy.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/complexity/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/complexity/range_entropy.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/complexity/range_entropy_auc.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/complexity/sample_entropy.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/complexity/tests/test_complexity_registry.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/ets_rss.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/falff/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/falff/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/falff/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/falff/tests/test_falff_maps.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/functional_connectivity/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/functional_connectivity/edge_functional_connectivity_maps.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/functional_connectivity/functional_connectivity_maps.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/functional_connectivity/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_maps.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_maps.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/maps_aggregation.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/parcel_aggregation.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/reho/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/reho/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/reho/_afni_reho.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/reho/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/reho/reho_maps.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/reho/reho_parcels.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/reho/reho_spheres.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/reho/tests/test_junifer_reho.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/reho/tests/test_reho_maps.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/sphere_aggregation.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/temporal_snr/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/temporal_snr/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/temporal_snr/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/temporal_snr/temporal_snr_maps.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/temporal_snr/tests/test_temporal_snr_maps.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/tests/test_brainprint.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/tests/test_ets_rss.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/tests/test_lost_regions.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/tests/test_maps_aggregation.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/tests/test_markers_base.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/onthefly/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/onthefly/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/onthefly/_brainprint.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/onthefly/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/onthefly/read_transform.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/onthefly/tests/test_read_transform.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/pipeline/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/pipeline/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/pipeline/_data_object_dumper.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/pipeline/marker_collection.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/pipeline/pipeline_component_registry.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/pipeline/pipeline_step_mixin.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/pipeline/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/pipeline/tests/test_data_object_dumper.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/pipeline/tests/test_marker_collection.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/pipeline/update_meta_mixin.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/pipeline/utils.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/base.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/confounds/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/confounds/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/confounds/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/smoothing/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/smoothing/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/smoothing/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/smoothing/smoothing.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/warping/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/warping/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/warping/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/warping/space_warper.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/stats.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/storage/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/storage/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/storage/base.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/storage/hdf5.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/storage/pandas_base.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/storage/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/storage/sqlite.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/storage/tests/data/collected_h5io_fork.hdf5 +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/storage/tests/test_hdf5.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/storage/tests/test_pandas_base.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/storage/tests/test_repeated_storage.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/storage/tests/test_sqlite.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/storage/tests/test_storage_base.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/storage/tests/test_utils.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/storage/utils.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/testing/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/testing/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/testing/datagrabbers.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/testing/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/testing/registry.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/testing/tests/test_adhdtesting_datagrabber.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/testing/tests/test_testing_registry.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/testing/tests/test_testing_utils.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/testing/tests/test_uclacnpvbmtesting_datagrabber.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/testing/utils.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/tests/test_main.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/tests/test_stats.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/typing/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/typing/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/typing/_typing.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/typing/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/utils/__init__.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/utils/__init__.pyi +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/utils/_config.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/utils/_yaml.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/utils/fs.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/utils/helpers.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/utils/logging.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/utils/py.typed +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/utils/singleton.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/utils/tests/test_config.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/utils/tests/test_fs.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/utils/tests/test_helpers.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/utils/tests/test_logging.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer.egg-info/dependency_links.txt +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer.egg-info/entry_points.txt +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer.egg-info/requires.txt +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer.egg-info/top_level.txt +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/justfile +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/pyproject.toml +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/scripts/start.sh +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/setup.cfg +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/setup.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/tools/create_aomic1000_example_dataset.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/tools/create_aomicpiop1_example_dataset.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/tools/create_aomicpiop2_example_dataset.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/tools/create_bids_example_dataset.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/tools/create_bids_example_dataset_sessions.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/tools/create_hcp1200_example_dataset.py +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/tox.ini +0 -0
- {junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: junifer
|
|
3
|
-
Version: 0.0.8.
|
|
3
|
+
Version: 0.0.8.dev339
|
|
4
4
|
Summary: JUelich NeuroImaging FEature extractoR
|
|
5
5
|
Author-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Synchon Mandal <s.mandal@fz-juelich.de>
|
|
6
6
|
Maintainer-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Synchon Mandal <s.mandal@fz-juelich.de>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Use single precision in ``antsApplyTransforms`` (``--float 1``), halving its memory and giving float32 instead of float64 data, with differences below 0.002% of the data range by `Fede Raimondo`_
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Warp the volumes of 4D data in chunks of ``preprocessing.warping.chunksize`` volumes (default 100) in :class:`.SpaceWarper`, as the memory used by ANTs and FSL grows with the number of volumes (e.g., about 53 GB to warp 1200 volumes to native space with ANTs) by `Fede Raimondo`_
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Write the intermediate images (e.g., the warped, smoothed or filtered data) uncompressed in the temporary directory of the element, as they are read right away and deleted after the element is processed, so there is no need to spend time compressing and decompressing them, and run the FSL commands with ``FSLOUTPUTTYPE=NIFTI`` to write them uncompressed by `Fede Raimondo`_
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Restrict the ALFF and fALFF computation of :class:`.ALFFParcels`, :class:`.ALFFSpheres` and :class:`.ALFFMaps` to the voxels in their ``masks`` (with ``-mask`` for AFNI's ``3dRSFC``), as for ReHo, reducing the memory and time (e.g., from 14.5 GB to 9.4 GB and from 7 to 1 minutes for 1200 volumes with AFNI), and do not write the bandpassed time series with ``3dRSFC`` (``-no_rs_out``), as only the parameters are used by `Fede Raimondo`_
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Keep the data of :class:`.fMRIPrepConfoundRemover`, :class:`.TemporalFilter`, :class:`.TemporalSlicer` and :class:`.Smoothing` (with nilearn) in the saved file (memory-mapped) instead of in memory, as for the other preprocessors, releasing its memory during the next steps of the pipeline (e.g., 5 GB for 1200 volumes while running AFNI) by `Fede Raimondo`_
|
|
@@ -63,3 +63,9 @@ Available Configurations
|
|
|
63
63
|
- ``preprocessing.dump.granularity``
|
|
64
64
|
- "full" or "final"
|
|
65
65
|
- Dump all pre-processing steps or just the final pre-processed data
|
|
66
|
+
* - ``JUNIFER_PREPROCESSING_WARPING_CHUNKSIZE``
|
|
67
|
+
- ``preprocessing.warping.chunksize``
|
|
68
|
+
- int
|
|
69
|
+
- | Number of volumes of 4D data to warp at once with
|
|
70
|
+
| :class:`.SpaceWarper` (default 100). The memory used by ANTs and FSL
|
|
71
|
+
| grows with the number of volumes, so smaller chunks use less memory
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.0.8.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 0, 8, '
|
|
21
|
+
__version__ = version = '0.0.8.dev339'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 0, 8, 'dev339')
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'gd12ff17f7'
|
|
@@ -34,6 +34,10 @@ echo "Docker args: ${docker_args[*]}" >&2
|
|
|
34
34
|
echo "Corrected args for FSL: ${corrected_args[*]}" >&2
|
|
35
35
|
|
|
36
36
|
cwd=$(pwd)
|
|
37
|
+
# Pass the output type, as FSL writes it instead of the type of the extension
|
|
38
|
+
if [ -n "${FSLOUTPUTTYPE}" ]; then
|
|
39
|
+
docker_args+=("-e FSLOUTPUTTYPE=${FSLOUTPUTTYPE}")
|
|
40
|
+
fi
|
|
37
41
|
cmd="docker run --rm ${docker_args[*]} -v ${cwd}:${cwd} -w ${cwd} brainlife/fsl ${corrected_args[*]}"
|
|
38
42
|
echo "Running command: ${cmd}" >&2
|
|
39
43
|
${cmd}
|
|
@@ -100,16 +100,17 @@ class ANTsMapsWarper:
|
|
|
100
100
|
logger.debug("Using ANTs for maps transformation")
|
|
101
101
|
|
|
102
102
|
# Save existing maps image to a tempfile
|
|
103
|
-
prewarp_maps_path = element_tempdir / "prewarp_maps.nii
|
|
103
|
+
prewarp_maps_path = element_tempdir / "prewarp_maps.nii"
|
|
104
104
|
nib.save(maps_img, prewarp_maps_path)
|
|
105
105
|
|
|
106
106
|
# Create a tempfile for warped output
|
|
107
|
-
warped_maps_path = element_tempdir / "maps_warped.nii
|
|
107
|
+
warped_maps_path = element_tempdir / "maps_warped.nii"
|
|
108
108
|
# Set antsApplyTransforms command
|
|
109
109
|
apply_transforms_cmd = [
|
|
110
110
|
"antsApplyTransforms",
|
|
111
111
|
"-d 3",
|
|
112
112
|
"-e 3",
|
|
113
|
+
"--float 1",
|
|
113
114
|
"-n LanczosWindowedSinc",
|
|
114
115
|
f"-i {prewarp_maps_path.resolve()}",
|
|
115
116
|
# use resampled reference
|
|
@@ -133,20 +134,21 @@ class ANTsMapsWarper:
|
|
|
133
134
|
extra_input=None,
|
|
134
135
|
)
|
|
135
136
|
# Save template to a tempfile
|
|
136
|
-
template_space_img_path = element_tempdir / f"{dst}_T1w.nii
|
|
137
|
+
template_space_img_path = element_tempdir / f"{dst}_T1w.nii"
|
|
137
138
|
nib.save(template_space_img, template_space_img_path)
|
|
138
139
|
|
|
139
140
|
# Save existing maps image to a tempfile
|
|
140
|
-
prewarp_maps_path = element_tempdir / "prewarp_maps.nii
|
|
141
|
+
prewarp_maps_path = element_tempdir / "prewarp_maps.nii"
|
|
141
142
|
nib.save(maps_img, prewarp_maps_path)
|
|
142
143
|
|
|
143
144
|
# Create a tempfile for warped output
|
|
144
|
-
warped_maps_path = element_tempdir / "maps_warped.nii
|
|
145
|
+
warped_maps_path = element_tempdir / "maps_warped.nii"
|
|
145
146
|
# Set antsApplyTransforms command
|
|
146
147
|
apply_transforms_cmd = [
|
|
147
148
|
"antsApplyTransforms",
|
|
148
149
|
"-d 3",
|
|
149
150
|
"-e 3",
|
|
151
|
+
"--float 1",
|
|
150
152
|
"-n LanczosWindowedSinc",
|
|
151
153
|
f"-i {prewarp_maps_path.resolve()}",
|
|
152
154
|
f"-r {template_space_img_path.resolve()}",
|
|
@@ -66,13 +66,14 @@ class FSLMapsWarper:
|
|
|
66
66
|
)
|
|
67
67
|
|
|
68
68
|
# Save existing maps image to a tempfile
|
|
69
|
-
prewarp_maps_path = element_tempdir / "prewarp_maps.nii
|
|
69
|
+
prewarp_maps_path = element_tempdir / "prewarp_maps.nii"
|
|
70
70
|
nib.save(maps_img, prewarp_maps_path)
|
|
71
71
|
|
|
72
72
|
# Create a tempfile for warped output
|
|
73
|
-
warped_maps_path = element_tempdir / "maps_warped.nii
|
|
73
|
+
warped_maps_path = element_tempdir / "maps_warped.nii"
|
|
74
74
|
# Set applywarp command
|
|
75
75
|
applywarp_cmd = [
|
|
76
|
+
"FSLOUTPUTTYPE=NIFTI",
|
|
76
77
|
"applywarp",
|
|
77
78
|
"--interp=spline",
|
|
78
79
|
f"-i {prewarp_maps_path.resolve()}",
|
|
@@ -121,16 +121,17 @@ class ANTsMaskWarper:
|
|
|
121
121
|
logger.debug("Using ANTs for mask transformation")
|
|
122
122
|
|
|
123
123
|
# Save existing mask image to a tempfile
|
|
124
|
-
prewarp_mask_path = element_tempdir / "prewarp_mask.nii
|
|
124
|
+
prewarp_mask_path = element_tempdir / "prewarp_mask.nii"
|
|
125
125
|
nib.save(mask_img, prewarp_mask_path)
|
|
126
126
|
|
|
127
127
|
# Create a tempfile for warped output
|
|
128
|
-
warped_mask_path = element_tempdir / "mask_warped.nii
|
|
128
|
+
warped_mask_path = element_tempdir / "mask_warped.nii"
|
|
129
129
|
# Set antsApplyTransforms command
|
|
130
130
|
apply_transforms_cmd = [
|
|
131
131
|
"antsApplyTransforms",
|
|
132
132
|
"-d 3",
|
|
133
133
|
"-e 3",
|
|
134
|
+
"--float 1",
|
|
134
135
|
"-n 'GenericLabel[NearestNeighbor]'",
|
|
135
136
|
f"-i {prewarp_mask_path.resolve()}",
|
|
136
137
|
# use resampled reference
|
|
@@ -154,20 +155,21 @@ class ANTsMaskWarper:
|
|
|
154
155
|
extra_input=None,
|
|
155
156
|
)
|
|
156
157
|
# Save template to a tempfile
|
|
157
|
-
template_space_img_path = element_tempdir / f"{dst}_T1w.nii
|
|
158
|
+
template_space_img_path = element_tempdir / f"{dst}_T1w.nii"
|
|
158
159
|
nib.save(template_space_img, template_space_img_path)
|
|
159
160
|
|
|
160
161
|
# Save existing mask image to a tempfile
|
|
161
|
-
prewarp_mask_path = element_tempdir / "prewarp_mask.nii
|
|
162
|
+
prewarp_mask_path = element_tempdir / "prewarp_mask.nii"
|
|
162
163
|
nib.save(mask_img, prewarp_mask_path)
|
|
163
164
|
|
|
164
165
|
# Create a tempfile for warped output
|
|
165
|
-
warped_mask_path = element_tempdir / "mask_warped.nii
|
|
166
|
+
warped_mask_path = element_tempdir / "mask_warped.nii"
|
|
166
167
|
# Set antsApplyTransforms command
|
|
167
168
|
apply_transforms_cmd = [
|
|
168
169
|
"antsApplyTransforms",
|
|
169
170
|
"-d 3",
|
|
170
171
|
"-e 3",
|
|
172
|
+
"--float 1",
|
|
171
173
|
f"-n {_get_interpolation_method(mask_img)}",
|
|
172
174
|
f"-i {prewarp_mask_path.resolve()}",
|
|
173
175
|
f"-r {template_space_img_path.resolve()}",
|
|
@@ -87,13 +87,14 @@ class FSLMaskWarper:
|
|
|
87
87
|
)
|
|
88
88
|
|
|
89
89
|
# Save existing mask image to a tempfile
|
|
90
|
-
prewarp_mask_path = element_tempdir / "prewarp_mask.nii
|
|
90
|
+
prewarp_mask_path = element_tempdir / "prewarp_mask.nii"
|
|
91
91
|
nib.save(mask_img, prewarp_mask_path)
|
|
92
92
|
|
|
93
93
|
# Create a tempfile for warped output
|
|
94
|
-
warped_mask_path = element_tempdir / "mask_warped.nii
|
|
94
|
+
warped_mask_path = element_tempdir / "mask_warped.nii"
|
|
95
95
|
# Set applywarp command
|
|
96
96
|
applywarp_cmd = [
|
|
97
|
+
"FSLOUTPUTTYPE=NIFTI",
|
|
97
98
|
"applywarp",
|
|
98
99
|
f"--interp={_get_interpolation_method(mask_img)}",
|
|
99
100
|
f"-i {prewarp_mask_path.resolve()}",
|
|
@@ -101,19 +101,20 @@ class ANTsParcellationWarper:
|
|
|
101
101
|
|
|
102
102
|
# Save existing parcellation image to a tempfile
|
|
103
103
|
prewarp_parcellation_path = (
|
|
104
|
-
element_tempdir / "prewarp_parcellation.nii
|
|
104
|
+
element_tempdir / "prewarp_parcellation.nii"
|
|
105
105
|
)
|
|
106
106
|
nib.save(parcellation_img, prewarp_parcellation_path)
|
|
107
107
|
|
|
108
108
|
# Create a tempfile for warped output
|
|
109
109
|
warped_parcellation_path = (
|
|
110
|
-
element_tempdir / "parcellation_warped.nii
|
|
110
|
+
element_tempdir / "parcellation_warped.nii"
|
|
111
111
|
)
|
|
112
112
|
# Set antsApplyTransforms command
|
|
113
113
|
apply_transforms_cmd = [
|
|
114
114
|
"antsApplyTransforms",
|
|
115
115
|
"-d 3",
|
|
116
116
|
"-e 3",
|
|
117
|
+
"--float 1",
|
|
117
118
|
"-n 'GenericLabel[NearestNeighbor]'",
|
|
118
119
|
f"-i {prewarp_parcellation_path.resolve()}",
|
|
119
120
|
# use resampled reference
|
|
@@ -139,24 +140,25 @@ class ANTsParcellationWarper:
|
|
|
139
140
|
extra_input=None,
|
|
140
141
|
)
|
|
141
142
|
# Save template to a tempfile
|
|
142
|
-
template_space_img_path = element_tempdir / f"{dst}_T1w.nii
|
|
143
|
+
template_space_img_path = element_tempdir / f"{dst}_T1w.nii"
|
|
143
144
|
nib.save(template_space_img, template_space_img_path)
|
|
144
145
|
|
|
145
146
|
# Save existing parcellation image to a tempfile
|
|
146
147
|
prewarp_parcellation_path = (
|
|
147
|
-
element_tempdir / "prewarp_parcellation.nii
|
|
148
|
+
element_tempdir / "prewarp_parcellation.nii"
|
|
148
149
|
)
|
|
149
150
|
nib.save(parcellation_img, prewarp_parcellation_path)
|
|
150
151
|
|
|
151
152
|
# Create a tempfile for warped output
|
|
152
153
|
warped_parcellation_path = (
|
|
153
|
-
element_tempdir / "parcellation_warped.nii
|
|
154
|
+
element_tempdir / "parcellation_warped.nii"
|
|
154
155
|
)
|
|
155
156
|
# Set antsApplyTransforms command
|
|
156
157
|
apply_transforms_cmd = [
|
|
157
158
|
"antsApplyTransforms",
|
|
158
159
|
"-d 3",
|
|
159
160
|
"-e 3",
|
|
161
|
+
"--float 1",
|
|
160
162
|
"-n 'GenericLabel[NearestNeighbor]'",
|
|
161
163
|
f"-i {prewarp_parcellation_path.resolve()}",
|
|
162
164
|
f"-r {template_space_img_path.resolve()}",
|
{junifer-0.0.8.dev329 → junifer-0.0.8.dev339}/junifer/data/parcellations/_fsl_parcellation_warper.py
RENAMED
|
@@ -67,16 +67,15 @@ class FSLParcellationWarper:
|
|
|
67
67
|
|
|
68
68
|
# Save existing parcellation image to a tempfile
|
|
69
69
|
prewarp_parcellation_path = (
|
|
70
|
-
element_tempdir / "prewarp_parcellation.nii
|
|
70
|
+
element_tempdir / "prewarp_parcellation.nii"
|
|
71
71
|
)
|
|
72
72
|
nib.save(parcellation_img, prewarp_parcellation_path)
|
|
73
73
|
|
|
74
74
|
# Create a tempfile for warped output
|
|
75
|
-
warped_parcellation_path =
|
|
76
|
-
element_tempdir / "parcellation_warped.nii.gz"
|
|
77
|
-
)
|
|
75
|
+
warped_parcellation_path = element_tempdir / "parcellation_warped.nii"
|
|
78
76
|
# Set applywarp command
|
|
79
77
|
applywarp_cmd = [
|
|
78
|
+
"FSLOUTPUTTYPE=NIFTI",
|
|
80
79
|
"applywarp",
|
|
81
80
|
"--interp=nn",
|
|
82
81
|
f"-i {prewarp_parcellation_path.resolve()}",
|
|
@@ -57,6 +57,7 @@ class AFNIALFF(metaclass=Singleton):
|
|
|
57
57
|
highpass: float,
|
|
58
58
|
lowpass: float,
|
|
59
59
|
tr: float | None,
|
|
60
|
+
mask_path: Path | None = None,
|
|
60
61
|
) -> tuple["Nifti1Image", "Nifti1Image", Path, Path]:
|
|
61
62
|
"""Compute ALFF + fALFF map.
|
|
62
63
|
|
|
@@ -70,6 +71,10 @@ class AFNIALFF(metaclass=Singleton):
|
|
|
70
71
|
Lowpass cutoff frequency.
|
|
71
72
|
tr : positive float, optional
|
|
72
73
|
The Repetition Time of the BOLD data.
|
|
74
|
+
mask_path : pathlib.Path, optional
|
|
75
|
+
Path to the mask to restrict the computation to. The voxels
|
|
76
|
+
outside the mask are set to 0. If None, all the voxels are used
|
|
77
|
+
(default None).
|
|
73
78
|
|
|
74
79
|
Returns
|
|
75
80
|
-------
|
|
@@ -90,18 +95,23 @@ class AFNIALFF(metaclass=Singleton):
|
|
|
90
95
|
prefix="afni_lff"
|
|
91
96
|
)
|
|
92
97
|
|
|
93
|
-
# Set 3dRSFC command
|
|
98
|
+
# Set 3dRSFC command; only the parameters are needed, not the
|
|
99
|
+
# bandpassed time series (-no_rs_out)
|
|
94
100
|
lff_out_path_prefix = element_tempdir / "output"
|
|
95
101
|
bp_cmd = [
|
|
96
102
|
"3dRSFC",
|
|
97
103
|
f"-prefix {lff_out_path_prefix.resolve()}",
|
|
98
104
|
f"-input {input_path.resolve()}",
|
|
99
105
|
f"-band {highpass} {lowpass}",
|
|
100
|
-
"-no_rsfa -nosat -nodetrend",
|
|
106
|
+
"-no_rsfa -nosat -nodetrend -no_rs_out",
|
|
101
107
|
]
|
|
102
108
|
# Check tr
|
|
103
109
|
if tr is not None:
|
|
104
110
|
bp_cmd.append(f"-dt {tr}")
|
|
111
|
+
# Restrict the computation to the mask, which reduces the memory and
|
|
112
|
+
# time used by 3dRSFC
|
|
113
|
+
if mask_path is not None:
|
|
114
|
+
bp_cmd.append(f"-mask {mask_path.resolve()}")
|
|
105
115
|
# Call 3dRSFC
|
|
106
116
|
run_ext_cmd(name="3dRSFC", cmd=bp_cmd)
|
|
107
117
|
|
|
@@ -50,6 +50,7 @@ class JuniferALFF(metaclass=Singleton):
|
|
|
50
50
|
highpass: float,
|
|
51
51
|
lowpass: float,
|
|
52
52
|
tr: float | None,
|
|
53
|
+
mask_path: Path | None = None,
|
|
53
54
|
) -> tuple["Nifti1Image", "Nifti1Image", Path, Path]:
|
|
54
55
|
"""Compute ALFF + fALFF map.
|
|
55
56
|
|
|
@@ -63,6 +64,10 @@ class JuniferALFF(metaclass=Singleton):
|
|
|
63
64
|
Lowpass cutoff frequency.
|
|
64
65
|
tr : positive float, optional
|
|
65
66
|
The Repetition Time of the BOLD data.
|
|
67
|
+
mask_path : pathlib.Path, optional
|
|
68
|
+
Path to the mask to restrict the computation to. The voxels
|
|
69
|
+
outside the mask are set to 0. If None, all the voxels are used
|
|
70
|
+
(default None).
|
|
66
71
|
|
|
67
72
|
Returns
|
|
68
73
|
-------
|
|
@@ -102,15 +107,22 @@ class JuniferALFF(metaclass=Singleton):
|
|
|
102
107
|
f"nyquist = {fft_freqs[-1]}"
|
|
103
108
|
)
|
|
104
109
|
|
|
105
|
-
# Process voxels in
|
|
110
|
+
# Process voxels (only the ones in the mask, if any) in chunks to
|
|
111
|
+
# bound FFT memory
|
|
106
112
|
flat = niimg_data.reshape(-1, n_timepoints)
|
|
107
|
-
|
|
108
|
-
|
|
113
|
+
if mask_path is not None:
|
|
114
|
+
mask_data = np.squeeze(np.asarray(nib.load(mask_path).dataobj))
|
|
115
|
+
voxels = np.flatnonzero(mask_data.reshape(-1) != 0)
|
|
116
|
+
else:
|
|
117
|
+
voxels = np.arange(flat.shape[0])
|
|
118
|
+
numerator = np.zeros(flat.shape[0])
|
|
119
|
+
denominator = np.zeros(flat.shape[0])
|
|
109
120
|
chunk = 20_000
|
|
110
|
-
for start in range(0,
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
121
|
+
for start in range(0, len(voxels), chunk):
|
|
122
|
+
t_voxels = voxels[start : start + chunk]
|
|
123
|
+
amp = np.abs(sp.fft.rfft(flat[t_voxels], axis=-1))
|
|
124
|
+
denominator[t_voxels] = amp @ weights
|
|
125
|
+
numerator[t_voxels] = amp @ band_weights
|
|
114
126
|
spatial_shape = niimg_data.shape[:-1]
|
|
115
127
|
numerator = numerator.reshape(spatial_shape)
|
|
116
128
|
denominator = denominator.reshape(spatial_shape)
|
|
@@ -137,8 +149,8 @@ class JuniferALFF(metaclass=Singleton):
|
|
|
137
149
|
element_tempdir = WorkDirManager().get_element_tempdir(
|
|
138
150
|
prefix="junifer_lff"
|
|
139
151
|
)
|
|
140
|
-
output_alff_path = element_tempdir / "output_alff.nii
|
|
141
|
-
output_falff_path = element_tempdir / "output_falff.nii
|
|
152
|
+
output_alff_path = element_tempdir / "output_alff.nii"
|
|
153
|
+
output_falff_path = element_tempdir / "output_falff.nii"
|
|
142
154
|
# Save computed data to file
|
|
143
155
|
nib.save(alff_data, output_alff_path)
|
|
144
156
|
nib.save(falff_data, output_falff_path)
|
|
@@ -17,11 +17,13 @@ from typing import (
|
|
|
17
17
|
|
|
18
18
|
from pydantic import BeforeValidator, PositiveFloat
|
|
19
19
|
|
|
20
|
+
from ...data import get_data
|
|
20
21
|
from ...datagrabber import DataType
|
|
21
22
|
from ...storage import StorageType
|
|
22
23
|
from ...typing import ConditionalDependencies, MarkerInOutMappings
|
|
23
24
|
from ...utils import ensure_list_or_none
|
|
24
25
|
from ..base import BaseMarker, logger
|
|
26
|
+
from ..utils import _save_mask
|
|
25
27
|
from ._afni_falff import AFNIALFF
|
|
26
28
|
from ._junifer_falff import JuniferALFF
|
|
27
29
|
|
|
@@ -66,8 +68,10 @@ class ALFFBase(BaseMarker):
|
|
|
66
68
|
The parameters to pass to the aggregation function.
|
|
67
69
|
See :func:`.get_aggfunc_by_name` for options (default None).
|
|
68
70
|
masks : str, dict, list of them or None, optional
|
|
69
|
-
The specification of the masks to apply
|
|
70
|
-
|
|
71
|
+
The specification of the masks to apply. The ALFF and fALFF
|
|
72
|
+
computation is restricted to the voxels in the mask, and the mask is
|
|
73
|
+
also applied to regions before extracting signals. Check
|
|
74
|
+
:ref:`Using Masks <using_masks>` for more details.
|
|
71
75
|
If None, will not apply any mask (default None).
|
|
72
76
|
name : str or None, optional
|
|
73
77
|
The name of the marker.
|
|
@@ -115,6 +119,7 @@ class ALFFBase(BaseMarker):
|
|
|
115
119
|
def _compute(
|
|
116
120
|
self,
|
|
117
121
|
input_data: dict[str, Any],
|
|
122
|
+
extra_input: dict[str, Any] | None = None,
|
|
118
123
|
) -> tuple["Nifti1Image", "Nifti1Image", Path, Path]:
|
|
119
124
|
"""Compute ALFF and fALFF.
|
|
120
125
|
|
|
@@ -123,7 +128,8 @@ class ALFFBase(BaseMarker):
|
|
|
123
128
|
input_data : dict
|
|
124
129
|
The input to the marker.
|
|
125
130
|
extra_input : dict, optional
|
|
126
|
-
The other fields in the pipeline data object
|
|
131
|
+
The other fields in the pipeline data object. Used to compute
|
|
132
|
+
the mask in the space of ``input_data`` (default None).
|
|
127
133
|
|
|
128
134
|
Returns
|
|
129
135
|
-------
|
|
@@ -144,12 +150,26 @@ class ALFFBase(BaseMarker):
|
|
|
144
150
|
estimator = AFNIALFF()
|
|
145
151
|
elif self.using == "junifer":
|
|
146
152
|
estimator = JuniferALFF()
|
|
153
|
+
# Get mask in the space of the input data
|
|
154
|
+
mask_path = None
|
|
155
|
+
if self.masks is not None:
|
|
156
|
+
logger.debug(f"Masking with {self.masks}")
|
|
157
|
+
mask_path = _save_mask(
|
|
158
|
+
get_data(
|
|
159
|
+
kind="mask",
|
|
160
|
+
names=self.masks,
|
|
161
|
+
target_data=input_data,
|
|
162
|
+
extra_input=extra_input,
|
|
163
|
+
),
|
|
164
|
+
prefix="alff_mask",
|
|
165
|
+
)
|
|
147
166
|
# Compute ALFF + fALFF
|
|
148
167
|
alff, falff, alff_path, falff_path = estimator.compute( # type: ignore
|
|
149
168
|
input_path=input_data["path"],
|
|
150
169
|
highpass=self.highpass,
|
|
151
170
|
lowpass=self.lowpass,
|
|
152
171
|
tr=self.tr,
|
|
172
|
+
mask_path=mask_path,
|
|
153
173
|
)
|
|
154
174
|
|
|
155
175
|
# If the input data space is native already, the original path should
|
|
@@ -92,7 +92,7 @@ class ALFFMaps(ALFFBase):
|
|
|
92
92
|
|
|
93
93
|
# Compute ALFF + fALFF
|
|
94
94
|
alff_output, falff_output, alff_output_path, falff_output_path = (
|
|
95
|
-
self._compute(input_data=input)
|
|
95
|
+
self._compute(input_data=input, extra_input=extra_input)
|
|
96
96
|
)
|
|
97
97
|
|
|
98
98
|
# Perform aggregation on ALFF + fALFF
|
|
@@ -104,7 +104,7 @@ class ALFFParcels(ALFFBase):
|
|
|
104
104
|
|
|
105
105
|
# Compute ALFF + fALFF
|
|
106
106
|
alff_output, falff_output, alff_output_path, falff_output_path = (
|
|
107
|
-
self._compute(input_data=input)
|
|
107
|
+
self._compute(input_data=input, extra_input=extra_input)
|
|
108
108
|
)
|
|
109
109
|
|
|
110
110
|
# Perform aggregation on ALFF + fALFF
|
|
@@ -113,7 +113,7 @@ class ALFFSpheres(ALFFBase):
|
|
|
113
113
|
|
|
114
114
|
# Compute ALFF + fALFF
|
|
115
115
|
alff_output, falff_output, alff_output_path, falff_output_path = (
|
|
116
|
-
self._compute(input_data=input)
|
|
116
|
+
self._compute(input_data=input, extra_input=extra_input)
|
|
117
117
|
)
|
|
118
118
|
|
|
119
119
|
# Perform aggregation on ALFF / fALFF
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"""Provide tests for the ALFF and fALFF computation with masks."""
|
|
2
|
+
|
|
3
|
+
# Authors: Federico Raimondo <f.raimondo@fz-juelich.de>
|
|
4
|
+
# License: AGPL
|
|
5
|
+
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
import nibabel as nib
|
|
9
|
+
import numpy as np
|
|
10
|
+
import pytest
|
|
11
|
+
from numpy.testing import assert_allclose, assert_array_equal
|
|
12
|
+
|
|
13
|
+
from junifer.markers.falff._afni_falff import AFNIALFF
|
|
14
|
+
from junifer.markers.falff._junifer_falff import JuniferALFF
|
|
15
|
+
from junifer.pipeline import WorkDirManager
|
|
16
|
+
from junifer.pipeline.utils import _check_afni
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def _save(data: np.ndarray, path: Path, tr: float = 2.0) -> Path:
|
|
20
|
+
"""Save data as NIfTI, with the TR in the header for 4D data."""
|
|
21
|
+
img = nib.Nifti1Image(data, np.eye(4))
|
|
22
|
+
if data.ndim == 4:
|
|
23
|
+
img.header.set_zooms((1.0, 1.0, 1.0, tr))
|
|
24
|
+
nib.save(img, path)
|
|
25
|
+
return path
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def _data(tmp_path: Path) -> tuple[Path, Path, np.ndarray]:
|
|
29
|
+
"""Create BOLD data and a mask of half of the voxels."""
|
|
30
|
+
data = np.random.default_rng(0).normal(size=(6, 6, 6, 100)) + 100
|
|
31
|
+
bold_path = _save(data.astype(np.float32), tmp_path / "bold.nii")
|
|
32
|
+
mask = np.zeros((6, 6, 6), dtype=np.uint8)
|
|
33
|
+
mask[3:] = 1
|
|
34
|
+
mask_path = _save(mask, tmp_path / "mask.nii")
|
|
35
|
+
return bold_path, mask_path, mask.astype(bool)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
@pytest.mark.parametrize(
|
|
39
|
+
"estimator",
|
|
40
|
+
[
|
|
41
|
+
JuniferALFF,
|
|
42
|
+
pytest.param(
|
|
43
|
+
AFNIALFF,
|
|
44
|
+
marks=pytest.mark.skipif(
|
|
45
|
+
_check_afni() is False, reason="requires AFNI to be in PATH"
|
|
46
|
+
),
|
|
47
|
+
),
|
|
48
|
+
],
|
|
49
|
+
)
|
|
50
|
+
def test_ALFF_mask(
|
|
51
|
+
estimator: type[JuniferALFF | AFNIALFF], tmp_path: Path
|
|
52
|
+
) -> None:
|
|
53
|
+
"""Test the ALFF and fALFF computation is restricted to the mask.
|
|
54
|
+
|
|
55
|
+
The values are computed for each voxel, so inside the mask they are the
|
|
56
|
+
same as without mask, and outside the mask they are 0.
|
|
57
|
+
|
|
58
|
+
Parameters
|
|
59
|
+
----------
|
|
60
|
+
estimator : JuniferALFF or AFNIALFF
|
|
61
|
+
The ALFF estimator to test.
|
|
62
|
+
tmp_path : pathlib.Path
|
|
63
|
+
The path to the test directory.
|
|
64
|
+
|
|
65
|
+
"""
|
|
66
|
+
WorkDirManager().workdir = tmp_path
|
|
67
|
+
bold_path, mask_path, mask = _data(tmp_path)
|
|
68
|
+
kwargs = {"highpass": 0.01, "lowpass": 0.1, "tr": 2.0}
|
|
69
|
+
masked = estimator().compute(bold_path, mask_path=mask_path, **kwargs)
|
|
70
|
+
unmasked = estimator().compute(bold_path, **kwargs)
|
|
71
|
+
for i_map in range(2): # ALFF and fALFF
|
|
72
|
+
t_masked = masked[i_map].get_fdata()
|
|
73
|
+
t_unmasked = unmasked[i_map].get_fdata()
|
|
74
|
+
assert_array_equal(t_masked[~mask], 0)
|
|
75
|
+
assert (t_masked[mask] > 0).all()
|
|
76
|
+
assert_allclose(t_masked[mask], t_unmasked[mask], rtol=1e-6)
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
@pytest.mark.skipif(
|
|
80
|
+
_check_afni() is False, reason="requires AFNI to be in PATH"
|
|
81
|
+
)
|
|
82
|
+
def test_AFNIALFF_no_time_series(tmp_path: Path) -> None:
|
|
83
|
+
"""Test 3dRSFC does not output the bandpassed time series.
|
|
84
|
+
|
|
85
|
+
Parameters
|
|
86
|
+
----------
|
|
87
|
+
tmp_path : pathlib.Path
|
|
88
|
+
The path to the test directory.
|
|
89
|
+
|
|
90
|
+
"""
|
|
91
|
+
WorkDirManager().workdir = tmp_path
|
|
92
|
+
bold_path, mask_path, _ = _data(tmp_path)
|
|
93
|
+
alff_path = AFNIALFF().compute(
|
|
94
|
+
bold_path, highpass=0.01, lowpass=0.1, tr=2.0, mask_path=mask_path
|
|
95
|
+
)[2]
|
|
96
|
+
# Only the parameters (ALFF, fALFF and mALFF) are in the output directory
|
|
97
|
+
outputs = {x.name for x in alff_path.parent.iterdir()}
|
|
98
|
+
assert not any("_LFF+" in x for x in outputs)
|
|
99
|
+
assert any("_ALFF+" in x for x in outputs)
|
|
@@ -204,7 +204,7 @@ class JuniferReHo(metaclass=Singleton):
|
|
|
204
204
|
element_tempdir = WorkDirManager().get_element_tempdir(
|
|
205
205
|
prefix="junifer_reho"
|
|
206
206
|
)
|
|
207
|
-
output_path = element_tempdir / "output.nii
|
|
207
|
+
output_path = element_tempdir / "output.nii"
|
|
208
208
|
# Save computed data to file
|
|
209
209
|
nib.save(output_data, output_path)
|
|
210
210
|
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
# Authors: Synchon Mandal <s.mandal@fz-juelich.de>
|
|
4
4
|
# License: AGPL
|
|
5
5
|
|
|
6
|
-
import hashlib
|
|
7
6
|
from enum import StrEnum
|
|
8
7
|
from pathlib import Path
|
|
9
8
|
from typing import (
|
|
@@ -13,17 +12,15 @@ from typing import (
|
|
|
13
12
|
ClassVar,
|
|
14
13
|
)
|
|
15
14
|
|
|
16
|
-
import nibabel as nib
|
|
17
|
-
import numpy as np
|
|
18
15
|
from pydantic import BeforeValidator
|
|
19
16
|
|
|
20
17
|
from ...data import get_data
|
|
21
18
|
from ...datagrabber import DataType
|
|
22
|
-
from ...pipeline import WorkDirManager
|
|
23
19
|
from ...storage import StorageType
|
|
24
20
|
from ...typing import ConditionalDependencies, MarkerInOutMappings
|
|
25
21
|
from ...utils import ensure_list_or_none
|
|
26
22
|
from ..base import BaseMarker, logger
|
|
23
|
+
from ..utils import _save_mask
|
|
27
24
|
from ._afni_reho import AFNIReHo
|
|
28
25
|
from ._junifer_reho import JuniferReHo
|
|
29
26
|
|
|
@@ -199,7 +196,8 @@ class ReHoBase(BaseMarker):
|
|
|
199
196
|
names=self.masks,
|
|
200
197
|
target_data=input_data,
|
|
201
198
|
extra_input=extra_input,
|
|
202
|
-
)
|
|
199
|
+
),
|
|
200
|
+
prefix="reho_mask",
|
|
203
201
|
)
|
|
204
202
|
# Compute reho
|
|
205
203
|
reho_map, reho_map_path = estimator.compute( # type: ignore
|
|
@@ -217,38 +215,3 @@ class ReHoBase(BaseMarker):
|
|
|
217
215
|
return reho_map, input_data["path"]
|
|
218
216
|
|
|
219
217
|
return reho_map, reho_map_path
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
def _save_mask(mask_img: "Nifti1Image") -> Path:
|
|
223
|
-
"""Save mask to the working directory, named by its content.
|
|
224
|
-
|
|
225
|
-
The same mask always gets the same path, so that the cached ReHo
|
|
226
|
-
computation can be reused by markers using the same mask.
|
|
227
|
-
|
|
228
|
-
Parameters
|
|
229
|
-
----------
|
|
230
|
-
mask_img : Niimg-like object
|
|
231
|
-
The mask to save.
|
|
232
|
-
|
|
233
|
-
Returns
|
|
234
|
-
-------
|
|
235
|
-
pathlib.Path
|
|
236
|
-
The path to the saved mask.
|
|
237
|
-
|
|
238
|
-
"""
|
|
239
|
-
mask_data = np.squeeze(np.asarray(mask_img.dataobj)) != 0
|
|
240
|
-
digest = hashlib.sha256()
|
|
241
|
-
digest.update(str(mask_data.shape).encode())
|
|
242
|
-
digest.update(np.packbits(mask_data).tobytes())
|
|
243
|
-
digest.update(mask_img.affine.tobytes())
|
|
244
|
-
mask_path = (
|
|
245
|
-
WorkDirManager().workdir / f"reho_mask_{digest.hexdigest()[:16]}.nii"
|
|
246
|
-
)
|
|
247
|
-
if not mask_path.exists():
|
|
248
|
-
nib.save(
|
|
249
|
-
nib.Nifti1Image(
|
|
250
|
-
mask_data.astype(np.uint8), mask_img.affine, mask_img.header
|
|
251
|
-
),
|
|
252
|
-
mask_path,
|
|
253
|
-
)
|
|
254
|
-
return mask_path
|