junifer 0.0.4.dev565__tar.gz → 0.0.4.dev587__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 (399) hide show
  1. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/PKG-INFO +2 -1
  2. junifer-0.0.4.dev587/docs/changes/newsfragments/298.feature +1 -0
  3. junifer-0.0.4.dev587/docs/changes/newsfragments/302.enh +1 -0
  4. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/_version.py +2 -2
  5. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/tests/test_api_utils.py +2 -0
  6. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/__init__.py +1 -1
  7. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/template_spaces.py +73 -1
  8. junifer-0.0.4.dev587/junifer/data/tests/test_template_spaces.py +69 -0
  9. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/utils.py +2 -2
  10. junifer-0.0.4.dev587/junifer/preprocess/bold_warper.py +244 -0
  11. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/preprocess/tests/test_bold_warper.py +69 -1
  12. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer.egg-info/PKG-INFO +2 -1
  13. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer.egg-info/SOURCES.txt +2 -0
  14. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer.egg-info/requires.txt +1 -0
  15. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/pyproject.toml +3 -0
  16. junifer-0.0.4.dev565/junifer/data/tests/test_template_spaces.py +0 -30
  17. junifer-0.0.4.dev565/junifer/preprocess/bold_warper.py +0 -155
  18. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  19. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  20. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
  21. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
  22. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  23. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
  24. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/.github/dependabot.yml +0 -0
  25. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/.github/pull_request_template.md +0 -0
  26. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/.github/workflows/ci-docs.yml +0 -0
  27. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/.github/workflows/ci.yml +0 -0
  28. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/.github/workflows/docs-preview.yml +0 -0
  29. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/.github/workflows/docs.yml +0 -0
  30. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/.github/workflows/lint.yml +0 -0
  31. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/.github/workflows/pypi.yml +0 -0
  32. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/.gitignore +0 -0
  33. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/.gitmodules +0 -0
  34. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/.pre-commit-config.yaml +0 -0
  35. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/AUTHORS.rst +0 -0
  36. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/LICENSE.md +0 -0
  37. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/README.md +0 -0
  38. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/codecov.yml +0 -0
  39. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/conda-env.yml +0 -0
  40. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/Makefile +0 -0
  41. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/_static/css/custom.css +0 -0
  42. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/_static/js/custom.js +0 -0
  43. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/_templates/versions.html +0 -0
  44. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/api/api.rst +0 -0
  45. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/api/configs.rst +0 -0
  46. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/api/data.rst +0 -0
  47. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/api/datagrabbers.rst +0 -0
  48. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/api/datareaders.rst +0 -0
  49. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/api/index.rst +0 -0
  50. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/api/markers.rst +0 -0
  51. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/api/nilearn.rst +0 -0
  52. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/api/onthefly.rst +0 -0
  53. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/api/pipeline.rst +0 -0
  54. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/api/preprocessing.rst +0 -0
  55. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/api/stats.rst +0 -0
  56. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/api/storage.rst +0 -0
  57. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/api/testing.rst +0 -0
  58. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/api/utils.rst +0 -0
  59. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/builtin.rst +0 -0
  60. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/contributors.inc +0 -0
  61. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/.gitignore +0 -0
  62. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/145.feature +0 -0
  63. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/182.enh +0 -0
  64. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/224.bugfix +0 -0
  65. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/233.bugfix +0 -0
  66. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/245.change +0 -0
  67. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/245.feature +0 -0
  68. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/247.doc +0 -0
  69. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/248.change +0 -0
  70. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/251.doc +0 -0
  71. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/252.change +0 -0
  72. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/252.feature +0 -0
  73. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/253.misc +0 -0
  74. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/254.feature +0 -0
  75. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/258.enh +0 -0
  76. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/259.enh +0 -0
  77. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/260.enh +0 -0
  78. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/261.misc +0 -0
  79. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/262.misc +0 -0
  80. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/263.change +0 -0
  81. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/264.feature +0 -0
  82. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/265.feature +0 -0
  83. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/266.feature +0 -0
  84. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/267.feature +0 -0
  85. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/268.change +0 -0
  86. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/268.enh +0 -0
  87. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/269.misc +0 -0
  88. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/271.feature +0 -0
  89. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/272.bugfix +0 -0
  90. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/274.bugfix +0 -0
  91. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/276.bugfix +0 -0
  92. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/277.misc +0 -0
  93. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/278.bugfix +0 -0
  94. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/279.misc +0 -0
  95. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/280.bugfix +0 -0
  96. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/281.bugfix +0 -0
  97. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/281.misc +0 -0
  98. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/282.bugfix +0 -0
  99. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/283.bugfix +0 -0
  100. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/284.bugfix +0 -0
  101. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/286.bugfix +0 -0
  102. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/287.enh +0 -0
  103. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/288.misc +0 -0
  104. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/291.doc +0 -0
  105. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/293.enh +0 -0
  106. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/293.feature +0 -0
  107. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/293.misc +0 -0
  108. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/294.misc +0 -0
  109. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/295.feature +0 -0
  110. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/297.feature +0 -0
  111. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/300.doc +0 -0
  112. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/300.enh +0 -0
  113. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/changes/newsfragments/300.misc +0 -0
  114. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/conf.py +0 -0
  115. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/contribution.rst +0 -0
  116. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/extending/coordinates.rst +0 -0
  117. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/extending/datagrabber.rst +0 -0
  118. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/extending/extension.rst +0 -0
  119. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/extending/index.rst +0 -0
  120. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/extending/marker.rst +0 -0
  121. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/extending/masks.rst +0 -0
  122. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/extending/parcellations.rst +0 -0
  123. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/faq.rst +0 -0
  124. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/help.rst +0 -0
  125. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/images/junifer_logo.png +0 -0
  126. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/index.rst +0 -0
  127. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/installation.rst +0 -0
  128. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/links.inc +0 -0
  129. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/maintaining.rst +0 -0
  130. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/redirect.html +0 -0
  131. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/sphinxext/gh_substitutions.py +0 -0
  132. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/starting.rst +0 -0
  133. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/understanding/data.rst +0 -0
  134. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/understanding/datagrabber.rst +0 -0
  135. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/understanding/datareader.rst +0 -0
  136. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/understanding/index.rst +0 -0
  137. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/understanding/marker.rst +0 -0
  138. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/understanding/pipeline.rst +0 -0
  139. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/understanding/preprocess.rst +0 -0
  140. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/understanding/storage.rst +0 -0
  141. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/using/codeless.rst +0 -0
  142. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/using/index.rst +0 -0
  143. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/using/masks.rst +0 -0
  144. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/using/queueing.rst +0 -0
  145. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/using/running.rst +0 -0
  146. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/docs/whats_new.rst +0 -0
  147. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/examples/README.rst +0 -0
  148. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/examples/norun_hcpfc_pearson.py +0 -0
  149. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/examples/norun_ukbvm_gmd.py +0 -0
  150. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/examples/run_compute_parcel_mean.py +0 -0
  151. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/examples/run_datagrabber_bids_datalad.py +0 -0
  152. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/examples/run_ets_rss_marker.py +0 -0
  153. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/examples/run_junifer_julearn.py +0 -0
  154. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/examples/run_run_gmd_mean.py +0 -0
  155. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/examples/yamls/gmd_mean.yaml +0 -0
  156. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
  157. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/examples/yamls/ukb_gmd_mean.yaml +0 -0
  158. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/ignore_words.txt +0 -0
  159. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/__init__.py +0 -0
  160. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/__init__.py +0 -0
  161. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/cli.py +0 -0
  162. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/decorators.py +0 -0
  163. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/functions.py +0 -0
  164. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/parser.py +0 -0
  165. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
  166. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/res/afni/3dRSFC +0 -0
  167. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/res/afni/3dReHo +0 -0
  168. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/res/afni/afni +0 -0
  169. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/res/afni/run_afni_docker.sh +0 -0
  170. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/res/ants/ResampleImage +0 -0
  171. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/res/ants/antsApplyTransforms +0 -0
  172. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
  173. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/res/ants/run_ants_docker.sh +0 -0
  174. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/res/fsl/applywarp +0 -0
  175. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/res/fsl/flirt +0 -0
  176. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/res/fsl/img2imgcoord +0 -0
  177. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
  178. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/res/fsl/std2imgcoord +0 -0
  179. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/res/run_conda.sh +0 -0
  180. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/tests/data/gmd_mean.yaml +0 -0
  181. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/tests/data/gmd_mean_htcondor.yaml +0 -0
  182. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/tests/test_cli.py +0 -0
  183. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/tests/test_functions.py +0 -0
  184. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/tests/test_parser.py +0 -0
  185. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/api/utils.py +0 -0
  186. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/configs/__init__.py +0 -0
  187. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/configs/juseless/__init__.py +0 -0
  188. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
  189. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
  190. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
  191. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
  192. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
  193. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
  194. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
  195. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
  196. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
  197. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
  198. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
  199. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/VOIs/meta/CogAC_VOIs.txt +0 -0
  200. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/VOIs/meta/CogAR_VOIs.txt +0 -0
  201. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/VOIs/meta/DMNBuckner_VOIs.txt +0 -0
  202. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/VOIs/meta/Dosenbach2010_MNI_VOIs.txt +0 -0
  203. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/VOIs/meta/Empathy_VOIs.txt +0 -0
  204. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/VOIs/meta/Motor_VOIs.txt +0 -0
  205. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/VOIs/meta/MultiTask_VOIs.txt +0 -0
  206. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/VOIs/meta/PhysioStress_VOIs.txt +0 -0
  207. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/VOIs/meta/Power2011_MNI_VOIs.txt +0 -0
  208. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/VOIs/meta/Power2013_MNI_VOIs.tsv +0 -0
  209. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/VOIs/meta/Rew_VOIs.txt +0 -0
  210. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/VOIs/meta/Somatosensory_VOIs.txt +0 -0
  211. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/VOIs/meta/ToM_VOIs.txt +0 -0
  212. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/VOIs/meta/VigAtt_VOIs.txt +0 -0
  213. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/VOIs/meta/WM_VOIs.txt +0 -0
  214. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/VOIs/meta/eMDN_VOIs.txt +0 -0
  215. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/VOIs/meta/eSAD_VOIs.txt +0 -0
  216. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/VOIs/meta/extDMN_VOIs.txt +0 -0
  217. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/coordinates.py +0 -0
  218. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean.nii.gz +0 -0
  219. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean_3mm.nii.gz +0 -0
  220. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/masks/vickery-patil/GMprob0.2_cortex_3mm_NA_rm.nii.gz +0 -0
  221. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/masks.py +0 -0
  222. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/parcellations.py +0 -0
  223. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/tests/test_coordinates.py +0 -0
  224. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/tests/test_data_utils.py +0 -0
  225. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/tests/test_masks.py +0 -0
  226. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/data/tests/test_parcellations.py +0 -0
  227. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/__init__.py +0 -0
  228. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/aomic/__init__.py +0 -0
  229. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/aomic/id1000.py +0 -0
  230. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/aomic/piop1.py +0 -0
  231. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/aomic/piop2.py +0 -0
  232. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
  233. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
  234. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
  235. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/base.py +0 -0
  236. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/datalad_base.py +0 -0
  237. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
  238. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/hcp1200/__init__.py +0 -0
  239. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
  240. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
  241. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
  242. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/multiple.py +0 -0
  243. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/pattern.py +0 -0
  244. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/pattern_datalad.py +0 -0
  245. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/tests/test_base.py +0 -0
  246. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/tests/test_datagrabber_utils.py +0 -0
  247. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
  248. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
  249. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/tests/test_multiple.py +0 -0
  250. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/tests/test_pattern.py +0 -0
  251. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
  252. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datagrabber/utils.py +0 -0
  253. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datareader/__init__.py +0 -0
  254. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datareader/default.py +0 -0
  255. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/datareader/tests/test_default_reader.py +0 -0
  256. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/external/__init__.py +0 -0
  257. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/external/h5io/h5io/__init__.py +0 -0
  258. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/external/h5io/h5io/_h5io.py +0 -0
  259. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/external/h5io/h5io/_version.py +0 -0
  260. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/external/h5io/h5io/chunked_array.py +0 -0
  261. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/external/h5io/h5io/chunked_list.py +0 -0
  262. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/external/nilearn/__init__.py +0 -0
  263. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
  264. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
  265. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/__init__.py +0 -0
  266. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/base.py +0 -0
  267. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/collection.py +0 -0
  268. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/complexity/__init__.py +0 -0
  269. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/complexity/complexity_base.py +0 -0
  270. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/complexity/hurst_exponent.py +0 -0
  271. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
  272. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/complexity/perm_entropy.py +0 -0
  273. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/complexity/range_entropy.py +0 -0
  274. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/complexity/range_entropy_auc.py +0 -0
  275. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/complexity/sample_entropy.py +0 -0
  276. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
  277. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
  278. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
  279. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
  280. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
  281. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
  282. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
  283. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
  284. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
  285. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/ets_rss.py +0 -0
  286. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/falff/__init__.py +0 -0
  287. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/falff/falff_base.py +0 -0
  288. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/falff/falff_estimator.py +0 -0
  289. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/falff/falff_parcels.py +0 -0
  290. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/falff/falff_spheres.py +0 -0
  291. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/falff/tests/test_falff_estimator.py +0 -0
  292. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
  293. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
  294. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/functional_connectivity/__init__.py +0 -0
  295. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
  296. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
  297. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
  298. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
  299. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
  300. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
  301. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
  302. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
  303. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
  304. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
  305. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
  306. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
  307. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/parcel_aggregation.py +0 -0
  308. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/reho/__init__.py +0 -0
  309. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/reho/reho_base.py +0 -0
  310. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/reho/reho_estimator.py +0 -0
  311. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/reho/reho_parcels.py +0 -0
  312. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/reho/reho_spheres.py +0 -0
  313. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/reho/tests/test_reho_estimator.py +0 -0
  314. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
  315. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
  316. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/sphere_aggregation.py +0 -0
  317. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/temporal_snr/__init__.py +0 -0
  318. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
  319. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
  320. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
  321. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
  322. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
  323. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
  324. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/tests/test_collection.py +0 -0
  325. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/tests/test_ets_rss.py +0 -0
  326. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/tests/test_marker_utils.py +0 -0
  327. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/tests/test_markers_base.py +0 -0
  328. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
  329. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
  330. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/markers/utils.py +0 -0
  331. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/onthefly/__init__.py +0 -0
  332. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/onthefly/read_transform.py +0 -0
  333. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/onthefly/tests/test_read_transform.py +0 -0
  334. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/pipeline/__init__.py +0 -0
  335. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/pipeline/pipeline_step_mixin.py +0 -0
  336. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/pipeline/registry.py +0 -0
  337. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/pipeline/singleton.py +0 -0
  338. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
  339. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/pipeline/tests/test_registry.py +0 -0
  340. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
  341. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
  342. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/pipeline/update_meta_mixin.py +0 -0
  343. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/pipeline/utils.py +0 -0
  344. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/pipeline/workdir_manager.py +0 -0
  345. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/preprocess/__init__.py +0 -0
  346. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/preprocess/ants/__init__.py +0 -0
  347. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/preprocess/ants/ants_apply_transforms_warper.py +0 -0
  348. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/preprocess/ants/tests/test_ants_apply_transforms_warper.py +0 -0
  349. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/preprocess/base.py +0 -0
  350. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/preprocess/confounds/__init__.py +0 -0
  351. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
  352. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
  353. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/preprocess/fsl/__init__.py +0 -0
  354. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/preprocess/fsl/apply_warper.py +0 -0
  355. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/preprocess/fsl/tests/test_apply_warper.py +0 -0
  356. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
  357. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/stats.py +0 -0
  358. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/storage/__init__.py +0 -0
  359. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/storage/base.py +0 -0
  360. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/storage/hdf5.py +0 -0
  361. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/storage/pandas_base.py +0 -0
  362. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/storage/sqlite.py +0 -0
  363. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/storage/tests/test_hdf5.py +0 -0
  364. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/storage/tests/test_pandas_base.py +0 -0
  365. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/storage/tests/test_sqlite.py +0 -0
  366. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/storage/tests/test_storage_base.py +0 -0
  367. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/storage/tests/test_utils.py +0 -0
  368. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/storage/utils.py +0 -0
  369. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/testing/__init__.py +0 -0
  370. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
  371. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/testing/datagrabbers.py +0 -0
  372. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/testing/registry.py +0 -0
  373. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
  374. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
  375. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
  376. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/testing/tests/test_testing_registry.py +0 -0
  377. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/testing/utils.py +0 -0
  378. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/tests/test_main.py +0 -0
  379. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/tests/test_stats.py +0 -0
  380. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/utils/__init__.py +0 -0
  381. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/utils/fs.py +0 -0
  382. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/utils/helpers.py +0 -0
  383. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/utils/logging.py +0 -0
  384. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/utils/tests/test_fs.py +0 -0
  385. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/utils/tests/test_helpers.py +0 -0
  386. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer/utils/tests/test_logging.py +0 -0
  387. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer.egg-info/dependency_links.txt +0 -0
  388. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer.egg-info/entry_points.txt +0 -0
  389. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/junifer.egg-info/top_level.txt +0 -0
  390. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/setup.cfg +0 -0
  391. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/setup.py +0 -0
  392. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/tools/create_aomic1000_example_dataset.py +0 -0
  393. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/tools/create_aomicpiop1_example_dataset.py +0 -0
  394. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/tools/create_aomicpiop2_example_dataset.py +0 -0
  395. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/tools/create_bids_example_dataset.py +0 -0
  396. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/tools/create_bids_example_dataset_sessions.py +0 -0
  397. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
  398. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/tools/create_hcp1200_example_dataset.py +0 -0
  399. {junifer-0.0.4.dev565 → junifer-0.0.4.dev587}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: junifer
3
- Version: 0.0.4.dev565
3
+ Version: 0.0.4.dev587
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>
@@ -40,6 +40,7 @@ Requires-Dist: importlib_metadata; python_version < "3.10"
40
40
  Requires-Dist: h5py<3.10,>=3.8.0
41
41
  Requires-Dist: httpx[http2]==0.26.0
42
42
  Requires-Dist: tqdm==4.66.1
43
+ Requires-Dist: templateflow>=23.0.0
43
44
  Provides-Extra: all
44
45
  Requires-Dist: bctpy==0.6.0; extra == "all"
45
46
  Requires-Dist: neurokit2>=0.1.7; extra == "all"
@@ -0,0 +1 @@
1
+ Introduce :func:`.get_template` to fetch template space image tailored to a target data by `Synchon Mandal`_
@@ -0,0 +1 @@
1
+ Allow :class:`.BOLDWarper` to warp BOLD data to other MNI spaces by `Synchon Mandal`_
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.0.4.dev565'
16
- __version_tuple__ = version_tuple = (0, 0, 4, 'dev565')
15
+ __version__ = version = '0.0.4.dev587'
16
+ __version_tuple__ = version_tuple = (0, 0, 4, 'dev587')
@@ -44,6 +44,7 @@ def test_get_dependency_information_short() -> None:
44
44
  "ruamel.yaml",
45
45
  "httpx",
46
46
  "tqdm",
47
+ "templateflow",
47
48
  ]
48
49
  if int(pl.python_version_tuple()[1]) < 10:
49
50
  dependency_list.append("importlib_metadata")
@@ -68,6 +69,7 @@ def test_get_dependency_information_long() -> None:
68
69
  "ruamel.yaml",
69
70
  "httpx",
70
71
  "tqdm",
72
+ "templateflow",
71
73
  ]
72
74
  for key in dependency_list:
73
75
  assert key in dependency_information_keys
@@ -25,6 +25,6 @@ from .masks import (
25
25
  get_mask,
26
26
  )
27
27
 
28
- from .template_spaces import get_xfm
28
+ from .template_spaces import get_template, get_xfm
29
29
 
30
30
  from . import utils
@@ -4,11 +4,15 @@
4
4
  # License: AGPL
5
5
 
6
6
  from pathlib import Path
7
- from typing import Union
7
+ from typing import Any, Dict, Optional, Union
8
8
 
9
9
  import httpx
10
+ import nibabel as nib
11
+ import numpy as np
12
+ from templateflow import api as tflow
10
13
 
11
14
  from ..utils import logger, raise_error
15
+ from .utils import closest_resolution
12
16
 
13
17
 
14
18
  def get_xfm(
@@ -89,3 +93,71 @@ def get_xfm(
89
93
  f.write(chunk)
90
94
 
91
95
  return xfm_file_path
96
+
97
+
98
+ def get_template(
99
+ space: str,
100
+ target_data: Dict[str, Any],
101
+ extra_input: Optional[Dict[str, Any]] = None,
102
+ ) -> nib.Nifti1Image:
103
+ """Get template for the space, tailored for the target image.
104
+
105
+ Parameters
106
+ ----------
107
+ space : str
108
+ The name of the template space.
109
+ target_data : dict
110
+ The corresponding item of the data object for which the template space
111
+ will be loaded.
112
+ extra_input : dict, optional
113
+ The other fields in the data object. Useful for accessing other data
114
+ types (default None).
115
+
116
+ Returns
117
+ -------
118
+ Nifti1Image
119
+ The template image.
120
+
121
+ Raises
122
+ ------
123
+ ValueError
124
+ If ``space`` is invalid.
125
+ RuntimeError
126
+ If template in the required resolution is not found.
127
+
128
+ """
129
+ # Check for invalid space; early check to raise proper error
130
+ if space not in tflow.templates():
131
+ raise_error(f"Unknown template space: {space}")
132
+
133
+ # Get the min of the voxels sizes and use it as the resolution
134
+ target_img = target_data["data"]
135
+ resolution = np.min(target_img.header.get_zooms()[:3]).astype(int)
136
+
137
+ # Fetch available resolutions for the template
138
+ available_resolutions = [
139
+ int(min(val["zooms"]))
140
+ for val in tflow.get_metadata(space)["res"].values()
141
+ ]
142
+ # Use the closest resolution if desired resolution is not found
143
+ resolution = closest_resolution(resolution, available_resolutions)
144
+
145
+ logger.info(f"Downloading template {space} in resolution {resolution}")
146
+ # Retrieve template
147
+ try:
148
+ template_path = tflow.get(
149
+ space,
150
+ raise_empty=True,
151
+ resolution=resolution,
152
+ suffix="T1w",
153
+ desc=None,
154
+ extension="nii.gz",
155
+ )
156
+ except Exception: # noqa: BLE001
157
+ raise_error(
158
+ f"Template {space} not found in the required resolution "
159
+ f"{resolution}",
160
+ klass=RuntimeError,
161
+ )
162
+ else:
163
+ return nib.load(template_path) # type: ignore
@@ -0,0 +1,69 @@
1
+ """Provide tests for template spaces."""
2
+
3
+ # Authors: Synchon Mandal <s.mandal@fz-juelich.de>
4
+ # License: AGPL
5
+
6
+ import socket
7
+ from pathlib import Path
8
+
9
+ import nibabel as nib
10
+ import pytest
11
+
12
+ from junifer.data import get_template, get_xfm
13
+ from junifer.datareader import DefaultDataReader
14
+ from junifer.testing.datagrabbers import OasisVBMTestingDataGrabber
15
+
16
+
17
+ @pytest.mark.skipif(
18
+ socket.gethostname() != "juseless",
19
+ reason="only for juseless",
20
+ )
21
+ def test_get_xfm(tmp_path: Path) -> None:
22
+ """Test warp file fetching.
23
+
24
+ Parameters
25
+ ----------
26
+ tmp_path : pathlib.Path
27
+ The path to the test directory.
28
+
29
+ """
30
+ xfm_path = get_xfm(
31
+ src="MNI152NLin6Asym", dst="MNI152NLin2009cAsym", xfms_dir=tmp_path
32
+ )
33
+ assert isinstance(xfm_path, Path)
34
+
35
+
36
+ def test_get_template() -> None:
37
+ """Test tailored template image fetch."""
38
+ with OasisVBMTestingDataGrabber() as dg:
39
+ element = dg["sub-01"]
40
+ element_data = DefaultDataReader().fit_transform(element)
41
+ vbm_gm = element_data["VBM_GM"]
42
+ # Get tailored parcellation
43
+ tailored_template = get_template(
44
+ space=vbm_gm["space"], target_data=vbm_gm
45
+ )
46
+ assert isinstance(tailored_template, nib.Nifti1Image)
47
+
48
+
49
+ def test_get_template_invalid_space() -> None:
50
+ """Test invalid space check for template fetch."""
51
+ with OasisVBMTestingDataGrabber() as dg:
52
+ element = dg["sub-01"]
53
+ element_data = DefaultDataReader().fit_transform(element)
54
+ vbm_gm = element_data["VBM_GM"]
55
+ # Get tailored parcellation
56
+ with pytest.raises(ValueError, match="Unknown template space:"):
57
+ _ = get_template(space="andromeda", target_data=vbm_gm)
58
+
59
+
60
+ def test_get_template_closest_resolution() -> None:
61
+ """Test closest resolution check for template fetch."""
62
+ with OasisVBMTestingDataGrabber() as dg:
63
+ element = dg["sub-01"]
64
+ element_data = DefaultDataReader().fit_transform(element)
65
+ vbm_gm = element_data["VBM_GM"]
66
+ # Change header resolution to fetch closest resolution
67
+ element_data["VBM_GM"]["data"].header.set_zooms((3, 3, 3))
68
+ template = get_template(space=vbm_gm["space"], target_data=vbm_gm)
69
+ assert isinstance(template, nib.Nifti1Image)
@@ -8,14 +8,14 @@ from ..utils.logging import logger
8
8
 
9
9
 
10
10
  def closest_resolution(
11
- resolution: Optional[float],
11
+ resolution: Optional[Union[float, int]],
12
12
  valid_resolution: Union[List[float], List[int], np.ndarray],
13
13
  ) -> Union[float, int]:
14
14
  """Find the closest resolution.
15
15
 
16
16
  Parameters
17
17
  ----------
18
- resolution : float, optional
18
+ resolution : float or int, optional
19
19
  The given resolution. If None, will return the highest resolution
20
20
  (default None).
21
21
  valid_resolution : list of float or int, or np.ndarray
@@ -0,0 +1,244 @@
1
+ """Provide class for warping BOLD to other template spaces."""
2
+
3
+ # Authors: Synchon Mandal <s.mandal@fz-juelich.de>
4
+ # License: AGPL
5
+
6
+ from typing import (
7
+ Any,
8
+ ClassVar,
9
+ Dict,
10
+ List,
11
+ Optional,
12
+ Tuple,
13
+ Union,
14
+ )
15
+
16
+ import nibabel as nib
17
+ from templateflow import api as tflow
18
+
19
+ from ..api.decorators import register_preprocessor
20
+ from ..data import get_template, get_xfm
21
+ from ..pipeline import WorkDirManager
22
+ from ..utils import logger, raise_error, run_ext_cmd
23
+ from .ants.ants_apply_transforms_warper import _AntsApplyTransformsWarper
24
+ from .base import BasePreprocessor
25
+ from .fsl.apply_warper import _ApplyWarper
26
+
27
+
28
+ @register_preprocessor
29
+ class BOLDWarper(BasePreprocessor):
30
+ """Class for warping BOLD NIfTI images.
31
+
32
+ Parameters
33
+ ----------
34
+ reference : str
35
+ The data type to use as reference for warping, can be either a data
36
+ type like "T1w" or a template space like "MNI152NLin2009cAsym".
37
+
38
+ Raises
39
+ ------
40
+ ValueError
41
+ If ``reference`` is invalid.
42
+
43
+ """
44
+
45
+ _EXT_DEPENDENCIES: ClassVar[
46
+ List[Dict[str, Union[str, bool, List[str]]]]
47
+ ] = [
48
+ {
49
+ "name": "fsl",
50
+ "optional": True,
51
+ "commands": ["flirt", "applywarp"],
52
+ },
53
+ {
54
+ "name": "ants",
55
+ "optional": True,
56
+ "commands": ["ResampleImage", "antsApplyTransforms"],
57
+ },
58
+ ]
59
+
60
+ def __init__(self, reference: str) -> None:
61
+ """Initialize the class."""
62
+ self.ref = reference
63
+ # Initialize superclass based on reference
64
+ if self.ref == "T1w":
65
+ super().__init__(
66
+ on="BOLD", required_data_types=["BOLD", self.ref, "Warp"]
67
+ )
68
+ elif self.ref in tflow.templates():
69
+ super().__init__(on="BOLD", required_data_types=["BOLD"])
70
+ else:
71
+ raise_error(f"Unknown reference: {self.ref}")
72
+
73
+ def get_valid_inputs(self) -> List[str]:
74
+ """Get valid data types for input.
75
+
76
+ Returns
77
+ -------
78
+ list of str
79
+ The list of data types that can be used as input for this
80
+ preprocessor.
81
+
82
+ """
83
+ return ["BOLD"]
84
+
85
+ def get_output_type(self, input: List[str]) -> List[str]:
86
+ """Get output type.
87
+
88
+ Parameters
89
+ ----------
90
+ input : list of str
91
+ The input to the preprocessor. The list must contain the
92
+ available Junifer Data dictionary keys.
93
+
94
+ Returns
95
+ -------
96
+ list of str
97
+ The updated list of available Junifer Data object keys after
98
+ the pipeline step.
99
+
100
+ """
101
+ # Does not add any new keys
102
+ return input
103
+
104
+ def preprocess(
105
+ self,
106
+ input: Dict[str, Any],
107
+ extra_input: Optional[Dict[str, Any]] = None,
108
+ ) -> Tuple[str, Dict[str, Any]]:
109
+ """Preprocess.
110
+
111
+ Parameters
112
+ ----------
113
+ input : dict
114
+ The BOLD input from the Junifer Data object.
115
+ extra_input : dict, optional
116
+ The other fields in the Junifer Data object. Must include the
117
+ ``Warp`` and ``ref`` value's keys if native space transformation is
118
+ needed.
119
+
120
+ Returns
121
+ -------
122
+ str
123
+ The key to store the output in the Junifer Data object.
124
+ dict
125
+ The computed result as dictionary. This will be stored in the
126
+ Junifer Data object under the key ``data`` of the data type.
127
+
128
+ Raises
129
+ ------
130
+ ValueError
131
+ If ``extra_input`` is None when transforming to native space
132
+ i.e., using "T1w" as reference.
133
+ RuntimeError
134
+ If warp / transformation file extension is not ".mat" or ".h5"
135
+ when transforming to native space or
136
+ if the BOLD data is in the correct space and does not require
137
+ warping.
138
+
139
+ """
140
+ logger.info(f"Warping BOLD to {self.ref} space using BOLDWarper")
141
+ # Transform to native space
142
+ if self.ref == "T1w":
143
+ # Check for extra inputs
144
+ if extra_input is None:
145
+ raise_error(
146
+ "No extra input provided, requires `Warp` and "
147
+ f"`{self.ref}` data types in particular."
148
+ )
149
+ # Check for warp file type to use correct tool
150
+ warp_file_ext = extra_input["Warp"]["path"].suffix
151
+ if warp_file_ext == ".mat":
152
+ logger.debug("Using FSL with BOLDWarper")
153
+ # Initialize ApplyWarper for computation
154
+ apply_warper = _ApplyWarper(reference=self.ref, on="BOLD")
155
+ # Replace original BOLD data with warped BOLD data
156
+ _, input = apply_warper.preprocess(
157
+ input=input,
158
+ extra_input=extra_input,
159
+ )
160
+ elif warp_file_ext == ".h5":
161
+ logger.debug("Using ANTs with BOLDWarper")
162
+ # Initialize AntsApplyTransformsWarper for computation
163
+ ants_apply_transforms_warper = _AntsApplyTransformsWarper(
164
+ reference=self.ref, on="BOLD"
165
+ )
166
+ # Replace original BOLD data with warped BOLD data
167
+ _, input = ants_apply_transforms_warper.preprocess(
168
+ input=input,
169
+ extra_input=extra_input,
170
+ )
171
+ else:
172
+ raise_error(
173
+ msg=(
174
+ "Unknown warp / transformation file extension: "
175
+ f"{warp_file_ext}"
176
+ ),
177
+ klass=RuntimeError,
178
+ )
179
+ # Transform to template space
180
+ else:
181
+ # Check pre-requirements for space manipulation
182
+ if self.ref == input["space"]:
183
+ raise_error(
184
+ (
185
+ f"Skipped warping as the BOLD data is in {self.ref} "
186
+ "space which would mean that you can remove the "
187
+ "BOLDWarper from the preprocess step."
188
+ ),
189
+ klass=RuntimeError,
190
+ )
191
+ else:
192
+ # Get xfm file
193
+ xfm_file_path = get_xfm(src=input["space"], dst=self.ref)
194
+ # Get template space image
195
+ template_space_img = get_template(
196
+ space=self.ref,
197
+ target_data=input,
198
+ extra_input=None,
199
+ )
200
+
201
+ # Create component-scoped tempdir
202
+ tempdir = WorkDirManager().get_tempdir(prefix="boldwarper")
203
+ # Create element-scoped tempdir so that warped BOLD is
204
+ # available later as nibabel stores file path reference for
205
+ # loading on computation
206
+ element_tempdir = WorkDirManager().get_element_tempdir(
207
+ prefix="boldwarper"
208
+ )
209
+
210
+ # Save template
211
+ template_space_img_path = tempdir / f"{self.ref}_T1w.nii.gz"
212
+ nib.save(template_space_img, template_space_img_path)
213
+
214
+ # Create a tempfile for warped output
215
+ warped_bold_path = (
216
+ element_tempdir
217
+ / f"bold_warped_from_{input['space']}_to_{self.ref}.nii.gz"
218
+ )
219
+
220
+ logger.debug(
221
+ f"Using ANTs to warp BOLD "
222
+ f"from {input['space']} to {self.ref}"
223
+ )
224
+ # Set antsApplyTransforms command
225
+ apply_transforms_cmd = [
226
+ "antsApplyTransforms",
227
+ "-d 3",
228
+ "-e 3",
229
+ "-n LanczosWindowedSinc",
230
+ f"-i {input['path'].resolve()}",
231
+ f"-r {template_space_img_path.resolve()}",
232
+ f"-t {xfm_file_path.resolve()}",
233
+ f"-o {warped_bold_path.resolve()}",
234
+ ]
235
+ # Call antsApplyTransforms
236
+ run_ext_cmd(
237
+ name="antsApplyTransforms", cmd=apply_transforms_cmd
238
+ )
239
+
240
+ # Modify target data
241
+ input["data"] = nib.load(warped_bold_path)
242
+ input["space"] = self.ref
243
+
244
+ return "BOLD", input
@@ -7,6 +7,7 @@ import socket
7
7
  from typing import TYPE_CHECKING, List, Tuple
8
8
 
9
9
  import pytest
10
+ from numpy.testing import assert_array_equal, assert_raises
10
11
 
11
12
  from junifer.datagrabber import DataladHCP1200, DMCC13Benchmark
12
13
  from junifer.datareader import DefaultDataReader
@@ -83,7 +84,7 @@ def test_BOLDWarper_get_output_type(input_: List[str]) -> None:
83
84
  socket.gethostname() != "juseless",
84
85
  reason="only for juseless",
85
86
  )
86
- def test_BOLDWarper_preprocess(
87
+ def test_BOLDWarper_preprocess_to_native(
87
88
  datagrabber: "BaseDataGrabber", element: Tuple[str, ...]
88
89
  ) -> None:
89
90
  """Test BOLDWarper preprocess.
@@ -106,3 +107,70 @@ def test_BOLDWarper_preprocess(
106
107
  )
107
108
  assert data_type == "BOLD"
108
109
  assert isinstance(data, dict)
110
+
111
+
112
+ @pytest.mark.parametrize(
113
+ "datagrabber, element, space",
114
+ [
115
+ [
116
+ DMCC13Benchmark(
117
+ types=["BOLD"],
118
+ sessions=["wave1bas"],
119
+ tasks=["Rest"],
120
+ phase_encodings=["AP"],
121
+ runs=["1"],
122
+ native_t1w=False,
123
+ ),
124
+ ("f9057kp", "wave1bas", "Rest", "AP", "1"),
125
+ "MNI152NLin2009aAsym",
126
+ ],
127
+ [
128
+ DMCC13Benchmark(
129
+ types=["BOLD"],
130
+ sessions=["wave1bas"],
131
+ tasks=["Rest"],
132
+ phase_encodings=["AP"],
133
+ runs=["1"],
134
+ native_t1w=False,
135
+ ),
136
+ ("f9057kp", "wave1bas", "Rest", "AP", "1"),
137
+ "MNI152NLin6Asym",
138
+ ],
139
+ ],
140
+ )
141
+ @pytest.mark.skipif(
142
+ _check_ants() is False, reason="requires ANTs to be in PATH"
143
+ )
144
+ @pytest.mark.skipif(
145
+ socket.gethostname() != "juseless",
146
+ reason="only for juseless",
147
+ )
148
+ def test_BOLDWarper_preprocess_to_multi_mni(
149
+ datagrabber: "BaseDataGrabber", element: Tuple[str, ...], space: str
150
+ ) -> None:
151
+ """Test BOLDWarper preprocess.
152
+
153
+ Parameters
154
+ ----------
155
+ datagrabber : DataGrabber-like object
156
+ The parametrized DataGrabber objects.
157
+ element : tuple of str
158
+ The parametrized elements.
159
+ space : str
160
+ The parametrized template space to transform to.
161
+
162
+ """
163
+ with datagrabber as dg:
164
+ # Read data
165
+ element_data = DefaultDataReader().fit_transform(dg[element])
166
+ pre_xfm_data = element_data["BOLD"]["data"].get_fdata().copy()
167
+ # Preprocess data
168
+ data_type, data = BOLDWarper(reference=space).preprocess(
169
+ input=element_data["BOLD"],
170
+ extra_input=element_data,
171
+ )
172
+ assert data_type == "BOLD"
173
+ assert isinstance(data, dict)
174
+ assert data["space"] == space
175
+ with assert_raises(AssertionError):
176
+ assert_array_equal(pre_xfm_data, data["data"])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: junifer
3
- Version: 0.0.4.dev565
3
+ Version: 0.0.4.dev587
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>
@@ -40,6 +40,7 @@ Requires-Dist: importlib_metadata; python_version < "3.10"
40
40
  Requires-Dist: h5py<3.10,>=3.8.0
41
41
  Requires-Dist: httpx[http2]==0.26.0
42
42
  Requires-Dist: tqdm==4.66.1
43
+ Requires-Dist: templateflow>=23.0.0
43
44
  Provides-Extra: all
44
45
  Requires-Dist: bctpy==0.6.0; extra == "all"
45
46
  Requires-Dist: neurokit2>=0.1.7; extra == "all"
@@ -106,9 +106,11 @@ docs/changes/newsfragments/293.misc
106
106
  docs/changes/newsfragments/294.misc
107
107
  docs/changes/newsfragments/295.feature
108
108
  docs/changes/newsfragments/297.feature
109
+ docs/changes/newsfragments/298.feature
109
110
  docs/changes/newsfragments/300.doc
110
111
  docs/changes/newsfragments/300.enh
111
112
  docs/changes/newsfragments/300.misc
113
+ docs/changes/newsfragments/302.enh
112
114
  docs/extending/coordinates.rst
113
115
  docs/extending/datagrabber.rst
114
116
  docs/extending/extension.rst
@@ -10,6 +10,7 @@ ruamel.yaml<0.18,>=0.17
10
10
  h5py<3.10,>=3.8.0
11
11
  httpx[http2]==0.26.0
12
12
  tqdm==4.66.1
13
+ templateflow>=23.0.0
13
14
 
14
15
  [:python_version < "3.10"]
15
16
  importlib_metadata
@@ -48,6 +48,7 @@ dependencies = [
48
48
  "h5py>=3.8.0,<3.10",
49
49
  "httpx[http2]==0.26.0",
50
50
  "tqdm==4.66.1",
51
+ "templateflow>=23.0.0",
51
52
  ]
52
53
  dynamic = ["version"]
53
54
 
@@ -188,8 +189,10 @@ known-third-party =[
188
189
  "nilearn",
189
190
  "sqlalchemy",
190
191
  "yaml",
192
+ "importlib_metadata",
191
193
  "httpx",
192
194
  "tqdm",
195
+ "templateflow",
193
196
  "bct",
194
197
  "neurokit2",
195
198
  "pytest",
@@ -1,30 +0,0 @@
1
- """Provide tests for template spaces."""
2
-
3
- # Authors: Synchon Mandal <s.mandal@fz-juelich.de>
4
- # License: AGPL
5
-
6
- import socket
7
- from pathlib import Path
8
-
9
- import pytest
10
-
11
- from junifer.data import get_xfm
12
-
13
-
14
- @pytest.mark.skipif(
15
- socket.gethostname() != "juseless",
16
- reason="only for juseless",
17
- )
18
- def test_get_xfm(tmp_path: Path) -> None:
19
- """Test warp file fetching.
20
-
21
- Parameters
22
- ----------
23
- tmp_path : pathlib.Path
24
- The path to the test directory.
25
-
26
- """
27
- xfm_path = get_xfm(
28
- src="MNI152NLin6Asym", dst="MNI152NLin2009cAsym", xfms_dir=tmp_path
29
- )
30
- assert isinstance(xfm_path, Path)