junifer 0.0.4.dev694__tar.gz → 0.0.4.dev733__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.dev694 → junifer-0.0.4.dev733}/PKG-INFO +1 -1
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/builtin.rst +68 -24
- junifer-0.0.4.dev733/docs/changes/newsfragments/306.enh +1 -0
- junifer-0.0.4.dev733/docs/changes/newsfragments/317.doc +1 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/contribution.rst +2 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/extending/coordinates.rst +14 -15
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/extending/datagrabber.rst +45 -28
- junifer-0.0.4.dev733/docs/extending/dependencies.rst +141 -0
- junifer-0.0.4.dev733/docs/extending/extension.rst +35 -0
- junifer-0.0.4.dev733/docs/extending/index.rst +32 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/extending/marker.rst +53 -56
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/extending/masks.rst +21 -18
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/extending/parcellations.rst +34 -30
- junifer-0.0.4.dev733/docs/extending/preprocessor.rst +246 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/installation.rst +11 -33
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/links.inc +1 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/starting.rst +18 -18
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/understanding/data.rst +1 -1
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/understanding/datagrabber.rst +8 -8
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/understanding/datareader.rst +4 -4
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/understanding/index.rst +7 -7
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/understanding/marker.rst +3 -3
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/understanding/pipeline.rst +7 -7
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/understanding/preprocess.rst +71 -5
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/understanding/storage.rst +3 -3
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/using/codeless.rst +37 -36
- junifer-0.0.4.dev733/docs/using/index.rst +35 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/using/masks.rst +3 -4
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/using/queueing.rst +13 -11
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/_version.py +2 -2
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/functions.py +11 -3
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/queue_context/__init__.py +1 -0
- junifer-0.0.4.dev733/junifer/api/queue_context/gnu_parallel_local_adapter.py +258 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/queue_context/htcondor_adapter.py +4 -1
- junifer-0.0.4.dev733/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +192 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/tests/test_functions.py +2 -2
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer.egg-info/PKG-INFO +1 -1
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer.egg-info/SOURCES.txt +6 -0
- junifer-0.0.4.dev694/docs/extending/extension.rst +0 -34
- junifer-0.0.4.dev694/docs/extending/index.rst +0 -30
- junifer-0.0.4.dev694/docs/using/index.rst +0 -35
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/.github/dependabot.yml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/.github/pull_request_template.md +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/.github/workflows/ci-docs.yml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/.github/workflows/ci.yml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/.github/workflows/docs-preview.yml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/.github/workflows/docs.yml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/.github/workflows/lint.yml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/.github/workflows/pypi.yml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/.gitignore +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/.gitmodules +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/.pre-commit-config.yaml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/AUTHORS.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/LICENSE.md +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/README.md +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/codecov.yml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/conda-env.yml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/Makefile +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/_static/css/custom.css +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/_static/js/custom.js +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/_templates/versions.html +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/api/api.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/api/configs.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/api/data.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/api/datagrabbers.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/api/datareaders.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/api/index.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/api/markers.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/api/nilearn.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/api/onthefly.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/api/pipeline.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/api/preprocessing.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/api/stats.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/api/storage.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/api/testing.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/api/utils.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/contributors.inc +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/.gitignore +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/145.feature +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/182.enh +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/224.bugfix +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/233.bugfix +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/240.feature +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/245.change +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/245.feature +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/247.doc +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/248.change +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/249.feature +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/250.feature +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/251.doc +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/252.change +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/252.feature +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/253.misc +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/254.feature +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/258.enh +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/259.enh +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/260.enh +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/261.misc +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/262.misc +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/263.change +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/264.feature +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/265.feature +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/266.feature +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/267.feature +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/268.change +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/268.enh +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/269.misc +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/270.misc +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/271.feature +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/272.bugfix +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/274.bugfix +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/275.feature +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/276.bugfix +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/277.misc +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/278.bugfix +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/279.misc +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/280.bugfix +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/281.bugfix +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/281.misc +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/282.bugfix +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/283.bugfix +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/284.bugfix +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/286.bugfix +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/287.enh +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/288.misc +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/291.doc +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/293.enh +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/293.feature +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/293.misc +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/294.misc +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/295.feature +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/297.feature +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/298.feature +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/300.doc +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/300.enh +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/300.misc +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/301.feature +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/301.removal +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/302.enh +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/309.feature +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/310.change +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/310.enh +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/311.change +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/311.enh +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/312.bugfix +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/changes/newsfragments/314.bugfix +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/conf.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/faq.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/help.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/images/junifer_logo.png +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/index.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/maintaining.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/redirect.html +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/sphinxext/gh_substitutions.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/using/running.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/docs/whats_new.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/examples/README.rst +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/examples/norun_hcpfc_pearson.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/examples/norun_ukbvm_gmd.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/examples/run_compute_parcel_mean.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/examples/run_datagrabber_bids_datalad.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/examples/run_ets_rss_marker.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/examples/run_junifer_julearn.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/examples/run_run_gmd_mean.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/examples/yamls/gmd_mean.yaml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/examples/yamls/ukb_gmd_mean.yaml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/ignore_words.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/cli.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/decorators.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/parser.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/queue_context/queue_context_adapter.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/res/afni/3dRSFC +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/res/afni/3dReHo +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/res/afni/afni +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/res/afni/run_afni_docker.sh +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/res/ants/ResampleImage +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/res/ants/antsApplyTransforms +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/res/ants/run_ants_docker.sh +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/res/fsl/applywarp +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/res/fsl/flirt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/res/fsl/img2imgcoord +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/res/fsl/std2imgcoord +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/res/run_conda.sh +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/res/run_venv.sh +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/tests/data/gmd_mean.yaml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/tests/data/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/tests/test_api_utils.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/tests/test_cli.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/tests/test_parser.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/api/utils.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/configs/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/configs/juseless/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/VOIs/meta/AutobiographicalMemory_VOIs.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/VOIs/meta/CogAC_VOIs.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/VOIs/meta/CogAR_VOIs.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/VOIs/meta/DMNBuckner_VOIs.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/VOIs/meta/Dosenbach2010_MNI_VOIs.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/VOIs/meta/Empathy_VOIs.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/VOIs/meta/Motor_VOIs.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/VOIs/meta/MultiTask_VOIs.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/VOIs/meta/PhysioStress_VOIs.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/VOIs/meta/Power2011_MNI_VOIs.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/VOIs/meta/Power2013_MNI_VOIs.tsv +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/VOIs/meta/Rew_VOIs.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/VOIs/meta/Somatosensory_VOIs.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/VOIs/meta/ToM_VOIs.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/VOIs/meta/VigAtt_VOIs.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/VOIs/meta/WM_VOIs.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/VOIs/meta/eMDN_VOIs.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/VOIs/meta/eSAD_VOIs.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/VOIs/meta/extDMN_VOIs.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/coordinates.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean.nii.gz +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean_3mm.nii.gz +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/masks/vickery-patil/GMprob0.2_cortex_3mm_NA_rm.nii.gz +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/masks.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/parcellations.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/template_spaces.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/tests/test_coordinates.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/tests/test_data_utils.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/tests/test_masks.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/tests/test_parcellations.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/tests/test_template_spaces.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/data/utils.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/aomic/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/aomic/id1000.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/aomic/piop1.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/aomic/piop2.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/base.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/datalad_base.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/hcp1200/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/multiple.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/pattern.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/pattern_datalad.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/tests/test_base.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/tests/test_datagrabber_utils.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/tests/test_multiple.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/tests/test_pattern.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datagrabber/utils.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datareader/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datareader/default.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/datareader/tests/test_default_reader.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/external/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/external/h5io/h5io/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/external/h5io/h5io/_h5io.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/external/h5io/h5io/_version.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/external/h5io/h5io/chunked_array.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/external/h5io/h5io/chunked_list.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/external/nilearn/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/base.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/collection.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/complexity/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/complexity/complexity_base.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/complexity/hurst_exponent.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/complexity/perm_entropy.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/complexity/range_entropy.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/complexity/range_entropy_auc.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/complexity/sample_entropy.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/ets_rss.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/falff/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/falff/_afni_falff.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/falff/_junifer_falff.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/falff/falff_base.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/falff/falff_parcels.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/falff/falff_spheres.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/functional_connectivity/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/parcel_aggregation.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/reho/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/reho/_afni_reho.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/reho/_junifer_reho.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/reho/reho_base.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/reho/reho_parcels.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/reho/reho_spheres.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/sphere_aggregation.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/temporal_snr/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/tests/test_collection.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/tests/test_ets_rss.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/tests/test_marker_utils.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/tests/test_markers_base.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/markers/utils.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/onthefly/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/onthefly/read_transform.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/onthefly/tests/test_read_transform.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/pipeline/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/pipeline/pipeline_step_mixin.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/pipeline/registry.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/pipeline/singleton.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/pipeline/tests/test_registry.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/pipeline/update_meta_mixin.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/pipeline/utils.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/pipeline/workdir_manager.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/preprocess/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/preprocess/ants/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/preprocess/ants/ants_apply_transforms_warper.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/preprocess/ants/tests/test_ants_apply_transforms_warper.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/preprocess/base.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/preprocess/bold_warper.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/preprocess/confounds/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/preprocess/fsl/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/preprocess/fsl/apply_warper.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/preprocess/fsl/tests/test_apply_warper.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/preprocess/tests/test_bold_warper.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/preprocess/warping/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/preprocess/warping/_ants_warper.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/preprocess/warping/_fsl_warper.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/preprocess/warping/space_warper.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/stats.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/storage/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/storage/base.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/storage/hdf5.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/storage/pandas_base.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/storage/sqlite.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/storage/tests/test_hdf5.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/storage/tests/test_pandas_base.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/storage/tests/test_sqlite.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/storage/tests/test_storage_base.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/storage/tests/test_utils.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/storage/utils.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/testing/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/testing/datagrabbers.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/testing/registry.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/testing/tests/test_testing_registry.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/testing/utils.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/tests/test_main.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/tests/test_stats.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/utils/__init__.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/utils/fs.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/utils/helpers.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/utils/logging.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/utils/tests/test_fs.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/utils/tests/test_helpers.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer/utils/tests/test_logging.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer.egg-info/dependency_links.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer.egg-info/entry_points.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer.egg-info/requires.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/junifer.egg-info/top_level.txt +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/pyproject.toml +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/setup.cfg +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/setup.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/tools/create_aomic1000_example_dataset.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/tools/create_aomicpiop1_example_dataset.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/tools/create_aomicpiop2_example_dataset.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/tools/create_bids_example_dataset.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/tools/create_bids_example_dataset_sessions.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/tools/create_hcp1200_example_dataset.py +0 -0
- {junifer-0.0.4.dev694 → junifer-0.0.4.dev733}/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.dev733
|
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>
|
@@ -25,7 +25,7 @@ Data Grabber
|
|
25
25
|
- In Progress
|
26
26
|
- Done
|
27
27
|
|
28
|
-
Version added: If the status is "Done", the
|
28
|
+
Version added: If the status is "Done", the junifer version in which the
|
29
29
|
dataset was added. Else, a link to the Github issue or pull request
|
30
30
|
implementing the dataset. Links to github can be added by using the
|
31
31
|
following syntax: :gh:`<issue number>`
|
@@ -122,6 +122,54 @@ Planned
|
|
122
122
|
- :gh:`47`
|
123
123
|
|
124
124
|
|
125
|
+
Preprocessor
|
126
|
+
------------
|
127
|
+
|
128
|
+
..
|
129
|
+
Provide a list of the Preprocessors that are implemented or planned.
|
130
|
+
|
131
|
+
State: this should indicate the state of the preprocessor. Valid options are
|
132
|
+
- Planned
|
133
|
+
- In Progress
|
134
|
+
- Done
|
135
|
+
|
136
|
+
Version added: If the status is "Done", the junifer version in which the
|
137
|
+
preprocessor was added. Else, a link to the Github issue or pull request
|
138
|
+
implementing the preprocessor. Links to github can be added by using the
|
139
|
+
following syntax: :gh:`<issue number>`
|
140
|
+
|
141
|
+
Available
|
142
|
+
~~~~~~~~~
|
143
|
+
|
144
|
+
.. list-table::
|
145
|
+
:widths: auto
|
146
|
+
:header-rows: 1
|
147
|
+
|
148
|
+
* - Class
|
149
|
+
- Description
|
150
|
+
- State
|
151
|
+
- Version Added
|
152
|
+
* - :class:`.fMRIPrepConfoundRemover`
|
153
|
+
- Remove confounds from ``fMRIPrep``-ed data
|
154
|
+
- Done
|
155
|
+
- 0.0.1
|
156
|
+
* - :class:`.SpaceWarper`
|
157
|
+
- | Warp / transform data from one space to another
|
158
|
+
| (subject-native or other template spaces)
|
159
|
+
- Done
|
160
|
+
- 0.0.4
|
161
|
+
* - ``Smoothing``
|
162
|
+
- | Apply smoothing to data, particularly useful when dealing with
|
163
|
+
| ``fMRIPrep``-ed data
|
164
|
+
- In Progress
|
165
|
+
- :gh:`161`
|
166
|
+
|
167
|
+
|
168
|
+
..
|
169
|
+
Planned
|
170
|
+
~~~~~~~
|
171
|
+
|
172
|
+
|
125
173
|
Marker
|
126
174
|
------
|
127
175
|
|
@@ -133,7 +181,7 @@ Marker
|
|
133
181
|
- In Progress
|
134
182
|
- Done
|
135
183
|
|
136
|
-
Version added: If the status is "Done", the
|
184
|
+
Version added: If the status is "Done", the junifer version in which the
|
137
185
|
marker was added. Else, a link to the Github issue or pull request
|
138
186
|
implementing the marker. Links to github can be added by using the
|
139
187
|
following syntax: :gh:`<issue number>`
|
@@ -254,10 +302,6 @@ Planned
|
|
254
302
|
* - Connectedness
|
255
303
|
- Compute connectedness
|
256
304
|
- :gh:`34`
|
257
|
-
* - Permutation entropy, Range entropy, Multiscale entropy and Hurst exponent
|
258
|
-
- | Calculate Permutation entropy, Range entropy, Multiscale entropy and
|
259
|
-
| Hurst exponent
|
260
|
-
- :gh:`61`
|
261
305
|
|
262
306
|
Parcellation
|
263
307
|
------------
|
@@ -265,7 +309,7 @@ Parcellation
|
|
265
309
|
..
|
266
310
|
Provide a list of the Parcellations that are implemented or planned.
|
267
311
|
|
268
|
-
Version added: The
|
312
|
+
Version added: The junifer version in which the parcellation was added.
|
269
313
|
|
270
314
|
Available
|
271
315
|
~~~~~~~~~
|
@@ -277,8 +321,8 @@ Available
|
|
277
321
|
* - Name
|
278
322
|
- Options
|
279
323
|
- Keys
|
280
|
-
- Spaces
|
281
|
-
- Version
|
324
|
+
- Template Spaces
|
325
|
+
- Version Added
|
282
326
|
- Publication
|
283
327
|
* - Schaefer
|
284
328
|
- ``n_rois``, ``yeo_networks``
|
@@ -439,7 +483,7 @@ Coordinates
|
|
439
483
|
..
|
440
484
|
Provide a list of the Coordinates that are implemented or planned.
|
441
485
|
|
442
|
-
Version added: The
|
486
|
+
Version added: The junifer version in which the parcellation was added.
|
443
487
|
|
444
488
|
Available
|
445
489
|
~~~~~~~~~
|
@@ -450,7 +494,7 @@ Available
|
|
450
494
|
|
451
495
|
* - Name
|
452
496
|
- Keys
|
453
|
-
- Version
|
497
|
+
- Version Added
|
454
498
|
- Publication
|
455
499
|
* - Cognitive action control
|
456
500
|
- ``CogAC``
|
@@ -635,7 +679,7 @@ Mask
|
|
635
679
|
..
|
636
680
|
Provide a list of the masks that are implemented or planned.
|
637
681
|
|
638
|
-
Version added: The
|
682
|
+
Version added: The junifer version in which the mask was added.
|
639
683
|
|
640
684
|
Available
|
641
685
|
~~~~~~~~~
|
@@ -646,8 +690,8 @@ Available
|
|
646
690
|
|
647
691
|
* - Name
|
648
692
|
- Keys
|
649
|
-
-
|
650
|
-
- Version
|
693
|
+
- Template Space
|
694
|
+
- Version Added
|
651
695
|
- Description - Publication
|
652
696
|
* - Vickery-Patil (Gray Matter)
|
653
697
|
- | ``GM_prob0.2``
|
@@ -663,14 +707,14 @@ Available
|
|
663
707
|
- | Vickery, Sam, & Patil, Kaustubh. (2022).
|
664
708
|
| Chimpanzee and Human Gray Matter Masks [Data set]. Zenodo.
|
665
709
|
| https://doi.org/10.5281/zenodo.6463123
|
666
|
-
* -
|
710
|
+
* - ``junifer``'s custom brain mask
|
667
711
|
- | ``compute_brain_mask``
|
668
712
|
- Adapts to the target data
|
669
713
|
- 0.0.2
|
670
|
-
- | Compute the whole-brain
|
671
|
-
|
|
672
|
-
|
|
673
|
-
* -
|
714
|
+
- | Compute the whole-brain, gray-matter or white-matter mask using
|
715
|
+
| the template and the resolution from the target image. The
|
716
|
+
| templates are obtained via ``templateflow``.
|
717
|
+
* - ``nilearn``'s mask computed from fMRI data
|
674
718
|
- | ``compute_epi_mask``
|
675
719
|
- Adapts to the target data
|
676
720
|
- 0.0.2
|
@@ -678,15 +722,14 @@ Available
|
|
678
722
|
| proposed by T.Nichols: find the least dense point of the histogram,
|
679
723
|
| between fractions ``lower_cutoff`` and ``upper_cutoff`` of the total
|
680
724
|
| image histogram. See :func:`nilearn.masking.compute_epi_mask`
|
681
|
-
* -
|
725
|
+
* - ``nilearn``'s background mask
|
682
726
|
- | ``compute_background_mask``
|
683
727
|
- Adapts to the target data
|
684
728
|
- 0.0.2
|
685
729
|
- | Compute a brain mask for the images by guessing the value of the
|
686
730
|
| background from the border of the image.
|
687
731
|
| See :func:`nilearn.masking.compute_background_mask`
|
688
|
-
|
689
|
-
* - Nilearn's ICBM152 template gray-matter mask
|
732
|
+
* - ``nilearn``'s ICBM152 template gray-matter mask
|
690
733
|
- | ``fetch_icbm152_brain_gm_mask``
|
691
734
|
- ``MNI152NLin2009aAsym``
|
692
735
|
- 0.0.2
|
@@ -695,8 +738,9 @@ Available
|
|
695
738
|
| See :func:`nilearn.datasets.fetch_icbm152_brain_gm_mask`
|
696
739
|
|
697
740
|
|
698
|
-
|
699
|
-
|
741
|
+
..
|
742
|
+
Planned
|
743
|
+
~~~~~~~
|
700
744
|
|
701
745
|
..
|
702
746
|
helpful site for creating tables: https://rest-sphinx-memo.readthedocs.io/en/latest/ReST.html#tables
|
@@ -0,0 +1 @@
|
|
1
|
+
Add support for local ``junifer queue`` via GNU Parallel by `Synchon Mandal`_
|
@@ -0,0 +1 @@
|
|
1
|
+
Improve documentation by adding information about space transformation and writing custom Preprocessors by `Synchon Mandal`_
|
@@ -164,6 +164,8 @@ In case you remove some files or change their filenames, you can run into
|
|
164
164
|
errors when using ``make local``. In this situation you can use ``make clean``
|
165
165
|
to clean up the already build files and then re-run ``make local``.
|
166
166
|
|
167
|
+
Also, we follow British English for the documentation.
|
168
|
+
|
167
169
|
|
168
170
|
Writing Examples
|
169
171
|
----------------
|
@@ -6,19 +6,20 @@ Adding Coordinates
|
|
6
6
|
==================
|
7
7
|
|
8
8
|
Instead of using whole-brain parcellations to aggregate voxel-wise signals from
|
9
|
-
MR images (as for example in the :class:`.ParcelAggregation` marker), junifer
|
9
|
+
MR images (as for example in the :class:`.ParcelAggregation` marker), ``junifer``
|
10
10
|
allows you to specify a set of coordinates around which to draw spheres to
|
11
11
|
aggregate (for example using the :class:`.SphereAggregation` marker) the MR
|
12
12
|
signals from individual voxels. Now, before you start specifying your own sets
|
13
|
-
of coordinates, check the coordinates that junifer already has
|
13
|
+
of coordinates, check the coordinates that ``junifer`` already has
|
14
14
|
:ref:`built in <builtin>`. If you simply want to use a well known set of
|
15
|
-
coordinates from the literature, there is a reasonable chance, that junifer
|
15
|
+
coordinates from the literature, there is a reasonable chance, that ``junifer``
|
16
16
|
provides them already.
|
17
17
|
|
18
18
|
If you checked the in-built coordinates, and they are not there already (for
|
19
|
-
example if you came up with your own set of coordinates), then junifer
|
20
|
-
an easy way for you to register them using the
|
21
|
-
function, so you can use your own set of
|
19
|
+
example if you came up with your own set of coordinates), then ``junifer``
|
20
|
+
provides an easy way for you to register them using the
|
21
|
+
:func:`.register_coordinates` function, so you can use your own set of
|
22
|
+
coordinates within a ``junifer`` pipeline.
|
22
23
|
|
23
24
|
From the API reference, we can see that it has 4 positional arguments
|
24
25
|
(``name``, ``coordinates``, ``voi_names`` and ``space``) as well as one
|
@@ -26,7 +27,7 @@ optional keyword argument (``overwrite``).
|
|
26
27
|
|
27
28
|
The ``name`` argument takes a string indicating the name you want to give to
|
28
29
|
this set of coordinates. This ``name`` can be used to obtain and operate on a
|
29
|
-
set of coordinates in junifer
|
30
|
+
set of coordinates in ``junifer``. For example, you can obtain your coordinates
|
30
31
|
after registration by providing ``name`` to :func:`.load_coordinates`. We could
|
31
32
|
simply call it ``"my_set_of_coordinates"``, but likely you want a more
|
32
33
|
descriptive and more informative name most of the time.
|
@@ -36,9 +37,7 @@ The ``coordinates`` argument takes the actual coordinates as a 2-dimensional
|
|
36
37
|
columns (one for each spatial dimension). That is, the first, second, and third
|
37
38
|
columns indicate the x-, y-, and z-coordinates in MNI space respectively.
|
38
39
|
The number of rows in the array correspond to the number of coordinates that
|
39
|
-
belong to this set.
|
40
|
-
so therefore these coordinates should always be real-world coordinates of the
|
41
|
-
MNI space.
|
40
|
+
belong to this set.
|
42
41
|
|
43
42
|
The ``voi_names`` argument takes a list of strings
|
44
43
|
indicating the names of each coordinate (i.e. volume-of-interest) in the
|
@@ -47,7 +46,7 @@ the number of rows in the coordinates array. Now, we know everything we need to
|
|
47
46
|
know to register a set of coordinates.
|
48
47
|
|
49
48
|
Lastly, we specify the ``space`` that the coordinates are in, for example,
|
50
|
-
``"MNI"`` or ``"
|
49
|
+
``"MNI"`` or ``"native"`` (scanner-native space).
|
51
50
|
|
52
51
|
Step 1: Prepare code to register a set of coordinates
|
53
52
|
-----------------------------------------------------
|
@@ -62,8 +61,8 @@ packages:
|
|
62
61
|
import numpy as np
|
63
62
|
|
64
63
|
For the sake of this example, we can create a set of coordinates that belong
|
65
|
-
to the
|
66
|
-
junifer
|
64
|
+
to the Default Mode Network (DMN), and register this set of coordinates with
|
65
|
+
``junifer``. Note, that ``junifer`` already has a
|
67
66
|
:ref:`set of coordinates built-in <builtin>` ("DMNBuckner") that is associated
|
68
67
|
with the DMN. Here, we use the DMN coordinates used in a
|
69
68
|
`nilearn example <https://nilearn.github.io/dev/auto_examples/03_connectivity/plot_sphere_based_connectome.html>`_.
|
@@ -97,7 +96,7 @@ simply use this to register our coordinates:
|
|
97
96
|
space="MNI"
|
98
97
|
)
|
99
98
|
|
100
|
-
Now, when we run this script, junifer registers these coordinates and we can
|
99
|
+
Now, when we run this script, ``junifer`` registers these coordinates and we can
|
101
100
|
use them in subsequent analyses. Let's now consider how to use coordinate
|
102
101
|
registration in combination with
|
103
102
|
:ref:`codeless configuration using a YAML file <codeless>`.
|
@@ -106,7 +105,7 @@ Step 2: Add coordinate registration to the YAML file
|
|
106
105
|
----------------------------------------------------
|
107
106
|
|
108
107
|
In order to register your coordinates for a pipeline configured by a YAML file,
|
109
|
-
you can use the ``with`` keyword provided by junifer
|
108
|
+
you can use the ``with`` keyword provided by ``junifer``:
|
110
109
|
|
111
110
|
.. code-block:: yaml
|
112
111
|
|
@@ -12,8 +12,8 @@ the structure of a dataset and provide two specific functionalities:
|
|
12
12
|
element (e.g. the path to the T1 image, the path to the T2 image, etc.)
|
13
13
|
#. Provide the list of *elements* available in the dataset.
|
14
14
|
|
15
|
-
In this section, we will see how to create a
|
16
|
-
aspects of
|
15
|
+
In this section, we will see how to create a DataGrabber for a dataset. Basic
|
16
|
+
aspects of DataGrabbers are covered in the
|
17
17
|
:ref:`Understanding Data Grabbers <datagrabber>` section.
|
18
18
|
|
19
19
|
.. _extending_datagrabbers_think:
|
@@ -22,7 +22,7 @@ Step 1: Think about the element
|
|
22
22
|
-------------------------------
|
23
23
|
|
24
24
|
Like with any programming-related task, the first step is to think. When
|
25
|
-
creating a
|
25
|
+
creating a DataGrabber, we need to first define what an *element* is.
|
26
26
|
The *element* should be the smallest unit of data that can be processed. That
|
27
27
|
is, for each element, there should be a set of data that can be processed, but
|
28
28
|
only one of each *data type* (see :ref:`data_types`).
|
@@ -42,28 +42,28 @@ then the *element* should be composed of 3 items:
|
|
42
42
|
If any of these items were not part of the element, then we will have more than
|
43
43
|
one ``T1w`` and / or ``BOLD`` image for each subject, which is not allowed.
|
44
44
|
|
45
|
-
Importantly, nothing prevents that one image
|
46
|
-
For example, it is usually the case that the ``T1w`` image is not
|
47
|
-
each task, but once in the entire session. So in this case, the
|
48
|
-
for the element (``sub001``, ``ses1``, ``rest``) will be the same
|
49
|
-
``T1w`` image for the element (``sub001``, ``ses1``, ``stroop``).
|
45
|
+
Importantly, nothing prevents that one image being part of two different
|
46
|
+
elements. For example, it is usually the case that the ``T1w`` image is not
|
47
|
+
acquired for each task, but once in the entire session. So in this case, the
|
48
|
+
``T1w`` image for the element (``sub001``, ``ses1``, ``rest``) will be the same
|
49
|
+
as the ``T1w`` image for the element (``sub001``, ``ses1``, ``stroop``).
|
50
50
|
|
51
51
|
We will now continue this section using as an example, a dataset in BIDS format
|
52
52
|
in which 9 subjects (``sub-01`` to ``sub-09``) were scanned each during 3
|
53
53
|
sessions (``ses-01``, ``ses-02``, ``ses-03``) and each session included a
|
54
54
|
``T1w`` and a ``BOLD`` image (resting-state), except for ``ses-03`` which was
|
55
|
-
only anatomical.
|
55
|
+
only anatomical data.
|
56
56
|
|
57
57
|
Step 2: Think about the dataset's structure
|
58
58
|
-------------------------------------------
|
59
59
|
|
60
60
|
Now that we have our element defined, we need to think about the structure of
|
61
61
|
the dataset. Mainly, because the structure of the dataset will determine how
|
62
|
-
the
|
62
|
+
the DataGrabber needs to be implemented.
|
63
63
|
|
64
|
-
|
65
|
-
terms of *patterns*. A *pattern* is a string that contains placeholders that
|
66
|
-
replaced by the actual values of the element. In our BIDS example, the path
|
64
|
+
``junifer`` provides an abstract class to deal with datasets that can be thought
|
65
|
+
in terms of *patterns*. A *pattern* is a string that contains placeholders that
|
66
|
+
are replaced by the actual values of the element. In our BIDS example, the path
|
67
67
|
to the T1w image of subject ``sub-01`` and session ``ses-01``, relative to the
|
68
68
|
dataset location, is ``sub-01/ses-01/anat/sub-01_ses-01_T1w.nii.gz``. By
|
69
69
|
replacing ``sub-01`` with ``sub-02``, we can obtain the T1w image of the first
|
@@ -88,7 +88,7 @@ discussion in the `junifer Discussions`_ page. Most probably we can help you
|
|
88
88
|
get your dataset in order.
|
89
89
|
|
90
90
|
If there is no other way, then you can follow :ref:`extending_datagrabbers_base`
|
91
|
-
to create a
|
91
|
+
to create a DataGrabber from scratch.
|
92
92
|
|
93
93
|
.. _extending_datagrabbers_pattern:
|
94
94
|
|
@@ -101,7 +101,7 @@ Option A: Extending from PatternDataGrabber
|
|
101
101
|
The :class:`.PatternDataGrabber` class is an abstract class that has the
|
102
102
|
functionality of understanding patterns embedded in it.
|
103
103
|
|
104
|
-
Before creating the
|
104
|
+
Before creating the DataGrabber, we need to define 3 variables:
|
105
105
|
|
106
106
|
* ``types``: A list with the available :ref:`data_types` in our dataset.
|
107
107
|
* ``patterns``: A dictionary that specifies the pattern for each data type.
|
@@ -126,7 +126,7 @@ where the dataset is located. For example, if the dataset is located in
|
|
126
126
|
location of the dataset, we can expose the variable in the constructor, as in
|
127
127
|
the following example.
|
128
128
|
|
129
|
-
With the variables defined above, we can create our
|
129
|
+
With the variables defined above, we can create our DataGrabber and name it
|
130
130
|
``ExampleBIDSDataGrabber``:
|
131
131
|
|
132
132
|
.. code-block:: python
|
@@ -152,7 +152,7 @@ With the variables defined above, we can create our datagrabber and name it
|
|
152
152
|
replacements=replacements,
|
153
153
|
)
|
154
154
|
|
155
|
-
Our
|
155
|
+
Our DataGrabber is ready to be used by ``junifer``. However, it is still unknown
|
156
156
|
to the library. We need to register it in the library. To do so, we need to
|
157
157
|
use the :func:`.register_datagrabber` decorator.
|
158
158
|
|
@@ -183,9 +183,9 @@ use the :func:`.register_datagrabber` decorator.
|
|
183
183
|
)
|
184
184
|
|
185
185
|
|
186
|
-
Now, we can use our
|
187
|
-
in the yaml file to ``ExampleBIDSDataGrabber``. Remember that we still need
|
188
|
-
set the ``datadir``.
|
186
|
+
Now, we can use our DataGrabber in ``junifer``, by setting the ``datagrabber``
|
187
|
+
kind in the yaml file to ``ExampleBIDSDataGrabber``. Remember that we still need
|
188
|
+
to set the ``datadir``.
|
189
189
|
|
190
190
|
.. code-block:: yaml
|
191
191
|
|
@@ -209,7 +209,7 @@ temporary directory. To set the location of the dataset, you can use the
|
|
209
209
|
be used to specify the path to the root directory of the dataset after doing
|
210
210
|
``datalad clone``.
|
211
211
|
|
212
|
-
In the example, the dataset is hosted in
|
212
|
+
In the example, the dataset is hosted in Gin
|
213
213
|
(``https://gin.g-node.org/juaml/datalad-example-bids``).
|
214
214
|
|
215
215
|
When we clone this dataset, we will see the following structure:
|
@@ -238,7 +238,7 @@ Now we have our 2 additional variables:
|
|
238
238
|
uri = "https://gin.g-node.org/juaml/datalad-example-bids"
|
239
239
|
rootdir = "example_bids_ses"
|
240
240
|
|
241
|
-
And we can create our
|
241
|
+
And we can create our DataGrabber:
|
242
242
|
|
243
243
|
.. code-block:: python
|
244
244
|
|
@@ -267,17 +267,34 @@ And we can create our datagrabber:
|
|
267
267
|
replacements=replacements,
|
268
268
|
)
|
269
269
|
|
270
|
+
This approach can be used directly from the YAML, like so:
|
271
|
+
|
272
|
+
.. code-block:: yaml
|
273
|
+
|
274
|
+
datagrabber:
|
275
|
+
- kind: PatternDataladDataGrabber
|
276
|
+
types:
|
277
|
+
- BOLD
|
278
|
+
- T1w
|
279
|
+
patterns:
|
280
|
+
BOLD: "{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz"
|
281
|
+
T1w: "{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz"
|
282
|
+
replacements:
|
283
|
+
- subject
|
284
|
+
- session
|
285
|
+
uri: "https://gin.g-node.org/juaml/datalad-example-bids"
|
286
|
+
rootdir: "example_bids_ses"
|
270
287
|
|
271
288
|
.. _extending_datagrabbers_base:
|
272
289
|
|
273
290
|
Option B: Extending from BaseDataGrabber
|
274
291
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
275
292
|
|
276
|
-
While we could not think of a use case in which the pattern-based
|
277
|
-
would not be suitable, it is still possible to create a
|
293
|
+
While we could not think of a use case in which the pattern-based DataGrabber
|
294
|
+
would not be suitable, it is still possible to create a DataGrabber extending
|
278
295
|
from the :class:`.BaseDataGrabber` class.
|
279
296
|
|
280
|
-
In order to create a
|
297
|
+
In order to create a DataGrabber extending from :class:`.BaseDataGrabber`, we
|
281
298
|
need to implement the following methods:
|
282
299
|
|
283
300
|
- ``get_item``: to get a single item from the dataset.
|
@@ -287,7 +304,7 @@ need to implement the following methods:
|
|
287
304
|
.. note::
|
288
305
|
|
289
306
|
The ``__init__`` method could also be implemented, but it is not mandatory.
|
290
|
-
This is required if the
|
307
|
+
This is required if the DataGrabber requires any extra parameter.
|
291
308
|
|
292
309
|
We will now implement our BIDS example with this method.
|
293
310
|
|
@@ -339,7 +356,7 @@ method, in the same order.
|
|
339
356
|
return ["subject", "session"]
|
340
357
|
|
341
358
|
|
342
|
-
So, to
|
359
|
+
So, to summarise, our DataGrabber will look like this:
|
343
360
|
|
344
361
|
.. code-block:: python
|
345
362
|
|
@@ -403,7 +420,7 @@ not standardised.
|
|
403
420
|
The ``mappings`` key is only required if the ``format`` is ``adhoc``. If the
|
404
421
|
``format`` is ``fmriprep``, the ``mappings`` key is not required.
|
405
422
|
|
406
|
-
Currently, junifer provides only one confound remover step
|
423
|
+
Currently, ``junifer`` provides only one confound remover step
|
407
424
|
(:class:`.fMRIPrepConfoundRemover`), which relies entirely on the ``fmriprep``
|
408
425
|
confound variable names. Thus, if the confounds are not in ``fmriprep`` format,
|
409
426
|
the user will need to provide the mappings between the *ad-hoc* variable names
|
@@ -0,0 +1,141 @@
|
|
1
|
+
.. include:: ../links.inc
|
2
|
+
|
3
|
+
.. _specifying_dependencies:
|
4
|
+
|
5
|
+
Specifying Dependencies
|
6
|
+
=======================
|
7
|
+
|
8
|
+
This section describes how you can tackle different situations when writing
|
9
|
+
your custom Marker and / or Preprocessor and take care of the dependencies for
|
10
|
+
them.
|
11
|
+
|
12
|
+
You might have already come across listing out dependencies for your
|
13
|
+
:ref:`custom Markers <extending_markers>` and / or
|
14
|
+
:ref:`custom Preprocessors <extending_preprocessors>`, if not, check them out
|
15
|
+
first. If you have already gone through them, you are already familiar with using
|
16
|
+
class attribute ``_DEPENDENCIES`` to keep track of its dependencies. ``junifer``
|
17
|
+
is a bit more sophisticated about them and we will see here how you can make the
|
18
|
+
best use of them.
|
19
|
+
|
20
|
+
.. _component_dependencies:
|
21
|
+
|
22
|
+
Handling dependencies that come as Python packages
|
23
|
+
--------------------------------------------------
|
24
|
+
|
25
|
+
You have already seen this case handled by having a class attribute
|
26
|
+
``_DEPENDENCIES`` whose value is a set of all the package names that the
|
27
|
+
component depends on. For example, for :class:`.RSSETSMarker`, we have:
|
28
|
+
|
29
|
+
.. code-block:: python
|
30
|
+
|
31
|
+
_DEPENDENCIES: ClassVar[Set[str]] = {"nilearn"}
|
32
|
+
|
33
|
+
The type annotation is for documentation and static type checking purposes.
|
34
|
+
Although not required, we highly recommend you use them, your future self
|
35
|
+
and others who use it will thank you.
|
36
|
+
|
37
|
+
.. _component_external_dependencies:
|
38
|
+
|
39
|
+
Handling external dependencies from toolboxes
|
40
|
+
---------------------------------------------
|
41
|
+
|
42
|
+
You can also specify dependencies of external toolboxes like AFIN, FSL and ANTs,
|
43
|
+
by having a class attribute like so:
|
44
|
+
|
45
|
+
.. code-block:: python
|
46
|
+
|
47
|
+
_EXT_DEPENDENCIES: ClassVar[List[Dict[str, Union[str, List[str]]]]] = [
|
48
|
+
{
|
49
|
+
"name": "afni",
|
50
|
+
"commands": ["3dReHo", "3dAFNItoNIFTI"],
|
51
|
+
},
|
52
|
+
]
|
53
|
+
|
54
|
+
The above example is taken from the class which computes regional homogeneity
|
55
|
+
(ReHo) using AFNI. The general pattern is that you need to have the value of
|
56
|
+
``_EXT_DEPENDENCIES`` as a list of dictionary with two keys:
|
57
|
+
|
58
|
+
* ``name`` (str) : lowercased name of the toolbox
|
59
|
+
* ``commands`` (list of str) : actual names of the commands you need to use
|
60
|
+
|
61
|
+
This is simple but powerful as we will see in the following sub-sections.
|
62
|
+
|
63
|
+
.. _component_conditional_dependencies:
|
64
|
+
|
65
|
+
Handling conditional dependencies
|
66
|
+
---------------------------------
|
67
|
+
|
68
|
+
You might encounter situations where your Marker or Preprocessor needs to have
|
69
|
+
option for the user to either use a dependency that comes as a package or
|
70
|
+
use a dependency that relies on external toolboxes. With the foundation we laid
|
71
|
+
above, it is really simple to solve it while having validation before running
|
72
|
+
and letting the user know if some dependency is missing.
|
73
|
+
|
74
|
+
Let's look at an actual implementation, in this case :class:`.SpaceWarper`, so
|
75
|
+
that it shows the problem a bit better and how we solve it:
|
76
|
+
|
77
|
+
.. code-block:: python
|
78
|
+
|
79
|
+
class SpaceWarper(BasePreprocessor):
|
80
|
+
# docstring
|
81
|
+
_CONDITIONAL_DEPENDENCIES: ClassVar[List[Dict[str, Union[str, Type]]]] = [
|
82
|
+
{
|
83
|
+
"using": "fsl",
|
84
|
+
"depends_on": FSLWarper,
|
85
|
+
},
|
86
|
+
{
|
87
|
+
"using": "ants",
|
88
|
+
"depends_on": ANTsWarper,
|
89
|
+
},
|
90
|
+
]
|
91
|
+
|
92
|
+
def __init__(
|
93
|
+
self, using: str, reference: str, on: Union[List[str], str]
|
94
|
+
) -> None:
|
95
|
+
# validation and setting up
|
96
|
+
|
97
|
+
|
98
|
+
Here, you see a new class attribute ``_CONDITIONAL_DEPENDENCIES`` which is a
|
99
|
+
list of dictionaries with two keys:
|
100
|
+
|
101
|
+
* ``using`` (str) : lowercased name of the toolbox
|
102
|
+
* ``depends_on`` (object) : a class which implements the particular tool's use
|
103
|
+
|
104
|
+
It is mandatory to have the ``using`` positional argument in the constructor in
|
105
|
+
this case as the validation starts with this and moves further. It is also
|
106
|
+
mandatory to only allow the value of ``using`` argument to be one of them
|
107
|
+
specified in the ``using`` key of ``_CONDITIONAL_DEPENDENCIES`` entries.
|
108
|
+
|
109
|
+
For brevity, we only show the ``FSLWarper`` here but ``ANTsWarper`` looks very
|
110
|
+
similar. ``FSLWarper`` looks like this (only the relevant part is shown here):
|
111
|
+
|
112
|
+
.. code-block:: python
|
113
|
+
|
114
|
+
class FSLWarper:
|
115
|
+
# docstring
|
116
|
+
|
117
|
+
_EXT_DEPENDENCIES: ClassVar[List[Dict[str, Union[str, List[str]]]]] = [
|
118
|
+
{
|
119
|
+
"name": "fsl",
|
120
|
+
"commands": ["flirt", "applywarp"],
|
121
|
+
},
|
122
|
+
]
|
123
|
+
|
124
|
+
_DEPENDENCIES: ClassVar[Set[str]] = {"numpy", "nibabel"}
|
125
|
+
|
126
|
+
def preprocess(
|
127
|
+
self,
|
128
|
+
input: Dict[str, Any],
|
129
|
+
extra_input: Dict[str, Any],
|
130
|
+
) -> Dict[str, Any]:
|
131
|
+
# implementation
|
132
|
+
|
133
|
+
Here you can see the familiar ``_DEPENDENCIES`` and ``_EXT_DEPENDENCIES`` class
|
134
|
+
attributes. The validation process starts by looking up the ``using`` value of
|
135
|
+
the ``_CONDITIONAL_DEPENDENCIES`` entries and then retrieves the object pointed
|
136
|
+
by ``depends_on``. After that, the ``_DEPENDENCIES`` and ``_EXT_DEPENDENCIES``
|
137
|
+
class attributes are checked.
|
138
|
+
|
139
|
+
This might be a bit too much to get it right away so feel free to check the code
|
140
|
+
for a better understanding. You can also check ``ALFFBase`` for a Marker
|
141
|
+
having this pattern.
|
@@ -0,0 +1,35 @@
|
|
1
|
+
.. include:: ../links.inc
|
2
|
+
|
3
|
+
.. _extending_extension:
|
4
|
+
|
5
|
+
Creating a ``junifer`` extension
|
6
|
+
================================
|
7
|
+
|
8
|
+
``junifer`` is designed to be easily extensible. Through the use of a registry
|
9
|
+
and decorators, you can easily add new functionality to ``junifer`` during
|
10
|
+
runtime. This is done by creating a new Python module and importing it before
|
11
|
+
running ``junifer``.
|
12
|
+
|
13
|
+
A special consideration has to be made when using the
|
14
|
+
:ref:`code-less configuration<codeless>`. In this case, the
|
15
|
+
``with`` statement can be used to import a module or run a Python file.
|
16
|
+
|
17
|
+
In the following example, we instruct ``junifer`` to first import ``my_module``
|
18
|
+
and then run the ``my_file.py`` file:
|
19
|
+
|
20
|
+
.. code-block:: yaml
|
21
|
+
|
22
|
+
with:
|
23
|
+
- my_module
|
24
|
+
- my_file.py
|
25
|
+
|
26
|
+
Thus, the code from ``my_file.py`` will be executed before running ``junifer``.
|
27
|
+
This is the ideal place to include ``junifer`` extensions.
|
28
|
+
|
29
|
+
.. important::
|
30
|
+
|
31
|
+
Some ``junifer`` commands will not consider files imported from files included
|
32
|
+
in the ``with`` statement. If ``my_file.py`` imports ``my_other_file.py``,
|
33
|
+
some of the ``junifer`` commands will not consider ``my_other_file.py``. Either
|
34
|
+
place all the code in one file or add multiple files to the ``with``
|
35
|
+
statement.
|