junifer 0.0.7.dev130__tar.gz → 0.0.7.dev153__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.7.dev130 → junifer-0.0.7.dev153}/.github/workflows/ci.yml +1 -1
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/.github/workflows/docker-ci-publish.yml +1 -1
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/.github/workflows/docker-docs-publish.yml +1 -1
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/.github/workflows/docs-preview.yml +1 -1
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/.github/workflows/docs.yml +2 -2
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/.github/workflows/lint.yml +1 -1
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/.github/workflows/publish.yml +1 -1
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/PKG-INFO +2 -2
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/conda-env.yml +1 -1
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/builtin.rst +34 -0
- junifer-0.0.7.dev153/docs/changes/newsfragments/458.change +1 -0
- junifer-0.0.7.dev153/docs/changes/newsfragments/458.feature +1 -0
- junifer-0.0.7.dev153/docs/changes/newsfragments/458.misc +1 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/extending/index.rst +1 -0
- junifer-0.0.7.dev153/docs/extending/maps.rst +140 -0
- junifer-0.0.7.dev153/junifer/_version.py +34 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/__init__.pyi +2 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/_dispatch.py +11 -7
- junifer-0.0.7.dev153/junifer/data/maps/__init__.py +9 -0
- junifer-0.0.7.dev153/junifer/data/maps/__init__.pyi +5 -0
- junifer-0.0.7.dev153/junifer/data/maps/_ants_maps_warper.py +156 -0
- junifer-0.0.7.dev153/junifer/data/maps/_fsl_maps_warper.py +85 -0
- junifer-0.0.7.dev153/junifer/data/maps/_maps.py +446 -0
- junifer-0.0.7.dev153/junifer/data/maps/tests/test_maps.py +255 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/masks/_masks.py +3 -2
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/parcellations/_parcellations.py +1 -1
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer.egg-info/PKG-INFO +2 -2
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer.egg-info/SOURCES.txt +10 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer.egg-info/requires.txt +1 -1
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/pyproject.toml +1 -1
- junifer-0.0.7.dev130/junifer/_version.py +0 -21
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/.dockerignore +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/.github/dependabot.yml +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/.github/pull_request_template.md +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/.github/workflows/ci-docs.yml +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/.gitignore +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/.gitmodules +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/.pre-commit-config.yaml +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/AUTHORS.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/Dockerfile-ci +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/Dockerfile-docs +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/LICENSE.md +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/README.md +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/codecov.yml +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/Makefile +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/_static/css/custom.css +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/_static/js/custom.js +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/_templates/versions.html +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/api/api.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/api/cli.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/api/configs.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/api/data.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/api/datagrabbers.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/api/datareaders.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/api/index.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/api/markers.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/api/nilearn.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/api/onthefly.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/api/pipeline.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/api/preprocessing.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/api/stats.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/api/storage.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/api/testing.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/api/utils.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/changes/contributors.inc +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/changes/newsfragments/.gitignore +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/changes/newsfragments/333.enh +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/changes/newsfragments/429.change +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/changes/newsfragments/429.enh +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/changes/newsfragments/432.feature +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/changes/newsfragments/441.misc +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/changes/newsfragments/443.feature +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/changes/newsfragments/444.bugfix +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/changes/newsfragments/450.doc +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/changes/newsfragments/450.feature +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/changes/newsfragments/451.doc +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/changes/newsfragments/451.feature +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/changes/newsfragments/452.doc +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/changes/newsfragments/452.feature +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/changes/newsfragments/456.misc +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/changes/newsfragments/457.misc +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/conf.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/contribution.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/extending/coordinates.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/extending/data_dump_asset.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/extending/data_registries.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/extending/data_types.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/extending/datagrabber.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/extending/dependencies.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/extending/extension.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/extending/marker.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/extending/masks.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/extending/parcellations.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/extending/plugins.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/extending/preprocessor.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/faq.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/help.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/images/junifer_logo.png +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/index.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/installation.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/links.inc +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/maintaining.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/redirect.html +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/starting.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/understanding/data.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/understanding/datagrabber.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/understanding/datareader.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/understanding/index.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/understanding/marker.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/understanding/pipeline.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/understanding/preprocess.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/understanding/storage.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/using/codeless.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/using/configuring.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/using/dumping.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/using/index.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/using/masks.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/using/queueing.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/using/running.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/docs/whats_new.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/examples/README.rst +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/examples/norun_hcpfc_pearson.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/examples/norun_ukbvm_gmd.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/examples/run_compute_parcel_mean.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/examples/run_datagrabber_bids_datalad.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/examples/run_ets_rss_marker.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/examples/run_junifer_julearn.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/examples/run_run_gmd_mean.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/examples/yamls/gmd_mean.yaml +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/examples/yamls/ukb_gmd_mean.yaml +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/ignore_words.txt +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/decorators.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/functions.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/queue_context/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/queue_context/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/queue_context/htcondor_adapter.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/queue_context/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/queue_context/queue_context_adapter.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/afni/3dRSFC +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/afni/3dReHo +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/afni/afni +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/afni/run_afni_docker.sh +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/ants/ResampleImage +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/ants/antsApplyTransforms +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/ants/run_ants_docker.sh +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/freesurfer/mri_binarize +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/freesurfer/mri_mc +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/freesurfer/mri_pretess +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/freesurfer/mris_convert +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/fsl/applywarp +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/fsl/flirt +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/fsl/img2imgcoord +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/fsl/std2imgcoord +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/run_conda.bash +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/run_conda.zsh +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/run_venv.bash +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/res/run_venv.zsh +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/tests/test_decorators.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/api/tests/test_functions.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/cli/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/cli/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/cli/cli.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/cli/parser.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/cli/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/cli/tests/test_cli.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/cli/tests/test_cli_utils.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/cli/tests/test_parser.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/cli/utils.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/configs/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/configs/juseless/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/configs/juseless/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/configs/juseless/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/conftest.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/coordinates/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/coordinates/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/coordinates/_ants_coordinates_warper.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/coordinates/_coordinates.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/coordinates/_fsl_coordinates_warper.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/masks/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/masks/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/masks/_ants_mask_warper.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/masks/_fsl_mask_warper.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/masks/tests/test_masks.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/parcellations/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/parcellations/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/parcellations/_ants_parcellation_warper.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/parcellations/_fsl_parcellation_warper.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/pipeline_data_registry_base.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/template_spaces.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/tests/test_data_utils.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/tests/test_dispatch.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/tests/test_template_spaces.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/data/utils.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/aomic/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/aomic/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/aomic/id1000.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/aomic/piop1.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/aomic/piop2.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/aomic/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/base.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/datalad_base.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/hcp1200/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/hcp1200/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/multiple.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/pattern.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/pattern_datalad.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/pattern_validation_mixin.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/tests/test_base.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/tests/test_multiple.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/tests/test_pattern.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datareader/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datareader/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datareader/default.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datareader/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/datareader/tests/test_default_reader.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/external/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/external/h5io/h5io/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/external/h5io/h5io/_h5io.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/external/h5io/h5io/_version.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/external/h5io/h5io/chunked_array.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/external/h5io/h5io/chunked_list.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/external/nilearn/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/external/nilearn/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/external/nilearn/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/base.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/brainprint.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/complexity/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/complexity/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/complexity/complexity_base.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/complexity/hurst_exponent.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/complexity/perm_entropy.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/complexity/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/complexity/range_entropy.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/complexity/range_entropy_auc.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/complexity/sample_entropy.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/ets_rss.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/falff/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/falff/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/falff/_afni_falff.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/falff/_junifer_falff.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/falff/falff_base.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/falff/falff_parcels.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/falff/falff_spheres.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/falff/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/parcel_aggregation.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/reho/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/reho/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/reho/_afni_reho.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/reho/_junifer_reho.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/reho/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/reho/reho_base.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/reho/reho_parcels.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/reho/reho_spheres.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/sphere_aggregation.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/temporal_snr/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/temporal_snr/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/temporal_snr/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/tests/test_brainprint.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/tests/test_ets_rss.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/tests/test_marker_utils.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/tests/test_markers_base.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/markers/utils.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/onthefly/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/onthefly/_brainprint.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/onthefly/read_transform.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/onthefly/tests/test_read_transform.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/pipeline/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/pipeline/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/pipeline/_data_object_dumper.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/pipeline/marker_collection.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/pipeline/pipeline_component_registry.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/pipeline/pipeline_step_mixin.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/pipeline/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/pipeline/tests/test_data_object_dumper.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/pipeline/tests/test_marker_collection.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/pipeline/update_meta_mixin.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/pipeline/utils.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/pipeline/workdir_manager.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/_temporal_filter.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/_temporal_slicer.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/base.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/confounds/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/confounds/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/confounds/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/smoothing/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/smoothing/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/smoothing/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/smoothing/smoothing.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/tests/test_temporal_filter.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/tests/test_temporal_slicer.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/warping/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/warping/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/warping/_ants_warper.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/warping/_fsl_warper.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/warping/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/warping/space_warper.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/stats.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/storage/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/storage/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/storage/base.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/storage/hdf5.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/storage/pandas_base.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/storage/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/storage/sqlite.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/storage/tests/test_hdf5.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/storage/tests/test_pandas_base.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/storage/tests/test_sqlite.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/storage/tests/test_storage_base.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/storage/tests/test_utils.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/storage/utils.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/testing/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/testing/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/testing/datagrabbers.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/testing/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/testing/registry.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/testing/tests/test_testing_registry.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/testing/utils.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/tests/test_main.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/tests/test_stats.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/typing/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/typing/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/typing/_typing.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/utils/__init__.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/utils/__init__.pyi +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/utils/_config.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/utils/_yaml.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/utils/fs.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/utils/helpers.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/utils/logging.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/utils/py.typed +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/utils/singleton.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/utils/tests/test_config.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/utils/tests/test_fs.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/utils/tests/test_helpers.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer/utils/tests/test_logging.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer.egg-info/dependency_links.txt +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer.egg-info/entry_points.txt +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/junifer.egg-info/top_level.txt +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/setup.cfg +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/setup.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/tools/create_aomic1000_example_dataset.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/tools/create_aomicpiop1_example_dataset.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/tools/create_aomicpiop2_example_dataset.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/tools/create_bids_example_dataset.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/tools/create_bids_example_dataset_sessions.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/tools/create_hcp1200_example_dataset.py +0 -0
- {junifer-0.0.7.dev130 → junifer-0.0.7.dev153}/tox.ini +0 -0
@@ -57,7 +57,7 @@ jobs:
|
|
57
57
|
mkdir -p $HOME/junifer_data/v3
|
58
58
|
cp -ar /root/junifer_data/v3/. $HOME/junifer_data/v3/
|
59
59
|
- name: Checkout repository
|
60
|
-
uses: actions/checkout@
|
60
|
+
uses: actions/checkout@v5
|
61
61
|
with:
|
62
62
|
submodules: true
|
63
63
|
- name: Set up Python ${{ matrix.python-version }}
|
@@ -39,7 +39,7 @@ jobs:
|
|
39
39
|
- name: Delete huge unnecessary tools folder
|
40
40
|
run: rm -rf /opt/hostedtoolcache
|
41
41
|
- name: Checkout repository
|
42
|
-
uses: actions/checkout@
|
42
|
+
uses: actions/checkout@v5
|
43
43
|
|
44
44
|
# Install the cosign tool except on PR
|
45
45
|
# https://github.com/sigstore/cosign-installer
|
@@ -34,7 +34,7 @@ jobs:
|
|
34
34
|
mkdir -p $HOME/junifer_data/v3
|
35
35
|
cp -ar /root/junifer_data/v3/. $HOME/junifer_data/v3/
|
36
36
|
- name: Checkout repository
|
37
|
-
uses: actions/checkout@
|
37
|
+
uses: actions/checkout@v5
|
38
38
|
with:
|
39
39
|
# require all of history to see all tagged versions' docs
|
40
40
|
fetch-depth: 0
|
@@ -55,7 +55,7 @@ jobs:
|
|
55
55
|
- name: Checkout gh-pages
|
56
56
|
# As we already did a deploy of gh-pages above, it is guaranteed to be there
|
57
57
|
# so check it out so we can selectively build docs below
|
58
|
-
uses: actions/checkout@
|
58
|
+
uses: actions/checkout@v5
|
59
59
|
with:
|
60
60
|
ref: gh-pages
|
61
61
|
path: docs/_build
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: junifer
|
3
|
-
Version: 0.0.7.
|
3
|
+
Version: 0.0.7.dev153
|
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>
|
@@ -39,7 +39,7 @@ Requires-Dist: sqlalchemy<=2.1.0,>=2.0.25
|
|
39
39
|
Requires-Dist: ruamel.yaml<0.19,>=0.17
|
40
40
|
Requires-Dist: h5py>=3.10
|
41
41
|
Requires-Dist: tqdm<4.67.0,>=4.66.1
|
42
|
-
Requires-Dist: templateflow
|
42
|
+
Requires-Dist: templateflow<25.0.0,>=23.0.0
|
43
43
|
Requires-Dist: lapy<2.0.0,>=1.0.0
|
44
44
|
Requires-Dist: lazy_loader==0.4
|
45
45
|
Requires-Dist: importlib_metadata; python_version < "3.9"
|
@@ -743,5 +743,39 @@ Available
|
|
743
743
|
Planned
|
744
744
|
~~~~~~~
|
745
745
|
|
746
|
+
|
747
|
+
Maps
|
748
|
+
----
|
749
|
+
|
750
|
+
..
|
751
|
+
Provide a list of the maps that are implemented or planned.
|
752
|
+
|
753
|
+
Version added: The junifer version in which the maps was added.
|
754
|
+
|
755
|
+
Available
|
756
|
+
~~~~~~~~~
|
757
|
+
|
758
|
+
.. list-table::
|
759
|
+
:widths: auto
|
760
|
+
:header-rows: 1
|
761
|
+
|
762
|
+
* - Name
|
763
|
+
- Options
|
764
|
+
- Keys
|
765
|
+
- Template Spaces
|
766
|
+
- Version Added
|
767
|
+
- Publication
|
768
|
+
* - Smith
|
769
|
+
- ``components``, ``dimension``
|
770
|
+
- | ``Smith_rsn_10``, ``Smith_rsn_20``, ``Smith_rsn_70``,
|
771
|
+
| ``Smith_bm_10``, ``Smith_bm_20``, ``Smith_bm_70``
|
772
|
+
- ``MNI152NLin6Asym``
|
773
|
+
- 0.0.7
|
774
|
+
- | S.M. Smith, P.T. Fox, K.L. Miller et al.
|
775
|
+
| Correspondence of the brain's functional architecture during activation and rest
|
776
|
+
| Proc. Natl. Acad. Sci. U.S.A. 106 (31) 13040-13045 (2009)
|
777
|
+
| https://doi.org/10.1073/pnas.0905267106
|
778
|
+
|
779
|
+
|
746
780
|
..
|
747
781
|
helpful site for creating tables: https://rest-sphinx-memo.readthedocs.io/en/latest/ReST.html#tables
|
@@ -0,0 +1 @@
|
|
1
|
+
:func:`.get_data`, :func:`.load_data`, :func:`.list_data`, :func:`.register_data` and :func:`.deregister_data` now support ``"maps"`` as a valid argument for ``kind`` by `Synchon Mandal`_
|
@@ -0,0 +1 @@
|
|
1
|
+
Introduce :class:`.MapsRegistry` to centralise probabilistic atlas (maps) data management by `Synchon Mandal`_
|
@@ -0,0 +1 @@
|
|
1
|
+
Constrain ``templateflow`` version to ``>=23.0.0,<25.0.0`` by `Synchon Mandal`_
|
@@ -0,0 +1,140 @@
|
|
1
|
+
.. include:: ../links.inc
|
2
|
+
|
3
|
+
.. _adding_maps:
|
4
|
+
|
5
|
+
Adding Maps
|
6
|
+
===========
|
7
|
+
|
8
|
+
Maps in ``junifer`` are basically probabilistic atlases. They are differentiated
|
9
|
+
from parcellations for ease of computation and to handle edge cases in a sane manner.
|
10
|
+
Before you start adding your own maps, check whether ``junifer`` has
|
11
|
+
the map(s) :ref:`in-built already <builtin>`. Perhaps, what is available
|
12
|
+
there will suffice to achieve your goals. However, of course ``junifer`` will not
|
13
|
+
have every map(s) available that you may want to use, and if so, it will
|
14
|
+
be nice to be able to add it yourself using a format that ``junifer`` understands.
|
15
|
+
|
16
|
+
Similarly, you may even be interested in creating your own custom maps
|
17
|
+
and then adding them to ``junifer``, so you can use ``junifer`` to obtain
|
18
|
+
different Markers to assess and validate your own maps. So, how can you do
|
19
|
+
this?
|
20
|
+
|
21
|
+
Since both of these use-cases are quite common, and not being able to use your
|
22
|
+
favourite map(s) is of course quite a buzzkill, ``junifer`` actually
|
23
|
+
provides the easy-to-use :func:`.register_data` function to do just that.
|
24
|
+
Let's try to understand the API reference and then use this function to register our
|
25
|
+
own map(s).
|
26
|
+
|
27
|
+
From the API reference, we can see that it has 3 positional arguments:
|
28
|
+
|
29
|
+
* ``kind``
|
30
|
+
* ``name``
|
31
|
+
* ``space``
|
32
|
+
|
33
|
+
as well as one optional keyword argument: ``overwrite``.
|
34
|
+
As the ``kind`` needs to be ``"maps"``, we can check
|
35
|
+
``MapsRegistry.register`` for keyword arguments to be passed:
|
36
|
+
|
37
|
+
* ``maps_path``
|
38
|
+
* ``maps_labels``
|
39
|
+
|
40
|
+
The ``name`` of the map(s) is up to you and will be the name that
|
41
|
+
``junifer`` will use to refer to this particular maps. You can think of
|
42
|
+
this as being similar to a key in a Python dictionary, i.e. a key that is used to
|
43
|
+
obtain and operate on the actual maps data. This ``name`` must always
|
44
|
+
be a string. For example, we could call our map(s)
|
45
|
+
``"my_custom_maps"`` (Note, that in a real-world use case this is
|
46
|
+
likely not a good name, and you should try to choose a meaningful name that
|
47
|
+
conveys as much relevant information about your maps as necessary).
|
48
|
+
|
49
|
+
The ``maps_path`` must be a ``str`` or ``Path`` object indicating a
|
50
|
+
path to a valid 4D NIfTI image, which contains floating-point labels indicating the
|
51
|
+
individual regions-of-interest (ROIs) of your map(s).
|
52
|
+
|
53
|
+
We also want to make sure that we can associate each label with
|
54
|
+
a human readable name (i.e. the name for each ROI). This serves naming the
|
55
|
+
features that maps-based markers produce in an unambiguous way, such
|
56
|
+
that a user can easily identify which ROIs were used to produce a specific
|
57
|
+
feature (multiple ROIs, because some features consist of information from two
|
58
|
+
or more ROIs, as for example in functional connectivity). Therefore, we provide
|
59
|
+
junifer with a list of strings, that contains the names for each ROI. In this
|
60
|
+
list, the label at the i-th position indicates the i-th index in the 4th dimension
|
61
|
+
of the NIfTI image.
|
62
|
+
|
63
|
+
Lastly, we specify the ``space`` that the map(s) is in, for example,
|
64
|
+
``"MNI152NLin6Asym"`` or ``"native"`` (scanner-native space).
|
65
|
+
|
66
|
+
Step 1: Prepare code to register a maps
|
67
|
+
---------------------------------------
|
68
|
+
|
69
|
+
Now we know everything that we need to know to make sure ``junifer`` can use our
|
70
|
+
own map(s) to compute any maps-based Marker. A simple example could
|
71
|
+
look like this:
|
72
|
+
|
73
|
+
.. code-block:: python
|
74
|
+
|
75
|
+
from pathlib import Path
|
76
|
+
|
77
|
+
import numpy as np
|
78
|
+
from junifer.data import register_data
|
79
|
+
|
80
|
+
|
81
|
+
# these are of course just example paths, replace it with your own:
|
82
|
+
path_to_maps = (
|
83
|
+
Path.cwd() / "my_custom_maps.nii.gz"
|
84
|
+
)
|
85
|
+
path_to_labels = (
|
86
|
+
Path.cwd() / "my_custom_maps_labels.txt"
|
87
|
+
)
|
88
|
+
|
89
|
+
my_labels = list(np.loadtxt(path_to_labels, dtype=str))
|
90
|
+
|
91
|
+
register_data(
|
92
|
+
kind="maps",
|
93
|
+
name="my_custom_maps",
|
94
|
+
maps_path=path_to_maps,
|
95
|
+
maps_labels=my_labels,
|
96
|
+
space="MNI152NLin6Asym",
|
97
|
+
)
|
98
|
+
|
99
|
+
We can run this code and it seems to work, however, how can we actually
|
100
|
+
include the custom map(s) in a ``junifer`` pipeline using a
|
101
|
+
:ref:`code-less YAML configuration <codeless>`?
|
102
|
+
|
103
|
+
Step 2: Add maps registration to the YAML file
|
104
|
+
----------------------------------------------
|
105
|
+
|
106
|
+
In order to use the maps in a ``junifer`` pipeline configured by a YAML
|
107
|
+
file, we can save the above code in a Python file, say
|
108
|
+
``registering_my_maps.py``. We can then simply add this file using the
|
109
|
+
``with`` keyword provided by ``junifer``:
|
110
|
+
|
111
|
+
.. code-block:: yaml
|
112
|
+
|
113
|
+
with:
|
114
|
+
- registering_my_maps.py
|
115
|
+
|
116
|
+
Afterwards continue configuring the rest of the pipeline in this YAML file, and
|
117
|
+
you will be able to use this maps using the name you gave the
|
118
|
+
maps when registering it. For example, we can add a
|
119
|
+
``MapsAggregation`` Marker to demonstrate how this can be done:
|
120
|
+
|
121
|
+
.. code-block:: yaml
|
122
|
+
|
123
|
+
markers:
|
124
|
+
- name: CustomMaps_mean
|
125
|
+
kind: MapsAggregation
|
126
|
+
maps: my_custom_maps
|
127
|
+
method: mean
|
128
|
+
|
129
|
+
Now, you can simply use this YAML file to run your pipeline.
|
130
|
+
|
131
|
+
.. important::
|
132
|
+
|
133
|
+
It's important to keep in mind that if the paths given in
|
134
|
+
``registering_my_maps.py`` are relative paths, they will be interpreted
|
135
|
+
by ``junifer`` as relative to the jobs directory (i.e. where ``junifer`` will
|
136
|
+
create submit files, logs directory and so on). For simplicity, you may just
|
137
|
+
want to use absolute paths to avoid confusion, yet using relative paths is
|
138
|
+
likely a better way to make your pipeline directory / repository more portable
|
139
|
+
and therefore more reproducible for others. Really, once you understand how
|
140
|
+
these paths are interpreted by ``junifer``, it is quite easy.
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# file generated by setuptools-scm
|
2
|
+
# don't change, don't track in version control
|
3
|
+
|
4
|
+
__all__ = [
|
5
|
+
"__version__",
|
6
|
+
"__version_tuple__",
|
7
|
+
"version",
|
8
|
+
"version_tuple",
|
9
|
+
"__commit_id__",
|
10
|
+
"commit_id",
|
11
|
+
]
|
12
|
+
|
13
|
+
TYPE_CHECKING = False
|
14
|
+
if TYPE_CHECKING:
|
15
|
+
from typing import Tuple
|
16
|
+
from typing import Union
|
17
|
+
|
18
|
+
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
19
|
+
COMMIT_ID = Union[str, None]
|
20
|
+
else:
|
21
|
+
VERSION_TUPLE = object
|
22
|
+
COMMIT_ID = object
|
23
|
+
|
24
|
+
version: str
|
25
|
+
__version__: str
|
26
|
+
__version_tuple__: VERSION_TUPLE
|
27
|
+
version_tuple: VERSION_TUPLE
|
28
|
+
commit_id: COMMIT_ID
|
29
|
+
__commit_id__: COMMIT_ID
|
30
|
+
|
31
|
+
__version__ = version = '0.0.7.dev153'
|
32
|
+
__version_tuple__ = version_tuple = (0, 0, 7, 'dev153')
|
33
|
+
|
34
|
+
__commit_id__ = commit_id = 'g42a09b3a7'
|
@@ -3,6 +3,7 @@ __all__ = [
|
|
3
3
|
"CoordinatesRegistry",
|
4
4
|
"DataDispatcher",
|
5
5
|
"ParcellationRegistry",
|
6
|
+
"MapsRegistry",
|
6
7
|
"MaskRegistry",
|
7
8
|
"get_data",
|
8
9
|
"list_data",
|
@@ -17,6 +18,7 @@ __all__ = [
|
|
17
18
|
from .pipeline_data_registry_base import BasePipelineDataRegistry
|
18
19
|
from .coordinates import CoordinatesRegistry
|
19
20
|
from .parcellations import ParcellationRegistry
|
21
|
+
from .maps import MapsRegistry
|
20
22
|
from .masks import MaskRegistry
|
21
23
|
|
22
24
|
from ._dispatch import (
|
@@ -17,6 +17,7 @@ from numpy.typing import ArrayLike
|
|
17
17
|
|
18
18
|
from ..utils import raise_error
|
19
19
|
from .coordinates import CoordinatesRegistry
|
20
|
+
from .maps import MapsRegistry
|
20
21
|
from .masks import MaskRegistry
|
21
22
|
from .parcellations import ParcellationRegistry
|
22
23
|
from .pipeline_data_registry_base import BasePipelineDataRegistry
|
@@ -52,6 +53,7 @@ class DataDispatcher(MutableMapping):
|
|
52
53
|
{
|
53
54
|
"coordinates": CoordinatesRegistry,
|
54
55
|
"parcellation": ParcellationRegistry,
|
56
|
+
"maps": MapsRegistry,
|
55
57
|
"mask": MaskRegistry,
|
56
58
|
}
|
57
59
|
)
|
@@ -118,14 +120,14 @@ def get_data(
|
|
118
120
|
extra_input: Optional[dict[str, Any]] = None,
|
119
121
|
) -> Union[
|
120
122
|
tuple[ArrayLike, list[str]], # coordinates
|
121
|
-
tuple["Nifti1Image", list[str]], # parcellation
|
123
|
+
tuple["Nifti1Image", list[str]], # parcellation / maps
|
122
124
|
"Nifti1Image", # mask
|
123
125
|
]:
|
124
126
|
"""Get tailored ``kind`` for ``target_data``.
|
125
127
|
|
126
128
|
Parameters
|
127
129
|
----------
|
128
|
-
kind : {"coordinates", "parcellation", "mask"}
|
130
|
+
kind : {"coordinates", "parcellation", "mask", "maps"}
|
129
131
|
Kind of data to fetch and apply.
|
130
132
|
names : str or dict or list of str / dict
|
131
133
|
The registered name(s) of the data.
|
@@ -166,7 +168,7 @@ def list_data(kind: str) -> list[str]:
|
|
166
168
|
|
167
169
|
Parameters
|
168
170
|
----------
|
169
|
-
kind : {"coordinates", "parcellation", "mask"}
|
171
|
+
kind : {"coordinates", "parcellation", "mask", "maps"}
|
170
172
|
Kind of data registry to list.
|
171
173
|
|
172
174
|
Returns
|
@@ -195,7 +197,9 @@ def load_data(
|
|
195
197
|
**kwargs,
|
196
198
|
) -> Union[
|
197
199
|
tuple[ArrayLike, list[str], str], # coordinates
|
198
|
-
tuple[
|
200
|
+
tuple[
|
201
|
+
Optional["Nifti1Image"], list[str], Path, str
|
202
|
+
], # parcellation / maps
|
199
203
|
tuple[
|
200
204
|
Optional[Union["Nifti1Image", Callable]], Optional[Path], str
|
201
205
|
], # mask
|
@@ -204,7 +208,7 @@ def load_data(
|
|
204
208
|
|
205
209
|
Parameters
|
206
210
|
----------
|
207
|
-
kind : {"coordinates", "parcellation", "mask"}
|
211
|
+
kind : {"coordinates", "parcellation", "mask", "maps"}
|
208
212
|
Kind of data to load.
|
209
213
|
name : str
|
210
214
|
The registered name of the data.
|
@@ -244,7 +248,7 @@ def register_data(
|
|
244
248
|
|
245
249
|
Parameters
|
246
250
|
----------
|
247
|
-
kind : {"coordinates", "parcellation", "mask"}
|
251
|
+
kind : {"coordinates", "parcellation", "mask", "maps"}
|
248
252
|
Kind of data to register.
|
249
253
|
name : str
|
250
254
|
The name to register.
|
@@ -277,7 +281,7 @@ def deregister_data(kind: str, name: str) -> None:
|
|
277
281
|
|
278
282
|
Parameters
|
279
283
|
----------
|
280
|
-
kind : {"coordinates", "parcellation", "mask"}
|
284
|
+
kind : {"coordinates", "parcellation", "mask", "maps"}
|
281
285
|
Kind of data to register.
|
282
286
|
name : str
|
283
287
|
The name to de-register.
|
@@ -0,0 +1,156 @@
|
|
1
|
+
"""Provide class for maps space warping via ANTs."""
|
2
|
+
|
3
|
+
# Authors: Synchon Mandal <s.mandal@fz-juelich.de>
|
4
|
+
# License: AGPL
|
5
|
+
|
6
|
+
import uuid
|
7
|
+
from typing import TYPE_CHECKING, Any, Optional
|
8
|
+
|
9
|
+
import nibabel as nib
|
10
|
+
|
11
|
+
from ...pipeline import WorkDirManager
|
12
|
+
from ...utils import logger, raise_error, run_ext_cmd
|
13
|
+
from ..template_spaces import get_template, get_xfm
|
14
|
+
|
15
|
+
|
16
|
+
if TYPE_CHECKING:
|
17
|
+
from nibabel.nifti1 import Nifti1Image
|
18
|
+
|
19
|
+
|
20
|
+
__all__ = ["ANTsMapsWarper"]
|
21
|
+
|
22
|
+
|
23
|
+
class ANTsMapsWarper:
|
24
|
+
"""Class for maps space warping via ANTs.
|
25
|
+
|
26
|
+
This class uses ANTs ``antsApplyTransforms`` for transformation.
|
27
|
+
|
28
|
+
"""
|
29
|
+
|
30
|
+
def warp(
|
31
|
+
self,
|
32
|
+
maps_name: str,
|
33
|
+
maps_img: "Nifti1Image",
|
34
|
+
src: str,
|
35
|
+
dst: str,
|
36
|
+
target_data: dict[str, Any],
|
37
|
+
warp_data: Optional[dict[str, Any]],
|
38
|
+
) -> "Nifti1Image":
|
39
|
+
"""Warp ``maps_img`` to correct space.
|
40
|
+
|
41
|
+
Parameters
|
42
|
+
----------
|
43
|
+
maps_name : str
|
44
|
+
The name of the maps.
|
45
|
+
maps_img : nibabel.nifti1.Nifti1Image
|
46
|
+
The maps image to transform.
|
47
|
+
src : str
|
48
|
+
The data type or template space to warp from.
|
49
|
+
It should be empty string if ``dst="T1w"``.
|
50
|
+
dst : str
|
51
|
+
The data type or template space to warp to.
|
52
|
+
`"T1w"` is the only allowed data type and it uses the resampled T1w
|
53
|
+
found in ``target_data.reference``. The ``"reference"``
|
54
|
+
key is added if the :class:`.SpaceWarper` is used or if the
|
55
|
+
data is provided in native space.
|
56
|
+
target_data : dict
|
57
|
+
The corresponding item of the data object to which the maps
|
58
|
+
will be applied.
|
59
|
+
warp_data : dict or None
|
60
|
+
The warp data item of the data object. The value is unused if
|
61
|
+
``dst!="T1w"``.
|
62
|
+
|
63
|
+
Returns
|
64
|
+
-------
|
65
|
+
nibabel.nifti1.Nifti1Image
|
66
|
+
The transformed maps image.
|
67
|
+
|
68
|
+
Raises
|
69
|
+
------
|
70
|
+
ValueError
|
71
|
+
If ``warp_data`` is None when ``dst="T1w"``.
|
72
|
+
|
73
|
+
"""
|
74
|
+
# Create element-scoped tempdir so that warped maps is
|
75
|
+
# available later as nibabel stores file path reference for
|
76
|
+
# loading on computation
|
77
|
+
prefix = (
|
78
|
+
f"ants_maps_warper_{maps_name}"
|
79
|
+
f"{'' if not src else f'_from_{src}'}_to_{dst}_"
|
80
|
+
f"{uuid.uuid1()}"
|
81
|
+
)
|
82
|
+
element_tempdir = WorkDirManager().get_element_tempdir(
|
83
|
+
prefix=prefix,
|
84
|
+
)
|
85
|
+
|
86
|
+
# Native space warping
|
87
|
+
if dst == "native": # pragma: no cover
|
88
|
+
# Warp data check
|
89
|
+
if warp_data is None:
|
90
|
+
raise_error("No `warp_data` provided")
|
91
|
+
if "reference" not in target_data:
|
92
|
+
raise_error("No `reference` provided")
|
93
|
+
if "path" not in target_data["reference"]:
|
94
|
+
raise_error("No `path` provided in `reference`")
|
95
|
+
|
96
|
+
logger.debug("Using ANTs for maps transformation")
|
97
|
+
|
98
|
+
# Save existing maps image to a tempfile
|
99
|
+
prewarp_maps_path = element_tempdir / "prewarp_maps.nii.gz"
|
100
|
+
nib.save(maps_img, prewarp_maps_path)
|
101
|
+
|
102
|
+
# Create a tempfile for warped output
|
103
|
+
warped_maps_path = element_tempdir / "maps_warped.nii.gz"
|
104
|
+
# Set antsApplyTransforms command
|
105
|
+
apply_transforms_cmd = [
|
106
|
+
"antsApplyTransforms",
|
107
|
+
"-d 3",
|
108
|
+
"-e 3",
|
109
|
+
"-n LanczosWindowedSinc",
|
110
|
+
f"-i {prewarp_maps_path.resolve()}",
|
111
|
+
# use resampled reference
|
112
|
+
f"-r {target_data['reference']['path'].resolve()}",
|
113
|
+
f"-t {warp_data['path'].resolve()}",
|
114
|
+
f"-o {warped_maps_path.resolve()}",
|
115
|
+
]
|
116
|
+
# Call antsApplyTransforms
|
117
|
+
run_ext_cmd(name="antsApplyTransforms", cmd=apply_transforms_cmd)
|
118
|
+
|
119
|
+
# Template space warping
|
120
|
+
else:
|
121
|
+
logger.debug(f"Using ANTs to warp maps from {src} to {dst}")
|
122
|
+
|
123
|
+
# Get xfm file
|
124
|
+
xfm_file_path = get_xfm(src=src, dst=dst)
|
125
|
+
# Get template space image
|
126
|
+
template_space_img = get_template(
|
127
|
+
space=dst,
|
128
|
+
target_img=maps_img,
|
129
|
+
extra_input=None,
|
130
|
+
)
|
131
|
+
# Save template to a tempfile
|
132
|
+
template_space_img_path = element_tempdir / f"{dst}_T1w.nii.gz"
|
133
|
+
nib.save(template_space_img, template_space_img_path)
|
134
|
+
|
135
|
+
# Save existing maps image to a tempfile
|
136
|
+
prewarp_maps_path = element_tempdir / "prewarp_maps.nii.gz"
|
137
|
+
nib.save(maps_img, prewarp_maps_path)
|
138
|
+
|
139
|
+
# Create a tempfile for warped output
|
140
|
+
warped_maps_path = element_tempdir / "maps_warped.nii.gz"
|
141
|
+
# Set antsApplyTransforms command
|
142
|
+
apply_transforms_cmd = [
|
143
|
+
"antsApplyTransforms",
|
144
|
+
"-d 3",
|
145
|
+
"-e 3",
|
146
|
+
"-n LanczosWindowedSinc",
|
147
|
+
f"-i {prewarp_maps_path.resolve()}",
|
148
|
+
f"-r {template_space_img_path.resolve()}",
|
149
|
+
f"-t {xfm_file_path.resolve()}",
|
150
|
+
f"-o {warped_maps_path.resolve()}",
|
151
|
+
]
|
152
|
+
# Call antsApplyTransforms
|
153
|
+
run_ext_cmd(name="antsApplyTransforms", cmd=apply_transforms_cmd)
|
154
|
+
|
155
|
+
# Load nifti
|
156
|
+
return nib.load(warped_maps_path)
|