junifer 0.0.7.dev47__tar.gz → 0.0.7.dev65__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.dev47 → junifer-0.0.7.dev65}/PKG-INFO +1 -1
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/builtin.rst +4 -0
- junifer-0.0.7.dev65/docs/changes/newsfragments/443.feature +1 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/_version.py +2 -2
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/pipeline_component_registry.py +1 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/__init__.pyi +2 -0
- junifer-0.0.7.dev65/junifer/preprocess/_temporal_slicer.py +236 -0
- junifer-0.0.7.dev65/junifer/preprocess/tests/test_temporal_slicer.py +138 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer.egg-info/PKG-INFO +1 -1
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer.egg-info/SOURCES.txt +3 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.dockerignore +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/dependabot.yml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/pull_request_template.md +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/workflows/ci-docs.yml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/workflows/ci.yml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/workflows/docker-ci-publish.yml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/workflows/docker-docs-publish.yml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/workflows/docs-preview.yml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/workflows/docs.yml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/workflows/lint.yml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/workflows/publish.yml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.gitignore +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.gitmodules +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.pre-commit-config.yaml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/AUTHORS.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/Dockerfile-ci +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/Dockerfile-docs +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/LICENSE.md +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/README.md +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/codecov.yml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/conda-env.yml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/Makefile +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/_static/css/custom.css +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/_static/js/custom.js +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/_templates/versions.html +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/api.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/cli.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/configs.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/data.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/datagrabbers.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/datareaders.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/index.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/markers.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/nilearn.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/onthefly.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/pipeline.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/preprocessing.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/stats.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/storage.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/testing.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/utils.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/changes/contributors.inc +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/changes/newsfragments/.gitignore +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/changes/newsfragments/333.enh +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/changes/newsfragments/441.misc +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/changes/newsfragments/444.bugfix +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/conf.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/contribution.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/extending/coordinates.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/extending/datagrabber.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/extending/dependencies.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/extending/extension.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/extending/index.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/extending/marker.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/extending/masks.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/extending/parcellations.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/extending/plugins.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/extending/preprocessor.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/faq.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/help.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/images/junifer_logo.png +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/index.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/installation.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/links.inc +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/maintaining.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/redirect.html +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/starting.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/understanding/data.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/understanding/datagrabber.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/understanding/datareader.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/understanding/index.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/understanding/marker.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/understanding/pipeline.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/understanding/preprocess.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/understanding/storage.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/using/codeless.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/using/index.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/using/masks.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/using/queueing.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/using/running.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/whats_new.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/README.rst +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/norun_hcpfc_pearson.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/norun_ukbvm_gmd.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/run_compute_parcel_mean.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/run_datagrabber_bids_datalad.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/run_ets_rss_marker.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/run_junifer_julearn.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/run_run_gmd_mean.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/yamls/gmd_mean.yaml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/yamls/ukb_gmd_mean.yaml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/ignore_words.txt +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/decorators.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/functions.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/queue_context/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/queue_context/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/queue_context/htcondor_adapter.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/queue_context/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/queue_context/queue_context_adapter.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/afni/3dRSFC +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/afni/3dReHo +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/afni/afni +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/afni/run_afni_docker.sh +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/ants/ResampleImage +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/ants/antsApplyTransforms +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/ants/run_ants_docker.sh +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/freesurfer/mri_binarize +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/freesurfer/mri_mc +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/freesurfer/mri_pretess +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/freesurfer/mris_convert +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/fsl/applywarp +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/fsl/flirt +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/fsl/img2imgcoord +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/fsl/std2imgcoord +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/run_conda.bash +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/run_conda.zsh +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/run_venv.bash +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/run_venv.zsh +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/tests/test_functions.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/cli.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/parser.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/tests/test_cli.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/tests/test_cli_utils.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/tests/test_parser.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/utils.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/conftest.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/_dispatch.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/coordinates/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/coordinates/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/coordinates/_ants_coordinates_warper.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/coordinates/_coordinates.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/coordinates/_fsl_coordinates_warper.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/masks/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/masks/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/masks/_ants_mask_warper.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/masks/_fsl_mask_warper.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/masks/_masks.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/masks/tests/test_masks.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/parcellations/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/parcellations/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/parcellations/_ants_parcellation_warper.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/parcellations/_fsl_parcellation_warper.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/parcellations/_parcellations.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/pipeline_data_registry_base.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/template_spaces.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/tests/test_data_utils.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/tests/test_template_spaces.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/utils.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/id1000.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/piop1.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/piop2.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/base.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/datalad_base.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/hcp1200/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/hcp1200/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/multiple.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/pattern.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/pattern_datalad.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/pattern_validation_mixin.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/tests/test_base.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/tests/test_multiple.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/tests/test_pattern.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datareader/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datareader/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datareader/default.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datareader/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datareader/tests/test_default_reader.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/h5io/h5io/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/h5io/h5io/_h5io.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/h5io/h5io/_version.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/h5io/h5io/chunked_array.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/h5io/h5io/chunked_list.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/nilearn/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/nilearn/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/nilearn/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/base.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/brainprint.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/complexity_base.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/hurst_exponent.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/perm_entropy.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/range_entropy.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/range_entropy_auc.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/sample_entropy.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/ets_rss.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/falff/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/falff/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/falff/_afni_falff.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/falff/_junifer_falff.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/falff/falff_base.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/falff/falff_parcels.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/falff/falff_spheres.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/falff/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/parcel_aggregation.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/reho/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/reho/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/reho/_afni_reho.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/reho/_junifer_reho.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/reho/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/reho/reho_base.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/reho/reho_parcels.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/reho/reho_spheres.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/sphere_aggregation.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/tests/test_brainprint.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/tests/test_ets_rss.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/tests/test_marker_utils.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/tests/test_markers_base.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/utils.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/onthefly/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/onthefly/_brainprint.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/onthefly/read_transform.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/onthefly/tests/test_read_transform.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/marker_collection.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/pipeline_step_mixin.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/tests/test_marker_collection.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/update_meta_mixin.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/utils.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/workdir_manager.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/base.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/confounds/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/confounds/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/confounds/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/smoothing.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/warping/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/warping/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/warping/_ants_warper.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/warping/_fsl_warper.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/warping/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/warping/space_warper.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/stats.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/base.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/hdf5.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/pandas_base.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/sqlite.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/tests/test_hdf5.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/tests/test_pandas_base.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/tests/test_sqlite.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/tests/test_storage_base.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/tests/test_utils.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/utils.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/datagrabbers.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/registry.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/tests/test_testing_registry.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/utils.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/tests/test_main.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/tests/test_stats.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/typing/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/typing/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/typing/_typing.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/__init__.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/__init__.pyi +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/_config.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/_yaml.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/fs.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/helpers.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/logging.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/py.typed +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/singleton.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/tests/test_config.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/tests/test_fs.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/tests/test_helpers.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/tests/test_logging.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer.egg-info/dependency_links.txt +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer.egg-info/entry_points.txt +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer.egg-info/requires.txt +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer.egg-info/top_level.txt +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/pyproject.toml +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/setup.cfg +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/setup.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/tools/create_aomic1000_example_dataset.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/tools/create_aomicpiop1_example_dataset.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/tools/create_aomicpiop2_example_dataset.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/tools/create_bids_example_dataset.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/tools/create_bids_example_dataset_sessions.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/tools/create_hcp1200_example_dataset.py +0 -0
- {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/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.dev65
|
4
4
|
Summary: JUelich NeuroImaging FEature extractoR
|
5
5
|
Author-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Synchon Mandal <s.mandal@fz-juelich.de>
|
6
6
|
Maintainer-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Synchon Mandal <s.mandal@fz-juelich.de>
|
@@ -0,0 +1 @@
|
|
1
|
+
Introduce :class:`.TemporalSlicer` preprocessor for temporally slicing BOLD data by `Synchon Mandal`_
|
@@ -17,5 +17,5 @@ __version__: str
|
|
17
17
|
__version_tuple__: VERSION_TUPLE
|
18
18
|
version_tuple: VERSION_TUPLE
|
19
19
|
|
20
|
-
__version__ = version = '0.0.7.
|
21
|
-
__version_tuple__ = version_tuple = (0, 0, 7, '
|
20
|
+
__version__ = version = '0.0.7.dev65'
|
21
|
+
__version_tuple__ = version_tuple = (0, 0, 7, 'dev65')
|
@@ -75,6 +75,7 @@ class PipelineComponentRegistry(metaclass=Singleton):
|
|
75
75
|
"Smoothing": "Smoothing",
|
76
76
|
"SpaceWarper": "SpaceWarper",
|
77
77
|
"fMRIPrepConfoundRemover": "fMRIPrepConfoundRemover",
|
78
|
+
"TemporalSlicer": "TemporalSlicer",
|
78
79
|
},
|
79
80
|
"marker": {
|
80
81
|
"ALFFParcels": "ALFFParcels",
|
@@ -3,9 +3,11 @@ __all__ = [
|
|
3
3
|
"fMRIPrepConfoundRemover",
|
4
4
|
"SpaceWarper",
|
5
5
|
"Smoothing",
|
6
|
+
"TemporalSlicer",
|
6
7
|
]
|
7
8
|
|
8
9
|
from .base import BasePreprocessor
|
9
10
|
from .confounds import fMRIPrepConfoundRemover
|
10
11
|
from .warping import SpaceWarper
|
11
12
|
from .smoothing import Smoothing
|
13
|
+
from ._temporal_slicer import TemporalSlicer
|
@@ -0,0 +1,236 @@
|
|
1
|
+
"""Provide class for temporal slicing."""
|
2
|
+
|
3
|
+
# Authors: Synchon Mandal <s.mandal@fz-juelich.de>
|
4
|
+
# License: AGPL
|
5
|
+
|
6
|
+
from typing import Any, ClassVar, Optional
|
7
|
+
|
8
|
+
import nibabel as nib
|
9
|
+
import nilearn.image as nimg
|
10
|
+
|
11
|
+
from ..api.decorators import register_preprocessor
|
12
|
+
from ..pipeline import WorkDirManager
|
13
|
+
from ..typing import Dependencies
|
14
|
+
from ..utils import logger, raise_error
|
15
|
+
from .base import BasePreprocessor
|
16
|
+
|
17
|
+
|
18
|
+
__all__ = ["TemporalSlicer"]
|
19
|
+
|
20
|
+
|
21
|
+
@register_preprocessor
|
22
|
+
class TemporalSlicer(BasePreprocessor):
|
23
|
+
"""Class for temporal slicing.
|
24
|
+
|
25
|
+
Parameters
|
26
|
+
----------
|
27
|
+
start : float
|
28
|
+
Starting time point, in second.
|
29
|
+
stop : float or None
|
30
|
+
Ending time point, in second. If None, stops at the last time point.
|
31
|
+
Can also do negative indexing and has the same meaning as standard
|
32
|
+
Python slicing except it represents time points.
|
33
|
+
duration : float or None, optional
|
34
|
+
Time duration to add to ``start``, in second. If None, ``stop`` is
|
35
|
+
respected, else error is raised (default None).
|
36
|
+
t_r : float or None, optional
|
37
|
+
Repetition time, in second (sampling period).
|
38
|
+
If None, it will use t_r from nifti header (default None).
|
39
|
+
|
40
|
+
Raises
|
41
|
+
------
|
42
|
+
ValueError
|
43
|
+
If ``start`` is negative.
|
44
|
+
|
45
|
+
"""
|
46
|
+
|
47
|
+
_DEPENDENCIES: ClassVar[Dependencies] = {"nilearn"}
|
48
|
+
|
49
|
+
def __init__(
|
50
|
+
self,
|
51
|
+
start: float,
|
52
|
+
stop: Optional[float],
|
53
|
+
duration: Optional[float] = None,
|
54
|
+
t_r: Optional[float] = None,
|
55
|
+
) -> None:
|
56
|
+
"""Initialize the class."""
|
57
|
+
if start < 0:
|
58
|
+
raise_error("`start` cannot be negative")
|
59
|
+
else:
|
60
|
+
self.start = start
|
61
|
+
self.stop = stop
|
62
|
+
self.duration = duration
|
63
|
+
self.t_r = t_r
|
64
|
+
super().__init__(on="BOLD", required_data_types=["BOLD"])
|
65
|
+
|
66
|
+
def get_valid_inputs(self) -> list[str]:
|
67
|
+
"""Get valid data types for input.
|
68
|
+
|
69
|
+
Returns
|
70
|
+
-------
|
71
|
+
list of str
|
72
|
+
The list of data types that can be used as input for this
|
73
|
+
preprocessor.
|
74
|
+
|
75
|
+
"""
|
76
|
+
return ["BOLD"]
|
77
|
+
|
78
|
+
def get_output_type(self, input_type: str) -> str:
|
79
|
+
"""Get output type.
|
80
|
+
|
81
|
+
Parameters
|
82
|
+
----------
|
83
|
+
input_type : str
|
84
|
+
The data type input to the preprocessor.
|
85
|
+
|
86
|
+
Returns
|
87
|
+
-------
|
88
|
+
str
|
89
|
+
The data type output by the preprocessor.
|
90
|
+
|
91
|
+
"""
|
92
|
+
# Does not add any new keys
|
93
|
+
return input_type
|
94
|
+
|
95
|
+
def preprocess(
|
96
|
+
self,
|
97
|
+
input: dict[str, Any],
|
98
|
+
extra_input: Optional[dict[str, Any]] = None,
|
99
|
+
) -> tuple[dict[str, Any], Optional[dict[str, dict[str, Any]]]]:
|
100
|
+
"""Preprocess.
|
101
|
+
|
102
|
+
Parameters
|
103
|
+
----------
|
104
|
+
input : dict
|
105
|
+
The input from the Junifer Data object.
|
106
|
+
extra_input : dict, optional
|
107
|
+
The other fields in the Junifer Data object.
|
108
|
+
|
109
|
+
Returns
|
110
|
+
-------
|
111
|
+
dict
|
112
|
+
The computed result as dictionary.
|
113
|
+
None
|
114
|
+
Extra "helper" data types as dictionary to add to the Junifer Data
|
115
|
+
object.
|
116
|
+
|
117
|
+
Raises
|
118
|
+
------
|
119
|
+
RuntimeError
|
120
|
+
If no time slicing will be performed or
|
121
|
+
if ``stop`` is not None when ``duration`` is provided or
|
122
|
+
if calculated stop index is greater than allowed value.
|
123
|
+
|
124
|
+
"""
|
125
|
+
logger.debug("Temporal slicing")
|
126
|
+
|
127
|
+
# Get BOLD data
|
128
|
+
bold_img = input["data"]
|
129
|
+
time_dim = bold_img.shape[3]
|
130
|
+
|
131
|
+
# Check if slicing is not required
|
132
|
+
if self.start == 0:
|
133
|
+
if self.stop is None or self.stop == -1 or self.stop == time_dim:
|
134
|
+
raise_error(
|
135
|
+
"No temporal slicing will be performed as "
|
136
|
+
f"`start` = {self.start} and "
|
137
|
+
f"`stop` = {self.stop}, hence you "
|
138
|
+
"should remove the TemporalSlicer from the preprocess "
|
139
|
+
"step.",
|
140
|
+
klass=RuntimeError,
|
141
|
+
)
|
142
|
+
|
143
|
+
# Sanity check for stop and duration combination
|
144
|
+
if self.duration is not None and self.stop is not None:
|
145
|
+
raise_error(
|
146
|
+
"`stop` should be None if `duration` is not None. "
|
147
|
+
"Set `stop` = None for TemporalSlicer to continue.",
|
148
|
+
klass=RuntimeError,
|
149
|
+
)
|
150
|
+
|
151
|
+
# Set t_r
|
152
|
+
t_r = self.t_r
|
153
|
+
if t_r is None:
|
154
|
+
logger.info("No `t_r` specified, using t_r from NIfTI header")
|
155
|
+
t_r = bold_img.header.get_zooms()[3] # type: ignore
|
156
|
+
logger.info(
|
157
|
+
f"Read t_r from NIfTI header: {t_r}",
|
158
|
+
)
|
159
|
+
|
160
|
+
# Create element-specific tempdir for storing generated data
|
161
|
+
element_tempdir = WorkDirManager().get_element_tempdir(
|
162
|
+
prefix="temporal_slicer"
|
163
|
+
)
|
164
|
+
|
165
|
+
# Check stop; duration is None
|
166
|
+
if self.stop is None:
|
167
|
+
if self.duration is not None:
|
168
|
+
stop = self.start + self.duration
|
169
|
+
else:
|
170
|
+
stop = time_dim
|
171
|
+
else:
|
172
|
+
# Calculate stop index if going from end
|
173
|
+
if self.stop < 0:
|
174
|
+
stop = time_dim + 1 + self.stop
|
175
|
+
else:
|
176
|
+
stop = self.stop
|
177
|
+
|
178
|
+
# Convert slice range from seconds to indices
|
179
|
+
index = slice(int(self.start // t_r), int(stop // t_r))
|
180
|
+
|
181
|
+
# Check if stop index is out of bounds
|
182
|
+
if index.stop > time_dim:
|
183
|
+
raise_error(
|
184
|
+
f"Calculated stop index: {index.stop} is greater than "
|
185
|
+
f"allowed value: {time_dim}",
|
186
|
+
klass=IndexError,
|
187
|
+
)
|
188
|
+
|
189
|
+
logger.info(
|
190
|
+
"Computed slice range for TemporalSlicer: "
|
191
|
+
f"[{index.start},{index.stop}]"
|
192
|
+
)
|
193
|
+
|
194
|
+
# Slice image
|
195
|
+
sliced_img = nimg.index_img(bold_img, index)
|
196
|
+
# Fix t_r as nilearn messes it up
|
197
|
+
sliced_img.header["pixdim"][4] = t_r
|
198
|
+
# Save sliced data
|
199
|
+
sliced_img_path = element_tempdir / "sliced_data.nii.gz"
|
200
|
+
nib.save(sliced_img, sliced_img_path)
|
201
|
+
|
202
|
+
logger.debug("Updating `BOLD`")
|
203
|
+
input.update(
|
204
|
+
{
|
205
|
+
# Update path to sync with "data"
|
206
|
+
"path": sliced_img_path,
|
207
|
+
# Update data
|
208
|
+
"data": sliced_img,
|
209
|
+
}
|
210
|
+
)
|
211
|
+
|
212
|
+
# Check for BOLD.confounds and update if found
|
213
|
+
if input.get("confounds") is not None:
|
214
|
+
# Slice confounds
|
215
|
+
sliced_confounds_df = input["confounds"]["data"].iloc[index, :]
|
216
|
+
# Save sliced confounds
|
217
|
+
sliced_confounds_path = (
|
218
|
+
element_tempdir / "sliced_confounds_regressors.tsv"
|
219
|
+
)
|
220
|
+
sliced_confounds_df.to_csv(
|
221
|
+
sliced_confounds_path,
|
222
|
+
sep="\t",
|
223
|
+
index=False,
|
224
|
+
)
|
225
|
+
|
226
|
+
logger.debug("Updating `BOLD.confounds`")
|
227
|
+
input["confounds"].update(
|
228
|
+
{
|
229
|
+
# Update path to sync with "data"
|
230
|
+
"path": sliced_confounds_path,
|
231
|
+
# Update data
|
232
|
+
"data": sliced_confounds_df,
|
233
|
+
}
|
234
|
+
)
|
235
|
+
|
236
|
+
return input, None
|
@@ -0,0 +1,138 @@
|
|
1
|
+
"""Provide tests for TemporalSlicer."""
|
2
|
+
|
3
|
+
# Authors: Synchon Mandal <s.mandal@fz-juelich.de>
|
4
|
+
# License: AGPL
|
5
|
+
|
6
|
+
from contextlib import AbstractContextManager, nullcontext
|
7
|
+
from typing import Optional
|
8
|
+
|
9
|
+
import pytest
|
10
|
+
|
11
|
+
from junifer.datareader import DefaultDataReader
|
12
|
+
from junifer.preprocess import TemporalSlicer
|
13
|
+
from junifer.testing.datagrabbers import PartlyCloudyTestingDataGrabber
|
14
|
+
|
15
|
+
|
16
|
+
@pytest.mark.parametrize(
|
17
|
+
"start, stop, duration, t_r, expected_dim, expect",
|
18
|
+
(
|
19
|
+
[
|
20
|
+
0.0,
|
21
|
+
168.0,
|
22
|
+
None,
|
23
|
+
2.0,
|
24
|
+
84,
|
25
|
+
pytest.raises(RuntimeError, match="No temporal slicing"),
|
26
|
+
], # t_r from doc is 2.0
|
27
|
+
[0.0, 167.0, None, 2.0, 83, nullcontext()], # t_r from doc is 2.0
|
28
|
+
[
|
29
|
+
0.0,
|
30
|
+
None,
|
31
|
+
None,
|
32
|
+
2.0,
|
33
|
+
84,
|
34
|
+
pytest.raises(RuntimeError, match="No temporal slicing"),
|
35
|
+
], # total with no end
|
36
|
+
[2.0, None, None, 2.0, 83, nullcontext()], # total with no end
|
37
|
+
[0.0, 84.0, None, 2.0, 42, nullcontext()], # first half
|
38
|
+
[0.0, -85.0, None, 2.0, 42, nullcontext()], # first half from end
|
39
|
+
[84.0, -1.0, None, 2.0, 42, nullcontext()], # second half
|
40
|
+
[
|
41
|
+
33.0,
|
42
|
+
-33.0,
|
43
|
+
33.0,
|
44
|
+
2.0,
|
45
|
+
42,
|
46
|
+
pytest.raises(RuntimeError, match="`stop` should be None"),
|
47
|
+
],
|
48
|
+
[10.0, None, 30.0, 2.0, 15, nullcontext()],
|
49
|
+
[
|
50
|
+
0.0,
|
51
|
+
168.0,
|
52
|
+
None,
|
53
|
+
None,
|
54
|
+
168,
|
55
|
+
pytest.raises(RuntimeError, match="No temporal slicing"),
|
56
|
+
], # t_r from image is 1.0
|
57
|
+
[0.0, 167.0, None, None, 167, nullcontext()], # t_r from image is 1.0
|
58
|
+
[
|
59
|
+
0.0,
|
60
|
+
None,
|
61
|
+
None,
|
62
|
+
None,
|
63
|
+
168,
|
64
|
+
pytest.raises(RuntimeError, match="No temporal slicing"),
|
65
|
+
], # total with no end
|
66
|
+
[0.0, 84.0, None, None, 84, nullcontext()], # first half
|
67
|
+
[0.0, -85.0, None, None, 84, nullcontext()], # first half from end
|
68
|
+
[84.0, -1.0, None, None, 84, nullcontext()], # second half
|
69
|
+
[
|
70
|
+
33.0,
|
71
|
+
-33.0,
|
72
|
+
33.0,
|
73
|
+
None,
|
74
|
+
84,
|
75
|
+
pytest.raises(RuntimeError, match="`stop` should be None"),
|
76
|
+
],
|
77
|
+
[10.0, None, 30.0, None, 30, nullcontext()],
|
78
|
+
[
|
79
|
+
-1.0,
|
80
|
+
None,
|
81
|
+
None,
|
82
|
+
None,
|
83
|
+
84,
|
84
|
+
pytest.raises(ValueError, match="`start` cannot be negative"),
|
85
|
+
],
|
86
|
+
[
|
87
|
+
0.0,
|
88
|
+
500.0,
|
89
|
+
None,
|
90
|
+
2.0,
|
91
|
+
42,
|
92
|
+
pytest.raises(IndexError, match="Calculated stop index:"),
|
93
|
+
],
|
94
|
+
),
|
95
|
+
)
|
96
|
+
def test_TemporalSlicer(
|
97
|
+
start: float,
|
98
|
+
stop: Optional[float],
|
99
|
+
duration: Optional[float],
|
100
|
+
t_r: Optional[float],
|
101
|
+
expected_dim: int,
|
102
|
+
expect: AbstractContextManager,
|
103
|
+
) -> None:
|
104
|
+
"""Test TemporalSlicer.
|
105
|
+
|
106
|
+
Parameters
|
107
|
+
----------
|
108
|
+
start : float
|
109
|
+
The parametrized start.
|
110
|
+
stop : float or None
|
111
|
+
The parametrized stop.
|
112
|
+
duration : float or None
|
113
|
+
The parametrized duration.
|
114
|
+
t_r : float or None
|
115
|
+
The parametrized TR.
|
116
|
+
expected_dim : int
|
117
|
+
The parametrized expected time dimension size.
|
118
|
+
expect : typing.ContextManager
|
119
|
+
The parametrized ContextManager object.
|
120
|
+
|
121
|
+
"""
|
122
|
+
|
123
|
+
with PartlyCloudyTestingDataGrabber() as dg:
|
124
|
+
# Read data
|
125
|
+
element_data = DefaultDataReader().fit_transform(dg["sub-01"])
|
126
|
+
# Preprocess data
|
127
|
+
with expect:
|
128
|
+
output = TemporalSlicer(
|
129
|
+
start=start, # in seconds
|
130
|
+
stop=stop, # in seconds
|
131
|
+
duration=duration, # in seconds
|
132
|
+
t_r=t_r, # in seconds
|
133
|
+
).fit_transform(element_data)
|
134
|
+
|
135
|
+
# Check image data dim
|
136
|
+
assert output["BOLD"]["data"].shape[3] == expected_dim
|
137
|
+
# Check confounds dim
|
138
|
+
assert output["BOLD"]["confounds"]["data"].shape[0] == expected_dim
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: junifer
|
3
|
-
Version: 0.0.7.
|
3
|
+
Version: 0.0.7.dev65
|
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>
|
@@ -65,6 +65,7 @@ docs/changes/contributors.inc
|
|
65
65
|
docs/changes/newsfragments/.gitignore
|
66
66
|
docs/changes/newsfragments/333.enh
|
67
67
|
docs/changes/newsfragments/441.misc
|
68
|
+
docs/changes/newsfragments/443.feature
|
68
69
|
docs/changes/newsfragments/444.bugfix
|
69
70
|
docs/extending/coordinates.rst
|
70
71
|
docs/extending/datagrabber.rst
|
@@ -363,6 +364,7 @@ junifer/pipeline/tests/test_update_meta_mixin.py
|
|
363
364
|
junifer/pipeline/tests/test_workdir_manager.py
|
364
365
|
junifer/preprocess/__init__.py
|
365
366
|
junifer/preprocess/__init__.pyi
|
367
|
+
junifer/preprocess/_temporal_slicer.py
|
366
368
|
junifer/preprocess/base.py
|
367
369
|
junifer/preprocess/py.typed
|
368
370
|
junifer/preprocess/confounds/__init__.py
|
@@ -379,6 +381,7 @@ junifer/preprocess/smoothing/py.typed
|
|
379
381
|
junifer/preprocess/smoothing/smoothing.py
|
380
382
|
junifer/preprocess/smoothing/tests/test_smoothing.py
|
381
383
|
junifer/preprocess/tests/test_preprocess_base.py
|
384
|
+
junifer/preprocess/tests/test_temporal_slicer.py
|
382
385
|
junifer/preprocess/warping/__init__.py
|
383
386
|
junifer/preprocess/warping/__init__.pyi
|
384
387
|
junifer/preprocess/warping/_ants_warper.py
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|