junifer 0.0.7.dev132__tar.gz → 0.0.7.dev153__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 (474) hide show
  1. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/PKG-INFO +2 -2
  2. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/conda-env.yml +1 -1
  3. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/builtin.rst +34 -0
  4. junifer-0.0.7.dev153/docs/changes/newsfragments/458.change +1 -0
  5. junifer-0.0.7.dev153/docs/changes/newsfragments/458.feature +1 -0
  6. junifer-0.0.7.dev153/docs/changes/newsfragments/458.misc +1 -0
  7. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/extending/index.rst +1 -0
  8. junifer-0.0.7.dev153/docs/extending/maps.rst +140 -0
  9. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/_version.py +3 -3
  10. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/__init__.pyi +2 -0
  11. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/_dispatch.py +11 -7
  12. junifer-0.0.7.dev153/junifer/data/maps/__init__.py +9 -0
  13. junifer-0.0.7.dev153/junifer/data/maps/__init__.pyi +5 -0
  14. junifer-0.0.7.dev153/junifer/data/maps/_ants_maps_warper.py +156 -0
  15. junifer-0.0.7.dev153/junifer/data/maps/_fsl_maps_warper.py +85 -0
  16. junifer-0.0.7.dev153/junifer/data/maps/_maps.py +446 -0
  17. junifer-0.0.7.dev153/junifer/data/maps/tests/test_maps.py +255 -0
  18. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/masks/_masks.py +3 -2
  19. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/parcellations/_parcellations.py +1 -1
  20. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer.egg-info/PKG-INFO +2 -2
  21. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer.egg-info/SOURCES.txt +10 -0
  22. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer.egg-info/requires.txt +1 -1
  23. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/pyproject.toml +1 -1
  24. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/.dockerignore +0 -0
  25. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  26. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  27. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
  28. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
  29. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  30. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
  31. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/.github/dependabot.yml +0 -0
  32. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/.github/pull_request_template.md +0 -0
  33. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/.github/workflows/ci-docs.yml +0 -0
  34. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/.github/workflows/ci.yml +0 -0
  35. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/.github/workflows/docker-ci-publish.yml +0 -0
  36. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/.github/workflows/docker-docs-publish.yml +0 -0
  37. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/.github/workflows/docs-preview.yml +0 -0
  38. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/.github/workflows/docs.yml +0 -0
  39. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/.github/workflows/lint.yml +0 -0
  40. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/.github/workflows/publish.yml +0 -0
  41. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/.gitignore +0 -0
  42. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/.gitmodules +0 -0
  43. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/.pre-commit-config.yaml +0 -0
  44. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/AUTHORS.rst +0 -0
  45. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/Dockerfile-ci +0 -0
  46. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/Dockerfile-docs +0 -0
  47. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/LICENSE.md +0 -0
  48. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/README.md +0 -0
  49. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/codecov.yml +0 -0
  50. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/Makefile +0 -0
  51. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/_static/css/custom.css +0 -0
  52. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/_static/js/custom.js +0 -0
  53. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/_templates/versions.html +0 -0
  54. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/api/api.rst +0 -0
  55. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/api/cli.rst +0 -0
  56. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/api/configs.rst +0 -0
  57. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/api/data.rst +0 -0
  58. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/api/datagrabbers.rst +0 -0
  59. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/api/datareaders.rst +0 -0
  60. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/api/index.rst +0 -0
  61. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/api/markers.rst +0 -0
  62. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/api/nilearn.rst +0 -0
  63. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/api/onthefly.rst +0 -0
  64. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/api/pipeline.rst +0 -0
  65. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/api/preprocessing.rst +0 -0
  66. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/api/stats.rst +0 -0
  67. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/api/storage.rst +0 -0
  68. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/api/testing.rst +0 -0
  69. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/api/utils.rst +0 -0
  70. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/changes/contributors.inc +0 -0
  71. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/changes/newsfragments/.gitignore +0 -0
  72. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/changes/newsfragments/333.enh +0 -0
  73. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/changes/newsfragments/429.change +0 -0
  74. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/changes/newsfragments/429.enh +0 -0
  75. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/changes/newsfragments/432.feature +0 -0
  76. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/changes/newsfragments/441.misc +0 -0
  77. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/changes/newsfragments/443.feature +0 -0
  78. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/changes/newsfragments/444.bugfix +0 -0
  79. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/changes/newsfragments/450.doc +0 -0
  80. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/changes/newsfragments/450.feature +0 -0
  81. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/changes/newsfragments/451.doc +0 -0
  82. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/changes/newsfragments/451.feature +0 -0
  83. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/changes/newsfragments/452.doc +0 -0
  84. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/changes/newsfragments/452.feature +0 -0
  85. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/changes/newsfragments/456.misc +0 -0
  86. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/changes/newsfragments/457.misc +0 -0
  87. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/conf.py +0 -0
  88. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/contribution.rst +0 -0
  89. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/extending/coordinates.rst +0 -0
  90. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/extending/data_dump_asset.rst +0 -0
  91. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/extending/data_registries.rst +0 -0
  92. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/extending/data_types.rst +0 -0
  93. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/extending/datagrabber.rst +0 -0
  94. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/extending/dependencies.rst +0 -0
  95. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/extending/extension.rst +0 -0
  96. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/extending/marker.rst +0 -0
  97. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/extending/masks.rst +0 -0
  98. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/extending/parcellations.rst +0 -0
  99. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/extending/plugins.rst +0 -0
  100. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/extending/preprocessor.rst +0 -0
  101. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/faq.rst +0 -0
  102. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/help.rst +0 -0
  103. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/images/junifer_logo.png +0 -0
  104. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/index.rst +0 -0
  105. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/installation.rst +0 -0
  106. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/links.inc +0 -0
  107. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/maintaining.rst +0 -0
  108. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/redirect.html +0 -0
  109. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/starting.rst +0 -0
  110. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/understanding/data.rst +0 -0
  111. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/understanding/datagrabber.rst +0 -0
  112. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/understanding/datareader.rst +0 -0
  113. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/understanding/index.rst +0 -0
  114. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/understanding/marker.rst +0 -0
  115. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/understanding/pipeline.rst +0 -0
  116. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/understanding/preprocess.rst +0 -0
  117. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/understanding/storage.rst +0 -0
  118. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/using/codeless.rst +0 -0
  119. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/using/configuring.rst +0 -0
  120. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/using/dumping.rst +0 -0
  121. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/using/index.rst +0 -0
  122. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/using/masks.rst +0 -0
  123. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/using/queueing.rst +0 -0
  124. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/using/running.rst +0 -0
  125. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/docs/whats_new.rst +0 -0
  126. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/examples/README.rst +0 -0
  127. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/examples/norun_hcpfc_pearson.py +0 -0
  128. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/examples/norun_ukbvm_gmd.py +0 -0
  129. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/examples/run_compute_parcel_mean.py +0 -0
  130. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/examples/run_datagrabber_bids_datalad.py +0 -0
  131. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/examples/run_ets_rss_marker.py +0 -0
  132. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/examples/run_junifer_julearn.py +0 -0
  133. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/examples/run_run_gmd_mean.py +0 -0
  134. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/examples/yamls/gmd_mean.yaml +0 -0
  135. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
  136. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
  137. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/examples/yamls/ukb_gmd_mean.yaml +0 -0
  138. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/ignore_words.txt +0 -0
  139. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/__init__.py +0 -0
  140. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/__init__.pyi +0 -0
  141. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/__init__.py +0 -0
  142. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/__init__.pyi +0 -0
  143. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/decorators.py +0 -0
  144. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/functions.py +0 -0
  145. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/py.typed +0 -0
  146. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/queue_context/__init__.py +0 -0
  147. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/queue_context/__init__.pyi +0 -0
  148. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
  149. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/queue_context/htcondor_adapter.py +0 -0
  150. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/queue_context/py.typed +0 -0
  151. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/queue_context/queue_context_adapter.py +0 -0
  152. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
  153. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
  154. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
  155. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/afni/3dRSFC +0 -0
  156. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/afni/3dReHo +0 -0
  157. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/afni/afni +0 -0
  158. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/afni/run_afni_docker.sh +0 -0
  159. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/ants/ResampleImage +0 -0
  160. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/ants/antsApplyTransforms +0 -0
  161. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
  162. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/ants/run_ants_docker.sh +0 -0
  163. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/freesurfer/mri_binarize +0 -0
  164. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/freesurfer/mri_mc +0 -0
  165. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/freesurfer/mri_pretess +0 -0
  166. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/freesurfer/mris_convert +0 -0
  167. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
  168. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/fsl/applywarp +0 -0
  169. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/fsl/flirt +0 -0
  170. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/fsl/img2imgcoord +0 -0
  171. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
  172. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/fsl/std2imgcoord +0 -0
  173. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/run_conda.bash +0 -0
  174. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/run_conda.zsh +0 -0
  175. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/run_venv.bash +0 -0
  176. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/res/run_venv.zsh +0 -0
  177. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/tests/test_decorators.py +0 -0
  178. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/api/tests/test_functions.py +0 -0
  179. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/cli/__init__.py +0 -0
  180. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/cli/__init__.pyi +0 -0
  181. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/cli/cli.py +0 -0
  182. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/cli/parser.py +0 -0
  183. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/cli/py.typed +0 -0
  184. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
  185. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +0 -0
  186. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
  187. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/cli/tests/test_cli.py +0 -0
  188. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/cli/tests/test_cli_utils.py +0 -0
  189. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/cli/tests/test_parser.py +0 -0
  190. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/cli/utils.py +0 -0
  191. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/configs/__init__.py +0 -0
  192. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/configs/juseless/__init__.py +0 -0
  193. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/configs/juseless/__init__.pyi +0 -0
  194. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
  195. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
  196. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
  197. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
  198. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
  199. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
  200. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
  201. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
  202. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
  203. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
  204. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
  205. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
  206. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
  207. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/configs/juseless/py.typed +0 -0
  208. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/conftest.py +0 -0
  209. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/__init__.py +0 -0
  210. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/coordinates/__init__.py +0 -0
  211. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/coordinates/__init__.pyi +0 -0
  212. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/coordinates/_ants_coordinates_warper.py +0 -0
  213. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/coordinates/_coordinates.py +0 -0
  214. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/coordinates/_fsl_coordinates_warper.py +0 -0
  215. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
  216. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/masks/__init__.py +0 -0
  217. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/masks/__init__.pyi +0 -0
  218. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/masks/_ants_mask_warper.py +0 -0
  219. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/masks/_fsl_mask_warper.py +0 -0
  220. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/masks/tests/test_masks.py +0 -0
  221. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/parcellations/__init__.py +0 -0
  222. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/parcellations/__init__.pyi +0 -0
  223. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/parcellations/_ants_parcellation_warper.py +0 -0
  224. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/parcellations/_fsl_parcellation_warper.py +0 -0
  225. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
  226. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/pipeline_data_registry_base.py +0 -0
  227. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/py.typed +0 -0
  228. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/template_spaces.py +0 -0
  229. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/tests/test_data_utils.py +0 -0
  230. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/tests/test_dispatch.py +0 -0
  231. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/tests/test_template_spaces.py +0 -0
  232. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/data/utils.py +0 -0
  233. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/__init__.py +0 -0
  234. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/__init__.pyi +0 -0
  235. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/aomic/__init__.py +0 -0
  236. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/aomic/__init__.pyi +0 -0
  237. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/aomic/id1000.py +0 -0
  238. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/aomic/piop1.py +0 -0
  239. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/aomic/piop2.py +0 -0
  240. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/aomic/py.typed +0 -0
  241. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
  242. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
  243. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
  244. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/base.py +0 -0
  245. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/datalad_base.py +0 -0
  246. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
  247. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/hcp1200/__init__.py +0 -0
  248. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
  249. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
  250. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
  251. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/hcp1200/py.typed +0 -0
  252. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
  253. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/multiple.py +0 -0
  254. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/pattern.py +0 -0
  255. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/pattern_datalad.py +0 -0
  256. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/pattern_validation_mixin.py +0 -0
  257. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/py.typed +0 -0
  258. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/tests/test_base.py +0 -0
  259. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
  260. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
  261. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/tests/test_multiple.py +0 -0
  262. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/tests/test_pattern.py +0 -0
  263. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
  264. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
  265. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datareader/__init__.py +0 -0
  266. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datareader/__init__.pyi +0 -0
  267. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datareader/default.py +0 -0
  268. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datareader/py.typed +0 -0
  269. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/datareader/tests/test_default_reader.py +0 -0
  270. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
  271. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
  272. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
  273. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
  274. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
  275. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
  276. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
  277. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
  278. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/external/__init__.py +0 -0
  279. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/external/h5io/h5io/__init__.py +0 -0
  280. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/external/h5io/h5io/_h5io.py +0 -0
  281. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/external/h5io/h5io/_version.py +0 -0
  282. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/external/h5io/h5io/chunked_array.py +0 -0
  283. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/external/h5io/h5io/chunked_list.py +0 -0
  284. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/external/nilearn/__init__.py +0 -0
  285. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/external/nilearn/__init__.pyi +0 -0
  286. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
  287. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
  288. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/external/nilearn/py.typed +0 -0
  289. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
  290. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
  291. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/__init__.py +0 -0
  292. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/__init__.pyi +0 -0
  293. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/base.py +0 -0
  294. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/brainprint.py +0 -0
  295. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/complexity/__init__.py +0 -0
  296. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/complexity/__init__.pyi +0 -0
  297. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/complexity/complexity_base.py +0 -0
  298. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/complexity/hurst_exponent.py +0 -0
  299. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
  300. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/complexity/perm_entropy.py +0 -0
  301. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/complexity/py.typed +0 -0
  302. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/complexity/range_entropy.py +0 -0
  303. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/complexity/range_entropy_auc.py +0 -0
  304. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/complexity/sample_entropy.py +0 -0
  305. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
  306. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
  307. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
  308. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
  309. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
  310. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
  311. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
  312. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
  313. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
  314. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/ets_rss.py +0 -0
  315. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/falff/__init__.py +0 -0
  316. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/falff/__init__.pyi +0 -0
  317. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/falff/_afni_falff.py +0 -0
  318. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/falff/_junifer_falff.py +0 -0
  319. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/falff/falff_base.py +0 -0
  320. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/falff/falff_parcels.py +0 -0
  321. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/falff/falff_spheres.py +0 -0
  322. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/falff/py.typed +0 -0
  323. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
  324. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
  325. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/__init__.py +0 -0
  326. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
  327. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
  328. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
  329. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
  330. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
  331. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
  332. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
  333. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/py.typed +0 -0
  334. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
  335. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
  336. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
  337. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
  338. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
  339. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
  340. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/parcel_aggregation.py +0 -0
  341. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/py.typed +0 -0
  342. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/reho/__init__.py +0 -0
  343. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/reho/__init__.pyi +0 -0
  344. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/reho/_afni_reho.py +0 -0
  345. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/reho/_junifer_reho.py +0 -0
  346. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/reho/py.typed +0 -0
  347. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/reho/reho_base.py +0 -0
  348. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/reho/reho_parcels.py +0 -0
  349. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/reho/reho_spheres.py +0 -0
  350. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
  351. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
  352. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/sphere_aggregation.py +0 -0
  353. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/temporal_snr/__init__.py +0 -0
  354. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/temporal_snr/__init__.pyi +0 -0
  355. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/temporal_snr/py.typed +0 -0
  356. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
  357. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
  358. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
  359. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
  360. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
  361. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
  362. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/tests/test_brainprint.py +0 -0
  363. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/tests/test_ets_rss.py +0 -0
  364. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/tests/test_marker_utils.py +0 -0
  365. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/tests/test_markers_base.py +0 -0
  366. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
  367. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
  368. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/markers/utils.py +0 -0
  369. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/onthefly/__init__.py +0 -0
  370. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/onthefly/_brainprint.py +0 -0
  371. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/onthefly/read_transform.py +0 -0
  372. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/onthefly/tests/test_read_transform.py +0 -0
  373. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/pipeline/__init__.py +0 -0
  374. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/pipeline/__init__.pyi +0 -0
  375. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/pipeline/_data_object_dumper.py +0 -0
  376. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/pipeline/marker_collection.py +0 -0
  377. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/pipeline/pipeline_component_registry.py +0 -0
  378. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/pipeline/pipeline_step_mixin.py +0 -0
  379. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/pipeline/py.typed +0 -0
  380. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/pipeline/tests/test_data_object_dumper.py +0 -0
  381. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/pipeline/tests/test_marker_collection.py +0 -0
  382. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
  383. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
  384. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
  385. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
  386. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/pipeline/update_meta_mixin.py +0 -0
  387. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/pipeline/utils.py +0 -0
  388. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/pipeline/workdir_manager.py +0 -0
  389. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/__init__.py +0 -0
  390. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/__init__.pyi +0 -0
  391. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/_temporal_filter.py +0 -0
  392. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/_temporal_slicer.py +0 -0
  393. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/base.py +0 -0
  394. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/confounds/__init__.py +0 -0
  395. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/confounds/__init__.pyi +0 -0
  396. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
  397. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/confounds/py.typed +0 -0
  398. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
  399. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/py.typed +0 -0
  400. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/smoothing/__init__.py +0 -0
  401. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/smoothing/__init__.pyi +0 -0
  402. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
  403. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
  404. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
  405. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/smoothing/py.typed +0 -0
  406. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/smoothing/smoothing.py +0 -0
  407. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
  408. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
  409. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/tests/test_temporal_filter.py +0 -0
  410. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/tests/test_temporal_slicer.py +0 -0
  411. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/warping/__init__.py +0 -0
  412. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/warping/__init__.pyi +0 -0
  413. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/warping/_ants_warper.py +0 -0
  414. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/warping/_fsl_warper.py +0 -0
  415. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/warping/py.typed +0 -0
  416. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/warping/space_warper.py +0 -0
  417. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
  418. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/py.typed +0 -0
  419. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/stats.py +0 -0
  420. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/storage/__init__.py +0 -0
  421. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/storage/__init__.pyi +0 -0
  422. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/storage/base.py +0 -0
  423. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/storage/hdf5.py +0 -0
  424. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/storage/pandas_base.py +0 -0
  425. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/storage/py.typed +0 -0
  426. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/storage/sqlite.py +0 -0
  427. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/storage/tests/test_hdf5.py +0 -0
  428. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/storage/tests/test_pandas_base.py +0 -0
  429. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/storage/tests/test_sqlite.py +0 -0
  430. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/storage/tests/test_storage_base.py +0 -0
  431. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/storage/tests/test_utils.py +0 -0
  432. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/storage/utils.py +0 -0
  433. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/testing/__init__.py +0 -0
  434. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/testing/__init__.pyi +0 -0
  435. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
  436. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/testing/datagrabbers.py +0 -0
  437. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/testing/py.typed +0 -0
  438. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/testing/registry.py +0 -0
  439. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
  440. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
  441. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
  442. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/testing/tests/test_testing_registry.py +0 -0
  443. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/testing/utils.py +0 -0
  444. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/tests/test_main.py +0 -0
  445. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/tests/test_stats.py +0 -0
  446. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/typing/__init__.py +0 -0
  447. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/typing/__init__.pyi +0 -0
  448. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/typing/_typing.py +0 -0
  449. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/utils/__init__.py +0 -0
  450. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/utils/__init__.pyi +0 -0
  451. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/utils/_config.py +0 -0
  452. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/utils/_yaml.py +0 -0
  453. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/utils/fs.py +0 -0
  454. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/utils/helpers.py +0 -0
  455. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/utils/logging.py +0 -0
  456. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/utils/py.typed +0 -0
  457. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/utils/singleton.py +0 -0
  458. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/utils/tests/test_config.py +0 -0
  459. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/utils/tests/test_fs.py +0 -0
  460. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/utils/tests/test_helpers.py +0 -0
  461. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer/utils/tests/test_logging.py +0 -0
  462. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer.egg-info/dependency_links.txt +0 -0
  463. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer.egg-info/entry_points.txt +0 -0
  464. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/junifer.egg-info/top_level.txt +0 -0
  465. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/setup.cfg +0 -0
  466. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/setup.py +0 -0
  467. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/tools/create_aomic1000_example_dataset.py +0 -0
  468. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/tools/create_aomicpiop1_example_dataset.py +0 -0
  469. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/tools/create_aomicpiop2_example_dataset.py +0 -0
  470. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/tools/create_bids_example_dataset.py +0 -0
  471. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/tools/create_bids_example_dataset_sessions.py +0 -0
  472. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
  473. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/tools/create_hcp1200_example_dataset.py +0 -0
  474. {junifer-0.0.7.dev132 → junifer-0.0.7.dev153}/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.dev153
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
@@ -743,5 +743,39 @@ Available
743
743
  Planned
744
744
  ~~~~~~~
745
745
 
746
+
747
+ Maps
748
+ ----
749
+
750
+ ..
751
+ Provide a list of the maps that are implemented or planned.
752
+
753
+ Version added: The junifer version in which the maps was added.
754
+
755
+ Available
756
+ ~~~~~~~~~
757
+
758
+ .. list-table::
759
+ :widths: auto
760
+ :header-rows: 1
761
+
762
+ * - Name
763
+ - Options
764
+ - Keys
765
+ - Template Spaces
766
+ - Version Added
767
+ - Publication
768
+ * - Smith
769
+ - ``components``, ``dimension``
770
+ - | ``Smith_rsn_10``, ``Smith_rsn_20``, ``Smith_rsn_70``,
771
+ | ``Smith_bm_10``, ``Smith_bm_20``, ``Smith_bm_70``
772
+ - ``MNI152NLin6Asym``
773
+ - 0.0.7
774
+ - | S.M. Smith, P.T. Fox, K.L. Miller et al.
775
+ | Correspondence of the brain's functional architecture during activation and rest
776
+ | Proc. Natl. Acad. Sci. U.S.A. 106 (31) 13040-13045 (2009)
777
+ | https://doi.org/10.1073/pnas.0905267106
778
+
779
+
746
780
  ..
747
781
  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`_
@@ -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,140 @@
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
+ ``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
+ method: mean
128
+
129
+ Now, you can simply use this YAML file to run your pipeline.
130
+
131
+ .. important::
132
+
133
+ It's important to keep in mind that if the paths given in
134
+ ``registering_my_maps.py`` are relative paths, they will be interpreted
135
+ by ``junifer`` as relative to the jobs directory (i.e. where ``junifer`` will
136
+ create submit files, logs directory and so on). For simplicity, you may just
137
+ want to use absolute paths to avoid confusion, yet using relative paths is
138
+ likely a better way to make your pipeline directory / repository more portable
139
+ and therefore more reproducible for others. Really, once you understand how
140
+ 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.dev153'
32
+ __version_tuple__ = version_tuple = (0, 0, 7, 'dev153')
33
33
 
34
- __commit_id__ = commit_id = 'gb32daf1f6'
34
+ __commit_id__ = commit_id = 'g42a09b3a7'
@@ -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)
@@ -0,0 +1,85 @@
1
+ """Provide class for maps space warping via FSL FLIRT."""
2
+
3
+ # Authors: Synchon Mandal <s.mandal@fz-juelich.de>
4
+ # License: AGPL
5
+
6
+ import uuid
7
+ from typing import TYPE_CHECKING, Any
8
+
9
+ import nibabel as nib
10
+
11
+ from ...pipeline import WorkDirManager
12
+ from ...utils import logger, run_ext_cmd
13
+
14
+
15
+ if TYPE_CHECKING:
16
+ from nibabel.nifti1 import Nifti1Image
17
+
18
+
19
+ __all__ = ["FSLMapsWarper"]
20
+
21
+
22
+ class FSLMapsWarper:
23
+ """Class for maps space warping via FSL FLIRT.
24
+
25
+ This class uses FSL FLIRT's ``applywarp`` for transformation.
26
+
27
+ """
28
+
29
+ def warp(
30
+ self,
31
+ maps_name: str,
32
+ maps_img: "Nifti1Image",
33
+ target_data: dict[str, Any],
34
+ warp_data: dict[str, Any],
35
+ ) -> "Nifti1Image": # pragma: no cover
36
+ """Warp ``maps_img`` to correct space.
37
+
38
+ Parameters
39
+ ----------
40
+ maps_name : str
41
+ The name of the maps.
42
+ maps_img : nibabel.nifti1.Nifti1Image
43
+ The maps image to transform.
44
+ target_data : dict
45
+ The corresponding item of the data object to which the maps
46
+ will be applied.
47
+ warp_data : dict
48
+ The warp data item of the data object.
49
+
50
+ Returns
51
+ -------
52
+ nibabel.nifti1.Nifti1Image
53
+ The transformed maps image.
54
+
55
+ """
56
+ logger.debug("Using FSL for maps transformation")
57
+
58
+ # Create element-scoped tempdir so that warped maps is
59
+ # available later as nibabel stores file path reference for
60
+ # loading on computation
61
+ element_tempdir = WorkDirManager().get_element_tempdir(
62
+ prefix=f"fsl_maps_warper_{maps_name}_{uuid.uuid1()}"
63
+ )
64
+
65
+ # Save existing maps image to a tempfile
66
+ prewarp_maps_path = element_tempdir / "prewarp_maps.nii.gz"
67
+ nib.save(maps_img, prewarp_maps_path)
68
+
69
+ # Create a tempfile for warped output
70
+ warped_maps_path = element_tempdir / "maps_warped.nii.gz"
71
+ # Set applywarp command
72
+ applywarp_cmd = [
73
+ "applywarp",
74
+ "--interp=spline",
75
+ f"-i {prewarp_maps_path.resolve()}",
76
+ # use resampled reference
77
+ f"-r {target_data['reference']['path'].resolve()}",
78
+ f"-w {warp_data['path'].resolve()}",
79
+ f"-o {warped_maps_path.resolve()}",
80
+ ]
81
+ # Call applywarp
82
+ run_ext_cmd(name="applywarp", cmd=applywarp_cmd)
83
+
84
+ # Load nifti
85
+ return nib.load(warped_maps_path)