junifer 0.0.7.dev132__tar.gz → 0.0.7.dev169__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 (491) hide show
  1. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/PKG-INFO +2 -2
  2. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/conda-env.yml +1 -1
  3. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/builtin.rst +67 -7
  4. junifer-0.0.7.dev169/docs/changes/newsfragments/458.change +1 -0
  5. junifer-0.0.7.dev169/docs/changes/newsfragments/458.feature +1 -0
  6. junifer-0.0.7.dev169/docs/changes/newsfragments/458.misc +1 -0
  7. junifer-0.0.7.dev169/docs/changes/newsfragments/460.feature +1 -0
  8. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/index.rst +1 -0
  9. junifer-0.0.7.dev169/docs/extending/maps.rst +139 -0
  10. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/_version.py +3 -3
  11. junifer-0.0.7.dev169/junifer/conftest.py +57 -0
  12. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/__init__.pyi +2 -0
  13. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/_dispatch.py +11 -7
  14. junifer-0.0.7.dev169/junifer/data/maps/__init__.py +9 -0
  15. junifer-0.0.7.dev169/junifer/data/maps/__init__.pyi +5 -0
  16. junifer-0.0.7.dev169/junifer/data/maps/_ants_maps_warper.py +156 -0
  17. junifer-0.0.7.dev169/junifer/data/maps/_fsl_maps_warper.py +85 -0
  18. junifer-0.0.7.dev169/junifer/data/maps/_maps.py +446 -0
  19. junifer-0.0.7.dev169/junifer/data/maps/tests/test_maps.py +255 -0
  20. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/masks/_masks.py +3 -2
  21. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/parcellations/_parcellations.py +1 -1
  22. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/__init__.pyi +12 -2
  23. junifer-0.0.7.dev169/junifer/markers/falff/__init__.pyi +5 -0
  24. junifer-0.0.7.dev169/junifer/markers/falff/falff_maps.py +151 -0
  25. junifer-0.0.7.dev169/junifer/markers/falff/tests/test_falff_maps.py +167 -0
  26. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/__init__.pyi +4 -0
  27. junifer-0.0.7.dev169/junifer/markers/functional_connectivity/edge_functional_connectivity_maps.py +115 -0
  28. junifer-0.0.7.dev169/junifer/markers/functional_connectivity/functional_connectivity_maps.py +95 -0
  29. junifer-0.0.7.dev169/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_maps.py +74 -0
  30. junifer-0.0.7.dev169/junifer/markers/functional_connectivity/tests/test_functional_connectivity_maps.py +110 -0
  31. junifer-0.0.7.dev169/junifer/markers/maps_aggregation.py +201 -0
  32. junifer-0.0.7.dev169/junifer/markers/reho/__init__.pyi +5 -0
  33. junifer-0.0.7.dev169/junifer/markers/reho/reho_maps.py +161 -0
  34. junifer-0.0.7.dev169/junifer/markers/reho/tests/test_reho_maps.py +135 -0
  35. junifer-0.0.7.dev169/junifer/markers/temporal_snr/__init__.pyi +5 -0
  36. junifer-0.0.7.dev169/junifer/markers/temporal_snr/temporal_snr_maps.py +80 -0
  37. junifer-0.0.7.dev169/junifer/markers/temporal_snr/tests/test_temporal_snr_maps.py +67 -0
  38. junifer-0.0.7.dev169/junifer/markers/tests/test_maps_aggregation.py +430 -0
  39. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/typing/_typing.py +1 -3
  40. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer.egg-info/PKG-INFO +2 -2
  41. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer.egg-info/SOURCES.txt +23 -0
  42. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer.egg-info/requires.txt +1 -1
  43. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/pyproject.toml +1 -1
  44. junifer-0.0.7.dev132/junifer/conftest.py +0 -25
  45. junifer-0.0.7.dev132/junifer/markers/falff/__init__.pyi +0 -4
  46. junifer-0.0.7.dev132/junifer/markers/reho/__init__.pyi +0 -4
  47. junifer-0.0.7.dev132/junifer/markers/temporal_snr/__init__.pyi +0 -4
  48. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.dockerignore +0 -0
  49. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  50. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  51. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
  52. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
  53. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  54. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
  55. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/dependabot.yml +0 -0
  56. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/pull_request_template.md +0 -0
  57. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/workflows/ci-docs.yml +0 -0
  58. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/workflows/ci.yml +0 -0
  59. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/workflows/docker-ci-publish.yml +0 -0
  60. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/workflows/docker-docs-publish.yml +0 -0
  61. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/workflows/docs-preview.yml +0 -0
  62. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/workflows/docs.yml +0 -0
  63. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/workflows/lint.yml +0 -0
  64. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.github/workflows/publish.yml +0 -0
  65. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.gitignore +0 -0
  66. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.gitmodules +0 -0
  67. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/.pre-commit-config.yaml +0 -0
  68. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/AUTHORS.rst +0 -0
  69. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/Dockerfile-ci +0 -0
  70. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/Dockerfile-docs +0 -0
  71. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/LICENSE.md +0 -0
  72. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/README.md +0 -0
  73. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/codecov.yml +0 -0
  74. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/Makefile +0 -0
  75. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/_static/css/custom.css +0 -0
  76. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/_static/js/custom.js +0 -0
  77. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/_templates/versions.html +0 -0
  78. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/api.rst +0 -0
  79. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/cli.rst +0 -0
  80. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/configs.rst +0 -0
  81. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/data.rst +0 -0
  82. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/datagrabbers.rst +0 -0
  83. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/datareaders.rst +0 -0
  84. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/index.rst +0 -0
  85. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/markers.rst +0 -0
  86. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/nilearn.rst +0 -0
  87. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/onthefly.rst +0 -0
  88. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/pipeline.rst +0 -0
  89. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/preprocessing.rst +0 -0
  90. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/stats.rst +0 -0
  91. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/storage.rst +0 -0
  92. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/testing.rst +0 -0
  93. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/api/utils.rst +0 -0
  94. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/contributors.inc +0 -0
  95. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/.gitignore +0 -0
  96. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/333.enh +0 -0
  97. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/429.change +0 -0
  98. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/429.enh +0 -0
  99. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/432.feature +0 -0
  100. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/441.misc +0 -0
  101. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/443.feature +0 -0
  102. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/444.bugfix +0 -0
  103. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/450.doc +0 -0
  104. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/450.feature +0 -0
  105. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/451.doc +0 -0
  106. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/451.feature +0 -0
  107. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/452.doc +0 -0
  108. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/452.feature +0 -0
  109. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/456.misc +0 -0
  110. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/changes/newsfragments/457.misc +0 -0
  111. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/conf.py +0 -0
  112. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/contribution.rst +0 -0
  113. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/coordinates.rst +0 -0
  114. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/data_dump_asset.rst +0 -0
  115. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/data_registries.rst +0 -0
  116. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/data_types.rst +0 -0
  117. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/datagrabber.rst +0 -0
  118. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/dependencies.rst +0 -0
  119. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/extension.rst +0 -0
  120. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/marker.rst +0 -0
  121. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/masks.rst +0 -0
  122. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/parcellations.rst +0 -0
  123. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/plugins.rst +0 -0
  124. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/extending/preprocessor.rst +0 -0
  125. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/faq.rst +0 -0
  126. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/help.rst +0 -0
  127. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/images/junifer_logo.png +0 -0
  128. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/index.rst +0 -0
  129. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/installation.rst +0 -0
  130. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/links.inc +0 -0
  131. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/maintaining.rst +0 -0
  132. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/redirect.html +0 -0
  133. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/starting.rst +0 -0
  134. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/understanding/data.rst +0 -0
  135. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/understanding/datagrabber.rst +0 -0
  136. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/understanding/datareader.rst +0 -0
  137. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/understanding/index.rst +0 -0
  138. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/understanding/marker.rst +0 -0
  139. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/understanding/pipeline.rst +0 -0
  140. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/understanding/preprocess.rst +0 -0
  141. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/understanding/storage.rst +0 -0
  142. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/using/codeless.rst +0 -0
  143. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/using/configuring.rst +0 -0
  144. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/using/dumping.rst +0 -0
  145. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/using/index.rst +0 -0
  146. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/using/masks.rst +0 -0
  147. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/using/queueing.rst +0 -0
  148. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/using/running.rst +0 -0
  149. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/docs/whats_new.rst +0 -0
  150. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/README.rst +0 -0
  151. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/norun_hcpfc_pearson.py +0 -0
  152. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/norun_ukbvm_gmd.py +0 -0
  153. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/run_compute_parcel_mean.py +0 -0
  154. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/run_datagrabber_bids_datalad.py +0 -0
  155. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/run_ets_rss_marker.py +0 -0
  156. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/run_junifer_julearn.py +0 -0
  157. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/run_run_gmd_mean.py +0 -0
  158. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/yamls/gmd_mean.yaml +0 -0
  159. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
  160. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
  161. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/examples/yamls/ukb_gmd_mean.yaml +0 -0
  162. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/ignore_words.txt +0 -0
  163. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/__init__.py +0 -0
  164. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/__init__.pyi +0 -0
  165. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/__init__.py +0 -0
  166. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/__init__.pyi +0 -0
  167. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/decorators.py +0 -0
  168. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/functions.py +0 -0
  169. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/py.typed +0 -0
  170. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/queue_context/__init__.py +0 -0
  171. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/queue_context/__init__.pyi +0 -0
  172. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
  173. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/queue_context/htcondor_adapter.py +0 -0
  174. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/queue_context/py.typed +0 -0
  175. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/queue_context/queue_context_adapter.py +0 -0
  176. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
  177. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
  178. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
  179. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/afni/3dRSFC +0 -0
  180. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/afni/3dReHo +0 -0
  181. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/afni/afni +0 -0
  182. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/afni/run_afni_docker.sh +0 -0
  183. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/ants/ResampleImage +0 -0
  184. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/ants/antsApplyTransforms +0 -0
  185. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
  186. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/ants/run_ants_docker.sh +0 -0
  187. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/freesurfer/mri_binarize +0 -0
  188. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/freesurfer/mri_mc +0 -0
  189. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/freesurfer/mri_pretess +0 -0
  190. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/freesurfer/mris_convert +0 -0
  191. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
  192. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/fsl/applywarp +0 -0
  193. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/fsl/flirt +0 -0
  194. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/fsl/img2imgcoord +0 -0
  195. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
  196. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/fsl/std2imgcoord +0 -0
  197. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/run_conda.bash +0 -0
  198. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/run_conda.zsh +0 -0
  199. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/run_venv.bash +0 -0
  200. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/res/run_venv.zsh +0 -0
  201. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/tests/test_decorators.py +0 -0
  202. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/api/tests/test_functions.py +0 -0
  203. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/__init__.py +0 -0
  204. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/__init__.pyi +0 -0
  205. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/cli.py +0 -0
  206. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/parser.py +0 -0
  207. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/py.typed +0 -0
  208. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
  209. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +0 -0
  210. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
  211. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/tests/test_cli.py +0 -0
  212. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/tests/test_cli_utils.py +0 -0
  213. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/tests/test_parser.py +0 -0
  214. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/cli/utils.py +0 -0
  215. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/__init__.py +0 -0
  216. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/__init__.py +0 -0
  217. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/__init__.pyi +0 -0
  218. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
  219. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
  220. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
  221. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
  222. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
  223. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
  224. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
  225. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
  226. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
  227. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
  228. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
  229. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
  230. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
  231. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/configs/juseless/py.typed +0 -0
  232. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/__init__.py +0 -0
  233. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/coordinates/__init__.py +0 -0
  234. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/coordinates/__init__.pyi +0 -0
  235. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/coordinates/_ants_coordinates_warper.py +0 -0
  236. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/coordinates/_coordinates.py +0 -0
  237. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/coordinates/_fsl_coordinates_warper.py +0 -0
  238. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
  239. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/masks/__init__.py +0 -0
  240. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/masks/__init__.pyi +0 -0
  241. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/masks/_ants_mask_warper.py +0 -0
  242. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/masks/_fsl_mask_warper.py +0 -0
  243. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/masks/tests/test_masks.py +0 -0
  244. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/parcellations/__init__.py +0 -0
  245. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/parcellations/__init__.pyi +0 -0
  246. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/parcellations/_ants_parcellation_warper.py +0 -0
  247. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/parcellations/_fsl_parcellation_warper.py +0 -0
  248. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
  249. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/pipeline_data_registry_base.py +0 -0
  250. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/py.typed +0 -0
  251. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/template_spaces.py +0 -0
  252. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/tests/test_data_utils.py +0 -0
  253. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/tests/test_dispatch.py +0 -0
  254. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/tests/test_template_spaces.py +0 -0
  255. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/data/utils.py +0 -0
  256. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/__init__.py +0 -0
  257. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/__init__.pyi +0 -0
  258. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/aomic/__init__.py +0 -0
  259. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/aomic/__init__.pyi +0 -0
  260. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/aomic/id1000.py +0 -0
  261. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/aomic/piop1.py +0 -0
  262. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/aomic/piop2.py +0 -0
  263. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/aomic/py.typed +0 -0
  264. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
  265. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
  266. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
  267. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/base.py +0 -0
  268. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/datalad_base.py +0 -0
  269. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
  270. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/hcp1200/__init__.py +0 -0
  271. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
  272. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
  273. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
  274. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/hcp1200/py.typed +0 -0
  275. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
  276. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/multiple.py +0 -0
  277. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/pattern.py +0 -0
  278. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/pattern_datalad.py +0 -0
  279. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/pattern_validation_mixin.py +0 -0
  280. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/py.typed +0 -0
  281. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/tests/test_base.py +0 -0
  282. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
  283. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
  284. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/tests/test_multiple.py +0 -0
  285. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/tests/test_pattern.py +0 -0
  286. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
  287. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
  288. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datareader/__init__.py +0 -0
  289. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datareader/__init__.pyi +0 -0
  290. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datareader/default.py +0 -0
  291. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datareader/py.typed +0 -0
  292. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/datareader/tests/test_default_reader.py +0 -0
  293. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
  294. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
  295. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
  296. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
  297. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
  298. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
  299. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
  300. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
  301. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/__init__.py +0 -0
  302. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/h5io/h5io/__init__.py +0 -0
  303. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/h5io/h5io/_h5io.py +0 -0
  304. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/h5io/h5io/_version.py +0 -0
  305. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/h5io/h5io/chunked_array.py +0 -0
  306. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/h5io/h5io/chunked_list.py +0 -0
  307. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/nilearn/__init__.py +0 -0
  308. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/nilearn/__init__.pyi +0 -0
  309. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
  310. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
  311. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/nilearn/py.typed +0 -0
  312. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
  313. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
  314. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/__init__.py +0 -0
  315. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/base.py +0 -0
  316. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/brainprint.py +0 -0
  317. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/__init__.py +0 -0
  318. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/__init__.pyi +0 -0
  319. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/complexity_base.py +0 -0
  320. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/hurst_exponent.py +0 -0
  321. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
  322. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/perm_entropy.py +0 -0
  323. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/py.typed +0 -0
  324. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/range_entropy.py +0 -0
  325. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/range_entropy_auc.py +0 -0
  326. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/sample_entropy.py +0 -0
  327. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
  328. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
  329. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
  330. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
  331. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
  332. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
  333. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
  334. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
  335. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
  336. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/ets_rss.py +0 -0
  337. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/falff/__init__.py +0 -0
  338. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/falff/_afni_falff.py +0 -0
  339. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/falff/_junifer_falff.py +0 -0
  340. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/falff/falff_base.py +0 -0
  341. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/falff/falff_parcels.py +0 -0
  342. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/falff/falff_spheres.py +0 -0
  343. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/falff/py.typed +0 -0
  344. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
  345. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
  346. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/__init__.py +0 -0
  347. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
  348. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
  349. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
  350. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
  351. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
  352. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
  353. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/py.typed +0 -0
  354. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
  355. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
  356. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
  357. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
  358. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
  359. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
  360. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/parcel_aggregation.py +0 -0
  361. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/py.typed +0 -0
  362. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/reho/__init__.py +0 -0
  363. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/reho/_afni_reho.py +0 -0
  364. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/reho/_junifer_reho.py +0 -0
  365. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/reho/py.typed +0 -0
  366. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/reho/reho_base.py +0 -0
  367. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/reho/reho_parcels.py +0 -0
  368. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/reho/reho_spheres.py +0 -0
  369. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
  370. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
  371. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/sphere_aggregation.py +0 -0
  372. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/temporal_snr/__init__.py +0 -0
  373. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/temporal_snr/py.typed +0 -0
  374. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
  375. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
  376. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
  377. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
  378. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
  379. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
  380. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/tests/test_brainprint.py +0 -0
  381. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/tests/test_ets_rss.py +0 -0
  382. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/tests/test_marker_utils.py +0 -0
  383. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/tests/test_markers_base.py +0 -0
  384. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
  385. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
  386. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/markers/utils.py +0 -0
  387. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/onthefly/__init__.py +0 -0
  388. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/onthefly/_brainprint.py +0 -0
  389. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/onthefly/read_transform.py +0 -0
  390. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/onthefly/tests/test_read_transform.py +0 -0
  391. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/__init__.py +0 -0
  392. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/__init__.pyi +0 -0
  393. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/_data_object_dumper.py +0 -0
  394. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/marker_collection.py +0 -0
  395. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/pipeline_component_registry.py +0 -0
  396. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/pipeline_step_mixin.py +0 -0
  397. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/py.typed +0 -0
  398. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/tests/test_data_object_dumper.py +0 -0
  399. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/tests/test_marker_collection.py +0 -0
  400. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
  401. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
  402. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
  403. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
  404. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/update_meta_mixin.py +0 -0
  405. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/utils.py +0 -0
  406. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/pipeline/workdir_manager.py +0 -0
  407. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/__init__.py +0 -0
  408. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/__init__.pyi +0 -0
  409. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/_temporal_filter.py +0 -0
  410. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/_temporal_slicer.py +0 -0
  411. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/base.py +0 -0
  412. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/confounds/__init__.py +0 -0
  413. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/confounds/__init__.pyi +0 -0
  414. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
  415. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/confounds/py.typed +0 -0
  416. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
  417. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/py.typed +0 -0
  418. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/smoothing/__init__.py +0 -0
  419. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/smoothing/__init__.pyi +0 -0
  420. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
  421. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
  422. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
  423. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/smoothing/py.typed +0 -0
  424. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/smoothing/smoothing.py +0 -0
  425. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
  426. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
  427. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/tests/test_temporal_filter.py +0 -0
  428. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/tests/test_temporal_slicer.py +0 -0
  429. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/warping/__init__.py +0 -0
  430. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/warping/__init__.pyi +0 -0
  431. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/warping/_ants_warper.py +0 -0
  432. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/warping/_fsl_warper.py +0 -0
  433. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/warping/py.typed +0 -0
  434. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/warping/space_warper.py +0 -0
  435. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
  436. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/py.typed +0 -0
  437. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/stats.py +0 -0
  438. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/__init__.py +0 -0
  439. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/__init__.pyi +0 -0
  440. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/base.py +0 -0
  441. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/hdf5.py +0 -0
  442. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/pandas_base.py +0 -0
  443. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/py.typed +0 -0
  444. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/sqlite.py +0 -0
  445. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/tests/test_hdf5.py +0 -0
  446. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/tests/test_pandas_base.py +0 -0
  447. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/tests/test_sqlite.py +0 -0
  448. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/tests/test_storage_base.py +0 -0
  449. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/tests/test_utils.py +0 -0
  450. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/storage/utils.py +0 -0
  451. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/__init__.py +0 -0
  452. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/__init__.pyi +0 -0
  453. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
  454. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/datagrabbers.py +0 -0
  455. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/py.typed +0 -0
  456. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/registry.py +0 -0
  457. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
  458. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
  459. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
  460. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/tests/test_testing_registry.py +0 -0
  461. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/testing/utils.py +0 -0
  462. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/tests/test_main.py +0 -0
  463. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/tests/test_stats.py +0 -0
  464. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/typing/__init__.py +0 -0
  465. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/typing/__init__.pyi +0 -0
  466. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/__init__.py +0 -0
  467. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/__init__.pyi +0 -0
  468. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/_config.py +0 -0
  469. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/_yaml.py +0 -0
  470. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/fs.py +0 -0
  471. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/helpers.py +0 -0
  472. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/logging.py +0 -0
  473. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/py.typed +0 -0
  474. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/singleton.py +0 -0
  475. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/tests/test_config.py +0 -0
  476. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/tests/test_fs.py +0 -0
  477. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/tests/test_helpers.py +0 -0
  478. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer/utils/tests/test_logging.py +0 -0
  479. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer.egg-info/dependency_links.txt +0 -0
  480. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer.egg-info/entry_points.txt +0 -0
  481. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/junifer.egg-info/top_level.txt +0 -0
  482. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/setup.cfg +0 -0
  483. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/setup.py +0 -0
  484. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/tools/create_aomic1000_example_dataset.py +0 -0
  485. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/tools/create_aomicpiop1_example_dataset.py +0 -0
  486. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/tools/create_aomicpiop2_example_dataset.py +0 -0
  487. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/tools/create_bids_example_dataset.py +0 -0
  488. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/tools/create_bids_example_dataset_sessions.py +0 -0
  489. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
  490. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/tools/create_hcp1200_example_dataset.py +0 -0
  491. {junifer-0.0.7.dev132 → junifer-0.0.7.dev169}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: junifer
3
- Version: 0.0.7.dev132
3
+ Version: 0.0.7.dev169
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>
@@ -39,7 +39,7 @@ Requires-Dist: sqlalchemy<=2.1.0,>=2.0.25
39
39
  Requires-Dist: ruamel.yaml<0.19,>=0.17
40
40
  Requires-Dist: h5py>=3.10
41
41
  Requires-Dist: tqdm<4.67.0,>=4.66.1
42
- Requires-Dist: templateflow>=23.0.0
42
+ Requires-Dist: templateflow<25.0.0,>=23.0.0
43
43
  Requires-Dist: lapy<2.0.0,>=1.0.0
44
44
  Requires-Dist: lazy_loader==0.4
45
45
  Requires-Dist: importlib_metadata; python_version < "3.9"
@@ -13,7 +13,7 @@ dependencies:
13
13
  - ruamel.yaml>=0.17,<0.19
14
14
  - h5py>=3.10
15
15
  - tqdm>=4.66.1,<4.67.0
16
- - templateflow>=23.0.0
16
+ - templateflow>=23.0.0,<25.0.0
17
17
  - lapy>=1.0.0,<2.0.0
18
18
  - lazy_loader==0.4
19
19
  - importlib_metadata
@@ -209,22 +209,30 @@ Available
209
209
  - Apply parcellation and perform aggregation function
210
210
  - Done
211
211
  - 0.0.1
212
- * - :class:`.FunctionalConnectivityParcels`
213
- - Compute functional connectivity over parcellation
212
+ * - :class:`.SphereAggregation`
213
+ - Spherical aggregation using mean
214
214
  - Done
215
215
  - 0.0.1
216
- * - :class:`.CrossParcellationFC`
217
- - Compute functional connectivity across two parcellations
216
+ * - :class:`.MapsAggregation`
217
+ - Apply maps (probabilistic atlas) and extract mean time series per region
218
218
  - Done
219
- - 0.0.1
220
- * - :class:`.SphereAggregation`
221
- - Spherical aggregation using mean
219
+ - 0.0.7
220
+ * - :class:`.FunctionalConnectivityParcels`
221
+ - Compute functional connectivity over parcellation
222
222
  - Done
223
223
  - 0.0.1
224
224
  * - :class:`.FunctionalConnectivitySpheres`
225
225
  - Compute functional connectivity over spheres placed on coordinates
226
226
  - Done
227
227
  - 0.0.1
228
+ * - :class:`.FunctionalConnectivityMaps`
229
+ - Compute functional connectivity over maps (probabilistic atlas)
230
+ - Done
231
+ - 0.0.7
232
+ * - :class:`.CrossParcellationFC`
233
+ - Compute functional connectivity across two parcellations
234
+ - Done
235
+ - 0.0.1
228
236
  * - :class:`.RSSETSMarker`
229
237
  - Compute root sum of squares of edgewise timeseries
230
238
  - Done
@@ -237,6 +245,10 @@ Available
237
245
  - Calculate regional homogeneity over spheres placed on coordinates
238
246
  - Done
239
247
  - 0.0.1
248
+ * - :class:`.ReHoMaps`
249
+ - Calculate regional homogeneity over maps (probabilistic atlas)
250
+ - Done
251
+ - 0.0.7
240
252
  * - :class:`.ALFFParcels`
241
253
  - Calculate (f)ALFF and aggregate using parcellations
242
254
  - Done
@@ -245,6 +257,10 @@ Available
245
257
  - Calculate (f)ALFF and aggregate using spheres placed on coordinates
246
258
  - Done
247
259
  - 0.0.1
260
+ * - :class:`.ALFFMaps`
261
+ - Calculate (f)ALFF and aggregate using maps (probabilistic atlas)
262
+ - Done
263
+ - 0.0.7
248
264
  * - :class:`.EdgeCentricFCParcels`
249
265
  - | Calculate edge-centric functional connectivity over parcellation, as
250
266
  | found in
@@ -257,6 +273,12 @@ Available
257
273
  | `Jo et al. (2021) <https://doi.org/10.1016/j.neuroimage.2021.118204>`_
258
274
  - Done
259
275
  - 0.0.2
276
+ * - :class:`.EdgeCentricFCMaps`
277
+ - | Calculate edge-centric functional connectivity over maps (probabilistic atlas),
278
+ | as found in
279
+ | `Jo et al. (2021) <https://doi.org/10.1016/j.neuroimage.2021.118204>`_
280
+ - Done
281
+ - 0.0.7
260
282
  * - :class:`.TemporalSNRParcels`
261
283
  - Calculate temporal signal-to-noise ratio using parcellations
262
284
  - Done
@@ -266,6 +288,10 @@ Available
266
288
  | coordinates
267
289
  - Done
268
290
  - 0.0.2
291
+ * - :class:`.TemporalSNRMaps`
292
+ - Calculate temporal signal-to-noise ratio using maps (probabilistic atlas)
293
+ - Done
294
+ - 0.0.7
269
295
  * - :class:`.HurstExponent`
270
296
  - | Calculate Hurst exponent of a time series as found in
271
297
  | `Peng et al. (1995) <https://doi.org/10.1063/1.166141>`_
@@ -743,5 +769,39 @@ Available
743
769
  Planned
744
770
  ~~~~~~~
745
771
 
772
+
773
+ Maps
774
+ ----
775
+
776
+ ..
777
+ Provide a list of the maps that are implemented or planned.
778
+
779
+ Version added: The junifer version in which the maps was added.
780
+
781
+ Available
782
+ ~~~~~~~~~
783
+
784
+ .. list-table::
785
+ :widths: auto
786
+ :header-rows: 1
787
+
788
+ * - Name
789
+ - Options
790
+ - Keys
791
+ - Template Spaces
792
+ - Version Added
793
+ - Publication
794
+ * - Smith
795
+ - ``components``, ``dimension``
796
+ - | ``Smith_rsn_10``, ``Smith_rsn_20``, ``Smith_rsn_70``,
797
+ | ``Smith_bm_10``, ``Smith_bm_20``, ``Smith_bm_70``
798
+ - ``MNI152NLin6Asym``
799
+ - 0.0.7
800
+ - | S.M. Smith, P.T. Fox, K.L. Miller et al.
801
+ | Correspondence of the brain's functional architecture during activation and rest
802
+ | Proc. Natl. Acad. Sci. U.S.A. 106 (31) 13040-13045 (2009)
803
+ | https://doi.org/10.1073/pnas.0905267106
804
+
805
+
746
806
  ..
747
807
  helpful site for creating tables: https://rest-sphinx-memo.readthedocs.io/en/latest/ReST.html#tables
@@ -0,0 +1 @@
1
+ :func:`.get_data`, :func:`.load_data`, :func:`.list_data`, :func:`.register_data` and :func:`.deregister_data` now support ``"maps"`` as a valid argument for ``kind`` by `Synchon Mandal`_
@@ -0,0 +1 @@
1
+ Introduce :class:`.MapsRegistry` to centralise probabilistic atlas (maps) data management by `Synchon Mandal`_
@@ -0,0 +1 @@
1
+ Constrain ``templateflow`` version to ``>=23.0.0,<25.0.0`` by `Synchon Mandal`_
@@ -0,0 +1 @@
1
+ Introduce :class:`.MapsAggregation`, :class:`.FunctionalConnectivityMaps`, :class:`.EdgeCentricFCMaps`, :class:`.ReHoMaps`, :class:`.ALFFMaps` and :class:`.TemporalSNRMaps` by `Synchon Mandal`_
@@ -30,6 +30,7 @@ DataGrabbers, Preprocessors, Markers, etc., following the *junifer* way.
30
30
  parcellations
31
31
  coordinates
32
32
  masks
33
+ maps
33
34
  plugins
34
35
  data_registries
35
36
  data_types
@@ -0,0 +1,139 @@
1
+ .. include:: ../links.inc
2
+
3
+ .. _adding_maps:
4
+
5
+ Adding Maps
6
+ ===========
7
+
8
+ Maps in ``junifer`` are basically probabilistic atlases. They are differentiated
9
+ from parcellations for ease of computation and to handle edge cases in a sane manner.
10
+ Before you start adding your own maps, check whether ``junifer`` has
11
+ the map(s) :ref:`in-built already <builtin>`. Perhaps, what is available
12
+ there will suffice to achieve your goals. However, of course ``junifer`` will not
13
+ have every map(s) available that you may want to use, and if so, it will
14
+ be nice to be able to add it yourself using a format that ``junifer`` understands.
15
+
16
+ Similarly, you may even be interested in creating your own custom maps
17
+ and then adding them to ``junifer``, so you can use ``junifer`` to obtain
18
+ different Markers to assess and validate your own maps. So, how can you do
19
+ this?
20
+
21
+ Since both of these use-cases are quite common, and not being able to use your
22
+ favourite map(s) is of course quite a buzzkill, ``junifer`` actually
23
+ provides the easy-to-use :func:`.register_data` function to do just that.
24
+ Let's try to understand the API reference and then use this function to register our
25
+ own map(s).
26
+
27
+ From the API reference, we can see that it has 3 positional arguments:
28
+
29
+ * ``kind``
30
+ * ``name``
31
+ * ``space``
32
+
33
+ as well as one optional keyword argument: ``overwrite``.
34
+ As the ``kind`` needs to be ``"maps"``, we can check
35
+ ``MapsRegistry.register`` for keyword arguments to be passed:
36
+
37
+ * ``maps_path``
38
+ * ``maps_labels``
39
+
40
+ The ``name`` of the map(s) is up to you and will be the name that
41
+ ``junifer`` will use to refer to this particular maps. You can think of
42
+ this as being similar to a key in a Python dictionary, i.e. a key that is used to
43
+ obtain and operate on the actual maps data. This ``name`` must always
44
+ be a string. For example, we could call our map(s)
45
+ ``"my_custom_maps"`` (Note, that in a real-world use case this is
46
+ likely not a good name, and you should try to choose a meaningful name that
47
+ conveys as much relevant information about your maps as necessary).
48
+
49
+ The ``maps_path`` must be a ``str`` or ``Path`` object indicating a
50
+ path to a valid 4D NIfTI image, which contains floating-point labels indicating the
51
+ individual regions-of-interest (ROIs) of your map(s).
52
+
53
+ We also want to make sure that we can associate each label with
54
+ a human readable name (i.e. the name for each ROI). This serves naming the
55
+ features that maps-based markers produce in an unambiguous way, such
56
+ that a user can easily identify which ROIs were used to produce a specific
57
+ feature (multiple ROIs, because some features consist of information from two
58
+ or more ROIs, as for example in functional connectivity). Therefore, we provide
59
+ junifer with a list of strings, that contains the names for each ROI. In this
60
+ list, the label at the i-th position indicates the i-th index in the 4th dimension
61
+ of the NIfTI image.
62
+
63
+ Lastly, we specify the ``space`` that the map(s) is in, for example,
64
+ ``"MNI152NLin6Asym"`` or ``"native"`` (scanner-native space).
65
+
66
+ Step 1: Prepare code to register a maps
67
+ ---------------------------------------
68
+
69
+ Now we know everything that we need to know to make sure ``junifer`` can use our
70
+ own map(s) to compute any maps-based Marker. A simple example could
71
+ look like this:
72
+
73
+ .. code-block:: python
74
+
75
+ from pathlib import Path
76
+
77
+ import numpy as np
78
+ from junifer.data import register_data
79
+
80
+
81
+ # these are of course just example paths, replace it with your own:
82
+ path_to_maps = (
83
+ Path.cwd() / "my_custom_maps.nii.gz"
84
+ )
85
+ path_to_labels = (
86
+ Path.cwd() / "my_custom_maps_labels.txt"
87
+ )
88
+
89
+ my_labels = list(np.loadtxt(path_to_labels, dtype=str))
90
+
91
+ register_data(
92
+ kind="maps",
93
+ name="my_custom_maps",
94
+ maps_path=path_to_maps,
95
+ maps_labels=my_labels,
96
+ space="MNI152NLin6Asym",
97
+ )
98
+
99
+ We can run this code and it seems to work, however, how can we actually
100
+ include the custom map(s) in a ``junifer`` pipeline using a
101
+ :ref:`code-less YAML configuration <codeless>`?
102
+
103
+ Step 2: Add maps registration to the YAML file
104
+ ----------------------------------------------
105
+
106
+ In order to use the maps in a ``junifer`` pipeline configured by a YAML
107
+ file, we can save the above code in a Python file, say
108
+ ``registering_my_maps.py``. We can then simply add this file using the
109
+ ``with`` keyword provided by ``junifer``:
110
+
111
+ .. code-block:: yaml
112
+
113
+ with:
114
+ - registering_my_maps.py
115
+
116
+ Afterwards continue configuring the rest of the pipeline in this YAML file, and
117
+ you will be able to use this maps using the name you gave the
118
+ maps when registering it. For example, we can add a
119
+ :class:`.MapsAggregation` Marker to demonstrate how this can be done:
120
+
121
+ .. code-block:: yaml
122
+
123
+ markers:
124
+ - name: CustomMaps_mean
125
+ kind: MapsAggregation
126
+ maps: my_custom_maps
127
+
128
+ Now, you can simply use this YAML file to run your pipeline.
129
+
130
+ .. important::
131
+
132
+ It's important to keep in mind that if the paths given in
133
+ ``registering_my_maps.py`` are relative paths, they will be interpreted
134
+ by ``junifer`` as relative to the jobs directory (i.e. where ``junifer`` will
135
+ create submit files, logs directory and so on). For simplicity, you may just
136
+ want to use absolute paths to avoid confusion, yet using relative paths is
137
+ likely a better way to make your pipeline directory / repository more portable
138
+ and therefore more reproducible for others. Really, once you understand how
139
+ these paths are interpreted by ``junifer``, it is quite easy.
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.0.7.dev132'
32
- __version_tuple__ = version_tuple = (0, 0, 7, 'dev132')
31
+ __version__ = version = '0.0.7.dev169'
32
+ __version_tuple__ = version_tuple = (0, 0, 7, 'dev169')
33
33
 
34
- __commit_id__ = commit_id = 'gb32daf1f6'
34
+ __commit_id__ = commit_id = 'g130238f84'
@@ -0,0 +1,57 @@
1
+ """Provide conftest for pytest."""
2
+
3
+ # Authors: Federico Raimondo <f.raimondo@fz-juelich.de>
4
+ # Synchon Mandal <s.mandal@fz-juelich.de>
5
+ # License: AGPL
6
+
7
+ from pathlib import Path
8
+
9
+ import pytest
10
+
11
+ from junifer.datagrabber import PatternDataladDataGrabber
12
+ from junifer.utils.singleton import Singleton
13
+
14
+
15
+ @pytest.fixture(autouse=True)
16
+ def reset_singletons() -> None:
17
+ """Reset all singletons."""
18
+ to_clean = ["WorkDirManager"]
19
+ to_remove = [
20
+ v for k, v in Singleton.instances.items() if k.__name__ in to_clean
21
+ ]
22
+ Singleton.instances = {
23
+ k: v
24
+ for k, v in Singleton.instances.items()
25
+ if k.__name__ not in to_clean
26
+ }
27
+ # Force deleting the singletons
28
+ for elem in to_remove:
29
+ del elem
30
+
31
+
32
+ @pytest.fixture
33
+ def maps_datagrabber(tmp_path: Path) -> PatternDataladDataGrabber:
34
+ """Return a PatternDataladDataGrabber for maps testing.
35
+
36
+ Parameters
37
+ ----------
38
+ tmp_path : pathlib.Path
39
+ The path to the test directory.
40
+
41
+ """
42
+ dg = PatternDataladDataGrabber(
43
+ uri="https://github.com/OpenNeuroDatasets/ds005226.git",
44
+ types=["BOLD"],
45
+ patterns={
46
+ "BOLD": {
47
+ "pattern": (
48
+ "derivatives/pre-processed_data/space-MNI/{subject}/"
49
+ "{subject-padded}_task-{task}_run-{run}_space-MNI152NLin6Asym"
50
+ "_res-2_desc-preproc_bold.nii.gz"
51
+ ),
52
+ "space": "MNI152NLin6Asym",
53
+ },
54
+ },
55
+ replacements=["subject", "subject-padded", "task", "run"],
56
+ )
57
+ return dg
@@ -3,6 +3,7 @@ __all__ = [
3
3
  "CoordinatesRegistry",
4
4
  "DataDispatcher",
5
5
  "ParcellationRegistry",
6
+ "MapsRegistry",
6
7
  "MaskRegistry",
7
8
  "get_data",
8
9
  "list_data",
@@ -17,6 +18,7 @@ __all__ = [
17
18
  from .pipeline_data_registry_base import BasePipelineDataRegistry
18
19
  from .coordinates import CoordinatesRegistry
19
20
  from .parcellations import ParcellationRegistry
21
+ from .maps import MapsRegistry
20
22
  from .masks import MaskRegistry
21
23
 
22
24
  from ._dispatch import (
@@ -17,6 +17,7 @@ from numpy.typing import ArrayLike
17
17
 
18
18
  from ..utils import raise_error
19
19
  from .coordinates import CoordinatesRegistry
20
+ from .maps import MapsRegistry
20
21
  from .masks import MaskRegistry
21
22
  from .parcellations import ParcellationRegistry
22
23
  from .pipeline_data_registry_base import BasePipelineDataRegistry
@@ -52,6 +53,7 @@ class DataDispatcher(MutableMapping):
52
53
  {
53
54
  "coordinates": CoordinatesRegistry,
54
55
  "parcellation": ParcellationRegistry,
56
+ "maps": MapsRegistry,
55
57
  "mask": MaskRegistry,
56
58
  }
57
59
  )
@@ -118,14 +120,14 @@ def get_data(
118
120
  extra_input: Optional[dict[str, Any]] = None,
119
121
  ) -> Union[
120
122
  tuple[ArrayLike, list[str]], # coordinates
121
- tuple["Nifti1Image", list[str]], # parcellation
123
+ tuple["Nifti1Image", list[str]], # parcellation / maps
122
124
  "Nifti1Image", # mask
123
125
  ]:
124
126
  """Get tailored ``kind`` for ``target_data``.
125
127
 
126
128
  Parameters
127
129
  ----------
128
- kind : {"coordinates", "parcellation", "mask"}
130
+ kind : {"coordinates", "parcellation", "mask", "maps"}
129
131
  Kind of data to fetch and apply.
130
132
  names : str or dict or list of str / dict
131
133
  The registered name(s) of the data.
@@ -166,7 +168,7 @@ def list_data(kind: str) -> list[str]:
166
168
 
167
169
  Parameters
168
170
  ----------
169
- kind : {"coordinates", "parcellation", "mask"}
171
+ kind : {"coordinates", "parcellation", "mask", "maps"}
170
172
  Kind of data registry to list.
171
173
 
172
174
  Returns
@@ -195,7 +197,9 @@ def load_data(
195
197
  **kwargs,
196
198
  ) -> Union[
197
199
  tuple[ArrayLike, list[str], str], # coordinates
198
- tuple[Optional["Nifti1Image"], list[str], Path, str], # parcellation
200
+ tuple[
201
+ Optional["Nifti1Image"], list[str], Path, str
202
+ ], # parcellation / maps
199
203
  tuple[
200
204
  Optional[Union["Nifti1Image", Callable]], Optional[Path], str
201
205
  ], # mask
@@ -204,7 +208,7 @@ def load_data(
204
208
 
205
209
  Parameters
206
210
  ----------
207
- kind : {"coordinates", "parcellation", "mask"}
211
+ kind : {"coordinates", "parcellation", "mask", "maps"}
208
212
  Kind of data to load.
209
213
  name : str
210
214
  The registered name of the data.
@@ -244,7 +248,7 @@ def register_data(
244
248
 
245
249
  Parameters
246
250
  ----------
247
- kind : {"coordinates", "parcellation", "mask"}
251
+ kind : {"coordinates", "parcellation", "mask", "maps"}
248
252
  Kind of data to register.
249
253
  name : str
250
254
  The name to register.
@@ -277,7 +281,7 @@ def deregister_data(kind: str, name: str) -> None:
277
281
 
278
282
  Parameters
279
283
  ----------
280
- kind : {"coordinates", "parcellation", "mask"}
284
+ kind : {"coordinates", "parcellation", "mask", "maps"}
281
285
  Kind of data to register.
282
286
  name : str
283
287
  The name to de-register.
@@ -0,0 +1,9 @@
1
+ """Maps."""
2
+
3
+ # Authors: Synchon Mandal <s.mandal@fz-juelich.de>
4
+ # License: AGPL
5
+
6
+ import lazy_loader as lazy
7
+
8
+
9
+ __getattr__, __dir__, __all__ = lazy.attach_stub(__name__, __file__)
@@ -0,0 +1,5 @@
1
+ __all__ = [
2
+ "MapsRegistry",
3
+ ]
4
+
5
+ from ._maps import MapsRegistry
@@ -0,0 +1,156 @@
1
+ """Provide class for maps space warping via ANTs."""
2
+
3
+ # Authors: Synchon Mandal <s.mandal@fz-juelich.de>
4
+ # License: AGPL
5
+
6
+ import uuid
7
+ from typing import TYPE_CHECKING, Any, Optional
8
+
9
+ import nibabel as nib
10
+
11
+ from ...pipeline import WorkDirManager
12
+ from ...utils import logger, raise_error, run_ext_cmd
13
+ from ..template_spaces import get_template, get_xfm
14
+
15
+
16
+ if TYPE_CHECKING:
17
+ from nibabel.nifti1 import Nifti1Image
18
+
19
+
20
+ __all__ = ["ANTsMapsWarper"]
21
+
22
+
23
+ class ANTsMapsWarper:
24
+ """Class for maps space warping via ANTs.
25
+
26
+ This class uses ANTs ``antsApplyTransforms`` for transformation.
27
+
28
+ """
29
+
30
+ def warp(
31
+ self,
32
+ maps_name: str,
33
+ maps_img: "Nifti1Image",
34
+ src: str,
35
+ dst: str,
36
+ target_data: dict[str, Any],
37
+ warp_data: Optional[dict[str, Any]],
38
+ ) -> "Nifti1Image":
39
+ """Warp ``maps_img`` to correct space.
40
+
41
+ Parameters
42
+ ----------
43
+ maps_name : str
44
+ The name of the maps.
45
+ maps_img : nibabel.nifti1.Nifti1Image
46
+ The maps image to transform.
47
+ src : str
48
+ The data type or template space to warp from.
49
+ It should be empty string if ``dst="T1w"``.
50
+ dst : str
51
+ The data type or template space to warp to.
52
+ `"T1w"` is the only allowed data type and it uses the resampled T1w
53
+ found in ``target_data.reference``. The ``"reference"``
54
+ key is added if the :class:`.SpaceWarper` is used or if the
55
+ data is provided in native space.
56
+ target_data : dict
57
+ The corresponding item of the data object to which the maps
58
+ will be applied.
59
+ warp_data : dict or None
60
+ The warp data item of the data object. The value is unused if
61
+ ``dst!="T1w"``.
62
+
63
+ Returns
64
+ -------
65
+ nibabel.nifti1.Nifti1Image
66
+ The transformed maps image.
67
+
68
+ Raises
69
+ ------
70
+ ValueError
71
+ If ``warp_data`` is None when ``dst="T1w"``.
72
+
73
+ """
74
+ # Create element-scoped tempdir so that warped maps is
75
+ # available later as nibabel stores file path reference for
76
+ # loading on computation
77
+ prefix = (
78
+ f"ants_maps_warper_{maps_name}"
79
+ f"{'' if not src else f'_from_{src}'}_to_{dst}_"
80
+ f"{uuid.uuid1()}"
81
+ )
82
+ element_tempdir = WorkDirManager().get_element_tempdir(
83
+ prefix=prefix,
84
+ )
85
+
86
+ # Native space warping
87
+ if dst == "native": # pragma: no cover
88
+ # Warp data check
89
+ if warp_data is None:
90
+ raise_error("No `warp_data` provided")
91
+ if "reference" not in target_data:
92
+ raise_error("No `reference` provided")
93
+ if "path" not in target_data["reference"]:
94
+ raise_error("No `path` provided in `reference`")
95
+
96
+ logger.debug("Using ANTs for maps transformation")
97
+
98
+ # Save existing maps image to a tempfile
99
+ prewarp_maps_path = element_tempdir / "prewarp_maps.nii.gz"
100
+ nib.save(maps_img, prewarp_maps_path)
101
+
102
+ # Create a tempfile for warped output
103
+ warped_maps_path = element_tempdir / "maps_warped.nii.gz"
104
+ # Set antsApplyTransforms command
105
+ apply_transforms_cmd = [
106
+ "antsApplyTransforms",
107
+ "-d 3",
108
+ "-e 3",
109
+ "-n LanczosWindowedSinc",
110
+ f"-i {prewarp_maps_path.resolve()}",
111
+ # use resampled reference
112
+ f"-r {target_data['reference']['path'].resolve()}",
113
+ f"-t {warp_data['path'].resolve()}",
114
+ f"-o {warped_maps_path.resolve()}",
115
+ ]
116
+ # Call antsApplyTransforms
117
+ run_ext_cmd(name="antsApplyTransforms", cmd=apply_transforms_cmd)
118
+
119
+ # Template space warping
120
+ else:
121
+ logger.debug(f"Using ANTs to warp maps from {src} to {dst}")
122
+
123
+ # Get xfm file
124
+ xfm_file_path = get_xfm(src=src, dst=dst)
125
+ # Get template space image
126
+ template_space_img = get_template(
127
+ space=dst,
128
+ target_img=maps_img,
129
+ extra_input=None,
130
+ )
131
+ # Save template to a tempfile
132
+ template_space_img_path = element_tempdir / f"{dst}_T1w.nii.gz"
133
+ nib.save(template_space_img, template_space_img_path)
134
+
135
+ # Save existing maps image to a tempfile
136
+ prewarp_maps_path = element_tempdir / "prewarp_maps.nii.gz"
137
+ nib.save(maps_img, prewarp_maps_path)
138
+
139
+ # Create a tempfile for warped output
140
+ warped_maps_path = element_tempdir / "maps_warped.nii.gz"
141
+ # Set antsApplyTransforms command
142
+ apply_transforms_cmd = [
143
+ "antsApplyTransforms",
144
+ "-d 3",
145
+ "-e 3",
146
+ "-n LanczosWindowedSinc",
147
+ f"-i {prewarp_maps_path.resolve()}",
148
+ f"-r {template_space_img_path.resolve()}",
149
+ f"-t {xfm_file_path.resolve()}",
150
+ f"-o {warped_maps_path.resolve()}",
151
+ ]
152
+ # Call antsApplyTransforms
153
+ run_ext_cmd(name="antsApplyTransforms", cmd=apply_transforms_cmd)
154
+
155
+ # Load nifti
156
+ return nib.load(warped_maps_path)