junifer 0.0.8.dev24__tar.gz → 0.0.8.dev184__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.8.dev24 → junifer-0.0.8.dev184}/PKG-INFO +6 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/api/onthefly.rst +1 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/builtin.rst +3 -3
- junifer-0.0.8.dev184/docs/changes/newsfragments/239.enh +1 -0
- junifer-0.0.8.dev184/docs/changes/newsfragments/364.doc +1 -0
- junifer-0.0.8.dev184/docs/changes/newsfragments/364.enh +1 -0
- junifer-0.0.8.dev184/docs/changes/newsfragments/364.feature +1 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/conf.py +12 -0
- junifer-0.0.8.dev184/docs/extending/confounds_format.rst +22 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/extending/datagrabber.rst +51 -66
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/extending/dependencies.rst +9 -11
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/extending/index.rst +2 -0
- junifer-0.0.8.dev184/docs/extending/logging.rst +38 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/extending/marker.rst +40 -48
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/extending/parcellations.rst +1 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/extending/preprocessor.rst +19 -25
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/whats_new.rst +1 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/examples/run_compute_parcel_mean.py +9 -2
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/examples/run_datagrabber_bids_datalad.py +2 -2
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/examples/run_junifer_julearn.py +1 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/_version.py +3 -3
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/functions.py +8 -1
- junifer-0.0.8.dev184/junifer/api/queue_context/__init__.pyi +13 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/queue_context/gnu_parallel_local_adapter.py +73 -113
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/queue_context/htcondor_adapter.py +106 -172
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/queue_context/queue_context_adapter.py +51 -3
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +3 -27
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/queue_context/tests/test_htcondor_adapter.py +4 -40
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/tests/test_functions.py +1 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/cli/parser.py +5 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +1 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/cli/tests/test_cli_utils.py +3 -0
- junifer-0.0.8.dev184/junifer/configs/__init__.py +9 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/configs/juseless/datagrabbers/__init__.pyi +4 -2
- junifer-0.0.8.dev184/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +42 -0
- junifer-0.0.8.dev184/junifer/configs/juseless/datagrabbers/camcan_vbm.py +45 -0
- junifer-0.0.8.dev184/junifer/configs/juseless/datagrabbers/ixi_vbm.py +68 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -7
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -16
- junifer-0.0.8.dev184/junifer/configs/juseless/datagrabbers/ucla.py +156 -0
- junifer-0.0.8.dev184/junifer/configs/juseless/datagrabbers/ukb_vbm.py +45 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/conftest.py +4 -3
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/_dispatch.py +1 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/coordinates/_ants_coordinates_warper.py +4 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/coordinates/_coordinates.py +5 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/coordinates/_fsl_coordinates_warper.py +4 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/maps/_ants_maps_warper.py +4 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/maps/_fsl_maps_warper.py +4 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/maps/_maps.py +5 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/masks/_ants_mask_warper.py +4 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/masks/_fsl_mask_warper.py +4 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/masks/_masks.py +5 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/masks/tests/test_masks.py +6 -6
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/parcellations/_ants_parcellation_warper.py +4 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/parcellations/_fsl_parcellation_warper.py +4 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/parcellations/_parcellations.py +11 -3
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/template_spaces.py +5 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/utils.py +4 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datagrabber/__init__.pyi +38 -5
- junifer-0.0.8.dev184/junifer/datagrabber/aomic/__init__.pyi +12 -0
- junifer-0.0.8.dev184/junifer/datagrabber/aomic/_types.py +22 -0
- junifer-0.0.8.dev184/junifer/datagrabber/aomic/id1000.py +245 -0
- junifer-0.0.8.dev184/junifer/datagrabber/aomic/piop1.py +315 -0
- junifer-0.0.8.dev184/junifer/datagrabber/aomic/piop2.py +298 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datagrabber/aomic/tests/test_id1000.py +33 -50
- junifer-0.0.8.dev184/junifer/datagrabber/aomic/tests/test_piop1.py +156 -0
- junifer-0.0.8.dev184/junifer/datagrabber/aomic/tests/test_piop2.py +141 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datagrabber/base.py +81 -46
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datagrabber/datalad_base.py +117 -72
- junifer-0.0.8.dev184/junifer/datagrabber/dmcc13_benchmark.py +380 -0
- junifer-0.0.8.dev184/junifer/datagrabber/hcp1200/__init__.pyi +9 -0
- junifer-0.0.8.dev184/junifer/datagrabber/hcp1200/datalad_hcp1200.py +69 -0
- junifer-0.0.8.dev184/junifer/datagrabber/hcp1200/hcp1200.py +212 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +54 -127
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datagrabber/multiple.py +36 -20
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datagrabber/pattern.py +61 -168
- junifer-0.0.8.dev184/junifer/datagrabber/pattern_datalad.py +63 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datagrabber/pattern_validation_mixin.py +22 -50
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datagrabber/tests/test_base.py +4 -4
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datagrabber/tests/test_datalad_base.py +14 -25
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +62 -116
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datagrabber/tests/test_multiple.py +29 -26
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datagrabber/tests/test_pattern.py +19 -24
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datagrabber/tests/test_pattern_datalad.py +68 -106
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +6 -47
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datareader/default.py +6 -2
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datareader/tests/test_default_reader.py +1 -1
- junifer-0.0.8.dev184/junifer/external/__init__.py +9 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/__init__.pyi +6 -3
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/base.py +106 -70
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/brainprint.py +28 -35
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/complexity/complexity_base.py +30 -29
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/complexity/hurst_exponent.py +22 -33
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/complexity/multiscale_entropy_auc.py +23 -33
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/complexity/perm_entropy.py +22 -34
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/complexity/range_entropy.py +22 -33
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/complexity/range_entropy_auc.py +22 -33
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/complexity/sample_entropy.py +22 -34
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/complexity/tests/test_hurst_exponent.py +2 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +2 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/complexity/tests/test_perm_entropy.py +2 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/complexity/tests/test_range_entropy.py +2 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/complexity/tests/test_range_entropy_auc.py +2 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/complexity/tests/test_sample_entropy.py +2 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +2 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/complexity/weighted_perm_entropy.py +22 -34
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/ets_rss.py +26 -27
- junifer-0.0.8.dev184/junifer/markers/falff/__init__.pyi +11 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/falff/_afni_falff.py +9 -5
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/falff/_junifer_falff.py +1 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/falff/falff_base.py +59 -58
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/falff/falff_maps.py +14 -38
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/falff/falff_parcels.py +24 -49
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/falff/falff_spheres.py +32 -59
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/falff/tests/test_falff_maps.py +11 -11
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/falff/tests/test_falff_parcels.py +12 -9
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/falff/tests/test_falff_spheres.py +12 -9
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +31 -33
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/edge_functional_connectivity_maps.py +10 -23
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +18 -33
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +23 -43
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/functional_connectivity_base.py +36 -35
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/functional_connectivity_maps.py +10 -23
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +18 -33
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +23 -44
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +8 -4
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_maps.py +2 -2
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +4 -3
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +4 -3
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_maps.py +2 -2
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +5 -4
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +4 -11
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/maps_aggregation.py +67 -51
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/parcel_aggregation.py +82 -64
- junifer-0.0.8.dev184/junifer/markers/reho/__init__.pyi +11 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/reho/_afni_reho.py +9 -5
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/reho/_junifer_reho.py +2 -1
- junifer-0.0.8.dev184/junifer/markers/reho/reho_base.py +195 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/reho/reho_maps.py +12 -28
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/reho/reho_parcels.py +21 -38
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/reho/reho_spheres.py +28 -51
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/reho/tests/test_reho_maps.py +9 -9
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/reho/tests/test_reho_parcels.py +13 -8
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/reho/tests/test_reho_spheres.py +11 -8
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/sphere_aggregation.py +84 -70
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/temporal_snr/temporal_snr_base.py +24 -24
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/temporal_snr/temporal_snr_maps.py +7 -16
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/temporal_snr/temporal_snr_parcels.py +18 -26
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/temporal_snr/temporal_snr_spheres.py +26 -40
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +2 -2
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/temporal_snr/tests/test_temporal_snr_maps.py +3 -4
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +3 -3
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +3 -11
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/tests/test_brainprint.py +10 -9
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/tests/test_ets_rss.py +2 -2
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/tests/test_maps_aggregation.py +34 -34
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/tests/test_markers_base.py +6 -6
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/tests/test_parcel_aggregation.py +49 -46
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/tests/test_sphere_aggregation.py +39 -36
- junifer-0.0.8.dev184/junifer/onthefly/__init__.py +9 -0
- junifer-0.0.8.dev24/junifer/onthefly/__init__.py → junifer-0.0.8.dev184/junifer/onthefly/__init__.pyi +1 -7
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/onthefly/read_transform.py +5 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/onthefly/tests/test_read_transform.py +7 -7
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/pipeline/__init__.pyi +4 -2
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/pipeline/marker_collection.py +10 -5
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/pipeline/pipeline_component_registry.py +16 -2
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/pipeline/pipeline_step_mixin.py +4 -3
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/pipeline/tests/test_marker_collection.py +3 -3
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/pipeline/tests/test_pipeline_step_mixin.py +9 -26
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/pipeline/tests/test_update_meta_mixin.py +3 -2
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/pipeline/update_meta_mixin.py +2 -4
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/pipeline/utils.py +17 -12
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/pipeline/workdir_manager.py +5 -5
- junifer-0.0.8.dev184/junifer/preprocess/__init__.pyi +20 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/preprocess/_temporal_filter.py +17 -23
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/preprocess/_temporal_slicer.py +11 -26
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/preprocess/base.py +95 -52
- junifer-0.0.8.dev184/junifer/preprocess/confounds/__init__.pyi +11 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/preprocess/confounds/fmriprep_confound_remover.py +68 -97
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +32 -37
- junifer-0.0.8.dev184/junifer/preprocess/smoothing/__init__.pyi +3 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/preprocess/smoothing/_afni_smoothing.py +4 -3
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/preprocess/smoothing/_fsl_smoothing.py +4 -3
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/preprocess/smoothing/_nilearn_smoothing.py +1 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/preprocess/smoothing/smoothing.py +58 -39
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/preprocess/smoothing/tests/test_smoothing.py +4 -4
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/preprocess/tests/test_preprocess_base.py +3 -5
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/preprocess/tests/test_temporal_filter.py +3 -3
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/preprocess/tests/test_temporal_slicer.py +0 -8
- junifer-0.0.8.dev184/junifer/preprocess/warping/__init__.pyi +3 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/preprocess/warping/_ants_warper.py +4 -3
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/preprocess/warping/_fsl_warper.py +4 -3
- junifer-0.0.8.dev184/junifer/preprocess/warping/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/preprocess/warping/space_warper.py +69 -63
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/preprocess/warping/tests/test_space_warper.py +43 -41
- junifer-0.0.8.dev184/junifer/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/stats.py +41 -30
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/storage/__init__.pyi +8 -4
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/storage/base.py +52 -43
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/storage/hdf5.py +33 -72
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/storage/pandas_base.py +5 -13
- junifer-0.0.8.dev184/junifer/storage/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/storage/sqlite.py +27 -40
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/storage/tests/test_hdf5.py +0 -12
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/storage/tests/test_sqlite.py +7 -17
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/storage/tests/test_storage_base.py +15 -20
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/storage/tests/test_utils.py +0 -10
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/storage/utils.py +31 -31
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/testing/datagrabbers.py +33 -34
- junifer-0.0.8.dev184/junifer/testing/py.typed +0 -0
- junifer-0.0.8.dev184/junifer/testing/tests/test_testing_registry.py +39 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/tests/test_stats.py +0 -2
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/typing/_typing.py +29 -12
- junifer-0.0.8.dev184/junifer/typing/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/utils/__init__.pyi +3 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/utils/helpers.py +20 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/utils/logging.py +2 -1
- junifer-0.0.8.dev184/junifer/utils/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer.egg-info/PKG-INFO +6 -1
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer.egg-info/SOURCES.txt +14 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer.egg-info/requires.txt +7 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/pyproject.toml +5 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/uv.lock +525 -0
- junifer-0.0.8.dev24/junifer/api/queue_context/__init__.pyi +0 -5
- junifer-0.0.8.dev24/junifer/configs/__init__.py +0 -4
- junifer-0.0.8.dev24/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -47
- junifer-0.0.8.dev24/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -51
- junifer-0.0.8.dev24/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -75
- junifer-0.0.8.dev24/junifer/configs/juseless/datagrabbers/ucla.py +0 -146
- junifer-0.0.8.dev24/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -50
- junifer-0.0.8.dev24/junifer/datagrabber/aomic/__init__.pyi +0 -5
- junifer-0.0.8.dev24/junifer/datagrabber/aomic/id1000.py +0 -234
- junifer-0.0.8.dev24/junifer/datagrabber/aomic/piop1.py +0 -311
- junifer-0.0.8.dev24/junifer/datagrabber/aomic/piop2.py +0 -296
- junifer-0.0.8.dev24/junifer/datagrabber/aomic/tests/test_piop1.py +0 -198
- junifer-0.0.8.dev24/junifer/datagrabber/aomic/tests/test_piop2.py +0 -177
- junifer-0.0.8.dev24/junifer/datagrabber/dmcc13_benchmark.py +0 -367
- junifer-0.0.8.dev24/junifer/datagrabber/hcp1200/__init__.pyi +0 -4
- junifer-0.0.8.dev24/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -75
- junifer-0.0.8.dev24/junifer/datagrabber/hcp1200/hcp1200.py +0 -202
- junifer-0.0.8.dev24/junifer/datagrabber/pattern_datalad.py +0 -163
- junifer-0.0.8.dev24/junifer/external/__init__.py +0 -4
- junifer-0.0.8.dev24/junifer/markers/falff/__init__.pyi +0 -5
- junifer-0.0.8.dev24/junifer/markers/reho/__init__.pyi +0 -5
- junifer-0.0.8.dev24/junifer/markers/reho/reho_base.py +0 -138
- junifer-0.0.8.dev24/junifer/preprocess/__init__.pyi +0 -15
- junifer-0.0.8.dev24/junifer/preprocess/confounds/__init__.pyi +0 -3
- junifer-0.0.8.dev24/junifer/preprocess/smoothing/__init__.pyi +0 -3
- junifer-0.0.8.dev24/junifer/preprocess/warping/__init__.pyi +0 -3
- junifer-0.0.8.dev24/junifer/testing/tests/test_testing_registry.py +0 -16
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.dockerignore +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.github/dependabot.yml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.github/pull_request_template.md +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.github/workflows/check-stale.yml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.github/workflows/ci-docs.yml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.github/workflows/ci.yml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.github/workflows/docker-ci-publish.yml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.github/workflows/docker-docs-publish.yml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.github/workflows/docker-publish.yml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.github/workflows/docs-preview.yml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.github/workflows/docs.yml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.github/workflows/lint.yml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.github/workflows/publish.yml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.gitignore +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.gitmodules +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.pre-commit-config.yaml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/.python-version +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/AUTHORS.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/Dockerfile +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/Dockerfile-ci +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/Dockerfile-docs +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/LICENSE.md +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/README.md +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/codecov.yml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/conda-env.yml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/Makefile +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/_static/css/custom.css +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/_static/js/custom.js +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/_templates/versions.html +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/api/api.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/api/cli.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/api/configs.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/api/data.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/api/datagrabbers.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/api/datareaders.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/api/index.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/api/markers.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/api/nilearn.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/api/pipeline.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/api/preprocessing.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/api/stats.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/api/storage.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/api/testing.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/api/utils.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/changes/contributors.inc +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/changes/newsfragments/.gitignore +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/changes/newsfragments/474.misc +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/changes/newsfragments/482.bugfix +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/changes/newsfragments/492.bugfix +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/contribution.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/extending/coordinates.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/extending/data_dump_asset.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/extending/data_registries.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/extending/data_types.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/extending/extension.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/extending/maps.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/extending/masks.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/extending/plugins.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/faq.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/help.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/images/junifer_logo.png +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/index.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/installation.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/links.inc +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/maintaining.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/redirect.html +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/starting.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/understanding/data.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/understanding/datagrabber.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/understanding/datareader.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/understanding/index.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/understanding/marker.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/understanding/pipeline.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/understanding/preprocess.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/understanding/storage.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/using/codeless.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/using/configuring.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/using/dumping.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/using/index.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/using/masks.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/using/queueing.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/docs/using/running.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/examples/README.rst +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/examples/norun_hcpfc_pearson.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/examples/norun_ukbvm_gmd.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/examples/run_ets_rss_marker.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/examples/run_run_gmd_mean.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/examples/yamls/gmd_mean.yaml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/examples/yamls/ukb_gmd_mean.yaml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/ignore_words.txt +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/__init__.pyi +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/__init__.pyi +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/decorators.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/queue_context/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/queue_context/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/afni/3dRSFC +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/afni/3dReHo +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/afni/afni +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/afni/run_afni_docker.sh +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/ants/ResampleImage +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/ants/antsApplyTransforms +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/ants/run_ants_docker.sh +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/freesurfer/mri_binarize +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/freesurfer/mri_mc +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/freesurfer/mri_pretess +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/freesurfer/mris_convert +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/fsl/applywarp +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/fsl/flirt +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/fsl/img2imgcoord +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/fsl/std2imgcoord +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/run_conda.bash +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/run_conda.zsh +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/run_venv.bash +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/res/run_venv.zsh +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/api/tests/test_decorators.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/cli/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/cli/__init__.pyi +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/cli/cli.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/cli/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/cli/tests/test_cli.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/cli/tests/test_parser.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/cli/utils.py +0 -0
- /junifer-0.0.8.dev24/junifer/configs/juseless/datagrabbers/py.typed → /junifer-0.0.8.dev184/junifer/configs/__init__.pyi +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/configs/juseless/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/configs/juseless/__init__.pyi +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
- {junifer-0.0.8.dev24/junifer/configs/juseless → junifer-0.0.8.dev184/junifer/configs/juseless/datagrabbers}/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
- {junifer-0.0.8.dev24/junifer/data → junifer-0.0.8.dev184/junifer/configs/juseless}/py.typed +0 -0
- {junifer-0.0.8.dev24/junifer/datagrabber/aomic → junifer-0.0.8.dev184/junifer/configs}/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/__init__.pyi +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/coordinates/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/coordinates/__init__.pyi +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/maps/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/maps/__init__.pyi +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/maps/tests/test_maps.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/masks/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/masks/__init__.pyi +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/parcellations/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/parcellations/__init__.pyi +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/pipeline_data_registry_base.py +0 -0
- {junifer-0.0.8.dev24/junifer/datagrabber/hcp1200 → junifer-0.0.8.dev184/junifer/data}/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/tests/test_data_utils.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/tests/test_dispatch.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/data/tests/test_template_spaces.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datagrabber/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datagrabber/aomic/__init__.py +0 -0
- {junifer-0.0.8.dev24/junifer/datagrabber → junifer-0.0.8.dev184/junifer/datagrabber/aomic}/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datagrabber/hcp1200/__init__.py +0 -0
- {junifer-0.0.8.dev24/junifer/datareader → junifer-0.0.8.dev184/junifer/datagrabber/hcp1200}/py.typed +0 -0
- {junifer-0.0.8.dev24/junifer/external/nilearn → junifer-0.0.8.dev184/junifer/datagrabber}/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datareader/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/datareader/__init__.pyi +0 -0
- {junifer-0.0.8.dev24/junifer/markers/complexity → junifer-0.0.8.dev184/junifer/datareader}/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
- /junifer-0.0.8.dev24/junifer/markers/falff/py.typed → /junifer-0.0.8.dev184/junifer/external/__init__.pyi +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/external/h5io/h5io/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/external/h5io/h5io/_h5io.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/external/h5io/h5io/_version.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/external/h5io/h5io/chunked_array.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/external/h5io/h5io/chunked_list.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/external/nilearn/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/external/nilearn/__init__.pyi +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.8.dev24/junifer/markers/functional_connectivity → junifer-0.0.8.dev184/junifer/external/nilearn}/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.8.dev24/junifer/markers → junifer-0.0.8.dev184/junifer/external}/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/complexity/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/complexity/__init__.pyi +0 -0
- {junifer-0.0.8.dev24/junifer/markers/reho → junifer-0.0.8.dev184/junifer/markers/complexity}/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/falff/__init__.py +0 -0
- {junifer-0.0.8.dev24/junifer/markers/temporal_snr → junifer-0.0.8.dev184/junifer/markers/falff}/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
- {junifer-0.0.8.dev24/junifer/pipeline → junifer-0.0.8.dev184/junifer/markers/functional_connectivity}/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
- {junifer-0.0.8.dev24/junifer/preprocess/confounds → junifer-0.0.8.dev184/junifer/markers}/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/reho/__init__.py +0 -0
- {junifer-0.0.8.dev24/junifer/preprocess → junifer-0.0.8.dev184/junifer/markers/reho}/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/temporal_snr/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/temporal_snr/__init__.pyi +0 -0
- {junifer-0.0.8.dev24/junifer/preprocess/smoothing → junifer-0.0.8.dev184/junifer/markers/temporal_snr}/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/tests/test_marker_utils.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/markers/utils.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/onthefly/_brainprint.py +0 -0
- {junifer-0.0.8.dev24/junifer/preprocess/warping → junifer-0.0.8.dev184/junifer/onthefly}/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/pipeline/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/pipeline/_data_object_dumper.py +0 -0
- {junifer-0.0.8.dev24/junifer → junifer-0.0.8.dev184/junifer/pipeline}/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/pipeline/tests/test_data_object_dumper.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/preprocess/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/preprocess/confounds/__init__.py +0 -0
- {junifer-0.0.8.dev24/junifer/storage → junifer-0.0.8.dev184/junifer/preprocess/confounds}/py.typed +0 -0
- {junifer-0.0.8.dev24/junifer/testing → junifer-0.0.8.dev184/junifer/preprocess}/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/preprocess/smoothing/__init__.py +0 -0
- {junifer-0.0.8.dev24/junifer/utils → junifer-0.0.8.dev184/junifer/preprocess/smoothing}/py.typed +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/preprocess/warping/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/storage/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/storage/tests/test_pandas_base.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/testing/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/testing/__init__.pyi +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/testing/registry.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/testing/utils.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/tests/test_main.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/typing/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/typing/__init__.pyi +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/utils/__init__.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/utils/_config.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/utils/_yaml.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/utils/fs.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/utils/singleton.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/utils/tests/test_config.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/utils/tests/test_fs.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/utils/tests/test_helpers.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer/utils/tests/test_logging.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer.egg-info/dependency_links.txt +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer.egg-info/entry_points.txt +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/junifer.egg-info/top_level.txt +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/justfile +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/setup.cfg +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/setup.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/tools/create_aomic1000_example_dataset.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/tools/create_aomicpiop1_example_dataset.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/tools/create_aomicpiop2_example_dataset.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/tools/create_bids_example_dataset.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/tools/create_bids_example_dataset_sessions.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/tools/create_hcp1200_example_dataset.py +0 -0
- {junifer-0.0.8.dev24 → junifer-0.0.8.dev184}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: junifer
|
|
3
|
-
Version: 0.0.8.
|
|
3
|
+
Version: 0.0.8.dev184
|
|
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>
|
|
@@ -46,6 +46,9 @@ Requires-Dist: importlib_metadata; python_version < "3.9"
|
|
|
46
46
|
Requires-Dist: looseversion==1.3.0; python_version >= "3.12"
|
|
47
47
|
Requires-Dist: junifer_data==1.3.0
|
|
48
48
|
Requires-Dist: structlog<26.0.0,>=25.0.0
|
|
49
|
+
Requires-Dist: pydantic>=2.11.4
|
|
50
|
+
Requires-Dist: aenum<3.2.0,>=3.1.0
|
|
51
|
+
Requires-Dist: typing_extensions<4.16.0,>=4.15.0; python_version < "3.12"
|
|
49
52
|
Provides-Extra: all
|
|
50
53
|
Requires-Dist: bctpy==0.6.0; extra == "all"
|
|
51
54
|
Requires-Dist: neurokit2>=0.1.7; extra == "all"
|
|
@@ -72,6 +75,8 @@ Requires-Dist: towncrier<=25.8.0,>=24.7.0; extra == "docs"
|
|
|
72
75
|
Requires-Dist: sphinxcontrib-mermaid<=1.0.0,>=0.8.1; extra == "docs"
|
|
73
76
|
Requires-Dist: sphinxcontrib-towncrier==0.5.0a0; extra == "docs"
|
|
74
77
|
Requires-Dist: setuptools-scm>=8; extra == "docs"
|
|
78
|
+
Requires-Dist: autodoc_pydantic>=2.0.0; extra == "docs"
|
|
79
|
+
Requires-Dist: enum-tools[sphinx]<0.14.0,>=0.13.0; extra == "docs"
|
|
75
80
|
Dynamic: license-file
|
|
76
81
|
|
|
77
82
|

|
|
@@ -158,16 +158,16 @@ Available
|
|
|
158
158
|
| (subject-native or other template spaces)
|
|
159
159
|
- Done
|
|
160
160
|
- 0.0.4
|
|
161
|
-
* -
|
|
161
|
+
* - :class:`.Smoothing`
|
|
162
162
|
- | Apply smoothing to data, particularly useful when dealing with
|
|
163
163
|
| ``fMRIPrep``-ed data
|
|
164
164
|
- In Progress
|
|
165
165
|
- :gh:`161`
|
|
166
|
-
* -
|
|
166
|
+
* - :class:`.TemporalSlicer`
|
|
167
167
|
- Slice ``BOLD`` data temporally
|
|
168
168
|
- | Done
|
|
169
169
|
- :gh:`443`
|
|
170
|
-
* -
|
|
170
|
+
* - :class:`.TemporalFilter`
|
|
171
171
|
- Filter (clean) ``BOLD`` data temporally
|
|
172
172
|
- | Done
|
|
173
173
|
- :gh:`432`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Improve logging consistency of components by `Synchon Mandal`_
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Add documentation on adding confounds format by `Synchon Mandal`_
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Adopt Pydantic for user-facing core objects to perform automatic validation using typing annotations by `Synchon Mandal`_
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Enable confounds format to be added by introducing :func:`.register_confounds_format` by `Synchon Mandal`_
|
|
@@ -65,6 +65,8 @@ extensions = [
|
|
|
65
65
|
"sphinx_copybutton", # copy button for code blocks
|
|
66
66
|
"sphinxcontrib.mermaid", # mermaid support
|
|
67
67
|
"sphinxcontrib.towncrier.ext", # towncrier fragment support
|
|
68
|
+
"sphinxcontrib.autodoc_pydantic", # autodoc support for pydantic models
|
|
69
|
+
"enum_tools.autoenum", # enum support
|
|
68
70
|
]
|
|
69
71
|
|
|
70
72
|
if use_multiversion:
|
|
@@ -97,6 +99,15 @@ nitpick_ignore_regex = [
|
|
|
97
99
|
("py:class", "pipeline.Pipeline"), # nilearn
|
|
98
100
|
("py:obj", "neurokit2.*"), # ignore neurokit2
|
|
99
101
|
("py:obj", "datalad.*"), # ignore datalad
|
|
102
|
+
("py:obj", "junifer.*"), # ignore junifer internal
|
|
103
|
+
("py:class", "annotated_types.*"), # ignore pydantic annotated types
|
|
104
|
+
("py:obj", "variants"), # ignore variants
|
|
105
|
+
("py:obj", "them"), # ignore them
|
|
106
|
+
("py:class", "junifer.utils.helpers.ensure_list"), # ignore ensure_list
|
|
107
|
+
("py:class", "junifer.utils.helpers.ensure_list_or_none"), # ignore ensure_list_or_none
|
|
108
|
+
("py:class", "PydanticUndefined"), # ignore PydanticUndefined
|
|
109
|
+
("py:class", "FieldInfo"), # ignore FieldInfo
|
|
110
|
+
("py:class", "NoneType"), # ignore NoneType
|
|
100
111
|
]
|
|
101
112
|
|
|
102
113
|
# -- Options for HTML output -------------------------------------------------
|
|
@@ -154,6 +165,7 @@ intersphinx_mapping = {
|
|
|
154
165
|
"pandas": ("https://pandas.pydata.org/pandas-docs/dev", None),
|
|
155
166
|
# "sqlalchemy": ("https://docs.sqlalchemy.org/en/20/", None),
|
|
156
167
|
"scipy": ("https://docs.scipy.org/doc/scipy/", None),
|
|
168
|
+
"pydantic": ("https://docs.pydantic.dev/latest/", None),
|
|
157
169
|
}
|
|
158
170
|
|
|
159
171
|
# -- sphinx.ext.extlinks configuration ---------------------------------------
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
.. include:: ../links.inc
|
|
2
|
+
|
|
3
|
+
.. _adding_confounds_format:
|
|
4
|
+
|
|
5
|
+
Adding Confounds Format
|
|
6
|
+
=======================
|
|
7
|
+
|
|
8
|
+
#. Check :ref:`extending junifer <extending_extension>` on how to create a
|
|
9
|
+
*junifer extension* if you have not done so.
|
|
10
|
+
#. Register the confounds format before defining / using a DataGrabber like so:
|
|
11
|
+
|
|
12
|
+
.. code-block:: python
|
|
13
|
+
|
|
14
|
+
from junifer.datagrabber import register_confounds_format
|
|
15
|
+
...
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# registers the confounds format as "confounds" and accessible as
|
|
19
|
+
# ``ConfoundsFormat.Confounds``
|
|
20
|
+
register_confounds_format(name="Confounds", alias="confounds")
|
|
21
|
+
|
|
22
|
+
...
|
|
@@ -140,29 +140,24 @@ With the variables defined above, we can create our DataGrabber and name it
|
|
|
140
140
|
|
|
141
141
|
from pathlib import Path
|
|
142
142
|
|
|
143
|
-
from junifer.datagrabber import PatternDataGrabber
|
|
143
|
+
from junifer.datagrabber import PatternDataGrabber, DataType
|
|
144
|
+
from junifer.typing import DataGrabberPatterns
|
|
144
145
|
|
|
145
146
|
|
|
146
147
|
class ExampleBIDSDataGrabber(PatternDataGrabber):
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
super().__init__(
|
|
161
|
-
datadir=datadir,
|
|
162
|
-
types=types,
|
|
163
|
-
patterns=patterns,
|
|
164
|
-
replacements=replacements,
|
|
165
|
-
)
|
|
148
|
+
|
|
149
|
+
types: list[DataType] = [DataType.T1w, DataType.BOLD]
|
|
150
|
+
patterns: DataGrabberPatterns = {
|
|
151
|
+
"T1w": {
|
|
152
|
+
"pattern": "{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz",
|
|
153
|
+
"space": "native",
|
|
154
|
+
},
|
|
155
|
+
"BOLD": {
|
|
156
|
+
"pattern": "{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
|
|
157
|
+
"space": "MNI152NLin6Asym",
|
|
158
|
+
},
|
|
159
|
+
}
|
|
160
|
+
replacements: list[str] = ["subject", "session"]
|
|
166
161
|
|
|
167
162
|
Our DataGrabber is ready to be used by ``junifer``. However, it is still unknown
|
|
168
163
|
to the library. We need to register it in the library. To do so, we need to
|
|
@@ -175,29 +170,24 @@ use the :func:`.register_datagrabber` decorator.
|
|
|
175
170
|
|
|
176
171
|
from junifer.api.decorators import register_datagrabber
|
|
177
172
|
from junifer.datagrabber import PatternDataGrabber
|
|
173
|
+
from junifer.typing import DataGrabberPatterns
|
|
178
174
|
|
|
179
175
|
|
|
180
176
|
@register_datagrabber
|
|
181
177
|
class ExampleBIDSDataGrabber(PatternDataGrabber):
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
super().__init__(
|
|
196
|
-
datadir=datadir,
|
|
197
|
-
types=types,
|
|
198
|
-
patterns=patterns,
|
|
199
|
-
replacements=replacements,
|
|
200
|
-
)
|
|
178
|
+
|
|
179
|
+
types: list[DataType] = [DataType.T1w, DataType.BOLD]
|
|
180
|
+
patterns: DataGrabberPatterns = {
|
|
181
|
+
"T1w": {
|
|
182
|
+
"pattern": "{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz",
|
|
183
|
+
"space": "native",
|
|
184
|
+
},
|
|
185
|
+
"BOLD": {
|
|
186
|
+
"pattern": "{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
|
|
187
|
+
"space": "MNI152NLin6Asym",
|
|
188
|
+
},
|
|
189
|
+
}
|
|
190
|
+
replacements: list[str] = ["subject", "session"]
|
|
201
191
|
|
|
202
192
|
|
|
203
193
|
Now, we can use our DataGrabber in ``junifer``, by setting the ``datagrabber``
|
|
@@ -259,35 +249,30 @@ And we can create our DataGrabber:
|
|
|
259
249
|
|
|
260
250
|
.. code-block:: python
|
|
261
251
|
|
|
252
|
+
from pathlib import Path
|
|
253
|
+
|
|
262
254
|
from junifer.api.decorators import register_datagrabber
|
|
263
255
|
from junifer.datagrabber import PatternDataladDataGrabber
|
|
256
|
+
from pydantic import AnyUrl
|
|
264
257
|
|
|
265
258
|
|
|
266
259
|
@register_datagrabber
|
|
267
260
|
class ExampleBIDSDataGrabber(PatternDataladDataGrabber):
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
super().__init__(
|
|
284
|
-
datadir=None,
|
|
285
|
-
uri=uri,
|
|
286
|
-
rootdir=rootdir,
|
|
287
|
-
types=types,
|
|
288
|
-
patterns=patterns,
|
|
289
|
-
replacements=replacements,
|
|
290
|
-
)
|
|
261
|
+
|
|
262
|
+
uri: AnyUrl = "https://gin.g-node.org/juaml/datalad-example-bids"
|
|
263
|
+
types: list[DataType] = ["T1w", "BOLD"]
|
|
264
|
+
patterns: DataGrabberPatterns = {
|
|
265
|
+
"T1w": {
|
|
266
|
+
"pattern": "{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz",
|
|
267
|
+
"space": "native",
|
|
268
|
+
},
|
|
269
|
+
"BOLD": {
|
|
270
|
+
"pattern": "{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
|
|
271
|
+
"space": "MNI152NLin6Asym",
|
|
272
|
+
},
|
|
273
|
+
}
|
|
274
|
+
replacements: list[str] = ["subject", "session"]
|
|
275
|
+
rootdir: Path = "example_bids_ses"
|
|
291
276
|
|
|
292
277
|
This approach can be used directly from the YAML, like so:
|
|
293
278
|
|
|
@@ -376,8 +361,8 @@ need to implement the following methods:
|
|
|
376
361
|
|
|
377
362
|
.. note::
|
|
378
363
|
|
|
379
|
-
|
|
380
|
-
|
|
364
|
+
If the DataGrabber requires any extra parameter, they could be defined as
|
|
365
|
+
class attributes.
|
|
381
366
|
|
|
382
367
|
We will now implement our BIDS example with this method.
|
|
383
368
|
|
|
@@ -494,8 +479,8 @@ more information about the format of the confounds file. Thus, the
|
|
|
494
479
|
``BOLD.confounds`` element is a dictionary with the following keys:
|
|
495
480
|
|
|
496
481
|
- ``path``: the path to the confounds file.
|
|
497
|
-
- ``format``: the format of the confounds file.
|
|
498
|
-
|
|
482
|
+
- ``format``: the format of the confounds file. Check :enum:`.ConfoundsFormat`
|
|
483
|
+
for options.
|
|
499
484
|
|
|
500
485
|
The ``fmriprep`` format corresponds to the format of the confounds files
|
|
501
486
|
generated by `fMRIPrep`_. The ``adhoc`` format corresponds to a format that is
|
|
@@ -46,7 +46,7 @@ by having a class attribute like so:
|
|
|
46
46
|
|
|
47
47
|
_EXT_DEPENDENCIES: ClassVar[ExternalDependencies] = [
|
|
48
48
|
{
|
|
49
|
-
"name":
|
|
49
|
+
"name": ExtDep.AFNI,
|
|
50
50
|
"commands": ["3dReHo", "3dAFNItoNIFTI"],
|
|
51
51
|
},
|
|
52
52
|
]
|
|
@@ -55,7 +55,7 @@ The above example is taken from the class which computes regional homogeneity
|
|
|
55
55
|
(ReHo) using AFNI. The general pattern is that you need to have the value of
|
|
56
56
|
``_EXT_DEPENDENCIES`` as a list of dictionary with two keys:
|
|
57
57
|
|
|
58
|
-
* ``name`` (
|
|
58
|
+
* ``name`` (:enum:`.ExtDep`) : name of the toolbox
|
|
59
59
|
* ``commands`` (list of str) : actual names of the commands you need to use
|
|
60
60
|
|
|
61
61
|
This is simple but powerful as we will see in the following sub-sections.
|
|
@@ -81,11 +81,11 @@ that it shows the problem a bit better and how we solve it:
|
|
|
81
81
|
_CONDITIONAL_DEPENDENCIES: ClassVar[ConditionalDependencies] = [
|
|
82
82
|
{
|
|
83
83
|
"using": "fsl",
|
|
84
|
-
"depends_on": FSLWarper,
|
|
84
|
+
"depends_on": [FSLWarper],
|
|
85
85
|
},
|
|
86
86
|
{
|
|
87
87
|
"using": "ants",
|
|
88
|
-
"depends_on":
|
|
88
|
+
"depends_on": [ANTSWarper],
|
|
89
89
|
},
|
|
90
90
|
{
|
|
91
91
|
"using": "auto",
|
|
@@ -93,18 +93,16 @@ that it shows the problem a bit better and how we solve it:
|
|
|
93
93
|
},
|
|
94
94
|
]
|
|
95
95
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
# validation and setting up
|
|
100
|
-
...
|
|
96
|
+
using: str
|
|
97
|
+
reference: str
|
|
98
|
+
on: List[DataType]
|
|
101
99
|
|
|
102
100
|
|
|
103
101
|
Here, you see a new class attribute ``_CONDITIONAL_DEPENDENCIES`` which is a
|
|
104
102
|
list of dictionaries with two keys:
|
|
105
103
|
|
|
106
104
|
* ``using`` (str) : lowercased name of the toolbox
|
|
107
|
-
* ``depends_on`` (
|
|
105
|
+
* ``depends_on`` (list of objects) : list of classes which \
|
|
108
106
|
implements the particular tool's use
|
|
109
107
|
|
|
110
108
|
It is mandatory to have the ``using`` positional argument in the constructor in
|
|
@@ -128,7 +126,7 @@ similar. ``FSLWarper`` looks like this (only the relevant part is shown here):
|
|
|
128
126
|
|
|
129
127
|
_EXT_DEPENDENCIES: ClassVar[ExternalDependencies] = [
|
|
130
128
|
{
|
|
131
|
-
"name":
|
|
129
|
+
"name": ExtDep.FSL,
|
|
132
130
|
"commands": ["flirt", "applywarp"],
|
|
133
131
|
},
|
|
134
132
|
]
|
|
@@ -23,6 +23,7 @@ DataGrabbers, Preprocessors, Markers, etc., following the *junifer* way.
|
|
|
23
23
|
:caption: Contents:
|
|
24
24
|
|
|
25
25
|
extension
|
|
26
|
+
logging
|
|
26
27
|
datagrabber
|
|
27
28
|
marker
|
|
28
29
|
preprocessor
|
|
@@ -34,4 +35,5 @@ DataGrabbers, Preprocessors, Markers, etc., following the *junifer* way.
|
|
|
34
35
|
plugins
|
|
35
36
|
data_registries
|
|
36
37
|
data_types
|
|
38
|
+
confounds_format
|
|
37
39
|
data_dump_asset
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
.. include:: ../links.inc
|
|
2
|
+
|
|
3
|
+
.. _logging_in_extension:
|
|
4
|
+
|
|
5
|
+
Logging in a ``junifer`` extension
|
|
6
|
+
==================================
|
|
7
|
+
|
|
8
|
+
It is important to have proper logging in your code and ``junifer`` makes it trivial to do so for your extensions.
|
|
9
|
+
|
|
10
|
+
For DataGrabber:
|
|
11
|
+
|
|
12
|
+
.. code-block:: python
|
|
13
|
+
|
|
14
|
+
from junifer.datagrabber import logger
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
For Preprocessor:
|
|
18
|
+
|
|
19
|
+
.. code-block:: python
|
|
20
|
+
|
|
21
|
+
from junifer.preprocess import logger
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
For Marker:
|
|
25
|
+
|
|
26
|
+
.. code-block:: python
|
|
27
|
+
|
|
28
|
+
from junifer.marker import logger
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
For Storage:
|
|
32
|
+
|
|
33
|
+
.. code-block:: python
|
|
34
|
+
|
|
35
|
+
from junifer.storage import logger
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
Importing the correct logger will give you a properly set up logger which will fit right in with the rest of ``junifer``\'s log output.
|
|
@@ -14,7 +14,7 @@ Most of the functionality of a ``junifer`` Marker has been taken care by the
|
|
|
14
14
|
:class:`.BaseMarker` class. Thus, only a few methods and class attributes are
|
|
15
15
|
required:
|
|
16
16
|
|
|
17
|
-
#. ``
|
|
17
|
+
#. (optional) ``validate_marker_params``: The method to perform logical validation of parameters (if required).
|
|
18
18
|
#. ``compute``: The method that given the data, computes the Marker.
|
|
19
19
|
|
|
20
20
|
As an example, we will develop a ``ParcelMean`` Marker, a Marker that first
|
|
@@ -29,8 +29,8 @@ Step 1: Configure input and output
|
|
|
29
29
|
This step is quite simple: we need to define the input and output of the Marker.
|
|
30
30
|
Based on the current :ref:`data types <data_types>`, we can have ``BOLD``,
|
|
31
31
|
``VBM_WM`` and ``VBM_GM`` as valid inputs. The output of the Marker depends on
|
|
32
|
-
the input. For ``BOLD``, it will be ``
|
|
33
|
-
inputs, it will be ``
|
|
32
|
+
the input. For ``BOLD``, it will be ``Timeseries``, while for the rest of the
|
|
33
|
+
inputs, it will be ``Vector``. Thus, we have a class attribute like so:
|
|
34
34
|
|
|
35
35
|
.. code-block:: python
|
|
36
36
|
|
|
@@ -38,14 +38,14 @@ inputs, it will be ``vector``. Thus, we have a class attribute like so:
|
|
|
38
38
|
# You can have multiple features for one data type,
|
|
39
39
|
# each feature having same or different storage type
|
|
40
40
|
_MARKER_INOUT_MAPPINGS = {
|
|
41
|
-
|
|
42
|
-
"parcel_mean":
|
|
41
|
+
DataType.BOLD: {
|
|
42
|
+
"parcel_mean": StorageType.Timeseries,
|
|
43
43
|
},
|
|
44
|
-
|
|
45
|
-
"parcel_mean":
|
|
44
|
+
DataType.VBM_WM: {
|
|
45
|
+
"parcel_mean": StorageType.Vector,
|
|
46
46
|
},
|
|
47
|
-
|
|
48
|
-
"parcel_mean":
|
|
47
|
+
DataType.VBM_GM: {
|
|
48
|
+
"parcel_mean": StorageType.Vector,
|
|
49
49
|
},
|
|
50
50
|
}
|
|
51
51
|
|
|
@@ -57,13 +57,11 @@ Step 2: Initialise the Marker
|
|
|
57
57
|
In this step we need to define the parameters of the Marker the user can provide
|
|
58
58
|
to configure how the Marker will behave.
|
|
59
59
|
|
|
60
|
-
The parameters of the Marker are defined
|
|
61
|
-
:class:`.BaseMarker` class
|
|
60
|
+
The parameters of the Marker are defined as class attributes. The
|
|
61
|
+
:class:`.BaseMarker` class defines two optional parameters:
|
|
62
62
|
|
|
63
|
-
1. ``name``: the name of the Marker. This is used to identify the Marker in the
|
|
64
|
-
|
|
65
|
-
2. ``on``: a list or string with the data types that the Marker will be applied
|
|
66
|
-
to.
|
|
63
|
+
1. ``name``: the name of the Marker. This is used to identify the Marker in the configuration file.
|
|
64
|
+
2. ``on``: a list of :enum:`.DataType` with the data types that the Marker will be applied to.
|
|
67
65
|
|
|
68
66
|
.. attention::
|
|
69
67
|
|
|
@@ -72,18 +70,11 @@ The parameters of the Marker are defined in the ``__init__`` method. The
|
|
|
72
70
|
JSON format, and JSON only supports these types.
|
|
73
71
|
|
|
74
72
|
In this example, only parameter required for the computation is the name of the
|
|
75
|
-
parcellation to use. Thus, we can define
|
|
73
|
+
parcellation to use. Thus, we can define as follows:
|
|
76
74
|
|
|
77
75
|
.. code-block:: python
|
|
78
76
|
|
|
79
|
-
|
|
80
|
-
self,
|
|
81
|
-
parcellation: str,
|
|
82
|
-
on: str | list[str] | None = None,
|
|
83
|
-
name: str | None = None,
|
|
84
|
-
) -> None:
|
|
85
|
-
self.parcellation = parcellation
|
|
86
|
-
super().__init__(on=on, name=name)
|
|
77
|
+
parcellation: str
|
|
87
78
|
|
|
88
79
|
.. caution::
|
|
89
80
|
|
|
@@ -121,14 +112,14 @@ and the values would be a dictionary of storage type specific key-value pairs.
|
|
|
121
112
|
|
|
122
113
|
To simplify the ``store`` method, define keys of the dictionary based on the
|
|
123
114
|
corresponding store functions in the :ref:`storage types <storage_types>`.
|
|
124
|
-
For example, if the output is a ``
|
|
115
|
+
For example, if the output is a ``Vector``, the keys of the dictionary should
|
|
125
116
|
be ``data`` and ``col_names``.
|
|
126
117
|
|
|
127
118
|
.. code-block:: python
|
|
128
119
|
|
|
129
120
|
from typing import Any
|
|
130
121
|
|
|
131
|
-
from junifer.data import
|
|
122
|
+
from junifer.data import get_data
|
|
132
123
|
from nilearn.maskers import NiftiLabelsMasker
|
|
133
124
|
|
|
134
125
|
|
|
@@ -141,8 +132,9 @@ and the values would be a dictionary of storage type specific key-value pairs.
|
|
|
141
132
|
data = input["data"]
|
|
142
133
|
|
|
143
134
|
# Get the parcellation tailored for the target
|
|
144
|
-
t_parcellation, t_labels, _ =
|
|
145
|
-
|
|
135
|
+
t_parcellation, t_labels, _ = get_data(
|
|
136
|
+
kind="parcellation",
|
|
137
|
+
name=[self.parcellation],
|
|
146
138
|
target_data=input,
|
|
147
139
|
extra_input=extra_input,
|
|
148
140
|
)
|
|
@@ -194,8 +186,10 @@ Finally, we need to register the Marker using the ``@register_marker`` decorator
|
|
|
194
186
|
from typing import Any, ClassVar
|
|
195
187
|
|
|
196
188
|
from junifer.api.decorators import register_marker
|
|
197
|
-
from junifer.data import
|
|
189
|
+
from junifer.data import get_data
|
|
190
|
+
from junifer.datagrabber import DataType
|
|
198
191
|
from junifer.markers import BaseMarker
|
|
192
|
+
from junifer.storage import StorageType
|
|
199
193
|
from junifer.typing import Dependencies, MarkerInOutMappings
|
|
200
194
|
from nilearn.maskers import NiftiLabelsMasker
|
|
201
195
|
|
|
@@ -206,25 +200,18 @@ Finally, we need to register the Marker using the ``@register_marker`` decorator
|
|
|
206
200
|
_DEPENDENCIES: ClassVar[Dependencies] = {"nilearn", "numpy"}
|
|
207
201
|
|
|
208
202
|
_MARKER_INOUT_MAPPINGS: ClassVar[MarkerInOutMappings] = {
|
|
209
|
-
|
|
210
|
-
"parcel_mean":
|
|
203
|
+
DataType.BOLD: {
|
|
204
|
+
"parcel_mean": StorageType.Timeseries,
|
|
211
205
|
},
|
|
212
|
-
|
|
213
|
-
"parcel_mean":
|
|
206
|
+
DataType.VBM_WM: {
|
|
207
|
+
"parcel_mean": StorageType.Vector,
|
|
214
208
|
},
|
|
215
|
-
|
|
216
|
-
"parcel_mean":
|
|
209
|
+
DataType.VBM_GM: {
|
|
210
|
+
"parcel_mean": StorageType.Vector,
|
|
217
211
|
},
|
|
218
212
|
}
|
|
219
213
|
|
|
220
|
-
|
|
221
|
-
self,
|
|
222
|
-
parcellation: str,
|
|
223
|
-
on: str | list[str] | None = None,
|
|
224
|
-
name: str | None = None,
|
|
225
|
-
) -> None:
|
|
226
|
-
self.parcellation = parcellation
|
|
227
|
-
super().__init__(on=on, name=name)
|
|
214
|
+
parcellation: str
|
|
228
215
|
|
|
229
216
|
def compute(
|
|
230
217
|
self,
|
|
@@ -235,8 +222,9 @@ Finally, we need to register the Marker using the ``@register_marker`` decorator
|
|
|
235
222
|
data = input["data"]
|
|
236
223
|
|
|
237
224
|
# Get the parcellation tailored for the target
|
|
238
|
-
t_parcellation, t_labels, _ =
|
|
239
|
-
|
|
225
|
+
t_parcellation, t_labels, _ = get_data(
|
|
226
|
+
kind="parcellation",
|
|
227
|
+
name=[self.parcellation],
|
|
240
228
|
target_data=input,
|
|
241
229
|
extra_input=extra_input,
|
|
242
230
|
)
|
|
@@ -280,9 +268,13 @@ Template for a custom Marker
|
|
|
280
268
|
# TODO: add the input-output mappings
|
|
281
269
|
_MARKER_INOUT_MAPPINGS = {}
|
|
282
270
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
271
|
+
# TODO: define marker-specific parameters
|
|
272
|
+
|
|
273
|
+
# optional
|
|
274
|
+
def validate_marker_params(self):
|
|
275
|
+
# TODO: add validation logic for marker parameters
|
|
276
|
+
pass
|
|
286
277
|
|
|
287
278
|
def compute(self, input, extra_input):
|
|
288
279
|
# TODO: compute the marker and create the output dictionary
|
|
280
|
+
return {}
|
|
@@ -124,7 +124,7 @@ parcellation when registering it. For example, we can add a
|
|
|
124
124
|
markers:
|
|
125
125
|
- name: CustomParcellation_mean
|
|
126
126
|
kind: ParcelAggregation
|
|
127
|
-
parcellation: my_custom_parcellation
|
|
127
|
+
parcellation: <my_custom_parcellation>
|
|
128
128
|
method: mean
|
|
129
129
|
|
|
130
130
|
Now, you can simply use this YAML file to run your pipeline.
|