junifer 0.0.6.dev227__tar.gz → 0.0.6.dev248__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.6.dev227 → junifer-0.0.6.dev248}/PKG-INFO +1 -1
- junifer-0.0.6.dev248/docs/changes/newsfragments/390.change +1 -0
- junifer-0.0.6.dev248/docs/changes/newsfragments/390.enh +1 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/extending/dependencies.rst +13 -2
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/understanding/preprocess.rst +19 -8
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/_version.py +2 -2
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/_ants_coordinates_warper.py +4 -6
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/_coordinates.py +28 -15
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/_fsl_coordinates_warper.py +4 -6
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/masks/_ants_mask_warper.py +16 -9
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/masks/_fsl_mask_warper.py +4 -6
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/masks/_masks.py +21 -25
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/parcellations/_ants_parcellation_warper.py +16 -9
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/parcellations/_fsl_parcellation_warper.py +4 -6
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/parcellations/_parcellations.py +20 -24
- junifer-0.0.6.dev248/junifer/data/utils.py +115 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/aomic/id1000.py +22 -9
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/aomic/piop1.py +22 -9
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/aomic/piop2.py +22 -9
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/base.py +6 -1
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/datalad_base.py +15 -8
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/dmcc13_benchmark.py +23 -10
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/hcp1200/hcp1200.py +18 -7
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/pattern.py +65 -35
- junifer-0.0.6.dev248/junifer/datagrabber/pattern_validation_mixin.py +498 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +26 -9
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/pipeline/pipeline_step_mixin.py +8 -4
- junifer-0.0.6.dev248/junifer/pipeline/update_meta_mixin.py +56 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/warping/_ants_warper.py +23 -2
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/warping/_fsl_warper.py +19 -3
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/warping/space_warper.py +31 -4
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer.egg-info/PKG-INFO +1 -1
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer.egg-info/SOURCES.txt +2 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/tools/create_dmcc13_benchmark_example_dataset.py +5 -1
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/tools/create_hcp1200_example_dataset.py +9 -5
- junifer-0.0.6.dev227/junifer/data/utils.py +0 -51
- junifer-0.0.6.dev227/junifer/datagrabber/pattern_validation_mixin.py +0 -388
- junifer-0.0.6.dev227/junifer/pipeline/update_meta_mixin.py +0 -52
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/.dockerignore +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/.github/dependabot.yml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/.github/pull_request_template.md +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/.github/workflows/ci-docs.yml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/.github/workflows/ci.yml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/.github/workflows/docker-ci-publish.yml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/.github/workflows/docker-docs-publish.yml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/.github/workflows/docs-preview.yml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/.github/workflows/docs.yml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/.github/workflows/lint.yml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/.github/workflows/pypi.yml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/.gitignore +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/.gitmodules +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/.pre-commit-config.yaml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/AUTHORS.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/Dockerfile-ci +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/Dockerfile-docs +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/LICENSE.md +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/README.md +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/codecov.yml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/conda-env.yml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/Makefile +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/_static/css/custom.css +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/_static/js/custom.js +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/_templates/versions.html +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/api/api.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/api/cli.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/api/configs.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/api/data.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/api/datagrabbers.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/api/datareaders.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/api/index.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/api/markers.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/api/nilearn.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/api/onthefly.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/api/pipeline.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/api/preprocessing.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/api/stats.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/api/storage.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/api/testing.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/api/utils.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/builtin.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/contributors.inc +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/.gitignore +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/335.enh +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/354.feature +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/355.misc +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/356.bugfix +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/357.enh +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/358.doc +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/359.doc +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/360.bugfix +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/361.misc +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/362.feature +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/367.enh +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/368.enh +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/369.bugfix +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/370.bugfix +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/372.misc +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/373.misc +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/374.misc +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/380.misc +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/382.misc +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/383.misc +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/384.misc +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/386.bugfix +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/387.change +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/387.feature +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/389.enh +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/391.misc +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/changes/newsfragments/392.feature +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/conf.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/contribution.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/extending/coordinates.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/extending/datagrabber.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/extending/extension.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/extending/index.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/extending/marker.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/extending/masks.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/extending/parcellations.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/extending/preprocessor.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/faq.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/help.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/images/junifer_logo.png +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/index.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/installation.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/links.inc +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/maintaining.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/redirect.html +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/starting.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/understanding/data.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/understanding/datagrabber.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/understanding/datareader.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/understanding/index.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/understanding/marker.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/understanding/pipeline.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/understanding/storage.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/using/codeless.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/using/index.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/using/masks.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/using/queueing.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/using/running.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/docs/whats_new.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/examples/README.rst +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/examples/norun_hcpfc_pearson.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/examples/norun_ukbvm_gmd.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/examples/run_compute_parcel_mean.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/examples/run_datagrabber_bids_datalad.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/examples/run_ets_rss_marker.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/examples/run_junifer_julearn.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/examples/run_run_gmd_mean.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/examples/yamls/gmd_mean.yaml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/examples/yamls/ukb_gmd_mean.yaml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/ignore_words.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/decorators.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/functions.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/queue_context/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/queue_context/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/queue_context/htcondor_adapter.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/queue_context/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/queue_context/queue_context_adapter.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/afni/3dRSFC +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/afni/3dReHo +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/afni/afni +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/afni/run_afni_docker.sh +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/ants/ResampleImage +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/ants/antsApplyTransforms +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/ants/run_ants_docker.sh +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/freesurfer/mri_binarize +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/freesurfer/mri_mc +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/freesurfer/mri_pretess +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/freesurfer/mris_convert +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/fsl/applywarp +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/fsl/flirt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/fsl/img2imgcoord +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/fsl/std2imgcoord +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/run_conda.bash +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/run_conda.zsh +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/run_venv.bash +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/res/run_venv.zsh +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/api/tests/test_functions.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/cli/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/cli/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/cli/cli.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/cli/parser.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/cli/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/cli/tests/test_cli.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/cli/tests/test_cli_utils.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/cli/tests/test_parser.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/cli/utils.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/configs/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/configs/juseless/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/configs/juseless/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/configs/juseless/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/conftest.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/_dispatch.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/AutobiographicalMemory_VOIs.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/CogAC_VOIs.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/CogAR_VOIs.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/DMNBuckner_VOIs.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/Dosenbach2010_MNI_VOIs.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/Empathy_VOIs.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/Motor_VOIs.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/MultiTask_VOIs.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/PhysioStress_VOIs.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/Power2011_MNI_VOIs.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/Power2013_MNI_VOIs.tsv +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/Rew_VOIs.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/Somatosensory_VOIs.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/ToM_VOIs.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/VigAtt_VOIs.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/WM_VOIs.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/eMDN_VOIs.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/eSAD_VOIs.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/extDMN_VOIs.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/masks/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/masks/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/masks/tests/test_masks.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/masks/ukb/UKB_15K_GM_template.nii.gz +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean.nii.gz +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean_3mm.nii.gz +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/masks/vickery-patil/GMprob0.2_cortex_3mm_NA_rm.nii.gz +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/parcellations/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/parcellations/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/pipeline_data_registry_base.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/template_spaces.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/tests/test_data_utils.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/tests/test_template_spaces.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/aomic/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/aomic/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/aomic/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/hcp1200/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/hcp1200/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/multiple.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/pattern_datalad.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/tests/test_base.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/tests/test_multiple.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/tests/test_pattern.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datareader/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datareader/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datareader/default.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datareader/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/datareader/tests/test_default_reader.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/external/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/external/h5io/h5io/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/external/h5io/h5io/_h5io.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/external/h5io/h5io/_version.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/external/h5io/h5io/chunked_array.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/external/h5io/h5io/chunked_list.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/external/nilearn/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/external/nilearn/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/external/nilearn/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/base.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/brainprint.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/complexity/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/complexity/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/complexity/complexity_base.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/complexity/hurst_exponent.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/complexity/perm_entropy.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/complexity/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/complexity/range_entropy.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/complexity/range_entropy_auc.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/complexity/sample_entropy.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/ets_rss.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/falff/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/falff/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/falff/_afni_falff.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/falff/_junifer_falff.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/falff/falff_base.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/falff/falff_parcels.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/falff/falff_spheres.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/falff/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/parcel_aggregation.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/reho/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/reho/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/reho/_afni_reho.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/reho/_junifer_reho.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/reho/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/reho/reho_base.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/reho/reho_parcels.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/reho/reho_spheres.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/sphere_aggregation.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/temporal_snr/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/temporal_snr/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/temporal_snr/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/tests/test_brainprint.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/tests/test_ets_rss.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/tests/test_marker_utils.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/tests/test_markers_base.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/markers/utils.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/onthefly/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/onthefly/_brainprint.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/onthefly/read_transform.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/onthefly/tests/test_read_transform.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/pipeline/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/pipeline/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/pipeline/marker_collection.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/pipeline/pipeline_component_registry.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/pipeline/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/pipeline/tests/test_marker_collection.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/pipeline/utils.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/pipeline/workdir_manager.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/base.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/confounds/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/confounds/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/confounds/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/smoothing/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/smoothing/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/smoothing/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/smoothing/smoothing.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/warping/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/warping/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/warping/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/stats.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/storage/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/storage/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/storage/base.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/storage/hdf5.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/storage/pandas_base.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/storage/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/storage/sqlite.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/storage/tests/test_hdf5.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/storage/tests/test_pandas_base.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/storage/tests/test_sqlite.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/storage/tests/test_storage_base.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/storage/tests/test_utils.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/storage/utils.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/testing/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/testing/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/testing/datagrabbers.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/testing/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/testing/registry.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/testing/tests/test_testing_registry.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/testing/utils.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/tests/test_main.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/tests/test_stats.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/typing/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/typing/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/typing/_typing.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/utils/__init__.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/utils/__init__.pyi +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/utils/_yaml.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/utils/fs.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/utils/helpers.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/utils/logging.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/utils/py.typed +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/utils/singleton.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/utils/tests/test_fs.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/utils/tests/test_helpers.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/utils/tests/test_logging.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer.egg-info/dependency_links.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer.egg-info/entry_points.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer.egg-info/requires.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer.egg-info/top_level.txt +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/pyproject.toml +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/setup.cfg +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/setup.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/tools/create_aomic1000_example_dataset.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/tools/create_aomicpiop1_example_dataset.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/tools/create_aomicpiop2_example_dataset.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/tools/create_bids_example_dataset.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/tools/create_bids_example_dataset_sessions.py +0 -0
- {junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/tox.ini +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: junifer
|
3
|
-
Version: 0.0.6.
|
3
|
+
Version: 0.0.6.dev248
|
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
|
+
:class:`.SpaceWarper`'s ``using`` now supports ``"auto"`` allowing auto tool selection based on DataGrabber specification by `Synchon Mandal`_
|
@@ -0,0 +1 @@
|
|
1
|
+
Update ``Warp`` data type to be a list of dictionaries and adapt to allow multiple transforms to be specified by `Synchon Mandal`_
|
@@ -39,7 +39,7 @@ and others who use it will thank you.
|
|
39
39
|
Handling external dependencies from toolboxes
|
40
40
|
---------------------------------------------
|
41
41
|
|
42
|
-
You can also specify dependencies of external toolboxes like
|
42
|
+
You can also specify dependencies of external toolboxes like AFNI, FSL and ANTs,
|
43
43
|
by having a class attribute like so:
|
44
44
|
|
45
45
|
.. code-block:: python
|
@@ -87,6 +87,10 @@ that it shows the problem a bit better and how we solve it:
|
|
87
87
|
"using": "ants",
|
88
88
|
"depends_on": ANTsWarper,
|
89
89
|
},
|
90
|
+
{
|
91
|
+
"using": "auto",
|
92
|
+
"depends_on": [FSLWarper, ANTsWarper],
|
93
|
+
},
|
90
94
|
]
|
91
95
|
|
92
96
|
def __init__(
|
@@ -100,13 +104,20 @@ Here, you see a new class attribute ``_CONDITIONAL_DEPENDENCIES`` which is a
|
|
100
104
|
list of dictionaries with two keys:
|
101
105
|
|
102
106
|
* ``using`` (str) : lowercased name of the toolbox
|
103
|
-
* ``depends_on`` (object) : a class
|
107
|
+
* ``depends_on`` (object or list of objects) : a class or list of classes which \
|
108
|
+
implements the particular tool's use
|
104
109
|
|
105
110
|
It is mandatory to have the ``using`` positional argument in the constructor in
|
106
111
|
this case as the validation starts with this and moves further. It is also
|
107
112
|
mandatory to only allow the value of ``using`` argument to be one of them
|
108
113
|
specified in the ``using`` key of ``_CONDITIONAL_DEPENDENCIES`` entries.
|
109
114
|
|
115
|
+
For some cases, like we have here, it might be worth to have ``"auto"`` for
|
116
|
+
``"using"`` which eases the choice of a particular tool by the user and
|
117
|
+
instead lets ``junifer`` do it automatically. In that case, ``"depends_on"``
|
118
|
+
needs to be a list of the tool implementation classes. This also requires the
|
119
|
+
user to have all the tools in the ``PATH``.
|
120
|
+
|
110
121
|
For brevity, we only show the ``FSLWarper`` here but ``ANTsWarper`` looks very
|
111
122
|
similar. ``FSLWarper`` looks like this (only the relevant part is shown here):
|
112
123
|
|
@@ -146,14 +146,23 @@ Warping to subject's native space
|
|
146
146
|
To warp to subject's native space, the dataset needs to provide ``T1w`` and
|
147
147
|
``Warp`` data types and the DataGrabber needs to at least have
|
148
148
|
``["BOLD", "T1w", "Warp"]`` (if you are warping ``BOLD``) as the ``types``
|
149
|
-
parameter's value.
|
149
|
+
parameter's value.
|
150
|
+
|
151
|
+
The :class:`.SpaceWarper`'s ``reference`` parameter needs
|
150
152
|
to be set to ``T1w``, which means that the ``BOLD`` data will be transformed
|
151
153
|
using the ``T1w`` as reference (it's resampled internally to match the
|
152
|
-
resolution of the ``BOLD``).
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
154
|
+
resolution of the ``BOLD``).
|
155
|
+
|
156
|
+
The ``Warp`` data type provides the warp or transformation file (can be linear,
|
157
|
+
non-linear or linear + non-linear transform) for the purpose. For ``using``
|
158
|
+
parameter, you can pass either ``fsl`` or ``ants`` depending on the warp or
|
159
|
+
transformation file format. You can also provide ``auto`` to ``using`` in which
|
160
|
+
case either ``FSL`` or ``ANTs`` will be used based on the file format provided
|
161
|
+
by the DataGrabber. This also requires that both the tools are in the ``PATH``.
|
162
|
+
|
163
|
+
And finally, you would need to set the ``on`` parameter to ``BOLD`` to make it
|
164
|
+
clear which data type you intend to warp, as the :class:`.SpaceWarper` is also
|
165
|
+
capable of warping ``T1w``.
|
157
166
|
|
158
167
|
An example YAML might look like this:
|
159
168
|
|
@@ -163,6 +172,7 @@ An example YAML might look like this:
|
|
163
172
|
- kind: SpaceWarper
|
164
173
|
using: fsl
|
165
174
|
reference: T1w
|
175
|
+
on: BOLD
|
166
176
|
|
167
177
|
.. _preprocess_warping_template:
|
168
178
|
|
@@ -174,8 +184,8 @@ data type that you want to work on) in ``MNI152NLin6Asym`` template space but
|
|
174
184
|
you would like to compute features in ``MNI152NLin2009cAsym`` template space,
|
175
185
|
you can also use the :class:`.SpaceWarper` by setting the ``reference``
|
176
186
|
parameter to the template space's name, in this case,
|
177
|
-
``reference
|
178
|
-
to ``
|
187
|
+
``reference: MNI152NLin2009cAsym``. The ``using`` parameter needs to be set
|
188
|
+
to ``ants`` as we need it to warp the data.
|
179
189
|
|
180
190
|
.. note::
|
181
191
|
|
@@ -190,3 +200,4 @@ For an YAML example:
|
|
190
200
|
- kind: SpaceWarper
|
191
201
|
using: ants
|
192
202
|
reference: MNI152NLin2009cAsym
|
203
|
+
on: BOLD
|
@@ -12,5 +12,5 @@ __version__: str
|
|
12
12
|
__version_tuple__: VERSION_TUPLE
|
13
13
|
version_tuple: VERSION_TUPLE
|
14
14
|
|
15
|
-
__version__ = version = '0.0.6.
|
16
|
-
__version_tuple__ = version_tuple = (0, 0, 6, '
|
15
|
+
__version__ = version = '0.0.6.dev248'
|
16
|
+
__version_tuple__ = version_tuple = (0, 0, 6, 'dev248')
|
{junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/_ants_coordinates_warper.py
RENAMED
@@ -26,7 +26,7 @@ class ANTsCoordinatesWarper:
|
|
26
26
|
self,
|
27
27
|
seeds: ArrayLike,
|
28
28
|
target_data: Dict[str, Any],
|
29
|
-
|
29
|
+
warp_data: Dict[str, Any],
|
30
30
|
) -> ArrayLike:
|
31
31
|
"""Warp ``seeds`` to correct space.
|
32
32
|
|
@@ -37,10 +37,8 @@ class ANTsCoordinatesWarper:
|
|
37
37
|
target_data : dict
|
38
38
|
The corresponding item of the data object to which the coordinates
|
39
39
|
will be applied.
|
40
|
-
|
41
|
-
The
|
42
|
-
data kinds that needs to be used in the computation of coordinates
|
43
|
-
(default None).
|
40
|
+
warp_data : dict or None
|
41
|
+
The warp data item of the data object.
|
44
42
|
|
45
43
|
Returns
|
46
44
|
-------
|
@@ -79,7 +77,7 @@ class ANTsCoordinatesWarper:
|
|
79
77
|
"-f 0",
|
80
78
|
f"-i {pretransform_coordinates_path.resolve()}",
|
81
79
|
f"-o {transformed_coords_path.resolve()}",
|
82
|
-
f"-t {
|
80
|
+
f"-t {warp_data['path'].resolve()}",
|
83
81
|
]
|
84
82
|
# Call antsApplyTransformsToPoints
|
85
83
|
run_ext_cmd(
|
@@ -14,6 +14,7 @@ from numpy.typing import ArrayLike
|
|
14
14
|
from ...utils import logger, raise_error
|
15
15
|
from ...utils.singleton import Singleton
|
16
16
|
from ..pipeline_data_registry_base import BasePipelineDataRegistry
|
17
|
+
from ..utils import get_native_warper
|
17
18
|
from ._ants_coordinates_warper import ANTsCoordinatesWarper
|
18
19
|
from ._fsl_coordinates_warper import FSLCoordinatesWarper
|
19
20
|
|
@@ -311,7 +312,8 @@ class CoordinatesRegistry(BasePipelineDataRegistry, metaclass=Singleton):
|
|
311
312
|
Raises
|
312
313
|
------
|
313
314
|
RuntimeError
|
314
|
-
If
|
315
|
+
If warping specification required for warping using ANTs, is not
|
316
|
+
found.
|
315
317
|
ValueError
|
316
318
|
If ``extra_input`` is None when ``target_data``'s space is native.
|
317
319
|
|
@@ -329,27 +331,38 @@ class CoordinatesRegistry(BasePipelineDataRegistry, metaclass=Singleton):
|
|
329
331
|
f"{target_data['space']} space for further computation."
|
330
332
|
)
|
331
333
|
|
332
|
-
#
|
333
|
-
|
334
|
-
|
334
|
+
# Get native space warper spec
|
335
|
+
warper_spec = get_native_warper(
|
336
|
+
target_data=target_data,
|
337
|
+
other_data=extra_input,
|
338
|
+
)
|
339
|
+
# Conditional for warping tool implementation
|
340
|
+
if warper_spec["warper"] == "fsl":
|
335
341
|
seeds = FSLCoordinatesWarper().warp(
|
336
342
|
seeds=seeds,
|
337
343
|
target_data=target_data,
|
338
|
-
|
344
|
+
warp_data=warper_spec,
|
345
|
+
)
|
346
|
+
elif warper_spec["warper"] == "ants":
|
347
|
+
# Requires the inverse warp
|
348
|
+
inverse_warper_spec = get_native_warper(
|
349
|
+
target_data=target_data,
|
350
|
+
other_data=extra_input,
|
351
|
+
inverse=True,
|
339
352
|
)
|
340
|
-
|
353
|
+
# Check warper
|
354
|
+
if inverse_warper_spec["warper"] != "ants":
|
355
|
+
raise_error(
|
356
|
+
klass=RuntimeError,
|
357
|
+
msg=(
|
358
|
+
"Warping specification mismatch for native space "
|
359
|
+
"warping of coordinates using ANTs."
|
360
|
+
),
|
361
|
+
)
|
341
362
|
seeds = ANTsCoordinatesWarper().warp(
|
342
363
|
seeds=seeds,
|
343
364
|
target_data=target_data,
|
344
|
-
|
345
|
-
)
|
346
|
-
else:
|
347
|
-
raise_error(
|
348
|
-
msg=(
|
349
|
-
"Unknown warp / transformation file extension: "
|
350
|
-
f"{warp_file_ext}"
|
351
|
-
),
|
352
|
-
klass=RuntimeError,
|
365
|
+
warp_data=warper_spec,
|
353
366
|
)
|
354
367
|
|
355
368
|
return seeds, labels
|
{junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/coordinates/_fsl_coordinates_warper.py
RENAMED
@@ -26,7 +26,7 @@ class FSLCoordinatesWarper:
|
|
26
26
|
self,
|
27
27
|
seeds: ArrayLike,
|
28
28
|
target_data: Dict[str, Any],
|
29
|
-
|
29
|
+
warp_data: Dict[str, Any],
|
30
30
|
) -> ArrayLike:
|
31
31
|
"""Warp ``seeds`` to correct space.
|
32
32
|
|
@@ -37,10 +37,8 @@ class FSLCoordinatesWarper:
|
|
37
37
|
target_data : dict
|
38
38
|
The corresponding item of the data object to which the coordinates
|
39
39
|
will be applied.
|
40
|
-
|
41
|
-
The
|
42
|
-
data kinds that needs to be used in the computation of coordinates
|
43
|
-
(default None).
|
40
|
+
warp_data : dict
|
41
|
+
The warp data item of the data object.
|
44
42
|
|
45
43
|
Returns
|
46
44
|
-------
|
@@ -72,7 +70,7 @@ class FSLCoordinatesWarper:
|
|
72
70
|
"| img2imgcoord -mm",
|
73
71
|
f"-src {target_data['path'].resolve()}",
|
74
72
|
f"-dest {target_data['reference_path'].resolve()}",
|
75
|
-
f"-warp {
|
73
|
+
f"-warp {warp_data['path'].resolve()}",
|
76
74
|
f"> {transformed_coords_path.resolve()};",
|
77
75
|
f"sed -i 1d {transformed_coords_path.resolve()}",
|
78
76
|
]
|
@@ -9,7 +9,7 @@ from typing import TYPE_CHECKING, Any, Dict, Optional
|
|
9
9
|
import nibabel as nib
|
10
10
|
|
11
11
|
from ...pipeline import WorkDirManager
|
12
|
-
from ...utils import logger, run_ext_cmd
|
12
|
+
from ...utils import logger, raise_error, run_ext_cmd
|
13
13
|
from ..template_spaces import get_template, get_xfm
|
14
14
|
|
15
15
|
|
@@ -34,7 +34,7 @@ class ANTsMaskWarper:
|
|
34
34
|
src: str,
|
35
35
|
dst: str,
|
36
36
|
target_data: Dict[str, Any],
|
37
|
-
|
37
|
+
warp_data: Optional[Dict[str, Any]],
|
38
38
|
) -> "Nifti1Image":
|
39
39
|
"""Warp ``mask_img`` to correct space.
|
40
40
|
|
@@ -55,17 +55,20 @@ class ANTsMaskWarper:
|
|
55
55
|
target_data : dict
|
56
56
|
The corresponding item of the data object to which the mask
|
57
57
|
will be applied.
|
58
|
-
|
59
|
-
The
|
60
|
-
|
61
|
-
(default None).
|
62
|
-
|
58
|
+
warp_data : dict or None
|
59
|
+
The warp data item of the data object. The value is unused if
|
60
|
+
``dst!="T1w"``.
|
63
61
|
|
64
62
|
Returns
|
65
63
|
-------
|
66
64
|
nibabel.nifti1.Nifti1Image
|
67
65
|
The transformed mask image.
|
68
66
|
|
67
|
+
Raises
|
68
|
+
------
|
69
|
+
RuntimeError
|
70
|
+
If ``warp_data`` is None when ``dst="T1w"``.
|
71
|
+
|
69
72
|
"""
|
70
73
|
# Create element-scoped tempdir so that warped mask is
|
71
74
|
# available later as nibabel stores file path reference for
|
@@ -80,7 +83,11 @@ class ANTsMaskWarper:
|
|
80
83
|
)
|
81
84
|
|
82
85
|
# Native space warping
|
83
|
-
if dst == "
|
86
|
+
if dst == "native":
|
87
|
+
# Warp data check
|
88
|
+
if warp_data is None:
|
89
|
+
raise_error("No `warp_data` provided")
|
90
|
+
|
84
91
|
logger.debug("Using ANTs for mask transformation")
|
85
92
|
|
86
93
|
# Save existing mask image to a tempfile
|
@@ -98,7 +105,7 @@ class ANTsMaskWarper:
|
|
98
105
|
f"-i {prewarp_mask_path.resolve()}",
|
99
106
|
# use resampled reference
|
100
107
|
f"-r {target_data['reference_path'].resolve()}",
|
101
|
-
f"-t {
|
108
|
+
f"-t {warp_data['path'].resolve()}",
|
102
109
|
f"-o {warped_mask_path.resolve()}",
|
103
110
|
]
|
104
111
|
# Call antsApplyTransforms
|
@@ -31,7 +31,7 @@ class FSLMaskWarper:
|
|
31
31
|
mask_name: str,
|
32
32
|
mask_img: "Nifti1Image",
|
33
33
|
target_data: Dict[str, Any],
|
34
|
-
|
34
|
+
warp_data: Dict[str, Any],
|
35
35
|
) -> "Nifti1Image":
|
36
36
|
"""Warp ``mask_img`` to correct space.
|
37
37
|
|
@@ -44,10 +44,8 @@ class FSLMaskWarper:
|
|
44
44
|
target_data : dict
|
45
45
|
The corresponding item of the data object to which the mask
|
46
46
|
will be applied.
|
47
|
-
|
48
|
-
The
|
49
|
-
data kinds that needs to be used in the computation of mask
|
50
|
-
(default None).
|
47
|
+
warp_data : dict
|
48
|
+
The warp data item of the data object.
|
51
49
|
|
52
50
|
Returns
|
53
51
|
-------
|
@@ -77,7 +75,7 @@ class FSLMaskWarper:
|
|
77
75
|
f"-i {prewarp_mask_path.resolve()}",
|
78
76
|
# use resampled reference
|
79
77
|
f"-r {target_data['reference_path'].resolve()}",
|
80
|
-
f"-w {
|
78
|
+
f"-w {warp_data['path'].resolve()}",
|
81
79
|
f"-o {warped_mask_path.resolve()}",
|
82
80
|
]
|
83
81
|
# Call applywarp
|
@@ -29,7 +29,7 @@ from ...utils import logger, raise_error
|
|
29
29
|
from ...utils.singleton import Singleton
|
30
30
|
from ..pipeline_data_registry_base import BasePipelineDataRegistry
|
31
31
|
from ..template_spaces import get_template
|
32
|
-
from ..utils import closest_resolution
|
32
|
+
from ..utils import closest_resolution, get_native_warper
|
33
33
|
from ._ants_mask_warper import ANTsMaskWarper
|
34
34
|
from ._fsl_mask_warper import FSLMaskWarper
|
35
35
|
|
@@ -105,14 +105,16 @@ def compute_brain_mask(
|
|
105
105
|
"data type to infer target template space."
|
106
106
|
)
|
107
107
|
# Set target standard space to warp file space source
|
108
|
-
|
108
|
+
for entry in extra_input["Warp"]:
|
109
|
+
if entry["dst"] == "native":
|
110
|
+
target_std_space = entry["src"]
|
109
111
|
|
110
112
|
# Fetch template in closest resolution
|
111
113
|
template = get_template(
|
112
114
|
space=target_std_space,
|
113
115
|
target_data=target_data,
|
114
116
|
extra_input=extra_input,
|
115
|
-
template_type=mask_type
|
117
|
+
template_type=mask_type,
|
116
118
|
)
|
117
119
|
# Resample template to target image
|
118
120
|
target_img = target_data["data"]
|
@@ -357,8 +359,6 @@ class MaskRegistry(BasePipelineDataRegistry, metaclass=Singleton):
|
|
357
359
|
|
358
360
|
Raises
|
359
361
|
------
|
360
|
-
RuntimeError
|
361
|
-
If warp / transformation file extension is not ".mat" or ".h5".
|
362
362
|
ValueError
|
363
363
|
If extra key is provided in addition to mask name in ``masks`` or
|
364
364
|
if no mask is provided or
|
@@ -372,8 +372,6 @@ class MaskRegistry(BasePipelineDataRegistry, metaclass=Singleton):
|
|
372
372
|
"""
|
373
373
|
# Check pre-requirements for space manipulation
|
374
374
|
target_space = target_data["space"]
|
375
|
-
# Set target standard space to target space
|
376
|
-
target_std_space = target_space
|
377
375
|
# Extra data type requirement check if target space is native
|
378
376
|
if target_space == "native":
|
379
377
|
# Check for extra inputs
|
@@ -383,8 +381,16 @@ class MaskRegistry(BasePipelineDataRegistry, metaclass=Singleton):
|
|
383
381
|
"data types in particular for transformation to "
|
384
382
|
f"{target_data['space']} space for further computation."
|
385
383
|
)
|
384
|
+
# Get native space warper spec
|
385
|
+
warper_spec = get_native_warper(
|
386
|
+
target_data=target_data,
|
387
|
+
other_data=extra_input,
|
388
|
+
)
|
386
389
|
# Set target standard space to warp file space source
|
387
|
-
target_std_space =
|
390
|
+
target_std_space = warper_spec["src"]
|
391
|
+
else:
|
392
|
+
# Set target standard space to target space
|
393
|
+
target_std_space = target_space
|
388
394
|
|
389
395
|
# Get the min of the voxels sizes and use it as the resolution
|
390
396
|
target_img = target_data["data"]
|
@@ -489,7 +495,7 @@ class MaskRegistry(BasePipelineDataRegistry, metaclass=Singleton):
|
|
489
495
|
src=mask_space,
|
490
496
|
dst=target_std_space,
|
491
497
|
target_data=target_data,
|
492
|
-
|
498
|
+
warp_data=None,
|
493
499
|
)
|
494
500
|
|
495
501
|
all_masks.append(mask_img)
|
@@ -510,32 +516,22 @@ class MaskRegistry(BasePipelineDataRegistry, metaclass=Singleton):
|
|
510
516
|
|
511
517
|
# Warp mask if target data is native
|
512
518
|
if target_space == "native":
|
513
|
-
# extra_input check done earlier
|
514
|
-
|
515
|
-
warp_file_ext = extra_input["Warp"]["path"].suffix
|
516
|
-
if warp_file_ext == ".mat":
|
519
|
+
# extra_input check done earlier and warper_spec exists
|
520
|
+
if warper_spec["warper"] == "fsl":
|
517
521
|
mask_img = FSLMaskWarper().warp(
|
518
522
|
mask_name="native",
|
519
523
|
mask_img=mask_img,
|
520
524
|
target_data=target_data,
|
521
|
-
|
525
|
+
warp_data=warper_spec,
|
522
526
|
)
|
523
|
-
elif
|
527
|
+
elif warper_spec["warper"] == "ants":
|
524
528
|
mask_img = ANTsMaskWarper().warp(
|
525
529
|
mask_name="native",
|
526
530
|
mask_img=mask_img,
|
527
531
|
src="",
|
528
|
-
dst="
|
532
|
+
dst="native",
|
529
533
|
target_data=target_data,
|
530
|
-
|
531
|
-
)
|
532
|
-
else:
|
533
|
-
raise_error(
|
534
|
-
msg=(
|
535
|
-
"Unknown warp / transformation file extension: "
|
536
|
-
f"{warp_file_ext}"
|
537
|
-
),
|
538
|
-
klass=RuntimeError,
|
534
|
+
warp_data=warper_spec,
|
539
535
|
)
|
540
536
|
|
541
537
|
return mask_img
|
@@ -9,7 +9,7 @@ from typing import TYPE_CHECKING, Any, Dict, Optional
|
|
9
9
|
import nibabel as nib
|
10
10
|
|
11
11
|
from ...pipeline import WorkDirManager
|
12
|
-
from ...utils import logger, run_ext_cmd
|
12
|
+
from ...utils import logger, raise_error, run_ext_cmd
|
13
13
|
from ..template_spaces import get_template, get_xfm
|
14
14
|
|
15
15
|
|
@@ -34,7 +34,7 @@ class ANTsParcellationWarper:
|
|
34
34
|
src: str,
|
35
35
|
dst: str,
|
36
36
|
target_data: Dict[str, Any],
|
37
|
-
|
37
|
+
warp_data: Optional[Dict[str, Any]],
|
38
38
|
) -> "Nifti1Image":
|
39
39
|
"""Warp ``parcellation_img`` to correct space.
|
40
40
|
|
@@ -55,17 +55,20 @@ class ANTsParcellationWarper:
|
|
55
55
|
target_data : dict
|
56
56
|
The corresponding item of the data object to which the parcellation
|
57
57
|
will be applied.
|
58
|
-
|
59
|
-
The
|
60
|
-
|
61
|
-
(default None).
|
62
|
-
|
58
|
+
warp_data : dict or None
|
59
|
+
The warp data item of the data object. The value is unused if
|
60
|
+
``dst!="T1w"``.
|
63
61
|
|
64
62
|
Returns
|
65
63
|
-------
|
66
64
|
nibabel.nifti1.Nifti1Image
|
67
65
|
The transformed parcellation image.
|
68
66
|
|
67
|
+
Raises
|
68
|
+
------
|
69
|
+
ValueError
|
70
|
+
If ``warp_data`` is None when ``dst="T1w"``.
|
71
|
+
|
69
72
|
"""
|
70
73
|
# Create element-scoped tempdir so that warped parcellation is
|
71
74
|
# available later as nibabel stores file path reference for
|
@@ -80,7 +83,11 @@ class ANTsParcellationWarper:
|
|
80
83
|
)
|
81
84
|
|
82
85
|
# Native space warping
|
83
|
-
if dst == "
|
86
|
+
if dst == "native":
|
87
|
+
# Warp data check
|
88
|
+
if warp_data is None:
|
89
|
+
raise_error("No `warp_data` provided")
|
90
|
+
|
84
91
|
logger.debug("Using ANTs for parcellation transformation")
|
85
92
|
|
86
93
|
# Save existing parcellation image to a tempfile
|
@@ -102,7 +109,7 @@ class ANTsParcellationWarper:
|
|
102
109
|
f"-i {prewarp_parcellation_path.resolve()}",
|
103
110
|
# use resampled reference
|
104
111
|
f"-r {target_data['reference_path'].resolve()}",
|
105
|
-
f"-t {
|
112
|
+
f"-t {warp_data['path'].resolve()}",
|
106
113
|
f"-o {warped_parcellation_path.resolve()}",
|
107
114
|
]
|
108
115
|
# Call antsApplyTransforms
|
{junifer-0.0.6.dev227 → junifer-0.0.6.dev248}/junifer/data/parcellations/_fsl_parcellation_warper.py
RENAMED
@@ -31,7 +31,7 @@ class FSLParcellationWarper:
|
|
31
31
|
parcellation_name: str,
|
32
32
|
parcellation_img: "Nifti1Image",
|
33
33
|
target_data: Dict[str, Any],
|
34
|
-
|
34
|
+
warp_data: Dict[str, Any],
|
35
35
|
) -> "Nifti1Image":
|
36
36
|
"""Warp ``parcellation_img`` to correct space.
|
37
37
|
|
@@ -44,10 +44,8 @@ class FSLParcellationWarper:
|
|
44
44
|
target_data : dict
|
45
45
|
The corresponding item of the data object to which the parcellation
|
46
46
|
will be applied.
|
47
|
-
|
48
|
-
The
|
49
|
-
data kinds that needs to be used in the computation of parcellation
|
50
|
-
(default None).
|
47
|
+
warp_data : dict
|
48
|
+
The warp data item of the data object.
|
51
49
|
|
52
50
|
Returns
|
53
51
|
-------
|
@@ -81,7 +79,7 @@ class FSLParcellationWarper:
|
|
81
79
|
f"-i {prewarp_parcellation_path.resolve()}",
|
82
80
|
# use resampled reference
|
83
81
|
f"-r {target_data['reference_path'].resolve()}",
|
84
|
-
f"-w {
|
82
|
+
f"-w {warp_data['path'].resolve()}",
|
85
83
|
f"-o {warped_parcellation_path.resolve()}",
|
86
84
|
]
|
87
85
|
# Call applywarp
|
@@ -23,7 +23,7 @@ from nilearn import datasets, image
|
|
23
23
|
from ...utils import logger, raise_error, warn_with_log
|
24
24
|
from ...utils.singleton import Singleton
|
25
25
|
from ..pipeline_data_registry_base import BasePipelineDataRegistry
|
26
|
-
from ..utils import closest_resolution
|
26
|
+
from ..utils import closest_resolution, get_native_warper
|
27
27
|
from ._ants_parcellation_warper import ANTsParcellationWarper
|
28
28
|
from ._fsl_parcellation_warper import FSLParcellationWarper
|
29
29
|
|
@@ -394,16 +394,12 @@ class ParcellationRegistry(BasePipelineDataRegistry, metaclass=Singleton):
|
|
394
394
|
|
395
395
|
Raises
|
396
396
|
------
|
397
|
-
RuntimeError
|
398
|
-
If warp / transformation file extension is not ".mat" or ".h5".
|
399
397
|
ValueError
|
400
398
|
If ``extra_input`` is None when ``target_data``'s space is native.
|
401
399
|
|
402
400
|
"""
|
403
401
|
# Check pre-requirements for space manipulation
|
404
402
|
target_space = target_data["space"]
|
405
|
-
# Set target standard space to target space
|
406
|
-
target_std_space = target_space
|
407
403
|
# Extra data type requirement check if target space is native
|
408
404
|
if target_space == "native":
|
409
405
|
# Check for extra inputs
|
@@ -413,8 +409,16 @@ class ParcellationRegistry(BasePipelineDataRegistry, metaclass=Singleton):
|
|
413
409
|
"data types in particular for transformation to "
|
414
410
|
f"{target_data['space']} space for further computation."
|
415
411
|
)
|
412
|
+
# Get native space warper spec
|
413
|
+
warper_spec = get_native_warper(
|
414
|
+
target_data=target_data,
|
415
|
+
other_data=extra_input,
|
416
|
+
)
|
416
417
|
# Set target standard space to warp file space source
|
417
|
-
target_std_space =
|
418
|
+
target_std_space = warper_spec["src"]
|
419
|
+
else:
|
420
|
+
# Set target standard space to target space
|
421
|
+
target_std_space = target_space
|
418
422
|
|
419
423
|
# Get the min of the voxels sizes and use it as the resolution
|
420
424
|
target_img = target_data["data"]
|
@@ -428,12 +432,14 @@ class ParcellationRegistry(BasePipelineDataRegistry, metaclass=Singleton):
|
|
428
432
|
all_parcellations = []
|
429
433
|
all_labels = []
|
430
434
|
for name in parcellations:
|
435
|
+
# Load parcellation
|
431
436
|
img, labels, _, space = self.load(
|
432
437
|
name=name,
|
433
438
|
resolution=resolution,
|
434
439
|
)
|
435
440
|
|
436
|
-
# Convert parcellation spaces if required
|
441
|
+
# Convert parcellation spaces if required;
|
442
|
+
# cannot be "native" due to earlier check
|
437
443
|
if space != target_std_space:
|
438
444
|
raw_img = ANTsParcellationWarper().warp(
|
439
445
|
parcellation_name=name,
|
@@ -441,7 +447,7 @@ class ParcellationRegistry(BasePipelineDataRegistry, metaclass=Singleton):
|
|
441
447
|
src=space,
|
442
448
|
dst=target_std_space,
|
443
449
|
target_data=target_data,
|
444
|
-
|
450
|
+
warp_data=None,
|
445
451
|
)
|
446
452
|
# Remove extra dimension added by ANTs
|
447
453
|
img = image.math_img("np.squeeze(img)", img=raw_img)
|
@@ -471,32 +477,22 @@ class ParcellationRegistry(BasePipelineDataRegistry, metaclass=Singleton):
|
|
471
477
|
|
472
478
|
# Warp parcellation if target space is native
|
473
479
|
if target_space == "native":
|
474
|
-
# extra_input check done earlier
|
475
|
-
|
476
|
-
warp_file_ext = extra_input["Warp"]["path"].suffix
|
477
|
-
if warp_file_ext == ".mat":
|
480
|
+
# extra_input check done earlier and warper_spec exists
|
481
|
+
if warper_spec["warper"] == "fsl":
|
478
482
|
resampled_parcellation_img = FSLParcellationWarper().warp(
|
479
483
|
parcellation_name="native",
|
480
484
|
parcellation_img=resampled_parcellation_img,
|
481
485
|
target_data=target_data,
|
482
|
-
|
486
|
+
warp_data=warper_spec,
|
483
487
|
)
|
484
|
-
elif
|
488
|
+
elif warper_spec["warper"] == "ants":
|
485
489
|
resampled_parcellation_img = ANTsParcellationWarper().warp(
|
486
490
|
parcellation_name="native",
|
487
491
|
parcellation_img=resampled_parcellation_img,
|
488
492
|
src="",
|
489
|
-
dst="
|
493
|
+
dst="native",
|
490
494
|
target_data=target_data,
|
491
|
-
|
492
|
-
)
|
493
|
-
else:
|
494
|
-
raise_error(
|
495
|
-
msg=(
|
496
|
-
"Unknown warp / transformation file extension: "
|
497
|
-
f"{warp_file_ext}"
|
498
|
-
),
|
499
|
-
klass=RuntimeError,
|
495
|
+
warp_data=warper_spec,
|
500
496
|
)
|
501
497
|
|
502
498
|
return resampled_parcellation_img, labels
|