junifer 0.0.4.dev576__tar.gz → 0.0.4.dev594__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.4.dev576 → junifer-0.0.4.dev594}/PKG-INFO +1 -1
- junifer-0.0.4.dev594/docs/changes/newsfragments/249.feature +1 -0
- junifer-0.0.4.dev594/docs/changes/newsfragments/302.enh +1 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/using/queueing.rst +4 -2
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/_version.py +2 -2
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/functions.py +4 -1
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/parser.py +13 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/res/run_conda.sh +4 -4
- junifer-0.0.4.dev594/junifer/api/res/run_venv.sh +22 -0
- junifer-0.0.4.dev594/junifer/preprocess/bold_warper.py +244 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/preprocess/tests/test_bold_warper.py +69 -1
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer.egg-info/PKG-INFO +1 -1
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer.egg-info/SOURCES.txt +3 -0
- junifer-0.0.4.dev576/junifer/preprocess/bold_warper.py +0 -155
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/.github/dependabot.yml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/.github/pull_request_template.md +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/.github/workflows/ci-docs.yml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/.github/workflows/ci.yml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/.github/workflows/docs-preview.yml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/.github/workflows/docs.yml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/.github/workflows/lint.yml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/.github/workflows/pypi.yml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/.gitignore +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/.gitmodules +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/.pre-commit-config.yaml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/AUTHORS.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/LICENSE.md +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/README.md +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/codecov.yml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/conda-env.yml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/Makefile +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/_static/css/custom.css +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/_static/js/custom.js +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/_templates/versions.html +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/api/api.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/api/configs.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/api/data.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/api/datagrabbers.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/api/datareaders.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/api/index.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/api/markers.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/api/nilearn.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/api/onthefly.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/api/pipeline.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/api/preprocessing.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/api/stats.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/api/storage.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/api/testing.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/api/utils.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/builtin.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/contributors.inc +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/.gitignore +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/145.feature +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/182.enh +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/224.bugfix +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/233.bugfix +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/245.change +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/245.feature +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/247.doc +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/248.change +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/251.doc +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/252.change +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/252.feature +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/253.misc +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/254.feature +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/258.enh +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/259.enh +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/260.enh +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/261.misc +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/262.misc +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/263.change +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/264.feature +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/265.feature +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/266.feature +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/267.feature +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/268.change +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/268.enh +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/269.misc +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/271.feature +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/272.bugfix +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/274.bugfix +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/276.bugfix +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/277.misc +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/278.bugfix +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/279.misc +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/280.bugfix +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/281.bugfix +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/281.misc +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/282.bugfix +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/283.bugfix +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/284.bugfix +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/286.bugfix +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/287.enh +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/288.misc +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/291.doc +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/293.enh +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/293.feature +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/293.misc +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/294.misc +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/295.feature +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/297.feature +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/298.feature +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/300.doc +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/300.enh +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/changes/newsfragments/300.misc +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/conf.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/contribution.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/extending/coordinates.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/extending/datagrabber.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/extending/extension.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/extending/index.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/extending/marker.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/extending/masks.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/extending/parcellations.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/faq.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/help.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/images/junifer_logo.png +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/index.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/installation.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/links.inc +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/maintaining.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/redirect.html +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/sphinxext/gh_substitutions.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/starting.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/understanding/data.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/understanding/datagrabber.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/understanding/datareader.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/understanding/index.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/understanding/marker.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/understanding/pipeline.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/understanding/preprocess.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/understanding/storage.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/using/codeless.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/using/index.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/using/masks.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/using/running.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/docs/whats_new.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/examples/README.rst +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/examples/norun_hcpfc_pearson.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/examples/norun_ukbvm_gmd.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/examples/run_compute_parcel_mean.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/examples/run_datagrabber_bids_datalad.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/examples/run_ets_rss_marker.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/examples/run_junifer_julearn.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/examples/run_run_gmd_mean.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/examples/yamls/gmd_mean.yaml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/examples/yamls/ukb_gmd_mean.yaml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/ignore_words.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/cli.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/decorators.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/res/afni/3dRSFC +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/res/afni/3dReHo +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/res/afni/afni +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/res/afni/run_afni_docker.sh +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/res/ants/ResampleImage +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/res/ants/antsApplyTransforms +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/res/ants/run_ants_docker.sh +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/res/fsl/applywarp +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/res/fsl/flirt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/res/fsl/img2imgcoord +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/res/fsl/std2imgcoord +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/tests/data/gmd_mean.yaml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/tests/data/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/tests/test_api_utils.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/tests/test_cli.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/tests/test_functions.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/tests/test_parser.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/api/utils.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/configs/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/configs/juseless/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/VOIs/meta/CogAC_VOIs.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/VOIs/meta/CogAR_VOIs.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/VOIs/meta/DMNBuckner_VOIs.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/VOIs/meta/Dosenbach2010_MNI_VOIs.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/VOIs/meta/Empathy_VOIs.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/VOIs/meta/Motor_VOIs.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/VOIs/meta/MultiTask_VOIs.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/VOIs/meta/PhysioStress_VOIs.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/VOIs/meta/Power2011_MNI_VOIs.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/VOIs/meta/Power2013_MNI_VOIs.tsv +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/VOIs/meta/Rew_VOIs.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/VOIs/meta/Somatosensory_VOIs.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/VOIs/meta/ToM_VOIs.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/VOIs/meta/VigAtt_VOIs.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/VOIs/meta/WM_VOIs.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/VOIs/meta/eMDN_VOIs.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/VOIs/meta/eSAD_VOIs.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/VOIs/meta/extDMN_VOIs.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/coordinates.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean.nii.gz +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean_3mm.nii.gz +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/masks/vickery-patil/GMprob0.2_cortex_3mm_NA_rm.nii.gz +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/masks.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/parcellations.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/template_spaces.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/tests/test_coordinates.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/tests/test_data_utils.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/tests/test_masks.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/tests/test_parcellations.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/tests/test_template_spaces.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/data/utils.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/aomic/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/aomic/id1000.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/aomic/piop1.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/aomic/piop2.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/base.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/datalad_base.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/hcp1200/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/multiple.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/pattern.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/pattern_datalad.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/tests/test_base.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/tests/test_datagrabber_utils.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/tests/test_multiple.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/tests/test_pattern.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datagrabber/utils.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datareader/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datareader/default.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/datareader/tests/test_default_reader.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/external/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/external/h5io/h5io/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/external/h5io/h5io/_h5io.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/external/h5io/h5io/_version.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/external/h5io/h5io/chunked_array.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/external/h5io/h5io/chunked_list.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/external/nilearn/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/base.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/collection.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/complexity/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/complexity/complexity_base.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/complexity/hurst_exponent.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/complexity/perm_entropy.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/complexity/range_entropy.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/complexity/range_entropy_auc.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/complexity/sample_entropy.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/ets_rss.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/falff/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/falff/falff_base.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/falff/falff_estimator.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/falff/falff_parcels.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/falff/falff_spheres.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/falff/tests/test_falff_estimator.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/functional_connectivity/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/parcel_aggregation.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/reho/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/reho/reho_base.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/reho/reho_estimator.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/reho/reho_parcels.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/reho/reho_spheres.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/reho/tests/test_reho_estimator.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/sphere_aggregation.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/temporal_snr/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/tests/test_collection.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/tests/test_ets_rss.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/tests/test_marker_utils.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/tests/test_markers_base.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/markers/utils.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/onthefly/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/onthefly/read_transform.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/onthefly/tests/test_read_transform.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/pipeline/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/pipeline/pipeline_step_mixin.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/pipeline/registry.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/pipeline/singleton.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/pipeline/tests/test_registry.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/pipeline/update_meta_mixin.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/pipeline/utils.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/pipeline/workdir_manager.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/preprocess/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/preprocess/ants/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/preprocess/ants/ants_apply_transforms_warper.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/preprocess/ants/tests/test_ants_apply_transforms_warper.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/preprocess/base.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/preprocess/confounds/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/preprocess/fsl/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/preprocess/fsl/apply_warper.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/preprocess/fsl/tests/test_apply_warper.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/stats.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/storage/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/storage/base.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/storage/hdf5.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/storage/pandas_base.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/storage/sqlite.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/storage/tests/test_hdf5.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/storage/tests/test_pandas_base.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/storage/tests/test_sqlite.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/storage/tests/test_storage_base.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/storage/tests/test_utils.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/storage/utils.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/testing/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/testing/datagrabbers.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/testing/registry.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/testing/tests/test_testing_registry.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/testing/utils.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/tests/test_main.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/tests/test_stats.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/utils/__init__.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/utils/fs.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/utils/helpers.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/utils/logging.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/utils/tests/test_fs.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/utils/tests/test_helpers.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer/utils/tests/test_logging.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer.egg-info/dependency_links.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer.egg-info/entry_points.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer.egg-info/requires.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/junifer.egg-info/top_level.txt +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/pyproject.toml +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/setup.cfg +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/setup.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/tools/create_aomic1000_example_dataset.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/tools/create_aomicpiop1_example_dataset.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/tools/create_aomicpiop2_example_dataset.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/tools/create_bids_example_dataset.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/tools/create_bids_example_dataset_sessions.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/tools/create_hcp1200_example_dataset.py +0 -0
- {junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/tox.ini +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: junifer
|
3
|
-
Version: 0.0.4.
|
3
|
+
Version: 0.0.4.dev594
|
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
|
+
Support ``venv`` as environment kind for queueing jobs by `Synchon Mandal`_
|
@@ -0,0 +1 @@
|
|
1
|
+
Allow :class:`.BOLDWarper` to warp BOLD data to other MNI spaces by `Synchon Mandal`_
|
@@ -52,11 +52,13 @@ The following parameters are available for HTCondor:
|
|
52
52
|
* ``kind``: This is the kind of virtual environment to use:
|
53
53
|
|
54
54
|
* ``conda``
|
55
|
-
* ``
|
55
|
+
* ``venv``
|
56
56
|
* ``local`` (no virtual environment)
|
57
57
|
|
58
58
|
* ``name``: This is the name of the environment to use in case a virtual
|
59
|
-
environment is used.
|
59
|
+
environment is used. It should be the name when ``conda`` is used and
|
60
|
+
the absolute or relative path to the virtualenv when ``venv`` is used.
|
61
|
+
If relative path is used then it should be relative to the YAML.
|
60
62
|
|
61
63
|
* ``mem``: Memory to be used by the job. It must be provided as a string with
|
62
64
|
the units (e.g. ``2GB``).
|
@@ -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.4.
|
16
|
-
__version_tuple__ = version_tuple = (0, 0, 4, '
|
15
|
+
__version__ = version = '0.0.4.dev594'
|
16
|
+
__version_tuple__ = version_tuple = (0, 0, 4, 'dev594')
|
@@ -418,7 +418,10 @@ def _queue_condor(
|
|
418
418
|
env_name = env["name"]
|
419
419
|
executable = "run_venv.sh"
|
420
420
|
arguments = f"{env_name} junifer"
|
421
|
-
|
421
|
+
exec_path = jobdir / executable
|
422
|
+
logger.info(f"Copying {executable} to {exec_path.absolute()!s}")
|
423
|
+
shutil.copy(Path(__file__).parent / "res" / executable, exec_path)
|
424
|
+
make_executable(exec_path)
|
422
425
|
elif env["kind"] == "local":
|
423
426
|
executable = "junifer"
|
424
427
|
arguments = ""
|
@@ -99,4 +99,17 @@ def parse_yaml(filepath: Union[str, Path]) -> Dict:
|
|
99
99
|
contents["storage"]["uri"] = str(
|
100
100
|
(filepath.parent / uri_path).resolve()
|
101
101
|
)
|
102
|
+
|
103
|
+
# Allow relative path if queue env kind is venv; same motivation as above
|
104
|
+
if "queue" in contents:
|
105
|
+
if "env" in contents["queue"]:
|
106
|
+
if "venv" == contents["queue"]["env"]["kind"]:
|
107
|
+
# Check if the env name is relative
|
108
|
+
venv_path = Path(contents["queue"]["env"]["name"])
|
109
|
+
if not venv_path.is_absolute():
|
110
|
+
# Compute the absolute path
|
111
|
+
contents["queue"]["env"]["name"] = str(
|
112
|
+
(filepath.parent / venv_path).resolve()
|
113
|
+
)
|
114
|
+
|
102
115
|
return contents
|
@@ -1,17 +1,17 @@
|
|
1
1
|
#!/bin/bash
|
2
2
|
|
3
3
|
if [ $# -lt 2 ]; then
|
4
|
-
echo "This script is meant to run a command within a
|
4
|
+
echo "This script is meant to run a command within a conda environment."
|
5
5
|
echo "It needs at least 2 parameters."
|
6
6
|
echo "The first one must be the environment name."
|
7
|
-
echo "The rest will be the command"
|
7
|
+
echo "The rest will be the command."
|
8
8
|
exit 255
|
9
9
|
fi
|
10
10
|
|
11
11
|
eval "$(conda shell.bash hook)"
|
12
12
|
env_name=$1
|
13
13
|
echo "Activating ${env_name}"
|
14
|
-
conda activate "$
|
14
|
+
conda activate "${env_name}"
|
15
15
|
shift 1
|
16
16
|
|
17
17
|
if [ -f "pre_run.sh" ]; then
|
@@ -19,5 +19,5 @@ if [ -f "pre_run.sh" ]; then
|
|
19
19
|
. ./pre_run.sh
|
20
20
|
fi
|
21
21
|
|
22
|
-
echo "Running ${*} in
|
22
|
+
echo "Running ${*} in conda environment"
|
23
23
|
"$@"
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
if [ $# -lt 2 ]; then
|
4
|
+
echo "This script is meant to run a command within a Python virtual environment."
|
5
|
+
echo "It needs at least 2 parameters."
|
6
|
+
echo "The first one must be the virtualenv path."
|
7
|
+
echo "The rest will be the command."
|
8
|
+
exit 255
|
9
|
+
fi
|
10
|
+
|
11
|
+
env_path=$1
|
12
|
+
echo "Activating ${env_path}"
|
13
|
+
source "${env_path}"/bin/activate
|
14
|
+
shift 1
|
15
|
+
|
16
|
+
if [ -f "pre_run.sh" ]; then
|
17
|
+
echo "Sourcing pre_run.sh"
|
18
|
+
. ./pre_run.sh
|
19
|
+
fi
|
20
|
+
|
21
|
+
echo "Running ${*} in Python virtual environment"
|
22
|
+
"$@"
|
@@ -0,0 +1,244 @@
|
|
1
|
+
"""Provide class for warping BOLD to other template spaces."""
|
2
|
+
|
3
|
+
# Authors: Synchon Mandal <s.mandal@fz-juelich.de>
|
4
|
+
# License: AGPL
|
5
|
+
|
6
|
+
from typing import (
|
7
|
+
Any,
|
8
|
+
ClassVar,
|
9
|
+
Dict,
|
10
|
+
List,
|
11
|
+
Optional,
|
12
|
+
Tuple,
|
13
|
+
Union,
|
14
|
+
)
|
15
|
+
|
16
|
+
import nibabel as nib
|
17
|
+
from templateflow import api as tflow
|
18
|
+
|
19
|
+
from ..api.decorators import register_preprocessor
|
20
|
+
from ..data import get_template, get_xfm
|
21
|
+
from ..pipeline import WorkDirManager
|
22
|
+
from ..utils import logger, raise_error, run_ext_cmd
|
23
|
+
from .ants.ants_apply_transforms_warper import _AntsApplyTransformsWarper
|
24
|
+
from .base import BasePreprocessor
|
25
|
+
from .fsl.apply_warper import _ApplyWarper
|
26
|
+
|
27
|
+
|
28
|
+
@register_preprocessor
|
29
|
+
class BOLDWarper(BasePreprocessor):
|
30
|
+
"""Class for warping BOLD NIfTI images.
|
31
|
+
|
32
|
+
Parameters
|
33
|
+
----------
|
34
|
+
reference : str
|
35
|
+
The data type to use as reference for warping, can be either a data
|
36
|
+
type like "T1w" or a template space like "MNI152NLin2009cAsym".
|
37
|
+
|
38
|
+
Raises
|
39
|
+
------
|
40
|
+
ValueError
|
41
|
+
If ``reference`` is invalid.
|
42
|
+
|
43
|
+
"""
|
44
|
+
|
45
|
+
_EXT_DEPENDENCIES: ClassVar[
|
46
|
+
List[Dict[str, Union[str, bool, List[str]]]]
|
47
|
+
] = [
|
48
|
+
{
|
49
|
+
"name": "fsl",
|
50
|
+
"optional": True,
|
51
|
+
"commands": ["flirt", "applywarp"],
|
52
|
+
},
|
53
|
+
{
|
54
|
+
"name": "ants",
|
55
|
+
"optional": True,
|
56
|
+
"commands": ["ResampleImage", "antsApplyTransforms"],
|
57
|
+
},
|
58
|
+
]
|
59
|
+
|
60
|
+
def __init__(self, reference: str) -> None:
|
61
|
+
"""Initialize the class."""
|
62
|
+
self.ref = reference
|
63
|
+
# Initialize superclass based on reference
|
64
|
+
if self.ref == "T1w":
|
65
|
+
super().__init__(
|
66
|
+
on="BOLD", required_data_types=["BOLD", self.ref, "Warp"]
|
67
|
+
)
|
68
|
+
elif self.ref in tflow.templates():
|
69
|
+
super().__init__(on="BOLD", required_data_types=["BOLD"])
|
70
|
+
else:
|
71
|
+
raise_error(f"Unknown reference: {self.ref}")
|
72
|
+
|
73
|
+
def get_valid_inputs(self) -> List[str]:
|
74
|
+
"""Get valid data types for input.
|
75
|
+
|
76
|
+
Returns
|
77
|
+
-------
|
78
|
+
list of str
|
79
|
+
The list of data types that can be used as input for this
|
80
|
+
preprocessor.
|
81
|
+
|
82
|
+
"""
|
83
|
+
return ["BOLD"]
|
84
|
+
|
85
|
+
def get_output_type(self, input: List[str]) -> List[str]:
|
86
|
+
"""Get output type.
|
87
|
+
|
88
|
+
Parameters
|
89
|
+
----------
|
90
|
+
input : list of str
|
91
|
+
The input to the preprocessor. The list must contain the
|
92
|
+
available Junifer Data dictionary keys.
|
93
|
+
|
94
|
+
Returns
|
95
|
+
-------
|
96
|
+
list of str
|
97
|
+
The updated list of available Junifer Data object keys after
|
98
|
+
the pipeline step.
|
99
|
+
|
100
|
+
"""
|
101
|
+
# Does not add any new keys
|
102
|
+
return input
|
103
|
+
|
104
|
+
def preprocess(
|
105
|
+
self,
|
106
|
+
input: Dict[str, Any],
|
107
|
+
extra_input: Optional[Dict[str, Any]] = None,
|
108
|
+
) -> Tuple[str, Dict[str, Any]]:
|
109
|
+
"""Preprocess.
|
110
|
+
|
111
|
+
Parameters
|
112
|
+
----------
|
113
|
+
input : dict
|
114
|
+
The BOLD input from the Junifer Data object.
|
115
|
+
extra_input : dict, optional
|
116
|
+
The other fields in the Junifer Data object. Must include the
|
117
|
+
``Warp`` and ``ref`` value's keys if native space transformation is
|
118
|
+
needed.
|
119
|
+
|
120
|
+
Returns
|
121
|
+
-------
|
122
|
+
str
|
123
|
+
The key to store the output in the Junifer Data object.
|
124
|
+
dict
|
125
|
+
The computed result as dictionary. This will be stored in the
|
126
|
+
Junifer Data object under the key ``data`` of the data type.
|
127
|
+
|
128
|
+
Raises
|
129
|
+
------
|
130
|
+
ValueError
|
131
|
+
If ``extra_input`` is None when transforming to native space
|
132
|
+
i.e., using "T1w" as reference.
|
133
|
+
RuntimeError
|
134
|
+
If warp / transformation file extension is not ".mat" or ".h5"
|
135
|
+
when transforming to native space or
|
136
|
+
if the BOLD data is in the correct space and does not require
|
137
|
+
warping.
|
138
|
+
|
139
|
+
"""
|
140
|
+
logger.info(f"Warping BOLD to {self.ref} space using BOLDWarper")
|
141
|
+
# Transform to native space
|
142
|
+
if self.ref == "T1w":
|
143
|
+
# Check for extra inputs
|
144
|
+
if extra_input is None:
|
145
|
+
raise_error(
|
146
|
+
"No extra input provided, requires `Warp` and "
|
147
|
+
f"`{self.ref}` data types in particular."
|
148
|
+
)
|
149
|
+
# Check for warp file type to use correct tool
|
150
|
+
warp_file_ext = extra_input["Warp"]["path"].suffix
|
151
|
+
if warp_file_ext == ".mat":
|
152
|
+
logger.debug("Using FSL with BOLDWarper")
|
153
|
+
# Initialize ApplyWarper for computation
|
154
|
+
apply_warper = _ApplyWarper(reference=self.ref, on="BOLD")
|
155
|
+
# Replace original BOLD data with warped BOLD data
|
156
|
+
_, input = apply_warper.preprocess(
|
157
|
+
input=input,
|
158
|
+
extra_input=extra_input,
|
159
|
+
)
|
160
|
+
elif warp_file_ext == ".h5":
|
161
|
+
logger.debug("Using ANTs with BOLDWarper")
|
162
|
+
# Initialize AntsApplyTransformsWarper for computation
|
163
|
+
ants_apply_transforms_warper = _AntsApplyTransformsWarper(
|
164
|
+
reference=self.ref, on="BOLD"
|
165
|
+
)
|
166
|
+
# Replace original BOLD data with warped BOLD data
|
167
|
+
_, input = ants_apply_transforms_warper.preprocess(
|
168
|
+
input=input,
|
169
|
+
extra_input=extra_input,
|
170
|
+
)
|
171
|
+
else:
|
172
|
+
raise_error(
|
173
|
+
msg=(
|
174
|
+
"Unknown warp / transformation file extension: "
|
175
|
+
f"{warp_file_ext}"
|
176
|
+
),
|
177
|
+
klass=RuntimeError,
|
178
|
+
)
|
179
|
+
# Transform to template space
|
180
|
+
else:
|
181
|
+
# Check pre-requirements for space manipulation
|
182
|
+
if self.ref == input["space"]:
|
183
|
+
raise_error(
|
184
|
+
(
|
185
|
+
f"Skipped warping as the BOLD data is in {self.ref} "
|
186
|
+
"space which would mean that you can remove the "
|
187
|
+
"BOLDWarper from the preprocess step."
|
188
|
+
),
|
189
|
+
klass=RuntimeError,
|
190
|
+
)
|
191
|
+
else:
|
192
|
+
# Get xfm file
|
193
|
+
xfm_file_path = get_xfm(src=input["space"], dst=self.ref)
|
194
|
+
# Get template space image
|
195
|
+
template_space_img = get_template(
|
196
|
+
space=self.ref,
|
197
|
+
target_data=input,
|
198
|
+
extra_input=None,
|
199
|
+
)
|
200
|
+
|
201
|
+
# Create component-scoped tempdir
|
202
|
+
tempdir = WorkDirManager().get_tempdir(prefix="boldwarper")
|
203
|
+
# Create element-scoped tempdir so that warped BOLD is
|
204
|
+
# available later as nibabel stores file path reference for
|
205
|
+
# loading on computation
|
206
|
+
element_tempdir = WorkDirManager().get_element_tempdir(
|
207
|
+
prefix="boldwarper"
|
208
|
+
)
|
209
|
+
|
210
|
+
# Save template
|
211
|
+
template_space_img_path = tempdir / f"{self.ref}_T1w.nii.gz"
|
212
|
+
nib.save(template_space_img, template_space_img_path)
|
213
|
+
|
214
|
+
# Create a tempfile for warped output
|
215
|
+
warped_bold_path = (
|
216
|
+
element_tempdir
|
217
|
+
/ f"bold_warped_from_{input['space']}_to_{self.ref}.nii.gz"
|
218
|
+
)
|
219
|
+
|
220
|
+
logger.debug(
|
221
|
+
f"Using ANTs to warp BOLD "
|
222
|
+
f"from {input['space']} to {self.ref}"
|
223
|
+
)
|
224
|
+
# Set antsApplyTransforms command
|
225
|
+
apply_transforms_cmd = [
|
226
|
+
"antsApplyTransforms",
|
227
|
+
"-d 3",
|
228
|
+
"-e 3",
|
229
|
+
"-n LanczosWindowedSinc",
|
230
|
+
f"-i {input['path'].resolve()}",
|
231
|
+
f"-r {template_space_img_path.resolve()}",
|
232
|
+
f"-t {xfm_file_path.resolve()}",
|
233
|
+
f"-o {warped_bold_path.resolve()}",
|
234
|
+
]
|
235
|
+
# Call antsApplyTransforms
|
236
|
+
run_ext_cmd(
|
237
|
+
name="antsApplyTransforms", cmd=apply_transforms_cmd
|
238
|
+
)
|
239
|
+
|
240
|
+
# Modify target data
|
241
|
+
input["data"] = nib.load(warped_bold_path)
|
242
|
+
input["space"] = self.ref
|
243
|
+
|
244
|
+
return "BOLD", input
|
@@ -7,6 +7,7 @@ import socket
|
|
7
7
|
from typing import TYPE_CHECKING, List, Tuple
|
8
8
|
|
9
9
|
import pytest
|
10
|
+
from numpy.testing import assert_array_equal, assert_raises
|
10
11
|
|
11
12
|
from junifer.datagrabber import DataladHCP1200, DMCC13Benchmark
|
12
13
|
from junifer.datareader import DefaultDataReader
|
@@ -83,7 +84,7 @@ def test_BOLDWarper_get_output_type(input_: List[str]) -> None:
|
|
83
84
|
socket.gethostname() != "juseless",
|
84
85
|
reason="only for juseless",
|
85
86
|
)
|
86
|
-
def
|
87
|
+
def test_BOLDWarper_preprocess_to_native(
|
87
88
|
datagrabber: "BaseDataGrabber", element: Tuple[str, ...]
|
88
89
|
) -> None:
|
89
90
|
"""Test BOLDWarper preprocess.
|
@@ -106,3 +107,70 @@ def test_BOLDWarper_preprocess(
|
|
106
107
|
)
|
107
108
|
assert data_type == "BOLD"
|
108
109
|
assert isinstance(data, dict)
|
110
|
+
|
111
|
+
|
112
|
+
@pytest.mark.parametrize(
|
113
|
+
"datagrabber, element, space",
|
114
|
+
[
|
115
|
+
[
|
116
|
+
DMCC13Benchmark(
|
117
|
+
types=["BOLD"],
|
118
|
+
sessions=["wave1bas"],
|
119
|
+
tasks=["Rest"],
|
120
|
+
phase_encodings=["AP"],
|
121
|
+
runs=["1"],
|
122
|
+
native_t1w=False,
|
123
|
+
),
|
124
|
+
("f9057kp", "wave1bas", "Rest", "AP", "1"),
|
125
|
+
"MNI152NLin2009aAsym",
|
126
|
+
],
|
127
|
+
[
|
128
|
+
DMCC13Benchmark(
|
129
|
+
types=["BOLD"],
|
130
|
+
sessions=["wave1bas"],
|
131
|
+
tasks=["Rest"],
|
132
|
+
phase_encodings=["AP"],
|
133
|
+
runs=["1"],
|
134
|
+
native_t1w=False,
|
135
|
+
),
|
136
|
+
("f9057kp", "wave1bas", "Rest", "AP", "1"),
|
137
|
+
"MNI152NLin6Asym",
|
138
|
+
],
|
139
|
+
],
|
140
|
+
)
|
141
|
+
@pytest.mark.skipif(
|
142
|
+
_check_ants() is False, reason="requires ANTs to be in PATH"
|
143
|
+
)
|
144
|
+
@pytest.mark.skipif(
|
145
|
+
socket.gethostname() != "juseless",
|
146
|
+
reason="only for juseless",
|
147
|
+
)
|
148
|
+
def test_BOLDWarper_preprocess_to_multi_mni(
|
149
|
+
datagrabber: "BaseDataGrabber", element: Tuple[str, ...], space: str
|
150
|
+
) -> None:
|
151
|
+
"""Test BOLDWarper preprocess.
|
152
|
+
|
153
|
+
Parameters
|
154
|
+
----------
|
155
|
+
datagrabber : DataGrabber-like object
|
156
|
+
The parametrized DataGrabber objects.
|
157
|
+
element : tuple of str
|
158
|
+
The parametrized elements.
|
159
|
+
space : str
|
160
|
+
The parametrized template space to transform to.
|
161
|
+
|
162
|
+
"""
|
163
|
+
with datagrabber as dg:
|
164
|
+
# Read data
|
165
|
+
element_data = DefaultDataReader().fit_transform(dg[element])
|
166
|
+
pre_xfm_data = element_data["BOLD"]["data"].get_fdata().copy()
|
167
|
+
# Preprocess data
|
168
|
+
data_type, data = BOLDWarper(reference=space).preprocess(
|
169
|
+
input=element_data["BOLD"],
|
170
|
+
extra_input=element_data,
|
171
|
+
)
|
172
|
+
assert data_type == "BOLD"
|
173
|
+
assert isinstance(data, dict)
|
174
|
+
assert data["space"] == space
|
175
|
+
with assert_raises(AssertionError):
|
176
|
+
assert_array_equal(pre_xfm_data, data["data"])
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: junifer
|
3
|
-
Version: 0.0.4.
|
3
|
+
Version: 0.0.4.dev594
|
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/newsfragments/245.change
|
|
65
65
|
docs/changes/newsfragments/245.feature
|
66
66
|
docs/changes/newsfragments/247.doc
|
67
67
|
docs/changes/newsfragments/248.change
|
68
|
+
docs/changes/newsfragments/249.feature
|
68
69
|
docs/changes/newsfragments/251.doc
|
69
70
|
docs/changes/newsfragments/252.change
|
70
71
|
docs/changes/newsfragments/252.feature
|
@@ -110,6 +111,7 @@ docs/changes/newsfragments/298.feature
|
|
110
111
|
docs/changes/newsfragments/300.doc
|
111
112
|
docs/changes/newsfragments/300.enh
|
112
113
|
docs/changes/newsfragments/300.misc
|
114
|
+
docs/changes/newsfragments/302.enh
|
113
115
|
docs/extending/coordinates.rst
|
114
116
|
docs/extending/datagrabber.rst
|
115
117
|
docs/extending/extension.rst
|
@@ -159,6 +161,7 @@ junifer/api/functions.py
|
|
159
161
|
junifer/api/parser.py
|
160
162
|
junifer/api/utils.py
|
161
163
|
junifer/api/res/run_conda.sh
|
164
|
+
junifer/api/res/run_venv.sh
|
162
165
|
junifer/api/res/afni/3dAFNItoNIFTI
|
163
166
|
junifer/api/res/afni/3dRSFC
|
164
167
|
junifer/api/res/afni/3dReHo
|
@@ -1,155 +0,0 @@
|
|
1
|
-
"""Provide class for warping BOLD to other template spaces."""
|
2
|
-
|
3
|
-
# Authors: Synchon Mandal <s.mandal@fz-juelich.de>
|
4
|
-
# License: AGPL
|
5
|
-
|
6
|
-
from typing import (
|
7
|
-
Any,
|
8
|
-
ClassVar,
|
9
|
-
Dict,
|
10
|
-
List,
|
11
|
-
Optional,
|
12
|
-
Tuple,
|
13
|
-
Union,
|
14
|
-
)
|
15
|
-
|
16
|
-
from ..api.decorators import register_preprocessor
|
17
|
-
from ..utils import logger, raise_error
|
18
|
-
from .ants.ants_apply_transforms_warper import _AntsApplyTransformsWarper
|
19
|
-
from .base import BasePreprocessor
|
20
|
-
from .fsl.apply_warper import _ApplyWarper
|
21
|
-
|
22
|
-
|
23
|
-
@register_preprocessor
|
24
|
-
class BOLDWarper(BasePreprocessor):
|
25
|
-
"""Class for warping BOLD NIfTI images.
|
26
|
-
|
27
|
-
Parameters
|
28
|
-
----------
|
29
|
-
reference : str
|
30
|
-
The data type to use as reference for warping.
|
31
|
-
|
32
|
-
"""
|
33
|
-
|
34
|
-
_EXT_DEPENDENCIES: ClassVar[
|
35
|
-
List[Dict[str, Union[str, bool, List[str]]]]
|
36
|
-
] = [
|
37
|
-
{
|
38
|
-
"name": "fsl",
|
39
|
-
"optional": True,
|
40
|
-
"commands": ["flirt", "applywarp"],
|
41
|
-
},
|
42
|
-
{
|
43
|
-
"name": "ants",
|
44
|
-
"optional": True,
|
45
|
-
"commands": ["ResampleImage", "antsApplyTransforms"],
|
46
|
-
},
|
47
|
-
]
|
48
|
-
|
49
|
-
def __init__(self, reference: str) -> None:
|
50
|
-
"""Initialize the class."""
|
51
|
-
self.ref = reference
|
52
|
-
super().__init__(
|
53
|
-
on="BOLD", required_data_types=["BOLD", self.ref, "Warp"]
|
54
|
-
)
|
55
|
-
|
56
|
-
def get_valid_inputs(self) -> List[str]:
|
57
|
-
"""Get valid data types for input.
|
58
|
-
|
59
|
-
Returns
|
60
|
-
-------
|
61
|
-
list of str
|
62
|
-
The list of data types that can be used as input for this
|
63
|
-
preprocessor.
|
64
|
-
|
65
|
-
"""
|
66
|
-
return ["BOLD"]
|
67
|
-
|
68
|
-
def get_output_type(self, input: List[str]) -> List[str]:
|
69
|
-
"""Get output type.
|
70
|
-
|
71
|
-
Parameters
|
72
|
-
----------
|
73
|
-
input : list of str
|
74
|
-
The input to the preprocessor. The list must contain the
|
75
|
-
available Junifer Data dictionary keys.
|
76
|
-
|
77
|
-
Returns
|
78
|
-
-------
|
79
|
-
list of str
|
80
|
-
The updated list of available Junifer Data object keys after
|
81
|
-
the pipeline step.
|
82
|
-
|
83
|
-
"""
|
84
|
-
# Does not add any new keys
|
85
|
-
return input
|
86
|
-
|
87
|
-
def preprocess(
|
88
|
-
self,
|
89
|
-
input: Dict[str, Any],
|
90
|
-
extra_input: Optional[Dict[str, Any]] = None,
|
91
|
-
) -> Tuple[str, Dict[str, Any]]:
|
92
|
-
"""Preprocess.
|
93
|
-
|
94
|
-
Parameters
|
95
|
-
----------
|
96
|
-
input : dict
|
97
|
-
The BOLD input from the Junifer Data object.
|
98
|
-
extra_input : dict, optional
|
99
|
-
The other fields in the Junifer Data object. Must include the
|
100
|
-
``Warp`` and ``ref`` value's keys.
|
101
|
-
|
102
|
-
Returns
|
103
|
-
-------
|
104
|
-
str
|
105
|
-
The key to store the output in the Junifer Data object.
|
106
|
-
dict
|
107
|
-
The computed result as dictionary. This will be stored in the
|
108
|
-
Junifer Data object under the key ``data`` of the data type.
|
109
|
-
|
110
|
-
Raises
|
111
|
-
------
|
112
|
-
ValueError
|
113
|
-
If ``extra_input`` is None.
|
114
|
-
RuntimeError
|
115
|
-
If warp / transformation file extension is not ".mat" or ".h5".
|
116
|
-
|
117
|
-
"""
|
118
|
-
logger.debug("Warping BOLD using BOLDWarper")
|
119
|
-
# Check for extra inputs
|
120
|
-
if extra_input is None:
|
121
|
-
raise_error(
|
122
|
-
f"No extra input provided, requires `Warp` and `{self.ref}` "
|
123
|
-
"data types in particular."
|
124
|
-
)
|
125
|
-
# Check for warp file type to use correct tool
|
126
|
-
warp_file_ext = extra_input["Warp"]["path"].suffix
|
127
|
-
if warp_file_ext == ".mat":
|
128
|
-
logger.debug("Using FSL with BOLDWarper")
|
129
|
-
# Initialize ApplyWarper for computation
|
130
|
-
apply_warper = _ApplyWarper(reference=self.ref, on="BOLD")
|
131
|
-
# Replace original BOLD data with warped BOLD data
|
132
|
-
_, input = apply_warper.preprocess(
|
133
|
-
input=input,
|
134
|
-
extra_input=extra_input,
|
135
|
-
)
|
136
|
-
elif warp_file_ext == ".h5":
|
137
|
-
logger.debug("Using ANTs with BOLDWarper")
|
138
|
-
# Initialize AntsApplyTransformsWarper for computation
|
139
|
-
ants_apply_transforms_warper = _AntsApplyTransformsWarper(
|
140
|
-
reference=self.ref, on="BOLD"
|
141
|
-
)
|
142
|
-
# Replace original BOLD data with warped BOLD data
|
143
|
-
_, input = ants_apply_transforms_warper.preprocess(
|
144
|
-
input=input,
|
145
|
-
extra_input=extra_input,
|
146
|
-
)
|
147
|
-
else:
|
148
|
-
raise_error(
|
149
|
-
msg=(
|
150
|
-
"Unknown warp / transformation file extension: "
|
151
|
-
f"{warp_file_ext}"
|
152
|
-
),
|
153
|
-
klass=RuntimeError,
|
154
|
-
)
|
155
|
-
return "BOLD", input
|
File without changes
|
File without changes
|
File without changes
|
{junifer-0.0.4.dev576 → junifer-0.0.4.dev594}/.github/ISSUE_TEMPLATE/documention-request.yml
RENAMED
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
|