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