junifer 0.0.5__tar.gz → 0.0.5.dev11__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.
Files changed (400) hide show
  1. {junifer-0.0.5 → junifer-0.0.5.dev11}/.github/workflows/ci.yml +8 -15
  2. {junifer-0.0.5 → junifer-0.0.5.dev11}/.github/workflows/docs.yml +1 -1
  3. junifer-0.0.5.dev11/.gitmodules +3 -0
  4. {junifer-0.0.5 → junifer-0.0.5.dev11}/.pre-commit-config.yaml +5 -12
  5. {junifer-0.0.5 → junifer-0.0.5.dev11}/PKG-INFO +16 -17
  6. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/api/nilearn.rst +2 -0
  7. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/api/onthefly.rst +2 -0
  8. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/builtin.rst +8 -0
  9. junifer-0.0.5.dev11/docs/changes/newsfragments/273.feature +1 -0
  10. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/conf.py +0 -1
  11. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/extending/coordinates.rst +8 -2
  12. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/extending/datagrabber.rst +137 -180
  13. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/extending/dependencies.rst +0 -2
  14. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/extending/marker.rst +81 -76
  15. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/extending/parcellations.rst +1 -1
  16. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/extending/preprocessor.rst +3 -12
  17. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/installation.rst +0 -33
  18. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/understanding/data.rst +7 -14
  19. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/understanding/marker.rst +4 -2
  20. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/understanding/preprocess.rst +8 -4
  21. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/understanding/storage.rst +13 -20
  22. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/using/queueing.rst +7 -80
  23. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/whats_new.rst +6 -127
  24. {junifer-0.0.5 → junifer-0.0.5.dev11}/examples/run_compute_parcel_mean.py +2 -2
  25. {junifer-0.0.5 → junifer-0.0.5.dev11}/examples/run_ets_rss_marker.py +2 -2
  26. {junifer-0.0.5 → junifer-0.0.5.dev11}/examples/run_junifer_julearn.py +1 -1
  27. {junifer-0.0.5 → junifer-0.0.5.dev11}/ignore_words.txt +0 -2
  28. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/__init__.py +0 -17
  29. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/_version.py +2 -2
  30. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/__init__.py +1 -4
  31. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/cli.py +1 -91
  32. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/decorators.py +0 -9
  33. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/functions.py +10 -56
  34. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/parser.py +0 -3
  35. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/queue_context/__init__.py +1 -4
  36. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/res/afni/run_afni_docker.sh +1 -1
  37. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/res/ants/run_ants_docker.sh +1 -1
  38. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/res/fsl/run_fsl_docker.sh +1 -1
  39. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/tests/test_api_utils.py +2 -4
  40. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/tests/test_cli.py +0 -83
  41. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/tests/test_functions.py +2 -27
  42. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/configs/__init__.py +1 -1
  43. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/configs/juseless/__init__.py +1 -4
  44. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/configs/juseless/datagrabbers/__init__.py +1 -10
  45. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -3
  46. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -3
  47. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -3
  48. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +3 -1
  49. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/configs/juseless/datagrabbers/ucla.py +9 -12
  50. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -3
  51. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/__init__.py +1 -21
  52. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/coordinates.py +19 -10
  53. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/masks.py +87 -58
  54. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/parcellations.py +3 -14
  55. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/template_spaces.py +1 -4
  56. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/tests/test_masks.py +37 -26
  57. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/utils.py +0 -3
  58. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datagrabber/__init__.py +1 -18
  59. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datagrabber/aomic/__init__.py +0 -3
  60. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datagrabber/aomic/id1000.py +37 -70
  61. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datagrabber/aomic/piop1.py +36 -69
  62. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datagrabber/aomic/piop2.py +38 -71
  63. junifer-0.0.5.dev11/junifer/datagrabber/aomic/tests/test_id1000.py +179 -0
  64. junifer-0.0.5.dev11/junifer/datagrabber/aomic/tests/test_piop1.py +209 -0
  65. junifer-0.0.5.dev11/junifer/datagrabber/aomic/tests/test_piop2.py +203 -0
  66. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datagrabber/base.py +6 -13
  67. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datagrabber/datalad_base.py +1 -13
  68. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datagrabber/dmcc13_benchmark.py +53 -36
  69. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datagrabber/hcp1200/__init__.py +0 -3
  70. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -3
  71. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datagrabber/hcp1200/hcp1200.py +1 -4
  72. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datagrabber/multiple.py +6 -45
  73. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datagrabber/pattern.py +62 -170
  74. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datagrabber/pattern_datalad.py +12 -25
  75. junifer-0.0.5.dev11/junifer/datagrabber/tests/test_datagrabber_utils.py +218 -0
  76. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datagrabber/tests/test_datalad_base.py +4 -4
  77. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +19 -46
  78. junifer-0.0.5.dev11/junifer/datagrabber/tests/test_multiple.py +203 -0
  79. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datagrabber/tests/test_pattern.py +0 -45
  80. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datagrabber/tests/test_pattern_datalad.py +4 -4
  81. junifer-0.0.5.dev11/junifer/datagrabber/utils.py +230 -0
  82. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datareader/__init__.py +1 -4
  83. junifer-0.0.5.dev11/junifer/datareader/default.py +158 -0
  84. junifer-0.0.5.dev11/junifer/external/__init__.py +4 -0
  85. junifer-0.0.5.dev11/junifer/external/nilearn/__init__.py +6 -0
  86. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +9 -23
  87. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +1 -76
  88. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/__init__.py +1 -23
  89. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/base.py +28 -68
  90. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/collection.py +2 -10
  91. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/complexity/__init__.py +0 -10
  92. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/complexity/complexity_base.py +43 -26
  93. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/complexity/hurst_exponent.py +0 -3
  94. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -3
  95. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/complexity/perm_entropy.py +0 -3
  96. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/complexity/range_entropy.py +0 -3
  97. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/complexity/range_entropy_auc.py +0 -3
  98. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/complexity/sample_entropy.py +0 -3
  99. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/complexity/tests/test_hurst_exponent.py +3 -11
  100. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +3 -11
  101. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/complexity/tests/test_perm_entropy.py +3 -11
  102. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/complexity/tests/test_range_entropy.py +3 -11
  103. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/complexity/tests/test_range_entropy_auc.py +3 -11
  104. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/complexity/tests/test_sample_entropy.py +3 -11
  105. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +3 -11
  106. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/complexity/weighted_perm_entropy.py +0 -3
  107. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/ets_rss.py +42 -27
  108. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/falff/__init__.py +0 -3
  109. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/falff/_afni_falff.py +2 -5
  110. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/falff/_junifer_falff.py +0 -3
  111. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/falff/falff_base.py +46 -20
  112. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/falff/falff_parcels.py +27 -56
  113. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/falff/falff_spheres.py +29 -60
  114. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/falff/tests/test_falff_parcels.py +23 -39
  115. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/falff/tests/test_falff_spheres.py +23 -39
  116. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/functional_connectivity/__init__.py +0 -9
  117. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +60 -63
  118. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +32 -45
  119. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +36 -49
  120. junifer-0.0.5.dev11/junifer/markers/functional_connectivity/functional_connectivity_base.py +154 -0
  121. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +25 -34
  122. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +30 -40
  123. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +7 -11
  124. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +7 -27
  125. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +12 -28
  126. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +11 -35
  127. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +62 -36
  128. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/parcel_aggregation.py +61 -47
  129. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/reho/__init__.py +0 -3
  130. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/reho/_afni_reho.py +2 -5
  131. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/reho/_junifer_reho.py +1 -4
  132. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/reho/reho_base.py +27 -8
  133. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/reho/reho_parcels.py +17 -28
  134. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/reho/reho_spheres.py +18 -27
  135. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/reho/tests/test_reho_parcels.py +3 -8
  136. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/reho/tests/test_reho_spheres.py +3 -8
  137. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/sphere_aggregation.py +59 -43
  138. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/temporal_snr/__init__.py +0 -3
  139. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/temporal_snr/temporal_snr_base.py +32 -23
  140. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/temporal_snr/temporal_snr_parcels.py +6 -9
  141. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/temporal_snr/temporal_snr_spheres.py +6 -9
  142. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +3 -6
  143. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +3 -6
  144. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/tests/test_collection.py +8 -9
  145. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/tests/test_ets_rss.py +9 -15
  146. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/tests/test_markers_base.py +18 -17
  147. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/tests/test_parcel_aggregation.py +32 -93
  148. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/tests/test_sphere_aggregation.py +19 -72
  149. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/onthefly/__init__.py +1 -4
  150. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/onthefly/read_transform.py +0 -3
  151. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/pipeline/__init__.py +1 -9
  152. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/pipeline/pipeline_step_mixin.py +4 -21
  153. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/pipeline/registry.py +0 -3
  154. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/pipeline/singleton.py +0 -3
  155. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/pipeline/tests/test_registry.py +1 -1
  156. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/pipeline/update_meta_mixin.py +0 -3
  157. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/pipeline/utils.py +1 -67
  158. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/pipeline/workdir_manager.py +0 -3
  159. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/preprocess/__init__.py +2 -10
  160. junifer-0.0.5.dev11/junifer/preprocess/ants/__init__.py +4 -0
  161. junifer-0.0.5.dev11/junifer/preprocess/ants/ants_apply_transforms_warper.py +185 -0
  162. junifer-0.0.5.dev11/junifer/preprocess/ants/tests/test_ants_apply_transforms_warper.py +56 -0
  163. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/preprocess/base.py +3 -6
  164. junifer-0.0.5.dev11/junifer/preprocess/bold_warper.py +265 -0
  165. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/preprocess/confounds/__init__.py +0 -3
  166. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/preprocess/confounds/fmriprep_confound_remover.py +60 -47
  167. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +113 -72
  168. {junifer-0.0.5/junifer/external → junifer-0.0.5.dev11/junifer/preprocess/fsl}/__init__.py +1 -1
  169. junifer-0.0.5.dev11/junifer/preprocess/fsl/apply_warper.py +179 -0
  170. junifer-0.0.5.dev11/junifer/preprocess/fsl/tests/test_apply_warper.py +45 -0
  171. junifer-0.0.5.dev11/junifer/preprocess/tests/test_bold_warper.py +159 -0
  172. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/preprocess/warping/__init__.py +0 -3
  173. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/preprocess/warping/_ants_warper.py +0 -3
  174. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/preprocess/warping/_fsl_warper.py +0 -3
  175. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/stats.py +1 -4
  176. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/storage/__init__.py +1 -9
  177. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/storage/base.py +1 -40
  178. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/storage/hdf5.py +9 -71
  179. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/storage/pandas_base.py +0 -3
  180. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/storage/sqlite.py +0 -3
  181. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/storage/tests/test_hdf5.py +10 -82
  182. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/storage/utils.py +0 -9
  183. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/testing/__init__.py +1 -4
  184. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/testing/datagrabbers.py +6 -13
  185. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +7 -7
  186. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/testing/utils.py +0 -3
  187. junifer-0.0.5.dev11/junifer/utils/__init__.py +9 -0
  188. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/utils/fs.py +0 -3
  189. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/utils/helpers.py +1 -32
  190. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/utils/logging.py +4 -33
  191. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/utils/tests/test_logging.py +0 -8
  192. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer.egg-info/PKG-INFO +16 -17
  193. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer.egg-info/SOURCES.txt +11 -26
  194. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer.egg-info/requires.txt +15 -16
  195. {junifer-0.0.5 → junifer-0.0.5.dev11}/pyproject.toml +27 -49
  196. {junifer-0.0.5 → junifer-0.0.5.dev11}/tools/create_aomic1000_example_dataset.py +2 -39
  197. {junifer-0.0.5 → junifer-0.0.5.dev11}/tools/create_aomicpiop1_example_dataset.py +1 -38
  198. {junifer-0.0.5 → junifer-0.0.5.dev11}/tools/create_aomicpiop2_example_dataset.py +1 -38
  199. junifer-0.0.5.dev11/tools/create_bids_example_dataset.py +34 -0
  200. junifer-0.0.5.dev11/tools/create_bids_example_dataset_sessions.py +41 -0
  201. {junifer-0.0.5 → junifer-0.0.5.dev11}/tox.ini +0 -1
  202. junifer-0.0.5/.gitmodules +0 -6
  203. junifer-0.0.5/junifer/api/res/freesurfer/mri_binarize +0 -3
  204. junifer-0.0.5/junifer/api/res/freesurfer/mri_mc +0 -3
  205. junifer-0.0.5/junifer/api/res/freesurfer/mri_pretess +0 -3
  206. junifer-0.0.5/junifer/api/res/freesurfer/mris_convert +0 -3
  207. junifer-0.0.5/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -61
  208. junifer-0.0.5/junifer/data/masks/ukb/UKB_15K_GM_template.nii.gz +0 -0
  209. junifer-0.0.5/junifer/datagrabber/aomic/tests/test_id1000.py +0 -124
  210. junifer-0.0.5/junifer/datagrabber/aomic/tests/test_piop1.py +0 -166
  211. junifer-0.0.5/junifer/datagrabber/aomic/tests/test_piop2.py +0 -146
  212. junifer-0.0.5/junifer/datagrabber/pattern_validation_mixin.py +0 -388
  213. junifer-0.0.5/junifer/datagrabber/tests/test_multiple.py +0 -280
  214. junifer-0.0.5/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -249
  215. junifer-0.0.5/junifer/datareader/default.py +0 -210
  216. junifer-0.0.5/junifer/external/BrainPrint/brainprint/__init__.py +0 -4
  217. junifer-0.0.5/junifer/external/BrainPrint/brainprint/_version.py +0 -3
  218. junifer-0.0.5/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -91
  219. junifer-0.0.5/junifer/external/BrainPrint/brainprint/brainprint.py +0 -441
  220. junifer-0.0.5/junifer/external/BrainPrint/brainprint/surfaces.py +0 -258
  221. junifer-0.0.5/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -1
  222. junifer-0.0.5/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -112
  223. junifer-0.0.5/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -188
  224. junifer-0.0.5/junifer/external/nilearn/__init__.py +0 -10
  225. junifer-0.0.5/junifer/external/nilearn/junifer_connectivity_measure.py +0 -483
  226. junifer-0.0.5/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -1089
  227. junifer-0.0.5/junifer/markers/brainprint.py +0 -459
  228. junifer-0.0.5/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -155
  229. junifer-0.0.5/junifer/markers/tests/test_brainprint.py +0 -58
  230. junifer-0.0.5/junifer/preprocess/smoothing/__init__.py +0 -9
  231. junifer-0.0.5/junifer/preprocess/smoothing/_afni_smoothing.py +0 -119
  232. junifer-0.0.5/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -116
  233. junifer-0.0.5/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -69
  234. junifer-0.0.5/junifer/preprocess/smoothing/smoothing.py +0 -174
  235. junifer-0.0.5/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -94
  236. junifer-0.0.5/junifer/utils/__init__.py +0 -20
  237. junifer-0.0.5/tools/create_bids_example_dataset.py +0 -40
  238. junifer-0.0.5/tools/create_bids_example_dataset_sessions.py +0 -50
  239. {junifer-0.0.5 → junifer-0.0.5.dev11}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  240. {junifer-0.0.5 → junifer-0.0.5.dev11}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  241. {junifer-0.0.5 → junifer-0.0.5.dev11}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
  242. {junifer-0.0.5 → junifer-0.0.5.dev11}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
  243. {junifer-0.0.5 → junifer-0.0.5.dev11}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  244. {junifer-0.0.5 → junifer-0.0.5.dev11}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
  245. {junifer-0.0.5 → junifer-0.0.5.dev11}/.github/dependabot.yml +0 -0
  246. {junifer-0.0.5 → junifer-0.0.5.dev11}/.github/pull_request_template.md +0 -0
  247. {junifer-0.0.5 → junifer-0.0.5.dev11}/.github/workflows/ci-docs.yml +0 -0
  248. {junifer-0.0.5 → junifer-0.0.5.dev11}/.github/workflows/docs-preview.yml +0 -0
  249. {junifer-0.0.5 → junifer-0.0.5.dev11}/.github/workflows/lint.yml +0 -0
  250. {junifer-0.0.5 → junifer-0.0.5.dev11}/.github/workflows/pypi.yml +0 -0
  251. {junifer-0.0.5 → junifer-0.0.5.dev11}/.gitignore +0 -0
  252. {junifer-0.0.5 → junifer-0.0.5.dev11}/AUTHORS.rst +0 -0
  253. {junifer-0.0.5 → junifer-0.0.5.dev11}/LICENSE.md +0 -0
  254. {junifer-0.0.5 → junifer-0.0.5.dev11}/README.md +0 -0
  255. {junifer-0.0.5 → junifer-0.0.5.dev11}/codecov.yml +0 -0
  256. {junifer-0.0.5 → junifer-0.0.5.dev11}/conda-env.yml +0 -0
  257. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/Makefile +0 -0
  258. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/_static/css/custom.css +0 -0
  259. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/_static/js/custom.js +0 -0
  260. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/_templates/versions.html +0 -0
  261. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/api/api.rst +0 -0
  262. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/api/configs.rst +0 -0
  263. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/api/data.rst +0 -0
  264. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/api/datagrabbers.rst +0 -0
  265. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/api/datareaders.rst +0 -0
  266. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/api/index.rst +0 -0
  267. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/api/markers.rst +0 -0
  268. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/api/pipeline.rst +0 -0
  269. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/api/preprocessing.rst +0 -0
  270. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/api/stats.rst +0 -0
  271. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/api/storage.rst +0 -0
  272. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/api/testing.rst +0 -0
  273. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/api/utils.rst +0 -0
  274. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/changes/contributors.inc +0 -0
  275. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/changes/newsfragments/.gitignore +0 -0
  276. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/contribution.rst +0 -0
  277. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/extending/extension.rst +0 -0
  278. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/extending/index.rst +0 -0
  279. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/extending/masks.rst +0 -0
  280. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/faq.rst +0 -0
  281. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/help.rst +0 -0
  282. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/images/junifer_logo.png +0 -0
  283. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/index.rst +0 -0
  284. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/links.inc +0 -0
  285. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/maintaining.rst +0 -0
  286. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/redirect.html +0 -0
  287. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/sphinxext/gh_substitutions.py +0 -0
  288. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/starting.rst +0 -0
  289. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/understanding/datagrabber.rst +0 -0
  290. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/understanding/datareader.rst +0 -0
  291. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/understanding/index.rst +0 -0
  292. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/understanding/pipeline.rst +0 -0
  293. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/using/codeless.rst +0 -0
  294. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/using/index.rst +0 -0
  295. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/using/masks.rst +0 -0
  296. {junifer-0.0.5 → junifer-0.0.5.dev11}/docs/using/running.rst +0 -0
  297. {junifer-0.0.5 → junifer-0.0.5.dev11}/examples/README.rst +0 -0
  298. {junifer-0.0.5 → junifer-0.0.5.dev11}/examples/norun_hcpfc_pearson.py +0 -0
  299. {junifer-0.0.5 → junifer-0.0.5.dev11}/examples/norun_ukbvm_gmd.py +0 -0
  300. {junifer-0.0.5 → junifer-0.0.5.dev11}/examples/run_datagrabber_bids_datalad.py +0 -0
  301. {junifer-0.0.5 → junifer-0.0.5.dev11}/examples/run_run_gmd_mean.py +0 -0
  302. {junifer-0.0.5 → junifer-0.0.5.dev11}/examples/yamls/gmd_mean.yaml +0 -0
  303. {junifer-0.0.5 → junifer-0.0.5.dev11}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
  304. {junifer-0.0.5 → junifer-0.0.5.dev11}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
  305. {junifer-0.0.5 → junifer-0.0.5.dev11}/examples/yamls/ukb_gmd_mean.yaml +0 -0
  306. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
  307. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/queue_context/htcondor_adapter.py +0 -0
  308. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/queue_context/queue_context_adapter.py +0 -0
  309. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
  310. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
  311. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
  312. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/res/afni/3dRSFC +0 -0
  313. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/res/afni/3dReHo +0 -0
  314. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/res/afni/afni +0 -0
  315. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/res/ants/ResampleImage +0 -0
  316. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/res/ants/antsApplyTransforms +0 -0
  317. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
  318. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/res/fsl/applywarp +0 -0
  319. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/res/fsl/flirt +0 -0
  320. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/res/fsl/img2imgcoord +0 -0
  321. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/res/fsl/std2imgcoord +0 -0
  322. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/res/run_conda.bash +0 -0
  323. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/res/run_conda.zsh +0 -0
  324. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/res/run_venv.bash +0 -0
  325. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/res/run_venv.zsh +0 -0
  326. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/tests/data/gmd_mean.yaml +0 -0
  327. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/tests/data/gmd_mean_htcondor.yaml +0 -0
  328. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
  329. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/tests/test_parser.py +0 -0
  330. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/api/utils.py +0 -0
  331. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
  332. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
  333. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
  334. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
  335. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/VOIs/meta/AutobiographicalMemory_VOIs.txt +0 -0
  336. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/VOIs/meta/CogAC_VOIs.txt +0 -0
  337. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/VOIs/meta/CogAR_VOIs.txt +0 -0
  338. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/VOIs/meta/DMNBuckner_VOIs.txt +0 -0
  339. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/VOIs/meta/Dosenbach2010_MNI_VOIs.txt +0 -0
  340. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/VOIs/meta/Empathy_VOIs.txt +0 -0
  341. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/VOIs/meta/Motor_VOIs.txt +0 -0
  342. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/VOIs/meta/MultiTask_VOIs.txt +0 -0
  343. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/VOIs/meta/PhysioStress_VOIs.txt +0 -0
  344. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/VOIs/meta/Power2011_MNI_VOIs.txt +0 -0
  345. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/VOIs/meta/Power2013_MNI_VOIs.tsv +0 -0
  346. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/VOIs/meta/Rew_VOIs.txt +0 -0
  347. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/VOIs/meta/Somatosensory_VOIs.txt +0 -0
  348. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/VOIs/meta/ToM_VOIs.txt +0 -0
  349. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/VOIs/meta/VigAtt_VOIs.txt +0 -0
  350. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/VOIs/meta/WM_VOIs.txt +0 -0
  351. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/VOIs/meta/eMDN_VOIs.txt +0 -0
  352. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/VOIs/meta/eSAD_VOIs.txt +0 -0
  353. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/VOIs/meta/extDMN_VOIs.txt +0 -0
  354. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean.nii.gz +0 -0
  355. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean_3mm.nii.gz +0 -0
  356. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/masks/vickery-patil/GMprob0.2_cortex_3mm_NA_rm.nii.gz +0 -0
  357. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/tests/test_coordinates.py +0 -0
  358. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/tests/test_data_utils.py +0 -0
  359. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/tests/test_parcellations.py +0 -0
  360. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/data/tests/test_template_spaces.py +0 -0
  361. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
  362. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datagrabber/tests/test_base.py +0 -0
  363. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/datareader/tests/test_default_reader.py +0 -0
  364. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/external/h5io/h5io/__init__.py +0 -0
  365. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/external/h5io/h5io/_h5io.py +0 -0
  366. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/external/h5io/h5io/_version.py +0 -0
  367. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/external/h5io/h5io/chunked_array.py +0 -0
  368. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/external/h5io/h5io/chunked_list.py +0 -0
  369. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
  370. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
  371. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
  372. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/tests/test_marker_utils.py +0 -0
  373. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/markers/utils.py +0 -0
  374. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/onthefly/tests/test_read_transform.py +0 -0
  375. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
  376. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
  377. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
  378. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
  379. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/preprocess/warping/space_warper.py +0 -0
  380. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
  381. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/storage/tests/test_pandas_base.py +0 -0
  382. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/storage/tests/test_sqlite.py +0 -0
  383. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/storage/tests/test_storage_base.py +0 -0
  384. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/storage/tests/test_utils.py +0 -0
  385. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
  386. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/testing/registry.py +0 -0
  387. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
  388. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
  389. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/testing/tests/test_testing_registry.py +0 -0
  390. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/tests/test_main.py +0 -0
  391. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/tests/test_stats.py +0 -0
  392. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/utils/tests/test_fs.py +0 -0
  393. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer/utils/tests/test_helpers.py +0 -0
  394. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer.egg-info/dependency_links.txt +0 -0
  395. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer.egg-info/entry_points.txt +0 -0
  396. {junifer-0.0.5 → junifer-0.0.5.dev11}/junifer.egg-info/top_level.txt +0 -0
  397. {junifer-0.0.5 → junifer-0.0.5.dev11}/setup.cfg +0 -0
  398. {junifer-0.0.5 → junifer-0.0.5.dev11}/setup.py +0 -0
  399. {junifer-0.0.5 → junifer-0.0.5.dev11}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
  400. {junifer-0.0.5 → junifer-0.0.5.dev11}/tools/create_hcp1200_example_dataset.py +0 -0
@@ -66,43 +66,36 @@ jobs:
66
66
  sudo tcsh @update.afni.binaries -package linux_ubuntu_16_64 -bindir /afni
67
67
  echo "/afni" >> $GITHUB_PATH
68
68
  if: matrix.python-version == 3.11
69
- # Bypass AFNI installation failure
70
- continue-on-error: true
71
69
  - name: Check AFNI
72
70
  run: |
73
71
  echo "Using AFNI : $(afni --version)"
74
72
  if: matrix.python-version == 3.11
75
- # Bypass AFNI installation failure
76
- continue-on-error: true
77
73
  - name: Install ANTs
78
74
  run: |
79
75
  sudo apt-get install -y -qq unzip
80
- curl -fsSL -o ants.zip https://github.com/ANTsX/ANTs/releases/download/v2.5.2/ants-2.5.2-ubuntu-22.04-X64-gcc.zip
76
+ curl -fsSL -o ants.zip https://github.com/ANTsX/ANTs/releases/download/v2.5.1/ants-2.5.1-ubuntu-22.04-X64-gcc.zip
81
77
  unzip ants.zip -d /opt
82
- mv /opt/ants-2.5.2/bin/* /opt/ants-2.5.2
78
+ mv /opt/ants-2.5.1/bin/* /opt/ants-2.5.1
83
79
  rm ants.zip
84
- echo "/opt/ants-2.5.2" >> $GITHUB_PATH
80
+ echo "/opt/ants-2.5.1" >> $GITHUB_PATH
85
81
  if: matrix.python-version == 3.11
86
- # Bypass ANTs installation failure
87
- continue-on-error: true
88
82
  - name: Check ANTs
89
83
  run: |
90
84
  echo "Using ANTs : $(antsRegistration --version)"
91
85
  if: matrix.python-version == 3.11
92
- # Bypass ANTs installation failure
93
- continue-on-error: true
94
86
  - name: Install FSL
95
87
  run: |
96
- curl -fsSL https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/releases/fslinstaller.py | python - -d /opt/fsl/
88
+ sudo apt-get install -y -qq python3
89
+ curl -fsSL https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/releases/fslinstaller.py | python3 - -d /opt/fsl-6.0.6.4 -V 6.0.6.4
97
90
  FSLOUTPUTTYPE="NIFTI_GZ"
98
91
  FSLMULTIFILEQUIT="TRUE"
99
- FSLTCLSH="/opt/fsl/bin/fsltclsh"
100
- FSLWISH="/opt/fsl/bin/fslwish"
92
+ FSLTCLSH="/opt/fsl-6.0.6.4/bin/fsltclsh"
93
+ FSLWISH="/opt/fsl-6.0.6.4/bin/fslwish"
101
94
  FSLLOCKDIR=""
102
95
  FSLMACHINELIST=""
103
96
  FSLREMOTECALL=""
104
97
  FSLGECUDAQ="cuda.q"
105
- echo "/opt/fsl" >> $GITHUB_PATH
98
+ echo "/opt/fsl-6.0.6.4" >> $GITHUB_PATH
106
99
  if: matrix.python-version == 3.11
107
100
  # Bypass FSL installation failure
108
101
  continue-on-error: true
@@ -68,7 +68,7 @@ jobs:
68
68
  touch docs/_build/.nojekyll
69
69
  cp docs/redirect.html docs/_build/index.html
70
70
  - name: Publish docs to gh-pages
71
- uses: peaceiris/actions-gh-pages@v4
71
+ uses: peaceiris/actions-gh-pages@v3
72
72
  with:
73
73
  github_token: ${{ secrets.GITHUB_TOKEN }}
74
74
  publish_dir: docs/_build
@@ -0,0 +1,3 @@
1
+ [submodule "junifer/external/h5io"]
2
+ path = junifer/external/h5io
3
+ url = https://github.com/juaml/h5io
@@ -4,7 +4,7 @@ ci:
4
4
 
5
5
  repos:
6
6
  - repo: https://github.com/pre-commit/pre-commit-hooks
7
- rev: v4.6.0
7
+ rev: v4.5.0
8
8
  hooks:
9
9
  - id: check-ast
10
10
  - id: check-docstring-first
@@ -20,14 +20,14 @@ repos:
20
20
  rev: v0.16
21
21
  hooks:
22
22
  - id: validate-pyproject
23
- - repo: https://github.com/psf/black-pre-commit-mirror
24
- rev: 24.4.2
23
+ - repo: https://github.com/psf/black
24
+ rev: 24.1.1
25
25
  hooks:
26
26
  - id: black
27
27
  exclude: ^(docs/|examples/|tools/)
28
28
  args: [--check]
29
29
  - repo: https://github.com/astral-sh/ruff-pre-commit
30
- rev: v0.4.2
30
+ rev: v0.1.15
31
31
  hooks:
32
32
  - id: ruff
33
33
  types_or: [python, jupyter]
@@ -38,7 +38,7 @@ repos:
38
38
  hooks:
39
39
  - id: codespell
40
40
  exclude: ^(.github/|docs/)
41
- args: [--toml, pyproject.toml]
41
+ args: [--config, tox.ini]
42
42
  - repo: https://github.com/pre-commit/pygrep-hooks
43
43
  rev: v1.10.0
44
44
  hooks:
@@ -47,10 +47,3 @@ repos:
47
47
  - id: rst-backticks
48
48
  - id: rst-directive-colons
49
49
  - id: rst-inline-touching-normal
50
- - repo: https://github.com/adamchainz/blacken-docs
51
- rev: "1.16.0"
52
- hooks:
53
- - id: blacken-docs
54
- additional_dependencies:
55
- - black==24.4.2
56
- args: [-l 79]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: junifer
3
- Version: 0.0.5
3
+ Version: 0.0.5.dev11
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>
@@ -29,20 +29,19 @@ Description-Content-Type: text/markdown
29
29
  License-File: LICENSE.md
30
30
  License-File: AUTHORS.rst
31
31
  Requires-Dist: click<8.2,>=8.1.3
32
- Requires-Dist: numpy<2.0.0,>=1.24.0
33
- Requires-Dist: scipy<=1.14.0,>=1.10.0
34
- Requires-Dist: datalad<1.2.0,>=1.0.0
35
- Requires-Dist: pandas<2.3.0,>=2.0.0
36
- Requires-Dist: nibabel<5.3.0,>=5.2.0
37
- Requires-Dist: nilearn<=0.10.4,>=0.10.3
38
- Requires-Dist: sqlalchemy<=2.1.0,>=2.0.25
32
+ Requires-Dist: numpy<1.27,>=1.24
33
+ Requires-Dist: scipy<=1.11.4,>=1.9.0
34
+ Requires-Dist: datalad<0.20,>=0.15.4
35
+ Requires-Dist: pandas<2.2,>=1.4.0
36
+ Requires-Dist: nibabel<5.11,>=3.2.0
37
+ Requires-Dist: nilearn<=0.10.2,>=0.9.0
38
+ Requires-Dist: sqlalchemy<=2.1.0,>=1.4.27
39
39
  Requires-Dist: ruamel.yaml<0.18,>=0.17
40
40
  Requires-Dist: h5py>=3.10
41
41
  Requires-Dist: httpx[http2]==0.26.0
42
42
  Requires-Dist: tqdm==4.66.1
43
43
  Requires-Dist: templateflow>=23.0.0
44
- Requires-Dist: lapy<2.0.0,>=1.0.0
45
- Requires-Dist: importlib_metadata; python_version < "3.9"
44
+ Requires-Dist: importlib_metadata; python_version < "3.10"
46
45
  Requires-Dist: looseversion==1.3.0; python_version >= "3.12"
47
46
  Provides-Extra: all
48
47
  Requires-Dist: bctpy==0.6.0; extra == "all"
@@ -57,14 +56,14 @@ Provides-Extra: dev
57
56
  Requires-Dist: tox; extra == "dev"
58
57
  Requires-Dist: pre-commit; extra == "dev"
59
58
  Provides-Extra: docs
60
- Requires-Dist: seaborn<0.14.0,>=0.13.0; extra == "docs"
61
- Requires-Dist: sphinx<7.4.0,>=7.3.0; extra == "docs"
62
- Requires-Dist: sphinx-gallery<0.17.0,>=0.15.0; extra == "docs"
63
- Requires-Dist: furo<2024.6.0,>=2024.4.27; extra == "docs"
64
- Requires-Dist: numpydoc<1.8.0,>=1.6.0; extra == "docs"
65
- Requires-Dist: julearn==0.3.3; extra == "docs"
59
+ Requires-Dist: seaborn<0.13,>=0.11.2; extra == "docs"
60
+ Requires-Dist: sphinx<7.3,>=5.3.0; extra == "docs"
61
+ Requires-Dist: sphinx-gallery<0.15.0,>=0.11.0; extra == "docs"
62
+ Requires-Dist: furo<2023.10.0,>=2022.9.29; extra == "docs"
63
+ Requires-Dist: numpydoc<1.6,>=1.5.0; extra == "docs"
64
+ Requires-Dist: julearn<0.4,>=0.3.0; extra == "docs"
66
65
  Requires-Dist: sphinx-copybutton<0.5.3,>=0.5.1; extra == "docs"
67
- Requires-Dist: towncrier<23.12.0,>=23.10.0; extra == "docs"
66
+ Requires-Dist: towncrier<23.7,>=22.12.0; extra == "docs"
68
67
  Requires-Dist: sphinxcontrib-mermaid<0.10,>=0.8.1; extra == "docs"
69
68
 
70
69
  ![Junifer logo](docs/images/junifer_logo.png "junifer logo")
@@ -1,6 +1,8 @@
1
1
  Nilearn
2
2
  =======
3
3
 
4
+ This package provides re-implementations of some of the functions in `nilearn`_.
5
+
4
6
  .. automodule:: junifer.external.nilearn
5
7
  :members:
6
8
  :imported-members:
@@ -1,6 +1,8 @@
1
1
  On-the-fly
2
2
  ==========
3
3
 
4
+ This package provides functions for quick transform operations on stored data.
5
+
4
6
  .. automodule:: junifer.onthefly
5
7
  :members:
6
8
  :imported-members:
@@ -729,6 +729,14 @@ Available
729
729
  - | Compute a brain mask for the images by guessing the value of the
730
730
  | background from the border of the image.
731
731
  | See :func:`nilearn.masking.compute_background_mask`
732
+ * - ``nilearn``'s ICBM152 template gray-matter mask
733
+ - | ``fetch_icbm152_brain_gm_mask``
734
+ - ``MNI152NLin2009aAsym``
735
+ - 0.0.2
736
+ - | Compute a gray-matter mask from the asymmetrical ICBM152 2009 template,
737
+ | release a.
738
+ | See :func:`nilearn.datasets.fetch_icbm152_brain_gm_mask`
739
+
732
740
 
733
741
  ..
734
742
  Planned
@@ -0,0 +1 @@
1
+ Add support for choosing between ``bash`` and ``zsh`` shells when queueing by `Synchon Mandal`_
@@ -170,7 +170,6 @@ numpydoc_xref_ignore = {
170
170
  "Engine",
171
171
  "positive",
172
172
  "negative",
173
- "estimator",
174
173
  }
175
174
  # numpydoc_validation_checks = {
176
175
  # "all",
@@ -70,7 +70,10 @@ with the DMN. Here, we use the DMN coordinates used in a
70
70
  .. code-block:: python
71
71
 
72
72
  dmn_coords = np.array(
73
- [[0, -52, 18], [-46, -68, 32], [46, -68, 32], [1, 50, -5]]
73
+ [[0, -52, 18],
74
+ [-46, -68, 32],
75
+ [46, -68, 32],
76
+ [1, 50, -5]]
74
77
  )
75
78
  voi_names = [
76
79
  "Posterior Cingulate Cortex",
@@ -87,7 +90,10 @@ simply use this to register our coordinates:
87
90
  .. code-block:: python
88
91
 
89
92
  register_coordinates(
90
- name="DMNCustom", coordinates=dmn_coords, voi_names=voi_names, space="MNI"
93
+ name="DMNCustom",
94
+ coordinates=dmn_coords,
95
+ voi_names=voi_names,
96
+ space="MNI"
91
97
  )
92
98
 
93
99
  Now, when we run this script, ``junifer`` registers these coordinates and we can
@@ -115,14 +115,14 @@ For example, in our BIDS example, the variables will be:
115
115
 
116
116
  types = ["T1w", "BOLD"]
117
117
  patterns = {
118
- "T1w": {
119
- "pattern": "{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz",
120
- "space": "native",
121
- },
122
- "BOLD": {
123
- "pattern": "{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
124
- "space": "MNI152NLin6Asym",
125
- },
118
+ "T1w": {
119
+ "pattern": "{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz",
120
+ "space": "native",
121
+ },
122
+ "BOLD": {
123
+ "pattern": "{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
124
+ "space": "MNI152NLin6Asym",
125
+ },
126
126
  }
127
127
  replacements = ["subject", "session"]
128
128
 
@@ -144,24 +144,25 @@ With the variables defined above, we can create our DataGrabber and name it
144
144
 
145
145
 
146
146
  class ExampleBIDSDataGrabber(PatternDataGrabber):
147
+
147
148
  def __init__(self, datadir: str | Path) -> None:
148
149
  types = ["T1w", "BOLD"]
149
150
  patterns = {
150
- "T1w": {
151
- "pattern": "{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz",
152
- "space": "native",
153
- },
154
- "BOLD": {
155
- "pattern": "{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
156
- "space": "MNI152NLin6Asym",
157
- },
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
+ },
158
159
  }
159
160
  replacements = ["subject", "session"]
160
161
  super().__init__(
161
- datadir=datadir,
162
- types=types,
163
- patterns=patterns,
164
- replacements=replacements,
162
+ datadir=datadir,
163
+ types=types,
164
+ patterns=patterns,
165
+ replacements=replacements,
165
166
  )
166
167
 
167
168
  Our DataGrabber is ready to be used by ``junifer``. However, it is still unknown
@@ -179,24 +180,25 @@ use the :func:`.register_datagrabber` decorator.
179
180
 
180
181
  @register_datagrabber
181
182
  class ExampleBIDSDataGrabber(PatternDataGrabber):
183
+
182
184
  def __init__(self, datadir: str | Path) -> None:
183
185
  types = ["T1w", "BOLD"]
184
186
  patterns = {
185
- "T1w": {
186
- "pattern": "{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz",
187
- "space": "native",
188
- },
189
- "BOLD": {
190
- "pattern": "{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
191
- "space": "MNI152NLin6Asym",
192
- },
187
+ "T1w": {
188
+ "pattern": "{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz",
189
+ "space": "native",
190
+ },
191
+ "BOLD": {
192
+ "pattern": "{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
193
+ "space": "MNI152NLin6Asym",
194
+ },
193
195
  }
194
196
  replacements = ["subject", "session"]
195
197
  super().__init__(
196
- datadir=datadir,
197
- types=types,
198
- patterns=patterns,
199
- replacements=replacements,
198
+ datadir=datadir,
199
+ types=types,
200
+ patterns=patterns,
201
+ replacements=replacements,
200
202
  )
201
203
 
202
204
 
@@ -265,28 +267,29 @@ And we can create our DataGrabber:
265
267
 
266
268
  @register_datagrabber
267
269
  class ExampleBIDSDataGrabber(PatternDataladDataGrabber):
270
+
268
271
  def __init__(self) -> None:
269
272
  types = ["T1w", "BOLD"]
270
273
  patterns = {
271
- "T1w": {
272
- "pattern": "{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz",
273
- "space": "native",
274
- },
275
- "BOLD": {
276
- "pattern": "{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
277
- "space": "MNI152NLin6Asym",
278
- },
274
+ "T1w": {
275
+ "pattern": "{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz",
276
+ "space": "native",
277
+ },
278
+ "BOLD": {
279
+ "pattern": "{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
280
+ "space": "MNI152NLin6Asym",
281
+ },
279
282
  }
280
283
  replacements = ["subject", "session"]
281
284
  uri = "https://gin.g-node.org/juaml/datalad-example-bids"
282
285
  rootdir = "example_bids_ses"
283
286
  super().__init__(
284
- datadir=None,
285
- uri=uri,
286
- rootdir=rootdir,
287
- types=types,
288
- patterns=patterns,
289
- replacements=replacements,
287
+ datadir=None,
288
+ uri=uri,
289
+ rootdir=rootdir,
290
+ types=types,
291
+ patterns=patterns,
292
+ replacements=replacements,
290
293
  )
291
294
 
292
295
  This approach can be used directly from the YAML, like so:
@@ -294,69 +297,22 @@ This approach can be used directly from the YAML, like so:
294
297
  .. code-block:: yaml
295
298
 
296
299
  datagrabber:
297
- kind: PatternDataladDataGrabber
298
- types:
299
- - BOLD
300
- - T1w
301
- patterns:
302
- BOLD:
303
- pattern: "{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz"
304
- space: MNI152NLin6Asym
305
- T1w:
306
- pattern: "{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz"
307
- space: native
308
- replacements:
309
- - subject
310
- - session
311
- uri: "https://gin.g-node.org/juaml/datalad-example-bids"
312
- rootdir: example_bids_ses
313
-
314
- Advanced: Using Unix-like path expansion directives
315
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
316
-
317
- It is also possible to use some advanced Unix-like path expansion tricks to
318
- define our patterns.
319
-
320
- A very common thing would be to use ``*`` to match any number of
321
- characters but we cannot use it right after a replacement like:
322
-
323
- .. code-block:: python
324
-
325
- "derivatives/freesurfer/{subject}*"
326
-
327
- or if there are multiple files or no files which can be globbed.
328
-
329
- We can also use ``[]`` and ``[!]`` to glob certain tricky files like with the
330
- case of FreeSurfer derivatives. The file structure seen in a typical
331
- FreeSurfer derivative of a dataset (like ``AOMIC`` ones) is like so:
332
-
333
- .. code-block::
334
-
335
- .
336
- └── derivatives
337
- └── freesurfer
338
- ├── fsaverage
339
- │ ├── mri
340
- │ | ├── T1.mgz
341
- │ | └── ...
342
- │ └── ...
343
- ├── sub-01
344
- │ ├── mri
345
- │ | ├── T1.mgz
346
- │ | └── ...
347
- │ | └── ...
348
- │ └── ...
349
- ...
350
-
351
- With a structure like this, it would be cumbersome to write custom methods
352
- for the class and thus we could use a pattern like this:
353
-
354
- .. code-block:: python
355
-
356
- "derivatives/freesurfer/[!f]{subject}/mri/T1.mg[z]"
357
-
358
- This would ignore the ``fsaverage`` directory as a subject and let ``T1.mgz`` be
359
- fetched as there can be many files with the same prefix.
300
+ - kind: PatternDataladDataGrabber
301
+ types:
302
+ - BOLD
303
+ - T1w
304
+ patterns:
305
+ BOLD:
306
+ pattern: "{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz"
307
+ space: MNI152NLin6Asym
308
+ T1w:
309
+ pattern: "{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz"
310
+ space: native
311
+ replacements:
312
+ - subject
313
+ - session
314
+ uri: "https://gin.g-node.org/juaml/datalad-example-bids"
315
+ rootdir: example_bids_ses
360
316
 
361
317
  .. _extending_datagrabbers_base:
362
318
 
@@ -388,17 +344,17 @@ and ``session``, we will use them as parameters of ``get_item``:
388
344
  .. code-block:: python
389
345
 
390
346
  def get_item(self, subject: str, session: str) -> dict[str, dict[str, str]]:
391
- out = {
392
- "T1w": {
393
- "path": f"{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz",
394
- "space": "native",
395
- },
396
- "BOLD": {
397
- "path": f"{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
398
- "space": "MNI152NLin6Asym",
399
- },
400
- }
401
- return out
347
+ out = {
348
+ "T1w": {
349
+ "path": f"{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz",
350
+ "space": "native",
351
+ },
352
+ "BOLD": {
353
+ "path": f"{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
354
+ "space": "MNI152NLin6Asym",
355
+ },
356
+ }
357
+ return out
402
358
 
403
359
 
404
360
  The second method, ``get_elements``, needs to return a list of all the elements
@@ -412,16 +368,16 @@ need to remember that for session *ses-03* there is no BOLD data.
412
368
 
413
369
 
414
370
  def get_elements(self) -> list[str]:
415
- subjects = ["sub-01", "sub-02", "sub-03"]
416
- sessions = ["ses-01", "ses-02"]
371
+ subjects = ["sub-01", "sub-02", "sub-03"]
372
+ sessions = ["ses-01", "ses-02"]
417
373
 
418
- # If we are not working on BOLD data, we can add "ses-03"
419
- if "BOLD" not in self.types:
420
- sessions.append("ses-03")
421
- elements = []
422
- for subject, element in product(subjects, sessions):
423
- elements.append({"subject": subject, "session": session})
424
- return elements
374
+ # If we are not working on BOLD data, we can add "ses-03"
375
+ if "BOLD" not in self.types:
376
+ sessions.append("ses-03")
377
+ elements = []
378
+ for subject, element in product(subjects, sessions):
379
+ elements.append({"subject": subject, "session": session})
380
+ return elements
425
381
 
426
382
 
427
383
  And finally, we can implement the ``get_element_keys`` method. This method needs
@@ -432,7 +388,7 @@ method, in the same order.
432
388
  .. code-block:: python
433
389
 
434
390
  def get_element_keys(self) -> list[str]:
435
- return ["subject", "session"]
391
+ return ["subject", "session"]
436
392
 
437
393
 
438
394
  So, to summarise, our DataGrabber will look like this:
@@ -445,36 +401,35 @@ So, to summarise, our DataGrabber will look like this:
445
401
 
446
402
  @register_datagrabber
447
403
  class ExampleBIDSDataGrabber(BaseDataGrabber):
448
- def get_item(
449
- self, subject: str, session: str
450
- ) -> dict[str, dict[str, str]]:
451
- out = {
452
- "T1w": {
453
- "path": f"{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz",
454
- "space": "native",
455
- },
456
- "BOLD": {
457
- "path": f"{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
458
- "space": "MNI152NLin6Asym",
459
- },
460
- }
461
- return out
462
-
463
- def get_elements(self) -> list[str]:
464
- subjects = ["sub-01", "sub-02", "sub-03"]
465
- sessions = ["ses-01", "ses-02"]
466
404
 
467
- # If we are not working on BOLD data, we can add "ses-03"
468
- if "BOLD" not in self.types:
469
- sessions.append("ses-03")
470
- elements = []
471
- for subject in subjects:
472
- for session in sessions:
473
- elements.append({"subject": subject, "session": session})
474
- return elements
475
-
476
- def get_element_keys(self) -> list[str]:
477
- return ["subject", "session"]
405
+ def get_item(self, subject: str, session: str) -> dict[str, dict[str, str]]:
406
+ out = {
407
+ "T1w": {
408
+ "path": f"{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz",
409
+ "space": "native",
410
+ },
411
+ "BOLD": {
412
+ "path": f"{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
413
+ "space": "MNI152NLin6Asym",
414
+ },
415
+ }
416
+ return out
417
+
418
+ def get_elements(self) -> list[str]:
419
+ subjects = ["sub-01", "sub-02", "sub-03"]
420
+ sessions = ["ses-01", "ses-02"]
421
+
422
+ # If we are not working on BOLD data, we can add "ses-03"
423
+ if "BOLD" not in self.types:
424
+ sessions.append("ses-03")
425
+ elements = []
426
+ for subject in subjects:
427
+ for session in sessions:
428
+ elements.append({"subject": subject, "session": session})
429
+ return elements
430
+
431
+ def get_element_keys(self) -> list[str]:
432
+ return ["subject", "session"]
478
433
 
479
434
  Optional: Using datalad
480
435
  ~~~~~~~~~~~~~~~~~~~~~~~
@@ -487,11 +442,11 @@ Step 4: Optional: Adding *BOLD confounds*
487
442
  -----------------------------------------
488
443
 
489
444
  For some analyses, it is useful to have the confounds associated with the BOLD
490
- data. This corresponds to the ``BOLD.confounds`` item in the
445
+ data. This corresponds to the ``BOLD_confounds`` item in the
491
446
  :ref:`Data Object <data_object>` (see :ref:`data_types`). However, the
492
- ``BOLD.confounds`` element does not only consists of a ``path``, but it requires
447
+ ``BOLD_confounds`` element does not only consists of a ``path``, but it requires
493
448
  more information about the format of the confounds file. Thus, the
494
- ``BOLD.confounds`` element is a dictionary with the following keys:
449
+ ``BOLD_confounds`` element is a dictionary with the following keys:
495
450
 
496
451
  - ``path``: the path to the confounds file.
497
452
  - ``format``: the format of the confounds file. Currently, this can be either
@@ -520,24 +475,26 @@ this:
520
475
 
521
476
  .. code-block:: python
522
477
 
523
- def get_item(self, subject: str, session: str) -> dict:
524
- out = {
525
- "BOLD": {
526
- "path": f"{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
527
- "space": "MNI152NLin6Asym",
528
- "confounds": {
529
- "path": f"{subject}/{session}/func/{subject}_{session}_confounds.tsv",
530
- "format": "adhoc",
531
- "mappings": {
532
- "fmriprep": {
533
- "variable1": "rot_x",
534
- "variable2": "rot_z",
535
- "variable3": "rot_y",
536
- },
537
- },
538
- },
539
- },
540
- }
478
+ def get_item(
479
+ self, subject: str, session: str
480
+ ) -> dict:
481
+ out = {
482
+ "BOLD": {
483
+ "path": f"{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
484
+ "space": "MNI152NLin6Asym",
485
+ },
486
+ "BOLD_confounds": {
487
+ "path": f"{subject}/{session}/func/{subject}_{session}_confounds.tsv",
488
+ "format": "adhoc",
489
+ "mappings": {
490
+ "fmriprep": {
491
+ "variable1": "rot_x",
492
+ "variable2": "rot_z",
493
+ "variable3": "rot_y",
494
+ },
495
+ },
496
+ },
497
+ }
541
498
 
542
499
  .. note::
543
500