junifer 0.0.6.dev219__tar.gz → 0.0.6.dev248__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 (488) hide show
  1. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/PKG-INFO +2 -1
  2. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/README.md +1 -0
  3. junifer-0.0.6.dev248/docs/changes/newsfragments/390.change +1 -0
  4. junifer-0.0.6.dev248/docs/changes/newsfragments/390.enh +1 -0
  5. junifer-0.0.6.dev248/docs/changes/newsfragments/392.feature +1 -0
  6. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/extending/dependencies.rst +18 -7
  7. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/extending/marker.rst +3 -2
  8. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/understanding/preprocess.rst +19 -8
  9. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/__init__.pyi +2 -0
  10. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/_version.py +2 -2
  11. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/decorators.py +5 -4
  12. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/functions.py +9 -8
  13. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/_ants_coordinates_warper.py +4 -6
  14. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/_coordinates.py +28 -15
  15. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/_fsl_coordinates_warper.py +4 -6
  16. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/masks/_ants_mask_warper.py +16 -9
  17. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/masks/_fsl_mask_warper.py +4 -6
  18. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/masks/_masks.py +21 -25
  19. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/parcellations/_ants_parcellation_warper.py +16 -9
  20. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/parcellations/_fsl_parcellation_warper.py +4 -6
  21. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/parcellations/_parcellations.py +20 -24
  22. junifer-0.0.6.dev248/junifer/data/utils.py +115 -0
  23. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/aomic/id1000.py +22 -9
  24. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/aomic/piop1.py +22 -9
  25. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/aomic/piop2.py +22 -9
  26. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/base.py +6 -1
  27. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/datalad_base.py +15 -8
  28. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/dmcc13_benchmark.py +23 -10
  29. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/hcp1200/hcp1200.py +18 -7
  30. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/multiple.py +2 -1
  31. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/pattern.py +65 -35
  32. junifer-0.0.6.dev248/junifer/datagrabber/pattern_validation_mixin.py +498 -0
  33. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +26 -9
  34. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/base.py +4 -7
  35. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/brainprint.py +4 -4
  36. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/complexity/complexity_base.py +3 -3
  37. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/ets_rss.py +4 -3
  38. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/falff/_afni_falff.py +3 -5
  39. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/falff/_junifer_falff.py +3 -3
  40. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/falff/falff_base.py +4 -6
  41. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +4 -3
  42. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/functional_connectivity_base.py +4 -3
  43. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/parcel_aggregation.py +4 -3
  44. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/reho/_afni_reho.py +3 -5
  45. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/reho/_junifer_reho.py +3 -3
  46. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/reho/reho_base.py +4 -6
  47. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/sphere_aggregation.py +4 -3
  48. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/temporal_snr/temporal_snr_base.py +4 -3
  49. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/onthefly/_brainprint.py +4 -7
  50. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/onthefly/read_transform.py +3 -6
  51. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/pipeline/marker_collection.py +6 -12
  52. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/pipeline/pipeline_component_registry.py +3 -8
  53. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/pipeline/pipeline_step_mixin.py +8 -4
  54. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/pipeline/tests/test_pipeline_step_mixin.py +18 -19
  55. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/pipeline/tests/test_workdir_manager.py +1 -0
  56. junifer-0.0.6.dev248/junifer/pipeline/update_meta_mixin.py +56 -0
  57. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/confounds/fmriprep_confound_remover.py +2 -2
  58. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/smoothing/_afni_smoothing.py +4 -6
  59. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/smoothing/_fsl_smoothing.py +4 -7
  60. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/smoothing/_nilearn_smoothing.py +3 -3
  61. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/smoothing/smoothing.py +3 -2
  62. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/warping/_ants_warper.py +26 -7
  63. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/warping/_fsl_warper.py +22 -8
  64. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/warping/space_warper.py +34 -6
  65. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/warping/tests/test_space_warper.py +4 -7
  66. junifer-0.0.6.dev248/junifer/typing/__init__.py +9 -0
  67. junifer-0.0.6.dev248/junifer/typing/__init__.pyi +23 -0
  68. junifer-0.0.6.dev248/junifer/typing/_typing.py +61 -0
  69. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer.egg-info/PKG-INFO +2 -1
  70. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer.egg-info/SOURCES.txt +6 -0
  71. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/tools/create_dmcc13_benchmark_example_dataset.py +5 -1
  72. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/tools/create_hcp1200_example_dataset.py +9 -5
  73. junifer-0.0.6.dev219/junifer/data/utils.py +0 -51
  74. junifer-0.0.6.dev219/junifer/datagrabber/pattern_validation_mixin.py +0 -388
  75. junifer-0.0.6.dev219/junifer/pipeline/update_meta_mixin.py +0 -52
  76. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/.dockerignore +0 -0
  77. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  78. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  79. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
  80. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
  81. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  82. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
  83. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/.github/dependabot.yml +0 -0
  84. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/.github/pull_request_template.md +0 -0
  85. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/.github/workflows/ci-docs.yml +0 -0
  86. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/.github/workflows/ci.yml +0 -0
  87. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/.github/workflows/docker-ci-publish.yml +0 -0
  88. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/.github/workflows/docker-docs-publish.yml +0 -0
  89. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/.github/workflows/docs-preview.yml +0 -0
  90. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/.github/workflows/docs.yml +0 -0
  91. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/.github/workflows/lint.yml +0 -0
  92. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/.github/workflows/pypi.yml +0 -0
  93. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/.gitignore +0 -0
  94. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/.gitmodules +0 -0
  95. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/.pre-commit-config.yaml +0 -0
  96. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/AUTHORS.rst +0 -0
  97. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/Dockerfile-ci +0 -0
  98. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/Dockerfile-docs +0 -0
  99. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/LICENSE.md +0 -0
  100. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/codecov.yml +0 -0
  101. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/conda-env.yml +0 -0
  102. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/Makefile +0 -0
  103. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/_static/css/custom.css +0 -0
  104. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/_static/js/custom.js +0 -0
  105. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/_templates/versions.html +0 -0
  106. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/api/api.rst +0 -0
  107. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/api/cli.rst +0 -0
  108. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/api/configs.rst +0 -0
  109. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/api/data.rst +0 -0
  110. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/api/datagrabbers.rst +0 -0
  111. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/api/datareaders.rst +0 -0
  112. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/api/index.rst +0 -0
  113. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/api/markers.rst +0 -0
  114. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/api/nilearn.rst +0 -0
  115. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/api/onthefly.rst +0 -0
  116. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/api/pipeline.rst +0 -0
  117. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/api/preprocessing.rst +0 -0
  118. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/api/stats.rst +0 -0
  119. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/api/storage.rst +0 -0
  120. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/api/testing.rst +0 -0
  121. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/api/utils.rst +0 -0
  122. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/builtin.rst +0 -0
  123. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/contributors.inc +0 -0
  124. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/.gitignore +0 -0
  125. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/335.enh +0 -0
  126. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/354.feature +0 -0
  127. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/355.misc +0 -0
  128. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/356.bugfix +0 -0
  129. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/357.enh +0 -0
  130. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/358.doc +0 -0
  131. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/359.doc +0 -0
  132. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/360.bugfix +0 -0
  133. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/361.misc +0 -0
  134. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/362.feature +0 -0
  135. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/367.enh +0 -0
  136. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/368.enh +0 -0
  137. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/369.bugfix +0 -0
  138. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/370.bugfix +0 -0
  139. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/372.misc +0 -0
  140. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/373.misc +0 -0
  141. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/374.misc +0 -0
  142. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/380.misc +0 -0
  143. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/382.misc +0 -0
  144. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/383.misc +0 -0
  145. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/384.misc +0 -0
  146. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/386.bugfix +0 -0
  147. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/387.change +0 -0
  148. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/387.feature +0 -0
  149. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/389.enh +0 -0
  150. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/changes/newsfragments/391.misc +0 -0
  151. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/conf.py +0 -0
  152. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/contribution.rst +0 -0
  153. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/extending/coordinates.rst +0 -0
  154. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/extending/datagrabber.rst +0 -0
  155. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/extending/extension.rst +0 -0
  156. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/extending/index.rst +0 -0
  157. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/extending/masks.rst +0 -0
  158. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/extending/parcellations.rst +0 -0
  159. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/extending/preprocessor.rst +0 -0
  160. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/faq.rst +0 -0
  161. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/help.rst +0 -0
  162. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/images/junifer_logo.png +0 -0
  163. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/index.rst +0 -0
  164. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/installation.rst +0 -0
  165. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/links.inc +0 -0
  166. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/maintaining.rst +0 -0
  167. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/redirect.html +0 -0
  168. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/starting.rst +0 -0
  169. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/understanding/data.rst +0 -0
  170. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/understanding/datagrabber.rst +0 -0
  171. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/understanding/datareader.rst +0 -0
  172. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/understanding/index.rst +0 -0
  173. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/understanding/marker.rst +0 -0
  174. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/understanding/pipeline.rst +0 -0
  175. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/understanding/storage.rst +0 -0
  176. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/using/codeless.rst +0 -0
  177. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/using/index.rst +0 -0
  178. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/using/masks.rst +0 -0
  179. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/using/queueing.rst +0 -0
  180. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/using/running.rst +0 -0
  181. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/docs/whats_new.rst +0 -0
  182. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/examples/README.rst +0 -0
  183. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/examples/norun_hcpfc_pearson.py +0 -0
  184. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/examples/norun_ukbvm_gmd.py +0 -0
  185. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/examples/run_compute_parcel_mean.py +0 -0
  186. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/examples/run_datagrabber_bids_datalad.py +0 -0
  187. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/examples/run_ets_rss_marker.py +0 -0
  188. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/examples/run_junifer_julearn.py +0 -0
  189. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/examples/run_run_gmd_mean.py +0 -0
  190. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/examples/yamls/gmd_mean.yaml +0 -0
  191. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
  192. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
  193. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/examples/yamls/ukb_gmd_mean.yaml +0 -0
  194. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/ignore_words.txt +0 -0
  195. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/__init__.py +0 -0
  196. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/__init__.py +0 -0
  197. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/__init__.pyi +0 -0
  198. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/py.typed +0 -0
  199. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/queue_context/__init__.py +0 -0
  200. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/queue_context/__init__.pyi +0 -0
  201. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
  202. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/queue_context/htcondor_adapter.py +0 -0
  203. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/queue_context/py.typed +0 -0
  204. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/queue_context/queue_context_adapter.py +0 -0
  205. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
  206. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
  207. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
  208. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/afni/3dRSFC +0 -0
  209. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/afni/3dReHo +0 -0
  210. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/afni/afni +0 -0
  211. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/afni/run_afni_docker.sh +0 -0
  212. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/ants/ResampleImage +0 -0
  213. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/ants/antsApplyTransforms +0 -0
  214. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
  215. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/ants/run_ants_docker.sh +0 -0
  216. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/freesurfer/mri_binarize +0 -0
  217. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/freesurfer/mri_mc +0 -0
  218. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/freesurfer/mri_pretess +0 -0
  219. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/freesurfer/mris_convert +0 -0
  220. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
  221. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/fsl/applywarp +0 -0
  222. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/fsl/flirt +0 -0
  223. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/fsl/img2imgcoord +0 -0
  224. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
  225. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/fsl/std2imgcoord +0 -0
  226. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/run_conda.bash +0 -0
  227. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/run_conda.zsh +0 -0
  228. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/run_venv.bash +0 -0
  229. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/res/run_venv.zsh +0 -0
  230. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/api/tests/test_functions.py +0 -0
  231. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/cli/__init__.py +0 -0
  232. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/cli/__init__.pyi +0 -0
  233. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/cli/cli.py +0 -0
  234. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/cli/parser.py +0 -0
  235. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/cli/py.typed +0 -0
  236. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
  237. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +0 -0
  238. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
  239. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/cli/tests/test_cli.py +0 -0
  240. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/cli/tests/test_cli_utils.py +0 -0
  241. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/cli/tests/test_parser.py +0 -0
  242. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/cli/utils.py +0 -0
  243. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/configs/__init__.py +0 -0
  244. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/configs/juseless/__init__.py +0 -0
  245. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/configs/juseless/__init__.pyi +0 -0
  246. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
  247. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
  248. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
  249. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
  250. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
  251. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
  252. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
  253. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
  254. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
  255. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
  256. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
  257. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
  258. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
  259. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/configs/juseless/py.typed +0 -0
  260. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/conftest.py +0 -0
  261. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/__init__.py +0 -0
  262. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/__init__.pyi +0 -0
  263. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/_dispatch.py +0 -0
  264. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/AutobiographicalMemory_VOIs.txt +0 -0
  265. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/CogAC_VOIs.txt +0 -0
  266. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/CogAR_VOIs.txt +0 -0
  267. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/DMNBuckner_VOIs.txt +0 -0
  268. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/Dosenbach2010_MNI_VOIs.txt +0 -0
  269. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/Empathy_VOIs.txt +0 -0
  270. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/Motor_VOIs.txt +0 -0
  271. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/MultiTask_VOIs.txt +0 -0
  272. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/PhysioStress_VOIs.txt +0 -0
  273. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/Power2011_MNI_VOIs.txt +0 -0
  274. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/Power2013_MNI_VOIs.tsv +0 -0
  275. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/Rew_VOIs.txt +0 -0
  276. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/Somatosensory_VOIs.txt +0 -0
  277. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/ToM_VOIs.txt +0 -0
  278. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/VigAtt_VOIs.txt +0 -0
  279. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/WM_VOIs.txt +0 -0
  280. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/eMDN_VOIs.txt +0 -0
  281. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/eSAD_VOIs.txt +0 -0
  282. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/VOIs/meta/extDMN_VOIs.txt +0 -0
  283. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/__init__.py +0 -0
  284. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/__init__.pyi +0 -0
  285. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
  286. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/masks/__init__.py +0 -0
  287. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/masks/__init__.pyi +0 -0
  288. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/masks/tests/test_masks.py +0 -0
  289. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/masks/ukb/UKB_15K_GM_template.nii.gz +0 -0
  290. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean.nii.gz +0 -0
  291. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean_3mm.nii.gz +0 -0
  292. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/masks/vickery-patil/GMprob0.2_cortex_3mm_NA_rm.nii.gz +0 -0
  293. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/parcellations/__init__.py +0 -0
  294. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/parcellations/__init__.pyi +0 -0
  295. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
  296. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/pipeline_data_registry_base.py +0 -0
  297. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/py.typed +0 -0
  298. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/template_spaces.py +0 -0
  299. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/tests/test_data_utils.py +0 -0
  300. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/data/tests/test_template_spaces.py +0 -0
  301. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/__init__.py +0 -0
  302. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/__init__.pyi +0 -0
  303. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/aomic/__init__.py +0 -0
  304. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/aomic/__init__.pyi +0 -0
  305. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/aomic/py.typed +0 -0
  306. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
  307. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
  308. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
  309. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/hcp1200/__init__.py +0 -0
  310. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
  311. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
  312. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/hcp1200/py.typed +0 -0
  313. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
  314. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/pattern_datalad.py +0 -0
  315. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/py.typed +0 -0
  316. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/tests/test_base.py +0 -0
  317. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
  318. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/tests/test_multiple.py +0 -0
  319. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/tests/test_pattern.py +0 -0
  320. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
  321. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
  322. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datareader/__init__.py +0 -0
  323. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datareader/__init__.pyi +0 -0
  324. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datareader/default.py +0 -0
  325. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datareader/py.typed +0 -0
  326. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/datareader/tests/test_default_reader.py +0 -0
  327. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
  328. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
  329. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
  330. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
  331. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
  332. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
  333. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
  334. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
  335. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/external/__init__.py +0 -0
  336. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/external/h5io/h5io/__init__.py +0 -0
  337. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/external/h5io/h5io/_h5io.py +0 -0
  338. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/external/h5io/h5io/_version.py +0 -0
  339. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/external/h5io/h5io/chunked_array.py +0 -0
  340. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/external/h5io/h5io/chunked_list.py +0 -0
  341. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/external/nilearn/__init__.py +0 -0
  342. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/external/nilearn/__init__.pyi +0 -0
  343. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
  344. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
  345. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/external/nilearn/py.typed +0 -0
  346. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
  347. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
  348. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/__init__.py +0 -0
  349. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/__init__.pyi +0 -0
  350. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/complexity/__init__.py +0 -0
  351. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/complexity/__init__.pyi +0 -0
  352. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/complexity/hurst_exponent.py +0 -0
  353. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
  354. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/complexity/perm_entropy.py +0 -0
  355. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/complexity/py.typed +0 -0
  356. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/complexity/range_entropy.py +0 -0
  357. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/complexity/range_entropy_auc.py +0 -0
  358. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/complexity/sample_entropy.py +0 -0
  359. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
  360. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
  361. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
  362. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
  363. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
  364. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
  365. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
  366. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
  367. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
  368. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/falff/__init__.py +0 -0
  369. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/falff/__init__.pyi +0 -0
  370. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/falff/falff_parcels.py +0 -0
  371. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/falff/falff_spheres.py +0 -0
  372. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/falff/py.typed +0 -0
  373. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
  374. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
  375. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/__init__.py +0 -0
  376. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
  377. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
  378. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
  379. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
  380. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
  381. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/py.typed +0 -0
  382. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
  383. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
  384. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
  385. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
  386. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
  387. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
  388. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/py.typed +0 -0
  389. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/reho/__init__.py +0 -0
  390. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/reho/__init__.pyi +0 -0
  391. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/reho/py.typed +0 -0
  392. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/reho/reho_parcels.py +0 -0
  393. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/reho/reho_spheres.py +0 -0
  394. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
  395. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
  396. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/temporal_snr/__init__.py +0 -0
  397. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/temporal_snr/__init__.pyi +0 -0
  398. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/temporal_snr/py.typed +0 -0
  399. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
  400. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
  401. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
  402. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
  403. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
  404. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/tests/test_brainprint.py +0 -0
  405. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/tests/test_ets_rss.py +0 -0
  406. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/tests/test_marker_utils.py +0 -0
  407. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/tests/test_markers_base.py +0 -0
  408. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
  409. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
  410. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/markers/utils.py +0 -0
  411. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/onthefly/__init__.py +0 -0
  412. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/onthefly/tests/test_read_transform.py +0 -0
  413. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/pipeline/__init__.py +0 -0
  414. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/pipeline/__init__.pyi +0 -0
  415. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/pipeline/py.typed +0 -0
  416. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/pipeline/tests/test_marker_collection.py +0 -0
  417. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
  418. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
  419. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/pipeline/utils.py +0 -0
  420. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/pipeline/workdir_manager.py +0 -0
  421. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/__init__.py +0 -0
  422. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/__init__.pyi +0 -0
  423. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/base.py +0 -0
  424. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/confounds/__init__.py +0 -0
  425. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/confounds/__init__.pyi +0 -0
  426. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/confounds/py.typed +0 -0
  427. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
  428. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/py.typed +0 -0
  429. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/smoothing/__init__.py +0 -0
  430. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/smoothing/__init__.pyi +0 -0
  431. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/smoothing/py.typed +0 -0
  432. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
  433. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
  434. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/warping/__init__.py +0 -0
  435. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/warping/__init__.pyi +0 -0
  436. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/preprocess/warping/py.typed +0 -0
  437. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/py.typed +0 -0
  438. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/stats.py +0 -0
  439. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/storage/__init__.py +0 -0
  440. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/storage/__init__.pyi +0 -0
  441. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/storage/base.py +0 -0
  442. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/storage/hdf5.py +0 -0
  443. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/storage/pandas_base.py +0 -0
  444. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/storage/py.typed +0 -0
  445. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/storage/sqlite.py +0 -0
  446. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/storage/tests/test_hdf5.py +0 -0
  447. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/storage/tests/test_pandas_base.py +0 -0
  448. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/storage/tests/test_sqlite.py +0 -0
  449. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/storage/tests/test_storage_base.py +0 -0
  450. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/storage/tests/test_utils.py +0 -0
  451. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/storage/utils.py +0 -0
  452. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/testing/__init__.py +0 -0
  453. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/testing/__init__.pyi +0 -0
  454. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
  455. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/testing/datagrabbers.py +0 -0
  456. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/testing/py.typed +0 -0
  457. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/testing/registry.py +0 -0
  458. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
  459. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
  460. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
  461. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/testing/tests/test_testing_registry.py +0 -0
  462. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/testing/utils.py +0 -0
  463. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/tests/test_main.py +0 -0
  464. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/tests/test_stats.py +0 -0
  465. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/utils/__init__.py +0 -0
  466. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/utils/__init__.pyi +0 -0
  467. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/utils/_yaml.py +0 -0
  468. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/utils/fs.py +0 -0
  469. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/utils/helpers.py +0 -0
  470. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/utils/logging.py +0 -0
  471. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/utils/py.typed +0 -0
  472. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/utils/singleton.py +0 -0
  473. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/utils/tests/test_fs.py +0 -0
  474. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/utils/tests/test_helpers.py +0 -0
  475. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer/utils/tests/test_logging.py +0 -0
  476. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer.egg-info/dependency_links.txt +0 -0
  477. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer.egg-info/entry_points.txt +0 -0
  478. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer.egg-info/requires.txt +0 -0
  479. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/junifer.egg-info/top_level.txt +0 -0
  480. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/pyproject.toml +0 -0
  481. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/setup.cfg +0 -0
  482. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/setup.py +0 -0
  483. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/tools/create_aomic1000_example_dataset.py +0 -0
  484. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/tools/create_aomicpiop1_example_dataset.py +0 -0
  485. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/tools/create_aomicpiop2_example_dataset.py +0 -0
  486. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/tools/create_bids_example_dataset.py +0 -0
  487. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/tools/create_bids_example_dataset_sessions.py +0 -0
  488. {junifer-0.0.6.dev219 → junifer-0.0.6.dev248}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: junifer
3
- Version: 0.0.6.dev219
3
+ Version: 0.0.6.dev248
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>
@@ -111,6 +111,7 @@ The documentation is available at [https://juaml.github.io/junifer](https://juam
111
111
  * `preprocess`: Preprocessing module.
112
112
  * `storage`: Storage module.
113
113
  * `testing`: Testing components module.
114
+ * `typing`: Type hints module.
114
115
  * `utils`: Utilities module (e.g. logging).
115
116
 
116
117
  ## Installation
@@ -39,6 +39,7 @@ The documentation is available at [https://juaml.github.io/junifer](https://juam
39
39
  * `preprocess`: Preprocessing module.
40
40
  * `storage`: Storage module.
41
41
  * `testing`: Testing components module.
42
+ * `typing`: Type hints module.
42
43
  * `utils`: Utilities module (e.g. logging).
43
44
 
44
45
  ## Installation
@@ -0,0 +1 @@
1
+ :class:`.SpaceWarper`'s ``using`` now supports ``"auto"`` allowing auto tool selection based on DataGrabber specification by `Synchon Mandal`_
@@ -0,0 +1 @@
1
+ Update ``Warp`` data type to be a list of dictionaries and adapt to allow multiple transforms to be specified by `Synchon Mandal`_
@@ -0,0 +1 @@
1
+ Introduce ``junifer.typing`` sub-module to organise internal and external type hints by `Synchon Mandal`_
@@ -28,7 +28,7 @@ component depends on. For example, for :class:`.RSSETSMarker`, we have:
28
28
 
29
29
  .. code-block:: python
30
30
 
31
- _DEPENDENCIES: ClassVar[Set[str]] = {"nilearn"}
31
+ _DEPENDENCIES: ClassVar[Dependencies] = {"nilearn"}
32
32
 
33
33
  The type annotation is for documentation and static type checking purposes.
34
34
  Although not required, we highly recommend you use them, your future self
@@ -39,12 +39,12 @@ and others who use it will thank you.
39
39
  Handling external dependencies from toolboxes
40
40
  ---------------------------------------------
41
41
 
42
- You can also specify dependencies of external toolboxes like AFIN, FSL and ANTs,
42
+ You can also specify dependencies of external toolboxes like AFNI, FSL and ANTs,
43
43
  by having a class attribute like so:
44
44
 
45
45
  .. code-block:: python
46
46
 
47
- _EXT_DEPENDENCIES: ClassVar[List[Dict[str, Union[str, List[str]]]]] = [
47
+ _EXT_DEPENDENCIES: ClassVar[ExternalDependencies] = [
48
48
  {
49
49
  "name": "afni",
50
50
  "commands": ["3dReHo", "3dAFNItoNIFTI"],
@@ -78,7 +78,7 @@ that it shows the problem a bit better and how we solve it:
78
78
 
79
79
  class SpaceWarper(BasePreprocessor):
80
80
  # docstring
81
- _CONDITIONAL_DEPENDENCIES: ClassVar[List[Dict[str, Union[str, Type]]]] = [
81
+ _CONDITIONAL_DEPENDENCIES: ClassVar[ConditionalDependencies] = [
82
82
  {
83
83
  "using": "fsl",
84
84
  "depends_on": FSLWarper,
@@ -87,6 +87,10 @@ that it shows the problem a bit better and how we solve it:
87
87
  "using": "ants",
88
88
  "depends_on": ANTsWarper,
89
89
  },
90
+ {
91
+ "using": "auto",
92
+ "depends_on": [FSLWarper, ANTsWarper],
93
+ },
90
94
  ]
91
95
 
92
96
  def __init__(
@@ -100,13 +104,20 @@ Here, you see a new class attribute ``_CONDITIONAL_DEPENDENCIES`` which is a
100
104
  list of dictionaries with two keys:
101
105
 
102
106
  * ``using`` (str) : lowercased name of the toolbox
103
- * ``depends_on`` (object) : a class which implements the particular tool's use
107
+ * ``depends_on`` (object or list of objects) : a class or list of classes which \
108
+ implements the particular tool's use
104
109
 
105
110
  It is mandatory to have the ``using`` positional argument in the constructor in
106
111
  this case as the validation starts with this and moves further. It is also
107
112
  mandatory to only allow the value of ``using`` argument to be one of them
108
113
  specified in the ``using`` key of ``_CONDITIONAL_DEPENDENCIES`` entries.
109
114
 
115
+ For some cases, like we have here, it might be worth to have ``"auto"`` for
116
+ ``"using"`` which eases the choice of a particular tool by the user and
117
+ instead lets ``junifer`` do it automatically. In that case, ``"depends_on"``
118
+ needs to be a list of the tool implementation classes. This also requires the
119
+ user to have all the tools in the ``PATH``.
120
+
110
121
  For brevity, we only show the ``FSLWarper`` here but ``ANTsWarper`` looks very
111
122
  similar. ``FSLWarper`` looks like this (only the relevant part is shown here):
112
123
 
@@ -115,14 +126,14 @@ similar. ``FSLWarper`` looks like this (only the relevant part is shown here):
115
126
  class FSLWarper:
116
127
  # docstring
117
128
 
118
- _EXT_DEPENDENCIES: ClassVar[List[Dict[str, Union[str, List[str]]]]] = [
129
+ _EXT_DEPENDENCIES: ClassVar[ExternalDependencies] = [
119
130
  {
120
131
  "name": "fsl",
121
132
  "commands": ["flirt", "applywarp"],
122
133
  },
123
134
  ]
124
135
 
125
- _DEPENDENCIES: ClassVar[Set[str]] = {"numpy", "nibabel"}
136
+ _DEPENDENCIES: ClassVar[Dependencies] = {"numpy", "nibabel"}
126
137
 
127
138
  def preprocess(
128
139
  self,
@@ -196,15 +196,16 @@ Finally, we need to register the Marker using the ``@register_marker`` decorator
196
196
  from junifer.api.decorators import register_marker
197
197
  from junifer.data import get_parcellation
198
198
  from junifer.markers import BaseMarker
199
+ from junifer.typing import Dependencies, MarkerInOutMappings
199
200
  from nilearn.maskers import NiftiLabelsMasker
200
201
 
201
202
 
202
203
  @register_marker
203
204
  class ParcelMean(BaseMarker):
204
205
 
205
- _DEPENDENCIES = {"nilearn", "numpy"}
206
+ _DEPENDENCIES: ClassVar[Dependencies] = {"nilearn", "numpy"}
206
207
 
207
- _MARKER_INOUT_MAPPINGS: ClassVar[dict[str, dict[str, str]]] = {
208
+ _MARKER_INOUT_MAPPINGS: ClassVar[MarkerInOutMappings] = {
208
209
  "BOLD": {
209
210
  "parcel_mean": "timeseries",
210
211
  },
@@ -146,14 +146,23 @@ Warping to subject's native space
146
146
  To warp to subject's native space, the dataset needs to provide ``T1w`` and
147
147
  ``Warp`` data types and the DataGrabber needs to at least have
148
148
  ``["BOLD", "T1w", "Warp"]`` (if you are warping ``BOLD``) as the ``types``
149
- parameter's value. The :class:`.SpaceWarper`'s ``reference`` parameter needs
149
+ parameter's value.
150
+
151
+ The :class:`.SpaceWarper`'s ``reference`` parameter needs
150
152
  to be set to ``T1w``, which means that the ``BOLD`` data will be transformed
151
153
  using the ``T1w`` as reference (it's resampled internally to match the
152
- resolution of the ``BOLD``). The ``Warp`` data type is new and it's only purpose
153
- is to provide the warp or transformation file (can be linear, non-linear or
154
- linear + non-linear transform) for the purpose. For ``using`` parameter, you can
155
- pass either ``"fsl"`` or ``"ants"`` depending on the warp or transformation file
156
- format.
154
+ resolution of the ``BOLD``).
155
+
156
+ The ``Warp`` data type provides the warp or transformation file (can be linear,
157
+ non-linear or linear + non-linear transform) for the purpose. For ``using``
158
+ parameter, you can pass either ``fsl`` or ``ants`` depending on the warp or
159
+ transformation file format. You can also provide ``auto`` to ``using`` in which
160
+ case either ``FSL`` or ``ANTs`` will be used based on the file format provided
161
+ by the DataGrabber. This also requires that both the tools are in the ``PATH``.
162
+
163
+ And finally, you would need to set the ``on`` parameter to ``BOLD`` to make it
164
+ clear which data type you intend to warp, as the :class:`.SpaceWarper` is also
165
+ capable of warping ``T1w``.
157
166
 
158
167
  An example YAML might look like this:
159
168
 
@@ -163,6 +172,7 @@ An example YAML might look like this:
163
172
  - kind: SpaceWarper
164
173
  using: fsl
165
174
  reference: T1w
175
+ on: BOLD
166
176
 
167
177
  .. _preprocess_warping_template:
168
178
 
@@ -174,8 +184,8 @@ data type that you want to work on) in ``MNI152NLin6Asym`` template space but
174
184
  you would like to compute features in ``MNI152NLin2009cAsym`` template space,
175
185
  you can also use the :class:`.SpaceWarper` by setting the ``reference``
176
186
  parameter to the template space's name, in this case,
177
- ``reference="MNI152NLin2009cAsym"``. The ``using`` parameter needs to be set
178
- to ``"ants"`` as we need it to warp the data.
187
+ ``reference: MNI152NLin2009cAsym``. The ``using`` parameter needs to be set
188
+ to ``ants`` as we need it to warp the data.
179
189
 
180
190
  .. note::
181
191
 
@@ -190,3 +200,4 @@ For an YAML example:
190
200
  - kind: SpaceWarper
191
201
  using: ants
192
202
  reference: MNI152NLin2009cAsym
203
+ on: BOLD
@@ -13,6 +13,7 @@ __all__ = [
13
13
  "external",
14
14
  "onthefly",
15
15
  "testing",
16
+ "typing",
16
17
  "__version__",
17
18
  ]
18
19
 
@@ -30,6 +31,7 @@ from . import (
30
31
  utils,
31
32
  external,
32
33
  testing,
34
+ typing,
33
35
  onthefly,
34
36
  )
35
37
  from ._version import __version__
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.0.6.dev219'
16
- __version_tuple__ = version_tuple = (0, 0, 6, 'dev219')
15
+ __version__ = version = '0.0.6.dev248'
16
+ __version_tuple__ = version_tuple = (0, 0, 6, 'dev248')
@@ -8,6 +8,7 @@
8
8
  from typing import Type
9
9
 
10
10
  from ..pipeline import PipelineComponentRegistry
11
+ from ..typing import DataGrabberLike, MarkerLike, PreprocessorLike, StorageLike
11
12
 
12
13
 
13
14
  __all__ = [
@@ -19,7 +20,7 @@ __all__ = [
19
20
  ]
20
21
 
21
22
 
22
- def register_datagrabber(klass: Type) -> Type:
23
+ def register_datagrabber(klass: DataGrabberLike) -> DataGrabberLike:
23
24
  """Register DataGrabber.
24
25
 
25
26
  Registers the DataGrabber so it can be used by name.
@@ -73,7 +74,7 @@ def register_datareader(klass: Type) -> Type:
73
74
  return klass
74
75
 
75
76
 
76
- def register_preprocessor(klass: Type) -> Type:
77
+ def register_preprocessor(klass: PreprocessorLike) -> PreprocessorLike:
77
78
  """Preprocessor registration decorator.
78
79
 
79
80
  Registers the preprocessor so it can be used by name.
@@ -96,7 +97,7 @@ def register_preprocessor(klass: Type) -> Type:
96
97
  return klass
97
98
 
98
99
 
99
- def register_marker(klass: Type) -> Type:
100
+ def register_marker(klass: MarkerLike) -> MarkerLike:
100
101
  """Marker registration decorator.
101
102
 
102
103
  Registers the marker so it can be used by name.
@@ -119,7 +120,7 @@ def register_marker(klass: Type) -> Type:
119
120
  return klass
120
121
 
121
122
 
122
- def register_storage(klass: Type) -> Type:
123
+ def register_storage(klass: StorageLike) -> StorageLike:
123
124
  """Storage registration decorator.
124
125
 
125
126
  Registers the storage so it can be used by name.
@@ -11,22 +11,23 @@ from pathlib import Path
11
11
  from typing import Dict, List, Optional, Tuple, Union
12
12
 
13
13
  from ..api.queue_context import GnuParallelLocalAdapter, HTCondorAdapter
14
- from ..datagrabber.base import BaseDataGrabber
15
- from ..markers.base import BaseMarker
14
+ from ..datagrabber import BaseDataGrabber
15
+ from ..markers import BaseMarker
16
16
  from ..pipeline import (
17
17
  MarkerCollection,
18
18
  PipelineComponentRegistry,
19
19
  WorkDirManager,
20
20
  )
21
- from ..preprocess.base import BasePreprocessor
22
- from ..storage.base import BaseFeatureStorage
21
+ from ..preprocess import BasePreprocessor
22
+ from ..storage import BaseFeatureStorage
23
+ from ..typing import DataGrabberLike, MarkerLike, PreprocessorLike, StorageLike
23
24
  from ..utils import logger, raise_error, yaml
24
25
 
25
26
 
26
27
  __all__ = ["run", "collect", "queue", "reset", "list_elements"]
27
28
 
28
29
 
29
- def _get_datagrabber(datagrabber_config: Dict) -> BaseDataGrabber:
30
+ def _get_datagrabber(datagrabber_config: Dict) -> DataGrabberLike:
30
31
  """Get DataGrabber.
31
32
 
32
33
  Parameters
@@ -48,7 +49,7 @@ def _get_datagrabber(datagrabber_config: Dict) -> BaseDataGrabber:
48
49
  )
49
50
 
50
51
 
51
- def _get_preprocessor(preprocessing_config: Dict) -> BasePreprocessor:
52
+ def _get_preprocessor(preprocessing_config: Dict) -> PreprocessorLike:
52
53
  """Get Preprocessor.
53
54
 
54
55
  Parameters
@@ -70,7 +71,7 @@ def _get_preprocessor(preprocessing_config: Dict) -> BasePreprocessor:
70
71
  )
71
72
 
72
73
 
73
- def _get_marker(marker_config: Dict) -> BaseMarker:
74
+ def _get_marker(marker_config: Dict) -> MarkerLike:
74
75
  """Get Marker.
75
76
 
76
77
  Parameters
@@ -92,7 +93,7 @@ def _get_marker(marker_config: Dict) -> BaseMarker:
92
93
  )
93
94
 
94
95
 
95
- def _get_storage(storage_config: Dict) -> BaseFeatureStorage:
96
+ def _get_storage(storage_config: Dict) -> StorageLike:
96
97
  """Get Storage.
97
98
 
98
99
  Parameters
@@ -26,7 +26,7 @@ class ANTsCoordinatesWarper:
26
26
  self,
27
27
  seeds: ArrayLike,
28
28
  target_data: Dict[str, Any],
29
- extra_input: Dict[str, Any],
29
+ warp_data: Dict[str, Any],
30
30
  ) -> ArrayLike:
31
31
  """Warp ``seeds`` to correct space.
32
32
 
@@ -37,10 +37,8 @@ class ANTsCoordinatesWarper:
37
37
  target_data : dict
38
38
  The corresponding item of the data object to which the coordinates
39
39
  will be applied.
40
- extra_input : dict, optional
41
- The other fields in the data object. Useful for accessing other
42
- data kinds that needs to be used in the computation of coordinates
43
- (default None).
40
+ warp_data : dict or None
41
+ The warp data item of the data object.
44
42
 
45
43
  Returns
46
44
  -------
@@ -79,7 +77,7 @@ class ANTsCoordinatesWarper:
79
77
  "-f 0",
80
78
  f"-i {pretransform_coordinates_path.resolve()}",
81
79
  f"-o {transformed_coords_path.resolve()}",
82
- f"-t {extra_input['Warp']['path'].resolve()};",
80
+ f"-t {warp_data['path'].resolve()}",
83
81
  ]
84
82
  # Call antsApplyTransformsToPoints
85
83
  run_ext_cmd(
@@ -14,6 +14,7 @@ from numpy.typing import ArrayLike
14
14
  from ...utils import logger, raise_error
15
15
  from ...utils.singleton import Singleton
16
16
  from ..pipeline_data_registry_base import BasePipelineDataRegistry
17
+ from ..utils import get_native_warper
17
18
  from ._ants_coordinates_warper import ANTsCoordinatesWarper
18
19
  from ._fsl_coordinates_warper import FSLCoordinatesWarper
19
20
 
@@ -311,7 +312,8 @@ class CoordinatesRegistry(BasePipelineDataRegistry, metaclass=Singleton):
311
312
  Raises
312
313
  ------
313
314
  RuntimeError
314
- If warp / transformation file extension is not ".mat" or ".h5".
315
+ If warping specification required for warping using ANTs, is not
316
+ found.
315
317
  ValueError
316
318
  If ``extra_input`` is None when ``target_data``'s space is native.
317
319
 
@@ -329,27 +331,38 @@ class CoordinatesRegistry(BasePipelineDataRegistry, metaclass=Singleton):
329
331
  f"{target_data['space']} space for further computation."
330
332
  )
331
333
 
332
- # Check for warp file type to use correct tool
333
- warp_file_ext = extra_input["Warp"]["path"].suffix
334
- if warp_file_ext == ".mat":
334
+ # Get native space warper spec
335
+ warper_spec = get_native_warper(
336
+ target_data=target_data,
337
+ other_data=extra_input,
338
+ )
339
+ # Conditional for warping tool implementation
340
+ if warper_spec["warper"] == "fsl":
335
341
  seeds = FSLCoordinatesWarper().warp(
336
342
  seeds=seeds,
337
343
  target_data=target_data,
338
- extra_input=extra_input,
344
+ warp_data=warper_spec,
345
+ )
346
+ elif warper_spec["warper"] == "ants":
347
+ # Requires the inverse warp
348
+ inverse_warper_spec = get_native_warper(
349
+ target_data=target_data,
350
+ other_data=extra_input,
351
+ inverse=True,
339
352
  )
340
- elif warp_file_ext == ".h5":
353
+ # Check warper
354
+ if inverse_warper_spec["warper"] != "ants":
355
+ raise_error(
356
+ klass=RuntimeError,
357
+ msg=(
358
+ "Warping specification mismatch for native space "
359
+ "warping of coordinates using ANTs."
360
+ ),
361
+ )
341
362
  seeds = ANTsCoordinatesWarper().warp(
342
363
  seeds=seeds,
343
364
  target_data=target_data,
344
- extra_input=extra_input,
345
- )
346
- else:
347
- raise_error(
348
- msg=(
349
- "Unknown warp / transformation file extension: "
350
- f"{warp_file_ext}"
351
- ),
352
- klass=RuntimeError,
365
+ warp_data=warper_spec,
353
366
  )
354
367
 
355
368
  return seeds, labels
@@ -26,7 +26,7 @@ class FSLCoordinatesWarper:
26
26
  self,
27
27
  seeds: ArrayLike,
28
28
  target_data: Dict[str, Any],
29
- extra_input: Dict[str, Any],
29
+ warp_data: Dict[str, Any],
30
30
  ) -> ArrayLike:
31
31
  """Warp ``seeds`` to correct space.
32
32
 
@@ -37,10 +37,8 @@ class FSLCoordinatesWarper:
37
37
  target_data : dict
38
38
  The corresponding item of the data object to which the coordinates
39
39
  will be applied.
40
- extra_input : dict, optional
41
- The other fields in the data object. Useful for accessing other
42
- data kinds that needs to be used in the computation of coordinates
43
- (default None).
40
+ warp_data : dict
41
+ The warp data item of the data object.
44
42
 
45
43
  Returns
46
44
  -------
@@ -72,7 +70,7 @@ class FSLCoordinatesWarper:
72
70
  "| img2imgcoord -mm",
73
71
  f"-src {target_data['path'].resolve()}",
74
72
  f"-dest {target_data['reference_path'].resolve()}",
75
- f"-warp {extra_input['Warp']['path'].resolve()}",
73
+ f"-warp {warp_data['path'].resolve()}",
76
74
  f"> {transformed_coords_path.resolve()};",
77
75
  f"sed -i 1d {transformed_coords_path.resolve()}",
78
76
  ]
@@ -9,7 +9,7 @@ from typing import TYPE_CHECKING, Any, Dict, Optional
9
9
  import nibabel as nib
10
10
 
11
11
  from ...pipeline import WorkDirManager
12
- from ...utils import logger, run_ext_cmd
12
+ from ...utils import logger, raise_error, run_ext_cmd
13
13
  from ..template_spaces import get_template, get_xfm
14
14
 
15
15
 
@@ -34,7 +34,7 @@ class ANTsMaskWarper:
34
34
  src: str,
35
35
  dst: str,
36
36
  target_data: Dict[str, Any],
37
- extra_input: Optional[Dict[str, Any]] = None,
37
+ warp_data: Optional[Dict[str, Any]],
38
38
  ) -> "Nifti1Image":
39
39
  """Warp ``mask_img`` to correct space.
40
40
 
@@ -55,17 +55,20 @@ class ANTsMaskWarper:
55
55
  target_data : dict
56
56
  The corresponding item of the data object to which the mask
57
57
  will be applied.
58
- extra_input : dict, optional
59
- The other fields in the data object. Useful for accessing other
60
- data kinds that needs to be used in the computation of mask
61
- (default None).
62
-
58
+ warp_data : dict or None
59
+ The warp data item of the data object. The value is unused if
60
+ ``dst!="T1w"``.
63
61
 
64
62
  Returns
65
63
  -------
66
64
  nibabel.nifti1.Nifti1Image
67
65
  The transformed mask image.
68
66
 
67
+ Raises
68
+ ------
69
+ RuntimeError
70
+ If ``warp_data`` is None when ``dst="T1w"``.
71
+
69
72
  """
70
73
  # Create element-scoped tempdir so that warped mask is
71
74
  # available later as nibabel stores file path reference for
@@ -80,7 +83,11 @@ class ANTsMaskWarper:
80
83
  )
81
84
 
82
85
  # Native space warping
83
- if dst == "T1w":
86
+ if dst == "native":
87
+ # Warp data check
88
+ if warp_data is None:
89
+ raise_error("No `warp_data` provided")
90
+
84
91
  logger.debug("Using ANTs for mask transformation")
85
92
 
86
93
  # Save existing mask image to a tempfile
@@ -98,7 +105,7 @@ class ANTsMaskWarper:
98
105
  f"-i {prewarp_mask_path.resolve()}",
99
106
  # use resampled reference
100
107
  f"-r {target_data['reference_path'].resolve()}",
101
- f"-t {extra_input['Warp']['path'].resolve()}",
108
+ f"-t {warp_data['path'].resolve()}",
102
109
  f"-o {warped_mask_path.resolve()}",
103
110
  ]
104
111
  # Call antsApplyTransforms
@@ -31,7 +31,7 @@ class FSLMaskWarper:
31
31
  mask_name: str,
32
32
  mask_img: "Nifti1Image",
33
33
  target_data: Dict[str, Any],
34
- extra_input: Dict[str, Any],
34
+ warp_data: Dict[str, Any],
35
35
  ) -> "Nifti1Image":
36
36
  """Warp ``mask_img`` to correct space.
37
37
 
@@ -44,10 +44,8 @@ class FSLMaskWarper:
44
44
  target_data : dict
45
45
  The corresponding item of the data object to which the mask
46
46
  will be applied.
47
- extra_input : dict, optional
48
- The other fields in the data object. Useful for accessing other
49
- data kinds that needs to be used in the computation of mask
50
- (default None).
47
+ warp_data : dict
48
+ The warp data item of the data object.
51
49
 
52
50
  Returns
53
51
  -------
@@ -77,7 +75,7 @@ class FSLMaskWarper:
77
75
  f"-i {prewarp_mask_path.resolve()}",
78
76
  # use resampled reference
79
77
  f"-r {target_data['reference_path'].resolve()}",
80
- f"-w {extra_input['Warp']['path'].resolve()}",
78
+ f"-w {warp_data['path'].resolve()}",
81
79
  f"-o {warped_mask_path.resolve()}",
82
80
  ]
83
81
  # Call applywarp
@@ -29,7 +29,7 @@ from ...utils import logger, raise_error
29
29
  from ...utils.singleton import Singleton
30
30
  from ..pipeline_data_registry_base import BasePipelineDataRegistry
31
31
  from ..template_spaces import get_template
32
- from ..utils import closest_resolution
32
+ from ..utils import closest_resolution, get_native_warper
33
33
  from ._ants_mask_warper import ANTsMaskWarper
34
34
  from ._fsl_mask_warper import FSLMaskWarper
35
35
 
@@ -105,14 +105,16 @@ def compute_brain_mask(
105
105
  "data type to infer target template space."
106
106
  )
107
107
  # Set target standard space to warp file space source
108
- target_std_space = extra_input["Warp"]["src"]
108
+ for entry in extra_input["Warp"]:
109
+ if entry["dst"] == "native":
110
+ target_std_space = entry["src"]
109
111
 
110
112
  # Fetch template in closest resolution
111
113
  template = get_template(
112
114
  space=target_std_space,
113
115
  target_data=target_data,
114
116
  extra_input=extra_input,
115
- template_type=mask_type if mask_type in ["gm", "wm"] else "T1w",
117
+ template_type=mask_type,
116
118
  )
117
119
  # Resample template to target image
118
120
  target_img = target_data["data"]
@@ -357,8 +359,6 @@ class MaskRegistry(BasePipelineDataRegistry, metaclass=Singleton):
357
359
 
358
360
  Raises
359
361
  ------
360
- RuntimeError
361
- If warp / transformation file extension is not ".mat" or ".h5".
362
362
  ValueError
363
363
  If extra key is provided in addition to mask name in ``masks`` or
364
364
  if no mask is provided or
@@ -372,8 +372,6 @@ class MaskRegistry(BasePipelineDataRegistry, metaclass=Singleton):
372
372
  """
373
373
  # Check pre-requirements for space manipulation
374
374
  target_space = target_data["space"]
375
- # Set target standard space to target space
376
- target_std_space = target_space
377
375
  # Extra data type requirement check if target space is native
378
376
  if target_space == "native":
379
377
  # Check for extra inputs
@@ -383,8 +381,16 @@ class MaskRegistry(BasePipelineDataRegistry, metaclass=Singleton):
383
381
  "data types in particular for transformation to "
384
382
  f"{target_data['space']} space for further computation."
385
383
  )
384
+ # Get native space warper spec
385
+ warper_spec = get_native_warper(
386
+ target_data=target_data,
387
+ other_data=extra_input,
388
+ )
386
389
  # Set target standard space to warp file space source
387
- target_std_space = extra_input["Warp"]["src"]
390
+ target_std_space = warper_spec["src"]
391
+ else:
392
+ # Set target standard space to target space
393
+ target_std_space = target_space
388
394
 
389
395
  # Get the min of the voxels sizes and use it as the resolution
390
396
  target_img = target_data["data"]
@@ -489,7 +495,7 @@ class MaskRegistry(BasePipelineDataRegistry, metaclass=Singleton):
489
495
  src=mask_space,
490
496
  dst=target_std_space,
491
497
  target_data=target_data,
492
- extra_input=None,
498
+ warp_data=None,
493
499
  )
494
500
 
495
501
  all_masks.append(mask_img)
@@ -510,32 +516,22 @@ class MaskRegistry(BasePipelineDataRegistry, metaclass=Singleton):
510
516
 
511
517
  # Warp mask if target data is native
512
518
  if target_space == "native":
513
- # extra_input check done earlier
514
- # Check for warp file type to use correct tool
515
- warp_file_ext = extra_input["Warp"]["path"].suffix
516
- if warp_file_ext == ".mat":
519
+ # extra_input check done earlier and warper_spec exists
520
+ if warper_spec["warper"] == "fsl":
517
521
  mask_img = FSLMaskWarper().warp(
518
522
  mask_name="native",
519
523
  mask_img=mask_img,
520
524
  target_data=target_data,
521
- extra_input=extra_input,
525
+ warp_data=warper_spec,
522
526
  )
523
- elif warp_file_ext == ".h5":
527
+ elif warper_spec["warper"] == "ants":
524
528
  mask_img = ANTsMaskWarper().warp(
525
529
  mask_name="native",
526
530
  mask_img=mask_img,
527
531
  src="",
528
- dst="T1w",
532
+ dst="native",
529
533
  target_data=target_data,
530
- extra_input=extra_input,
531
- )
532
- else:
533
- raise_error(
534
- msg=(
535
- "Unknown warp / transformation file extension: "
536
- f"{warp_file_ext}"
537
- ),
538
- klass=RuntimeError,
534
+ warp_data=warper_spec,
539
535
  )
540
536
 
541
537
  return mask_img