junifer 0.0.7.dev132__tar.gz → 0.0.7.dev169__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.dev132 → junifer-0.0.7.dev169}/PKG-INFO +2 -2
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/conda-env.yml +1 -1
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/builtin.rst +67 -7
- junifer-0.0.7.dev169/docs/changes/newsfragments/458.change +1 -0
- junifer-0.0.7.dev169/docs/changes/newsfragments/458.feature +1 -0
- junifer-0.0.7.dev169/docs/changes/newsfragments/458.misc +1 -0
- junifer-0.0.7.dev169/docs/changes/newsfragments/460.feature +1 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/index.rst +1 -0
- junifer-0.0.7.dev169/docs/extending/maps.rst +139 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/_version.py +3 -3
- junifer-0.0.7.dev169/junifer/conftest.py +57 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/__init__.pyi +2 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/_dispatch.py +11 -7
- junifer-0.0.7.dev169/junifer/data/maps/__init__.py +9 -0
- junifer-0.0.7.dev169/junifer/data/maps/__init__.pyi +5 -0
- junifer-0.0.7.dev169/junifer/data/maps/_ants_maps_warper.py +156 -0
- junifer-0.0.7.dev169/junifer/data/maps/_fsl_maps_warper.py +85 -0
- junifer-0.0.7.dev169/junifer/data/maps/_maps.py +446 -0
- junifer-0.0.7.dev169/junifer/data/maps/tests/test_maps.py +255 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/masks/_masks.py +3 -2
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/parcellations/_parcellations.py +1 -1
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/__init__.pyi +12 -2
- junifer-0.0.7.dev169/junifer/markers/falff/__init__.pyi +5 -0
- junifer-0.0.7.dev169/junifer/markers/falff/falff_maps.py +151 -0
- junifer-0.0.7.dev169/junifer/markers/falff/tests/test_falff_maps.py +167 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/__init__.pyi +4 -0
- junifer-0.0.7.dev169/junifer/markers/functional_connectivity/edge_functional_connectivity_maps.py +115 -0
- junifer-0.0.7.dev169/junifer/markers/functional_connectivity/functional_connectivity_maps.py +95 -0
- junifer-0.0.7.dev169/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_maps.py +74 -0
- junifer-0.0.7.dev169/junifer/markers/functional_connectivity/tests/test_functional_connectivity_maps.py +110 -0
- junifer-0.0.7.dev169/junifer/markers/maps_aggregation.py +201 -0
- junifer-0.0.7.dev169/junifer/markers/reho/__init__.pyi +5 -0
- junifer-0.0.7.dev169/junifer/markers/reho/reho_maps.py +161 -0
- junifer-0.0.7.dev169/junifer/markers/reho/tests/test_reho_maps.py +135 -0
- junifer-0.0.7.dev169/junifer/markers/temporal_snr/__init__.pyi +5 -0
- junifer-0.0.7.dev169/junifer/markers/temporal_snr/temporal_snr_maps.py +80 -0
- junifer-0.0.7.dev169/junifer/markers/temporal_snr/tests/test_temporal_snr_maps.py +67 -0
- junifer-0.0.7.dev169/junifer/markers/tests/test_maps_aggregation.py +430 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/typing/_typing.py +1 -3
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer.egg-info/PKG-INFO +2 -2
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer.egg-info/SOURCES.txt +23 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer.egg-info/requires.txt +1 -1
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/pyproject.toml +1 -1
- junifer-0.0.7.dev132/junifer/conftest.py +0 -25
- junifer-0.0.7.dev132/junifer/markers/falff/__init__.pyi +0 -4
- junifer-0.0.7.dev132/junifer/markers/reho/__init__.pyi +0 -4
- junifer-0.0.7.dev132/junifer/markers/temporal_snr/__init__.pyi +0 -4
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.dockerignore +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/dependabot.yml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/pull_request_template.md +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/workflows/ci-docs.yml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/workflows/ci.yml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/workflows/docker-ci-publish.yml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/workflows/docker-docs-publish.yml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/workflows/docs-preview.yml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/workflows/docs.yml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/workflows/lint.yml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/workflows/publish.yml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.gitignore +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.gitmodules +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.pre-commit-config.yaml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/AUTHORS.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/Dockerfile-ci +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/Dockerfile-docs +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/LICENSE.md +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/README.md +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/codecov.yml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/Makefile +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/_static/css/custom.css +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/_static/js/custom.js +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/_templates/versions.html +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/api.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/cli.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/configs.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/data.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/datagrabbers.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/datareaders.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/index.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/markers.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/nilearn.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/onthefly.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/pipeline.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/preprocessing.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/stats.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/storage.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/testing.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/utils.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/contributors.inc +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/.gitignore +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/333.enh +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/429.change +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/429.enh +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/432.feature +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/441.misc +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/443.feature +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/444.bugfix +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/450.doc +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/450.feature +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/451.doc +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/451.feature +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/452.doc +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/452.feature +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/456.misc +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/457.misc +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/conf.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/contribution.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/coordinates.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/data_dump_asset.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/data_registries.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/data_types.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/datagrabber.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/dependencies.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/extension.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/marker.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/masks.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/parcellations.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/plugins.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/preprocessor.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/faq.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/help.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/images/junifer_logo.png +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/index.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/installation.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/links.inc +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/maintaining.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/redirect.html +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/starting.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/understanding/data.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/understanding/datagrabber.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/understanding/datareader.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/understanding/index.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/understanding/marker.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/understanding/pipeline.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/understanding/preprocess.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/understanding/storage.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/using/codeless.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/using/configuring.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/using/dumping.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/using/index.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/using/masks.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/using/queueing.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/using/running.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/whats_new.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/README.rst +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/norun_hcpfc_pearson.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/norun_ukbvm_gmd.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/run_compute_parcel_mean.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/run_datagrabber_bids_datalad.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/run_ets_rss_marker.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/run_junifer_julearn.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/run_run_gmd_mean.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/yamls/gmd_mean.yaml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/yamls/ukb_gmd_mean.yaml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/ignore_words.txt +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/decorators.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/functions.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/queue_context/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/queue_context/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/queue_context/htcondor_adapter.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/queue_context/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/queue_context/queue_context_adapter.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/afni/3dRSFC +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/afni/3dReHo +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/afni/afni +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/afni/run_afni_docker.sh +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/ants/ResampleImage +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/ants/antsApplyTransforms +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/ants/run_ants_docker.sh +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/freesurfer/mri_binarize +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/freesurfer/mri_mc +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/freesurfer/mri_pretess +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/freesurfer/mris_convert +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/fsl/applywarp +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/fsl/flirt +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/fsl/img2imgcoord +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/fsl/std2imgcoord +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/run_conda.bash +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/run_conda.zsh +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/run_venv.bash +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/run_venv.zsh +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/tests/test_decorators.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/tests/test_functions.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/cli.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/parser.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/tests/test_cli.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/tests/test_cli_utils.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/tests/test_parser.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/utils.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/coordinates/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/coordinates/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/coordinates/_ants_coordinates_warper.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/coordinates/_coordinates.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/coordinates/_fsl_coordinates_warper.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/masks/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/masks/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/masks/_ants_mask_warper.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/masks/_fsl_mask_warper.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/masks/tests/test_masks.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/parcellations/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/parcellations/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/parcellations/_ants_parcellation_warper.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/parcellations/_fsl_parcellation_warper.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/pipeline_data_registry_base.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/template_spaces.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/tests/test_data_utils.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/tests/test_dispatch.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/tests/test_template_spaces.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/utils.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/aomic/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/aomic/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/aomic/id1000.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/aomic/piop1.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/aomic/piop2.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/aomic/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/base.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/datalad_base.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/hcp1200/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/hcp1200/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/multiple.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/pattern.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/pattern_datalad.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/pattern_validation_mixin.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/tests/test_base.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/tests/test_multiple.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/tests/test_pattern.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datareader/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datareader/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datareader/default.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datareader/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datareader/tests/test_default_reader.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/h5io/h5io/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/h5io/h5io/_h5io.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/h5io/h5io/_version.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/h5io/h5io/chunked_array.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/h5io/h5io/chunked_list.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/nilearn/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/nilearn/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/nilearn/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/base.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/brainprint.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/complexity_base.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/hurst_exponent.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/perm_entropy.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/range_entropy.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/range_entropy_auc.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/sample_entropy.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/ets_rss.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/falff/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/falff/_afni_falff.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/falff/_junifer_falff.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/falff/falff_base.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/falff/falff_parcels.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/falff/falff_spheres.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/falff/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/parcel_aggregation.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/reho/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/reho/_afni_reho.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/reho/_junifer_reho.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/reho/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/reho/reho_base.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/reho/reho_parcels.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/reho/reho_spheres.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/sphere_aggregation.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/temporal_snr/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/temporal_snr/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/tests/test_brainprint.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/tests/test_ets_rss.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/tests/test_marker_utils.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/tests/test_markers_base.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/utils.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/onthefly/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/onthefly/_brainprint.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/onthefly/read_transform.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/onthefly/tests/test_read_transform.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/_data_object_dumper.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/marker_collection.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/pipeline_component_registry.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/pipeline_step_mixin.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/tests/test_data_object_dumper.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/tests/test_marker_collection.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/update_meta_mixin.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/utils.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/workdir_manager.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/_temporal_filter.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/_temporal_slicer.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/base.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/confounds/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/confounds/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/confounds/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/smoothing/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/smoothing/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/smoothing/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/smoothing/smoothing.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/tests/test_temporal_filter.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/tests/test_temporal_slicer.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/warping/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/warping/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/warping/_ants_warper.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/warping/_fsl_warper.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/warping/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/warping/space_warper.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/stats.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/base.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/hdf5.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/pandas_base.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/sqlite.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/tests/test_hdf5.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/tests/test_pandas_base.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/tests/test_sqlite.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/tests/test_storage_base.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/tests/test_utils.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/utils.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/datagrabbers.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/registry.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/tests/test_testing_registry.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/utils.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/tests/test_main.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/tests/test_stats.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/typing/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/typing/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/__init__.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/__init__.pyi +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/_config.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/_yaml.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/fs.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/helpers.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/logging.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/py.typed +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/singleton.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/tests/test_config.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/tests/test_fs.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/tests/test_helpers.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/tests/test_logging.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer.egg-info/dependency_links.txt +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer.egg-info/entry_points.txt +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer.egg-info/top_level.txt +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/setup.cfg +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/setup.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/tools/create_aomic1000_example_dataset.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/tools/create_aomicpiop1_example_dataset.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/tools/create_aomicpiop2_example_dataset.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/tools/create_bids_example_dataset.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/tools/create_bids_example_dataset_sessions.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/tools/create_hcp1200_example_dataset.py +0 -0
- {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/tox.ini +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: junifer
|
3
|
-
Version: 0.0.7.
|
3
|
+
Version: 0.0.7.dev169
|
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"
|
@@ -209,22 +209,30 @@ Available
|
|
209
209
|
- Apply parcellation and perform aggregation function
|
210
210
|
- Done
|
211
211
|
- 0.0.1
|
212
|
-
* - :class:`.
|
213
|
-
-
|
212
|
+
* - :class:`.SphereAggregation`
|
213
|
+
- Spherical aggregation using mean
|
214
214
|
- Done
|
215
215
|
- 0.0.1
|
216
|
-
* - :class:`.
|
217
|
-
-
|
216
|
+
* - :class:`.MapsAggregation`
|
217
|
+
- Apply maps (probabilistic atlas) and extract mean time series per region
|
218
218
|
- Done
|
219
|
-
- 0.0.
|
220
|
-
* - :class:`.
|
221
|
-
-
|
219
|
+
- 0.0.7
|
220
|
+
* - :class:`.FunctionalConnectivityParcels`
|
221
|
+
- Compute functional connectivity over parcellation
|
222
222
|
- Done
|
223
223
|
- 0.0.1
|
224
224
|
* - :class:`.FunctionalConnectivitySpheres`
|
225
225
|
- Compute functional connectivity over spheres placed on coordinates
|
226
226
|
- Done
|
227
227
|
- 0.0.1
|
228
|
+
* - :class:`.FunctionalConnectivityMaps`
|
229
|
+
- Compute functional connectivity over maps (probabilistic atlas)
|
230
|
+
- Done
|
231
|
+
- 0.0.7
|
232
|
+
* - :class:`.CrossParcellationFC`
|
233
|
+
- Compute functional connectivity across two parcellations
|
234
|
+
- Done
|
235
|
+
- 0.0.1
|
228
236
|
* - :class:`.RSSETSMarker`
|
229
237
|
- Compute root sum of squares of edgewise timeseries
|
230
238
|
- Done
|
@@ -237,6 +245,10 @@ Available
|
|
237
245
|
- Calculate regional homogeneity over spheres placed on coordinates
|
238
246
|
- Done
|
239
247
|
- 0.0.1
|
248
|
+
* - :class:`.ReHoMaps`
|
249
|
+
- Calculate regional homogeneity over maps (probabilistic atlas)
|
250
|
+
- Done
|
251
|
+
- 0.0.7
|
240
252
|
* - :class:`.ALFFParcels`
|
241
253
|
- Calculate (f)ALFF and aggregate using parcellations
|
242
254
|
- Done
|
@@ -245,6 +257,10 @@ Available
|
|
245
257
|
- Calculate (f)ALFF and aggregate using spheres placed on coordinates
|
246
258
|
- Done
|
247
259
|
- 0.0.1
|
260
|
+
* - :class:`.ALFFMaps`
|
261
|
+
- Calculate (f)ALFF and aggregate using maps (probabilistic atlas)
|
262
|
+
- Done
|
263
|
+
- 0.0.7
|
248
264
|
* - :class:`.EdgeCentricFCParcels`
|
249
265
|
- | Calculate edge-centric functional connectivity over parcellation, as
|
250
266
|
| found in
|
@@ -257,6 +273,12 @@ Available
|
|
257
273
|
| `Jo et al. (2021) <https://doi.org/10.1016/j.neuroimage.2021.118204>`_
|
258
274
|
- Done
|
259
275
|
- 0.0.2
|
276
|
+
* - :class:`.EdgeCentricFCMaps`
|
277
|
+
- | Calculate edge-centric functional connectivity over maps (probabilistic atlas),
|
278
|
+
| as found in
|
279
|
+
| `Jo et al. (2021) <https://doi.org/10.1016/j.neuroimage.2021.118204>`_
|
280
|
+
- Done
|
281
|
+
- 0.0.7
|
260
282
|
* - :class:`.TemporalSNRParcels`
|
261
283
|
- Calculate temporal signal-to-noise ratio using parcellations
|
262
284
|
- Done
|
@@ -266,6 +288,10 @@ Available
|
|
266
288
|
| coordinates
|
267
289
|
- Done
|
268
290
|
- 0.0.2
|
291
|
+
* - :class:`.TemporalSNRMaps`
|
292
|
+
- Calculate temporal signal-to-noise ratio using maps (probabilistic atlas)
|
293
|
+
- Done
|
294
|
+
- 0.0.7
|
269
295
|
* - :class:`.HurstExponent`
|
270
296
|
- | Calculate Hurst exponent of a time series as found in
|
271
297
|
| `Peng et al. (1995) <https://doi.org/10.1063/1.166141>`_
|
@@ -743,5 +769,39 @@ Available
|
|
743
769
|
Planned
|
744
770
|
~~~~~~~
|
745
771
|
|
772
|
+
|
773
|
+
Maps
|
774
|
+
----
|
775
|
+
|
776
|
+
..
|
777
|
+
Provide a list of the maps that are implemented or planned.
|
778
|
+
|
779
|
+
Version added: The junifer version in which the maps was added.
|
780
|
+
|
781
|
+
Available
|
782
|
+
~~~~~~~~~
|
783
|
+
|
784
|
+
.. list-table::
|
785
|
+
:widths: auto
|
786
|
+
:header-rows: 1
|
787
|
+
|
788
|
+
* - Name
|
789
|
+
- Options
|
790
|
+
- Keys
|
791
|
+
- Template Spaces
|
792
|
+
- Version Added
|
793
|
+
- Publication
|
794
|
+
* - Smith
|
795
|
+
- ``components``, ``dimension``
|
796
|
+
- | ``Smith_rsn_10``, ``Smith_rsn_20``, ``Smith_rsn_70``,
|
797
|
+
| ``Smith_bm_10``, ``Smith_bm_20``, ``Smith_bm_70``
|
798
|
+
- ``MNI152NLin6Asym``
|
799
|
+
- 0.0.7
|
800
|
+
- | S.M. Smith, P.T. Fox, K.L. Miller et al.
|
801
|
+
| Correspondence of the brain's functional architecture during activation and rest
|
802
|
+
| Proc. Natl. Acad. Sci. U.S.A. 106 (31) 13040-13045 (2009)
|
803
|
+
| https://doi.org/10.1073/pnas.0905267106
|
804
|
+
|
805
|
+
|
746
806
|
..
|
747
807
|
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 @@
|
|
1
|
+
Introduce :class:`.MapsAggregation`, :class:`.FunctionalConnectivityMaps`, :class:`.EdgeCentricFCMaps`, :class:`.ReHoMaps`, :class:`.ALFFMaps` and :class:`.TemporalSNRMaps` by `Synchon Mandal`_
|
@@ -0,0 +1,139 @@
|
|
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
|
+
:class:`.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
|
+
|
128
|
+
Now, you can simply use this YAML file to run your pipeline.
|
129
|
+
|
130
|
+
.. important::
|
131
|
+
|
132
|
+
It's important to keep in mind that if the paths given in
|
133
|
+
``registering_my_maps.py`` are relative paths, they will be interpreted
|
134
|
+
by ``junifer`` as relative to the jobs directory (i.e. where ``junifer`` will
|
135
|
+
create submit files, logs directory and so on). For simplicity, you may just
|
136
|
+
want to use absolute paths to avoid confusion, yet using relative paths is
|
137
|
+
likely a better way to make your pipeline directory / repository more portable
|
138
|
+
and therefore more reproducible for others. Really, once you understand how
|
139
|
+
these paths are interpreted by ``junifer``, it is quite easy.
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
28
28
|
commit_id: COMMIT_ID
|
29
29
|
__commit_id__: COMMIT_ID
|
30
30
|
|
31
|
-
__version__ = version = '0.0.7.
|
32
|
-
__version_tuple__ = version_tuple = (0, 0, 7, '
|
31
|
+
__version__ = version = '0.0.7.dev169'
|
32
|
+
__version_tuple__ = version_tuple = (0, 0, 7, 'dev169')
|
33
33
|
|
34
|
-
__commit_id__ = commit_id = '
|
34
|
+
__commit_id__ = commit_id = 'g130238f84'
|
@@ -0,0 +1,57 @@
|
|
1
|
+
"""Provide conftest for pytest."""
|
2
|
+
|
3
|
+
# Authors: Federico Raimondo <f.raimondo@fz-juelich.de>
|
4
|
+
# Synchon Mandal <s.mandal@fz-juelich.de>
|
5
|
+
# License: AGPL
|
6
|
+
|
7
|
+
from pathlib import Path
|
8
|
+
|
9
|
+
import pytest
|
10
|
+
|
11
|
+
from junifer.datagrabber import PatternDataladDataGrabber
|
12
|
+
from junifer.utils.singleton import Singleton
|
13
|
+
|
14
|
+
|
15
|
+
@pytest.fixture(autouse=True)
|
16
|
+
def reset_singletons() -> None:
|
17
|
+
"""Reset all singletons."""
|
18
|
+
to_clean = ["WorkDirManager"]
|
19
|
+
to_remove = [
|
20
|
+
v for k, v in Singleton.instances.items() if k.__name__ in to_clean
|
21
|
+
]
|
22
|
+
Singleton.instances = {
|
23
|
+
k: v
|
24
|
+
for k, v in Singleton.instances.items()
|
25
|
+
if k.__name__ not in to_clean
|
26
|
+
}
|
27
|
+
# Force deleting the singletons
|
28
|
+
for elem in to_remove:
|
29
|
+
del elem
|
30
|
+
|
31
|
+
|
32
|
+
@pytest.fixture
|
33
|
+
def maps_datagrabber(tmp_path: Path) -> PatternDataladDataGrabber:
|
34
|
+
"""Return a PatternDataladDataGrabber for maps testing.
|
35
|
+
|
36
|
+
Parameters
|
37
|
+
----------
|
38
|
+
tmp_path : pathlib.Path
|
39
|
+
The path to the test directory.
|
40
|
+
|
41
|
+
"""
|
42
|
+
dg = PatternDataladDataGrabber(
|
43
|
+
uri="https://github.com/OpenNeuroDatasets/ds005226.git",
|
44
|
+
types=["BOLD"],
|
45
|
+
patterns={
|
46
|
+
"BOLD": {
|
47
|
+
"pattern": (
|
48
|
+
"derivatives/pre-processed_data/space-MNI/{subject}/"
|
49
|
+
"{subject-padded}_task-{task}_run-{run}_space-MNI152NLin6Asym"
|
50
|
+
"_res-2_desc-preproc_bold.nii.gz"
|
51
|
+
),
|
52
|
+
"space": "MNI152NLin6Asym",
|
53
|
+
},
|
54
|
+
},
|
55
|
+
replacements=["subject", "subject-padded", "task", "run"],
|
56
|
+
)
|
57
|
+
return dg
|
@@ -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)
|