junifer 0.0.4.dev663__tar.gz → 0.0.4.dev691__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 (421) hide show
  1. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/PKG-INFO +1 -1
  2. junifer-0.0.4.dev691/docs/changes/newsfragments/301.feature +1 -0
  3. junifer-0.0.4.dev691/docs/changes/newsfragments/301.removal +1 -0
  4. junifer-0.0.4.dev691/docs/changes/newsfragments/312.bugfix +1 -0
  5. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/_version.py +2 -2
  6. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/queue_context/htcondor_adapter.py +2 -2
  7. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/queue_context/tests/test_htcondor_adapter.py +2 -2
  8. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/preprocess/__init__.py +1 -0
  9. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/preprocess/bold_warper.py +4 -0
  10. junifer-0.0.4.dev691/junifer/preprocess/warping/__init__.py +6 -0
  11. junifer-0.0.4.dev691/junifer/preprocess/warping/_ants_warper.py +167 -0
  12. junifer-0.0.4.dev691/junifer/preprocess/warping/_fsl_warper.py +109 -0
  13. junifer-0.0.4.dev691/junifer/preprocess/warping/space_warper.py +203 -0
  14. junifer-0.0.4.dev691/junifer/preprocess/warping/tests/test_space_warper.py +198 -0
  15. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer.egg-info/PKG-INFO +1 -1
  16. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer.egg-info/SOURCES.txt +8 -0
  17. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  18. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  19. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
  20. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
  21. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  22. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
  23. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/.github/dependabot.yml +0 -0
  24. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/.github/pull_request_template.md +0 -0
  25. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/.github/workflows/ci-docs.yml +0 -0
  26. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/.github/workflows/ci.yml +0 -0
  27. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/.github/workflows/docs-preview.yml +0 -0
  28. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/.github/workflows/docs.yml +0 -0
  29. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/.github/workflows/lint.yml +0 -0
  30. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/.github/workflows/pypi.yml +0 -0
  31. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/.gitignore +0 -0
  32. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/.gitmodules +0 -0
  33. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/.pre-commit-config.yaml +0 -0
  34. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/AUTHORS.rst +0 -0
  35. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/LICENSE.md +0 -0
  36. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/README.md +0 -0
  37. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/codecov.yml +0 -0
  38. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/conda-env.yml +0 -0
  39. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/Makefile +0 -0
  40. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/_static/css/custom.css +0 -0
  41. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/_static/js/custom.js +0 -0
  42. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/_templates/versions.html +0 -0
  43. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/api/api.rst +0 -0
  44. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/api/configs.rst +0 -0
  45. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/api/data.rst +0 -0
  46. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/api/datagrabbers.rst +0 -0
  47. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/api/datareaders.rst +0 -0
  48. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/api/index.rst +0 -0
  49. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/api/markers.rst +0 -0
  50. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/api/nilearn.rst +0 -0
  51. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/api/onthefly.rst +0 -0
  52. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/api/pipeline.rst +0 -0
  53. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/api/preprocessing.rst +0 -0
  54. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/api/stats.rst +0 -0
  55. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/api/storage.rst +0 -0
  56. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/api/testing.rst +0 -0
  57. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/api/utils.rst +0 -0
  58. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/builtin.rst +0 -0
  59. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/contributors.inc +0 -0
  60. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/.gitignore +0 -0
  61. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/145.feature +0 -0
  62. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/182.enh +0 -0
  63. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/224.bugfix +0 -0
  64. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/233.bugfix +0 -0
  65. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/240.feature +0 -0
  66. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/245.change +0 -0
  67. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/245.feature +0 -0
  68. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/247.doc +0 -0
  69. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/248.change +0 -0
  70. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/249.feature +0 -0
  71. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/250.feature +0 -0
  72. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/251.doc +0 -0
  73. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/252.change +0 -0
  74. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/252.feature +0 -0
  75. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/253.misc +0 -0
  76. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/254.feature +0 -0
  77. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/258.enh +0 -0
  78. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/259.enh +0 -0
  79. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/260.enh +0 -0
  80. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/261.misc +0 -0
  81. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/262.misc +0 -0
  82. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/263.change +0 -0
  83. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/264.feature +0 -0
  84. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/265.feature +0 -0
  85. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/266.feature +0 -0
  86. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/267.feature +0 -0
  87. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/268.change +0 -0
  88. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/268.enh +0 -0
  89. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/269.misc +0 -0
  90. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/270.misc +0 -0
  91. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/271.feature +0 -0
  92. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/272.bugfix +0 -0
  93. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/274.bugfix +0 -0
  94. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/275.feature +0 -0
  95. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/276.bugfix +0 -0
  96. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/277.misc +0 -0
  97. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/278.bugfix +0 -0
  98. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/279.misc +0 -0
  99. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/280.bugfix +0 -0
  100. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/281.bugfix +0 -0
  101. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/281.misc +0 -0
  102. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/282.bugfix +0 -0
  103. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/283.bugfix +0 -0
  104. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/284.bugfix +0 -0
  105. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/286.bugfix +0 -0
  106. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/287.enh +0 -0
  107. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/288.misc +0 -0
  108. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/291.doc +0 -0
  109. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/293.enh +0 -0
  110. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/293.feature +0 -0
  111. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/293.misc +0 -0
  112. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/294.misc +0 -0
  113. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/295.feature +0 -0
  114. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/297.feature +0 -0
  115. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/298.feature +0 -0
  116. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/300.doc +0 -0
  117. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/300.enh +0 -0
  118. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/300.misc +0 -0
  119. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/302.enh +0 -0
  120. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/309.feature +0 -0
  121. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/310.change +0 -0
  122. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/310.enh +0 -0
  123. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/311.change +0 -0
  124. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/changes/newsfragments/311.enh +0 -0
  125. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/conf.py +0 -0
  126. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/contribution.rst +0 -0
  127. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/extending/coordinates.rst +0 -0
  128. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/extending/datagrabber.rst +0 -0
  129. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/extending/extension.rst +0 -0
  130. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/extending/index.rst +0 -0
  131. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/extending/marker.rst +0 -0
  132. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/extending/masks.rst +0 -0
  133. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/extending/parcellations.rst +0 -0
  134. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/faq.rst +0 -0
  135. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/help.rst +0 -0
  136. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/images/junifer_logo.png +0 -0
  137. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/index.rst +0 -0
  138. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/installation.rst +0 -0
  139. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/links.inc +0 -0
  140. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/maintaining.rst +0 -0
  141. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/redirect.html +0 -0
  142. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/sphinxext/gh_substitutions.py +0 -0
  143. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/starting.rst +0 -0
  144. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/understanding/data.rst +0 -0
  145. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/understanding/datagrabber.rst +0 -0
  146. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/understanding/datareader.rst +0 -0
  147. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/understanding/index.rst +0 -0
  148. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/understanding/marker.rst +0 -0
  149. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/understanding/pipeline.rst +0 -0
  150. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/understanding/preprocess.rst +0 -0
  151. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/understanding/storage.rst +0 -0
  152. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/using/codeless.rst +0 -0
  153. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/using/index.rst +0 -0
  154. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/using/masks.rst +0 -0
  155. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/using/queueing.rst +0 -0
  156. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/using/running.rst +0 -0
  157. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/docs/whats_new.rst +0 -0
  158. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/examples/README.rst +0 -0
  159. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/examples/norun_hcpfc_pearson.py +0 -0
  160. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/examples/norun_ukbvm_gmd.py +0 -0
  161. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/examples/run_compute_parcel_mean.py +0 -0
  162. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/examples/run_datagrabber_bids_datalad.py +0 -0
  163. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/examples/run_ets_rss_marker.py +0 -0
  164. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/examples/run_junifer_julearn.py +0 -0
  165. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/examples/run_run_gmd_mean.py +0 -0
  166. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/examples/yamls/gmd_mean.yaml +0 -0
  167. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
  168. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/examples/yamls/ukb_gmd_mean.yaml +0 -0
  169. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/ignore_words.txt +0 -0
  170. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/__init__.py +0 -0
  171. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/__init__.py +0 -0
  172. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/cli.py +0 -0
  173. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/decorators.py +0 -0
  174. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/functions.py +0 -0
  175. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/parser.py +0 -0
  176. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/queue_context/__init__.py +0 -0
  177. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/queue_context/queue_context_adapter.py +0 -0
  178. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
  179. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/res/afni/3dRSFC +0 -0
  180. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/res/afni/3dReHo +0 -0
  181. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/res/afni/afni +0 -0
  182. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/res/afni/run_afni_docker.sh +0 -0
  183. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/res/ants/ResampleImage +0 -0
  184. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/res/ants/antsApplyTransforms +0 -0
  185. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
  186. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/res/ants/run_ants_docker.sh +0 -0
  187. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/res/fsl/applywarp +0 -0
  188. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/res/fsl/flirt +0 -0
  189. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/res/fsl/img2imgcoord +0 -0
  190. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
  191. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/res/fsl/std2imgcoord +0 -0
  192. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/res/run_conda.sh +0 -0
  193. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/res/run_venv.sh +0 -0
  194. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/tests/data/gmd_mean.yaml +0 -0
  195. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/tests/data/gmd_mean_htcondor.yaml +0 -0
  196. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/tests/test_api_utils.py +0 -0
  197. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/tests/test_cli.py +0 -0
  198. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/tests/test_functions.py +0 -0
  199. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/tests/test_parser.py +0 -0
  200. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/api/utils.py +0 -0
  201. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/configs/__init__.py +0 -0
  202. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/configs/juseless/__init__.py +0 -0
  203. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
  204. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
  205. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
  206. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
  207. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
  208. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
  209. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
  210. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
  211. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
  212. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
  213. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
  214. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/VOIs/meta/AutobiographicalMemory_VOIs.txt +0 -0
  215. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/VOIs/meta/CogAC_VOIs.txt +0 -0
  216. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/VOIs/meta/CogAR_VOIs.txt +0 -0
  217. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/VOIs/meta/DMNBuckner_VOIs.txt +0 -0
  218. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/VOIs/meta/Dosenbach2010_MNI_VOIs.txt +0 -0
  219. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/VOIs/meta/Empathy_VOIs.txt +0 -0
  220. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/VOIs/meta/Motor_VOIs.txt +0 -0
  221. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/VOIs/meta/MultiTask_VOIs.txt +0 -0
  222. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/VOIs/meta/PhysioStress_VOIs.txt +0 -0
  223. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/VOIs/meta/Power2011_MNI_VOIs.txt +0 -0
  224. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/VOIs/meta/Power2013_MNI_VOIs.tsv +0 -0
  225. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/VOIs/meta/Rew_VOIs.txt +0 -0
  226. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/VOIs/meta/Somatosensory_VOIs.txt +0 -0
  227. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/VOIs/meta/ToM_VOIs.txt +0 -0
  228. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/VOIs/meta/VigAtt_VOIs.txt +0 -0
  229. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/VOIs/meta/WM_VOIs.txt +0 -0
  230. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/VOIs/meta/eMDN_VOIs.txt +0 -0
  231. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/VOIs/meta/eSAD_VOIs.txt +0 -0
  232. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/VOIs/meta/extDMN_VOIs.txt +0 -0
  233. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/__init__.py +0 -0
  234. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/coordinates.py +0 -0
  235. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean.nii.gz +0 -0
  236. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean_3mm.nii.gz +0 -0
  237. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/masks/vickery-patil/GMprob0.2_cortex_3mm_NA_rm.nii.gz +0 -0
  238. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/masks.py +0 -0
  239. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/parcellations.py +0 -0
  240. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/template_spaces.py +0 -0
  241. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/tests/test_coordinates.py +0 -0
  242. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/tests/test_data_utils.py +0 -0
  243. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/tests/test_masks.py +0 -0
  244. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/tests/test_parcellations.py +0 -0
  245. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/tests/test_template_spaces.py +0 -0
  246. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/data/utils.py +0 -0
  247. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/__init__.py +0 -0
  248. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/aomic/__init__.py +0 -0
  249. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/aomic/id1000.py +0 -0
  250. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/aomic/piop1.py +0 -0
  251. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/aomic/piop2.py +0 -0
  252. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
  253. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
  254. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
  255. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/base.py +0 -0
  256. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/datalad_base.py +0 -0
  257. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
  258. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/hcp1200/__init__.py +0 -0
  259. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
  260. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
  261. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
  262. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/multiple.py +0 -0
  263. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/pattern.py +0 -0
  264. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/pattern_datalad.py +0 -0
  265. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/tests/test_base.py +0 -0
  266. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/tests/test_datagrabber_utils.py +0 -0
  267. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
  268. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
  269. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/tests/test_multiple.py +0 -0
  270. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/tests/test_pattern.py +0 -0
  271. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
  272. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datagrabber/utils.py +0 -0
  273. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datareader/__init__.py +0 -0
  274. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datareader/default.py +0 -0
  275. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/datareader/tests/test_default_reader.py +0 -0
  276. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/external/__init__.py +0 -0
  277. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/external/h5io/h5io/__init__.py +0 -0
  278. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/external/h5io/h5io/_h5io.py +0 -0
  279. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/external/h5io/h5io/_version.py +0 -0
  280. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/external/h5io/h5io/chunked_array.py +0 -0
  281. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/external/h5io/h5io/chunked_list.py +0 -0
  282. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/external/nilearn/__init__.py +0 -0
  283. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
  284. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
  285. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/__init__.py +0 -0
  286. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/base.py +0 -0
  287. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/collection.py +0 -0
  288. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/complexity/__init__.py +0 -0
  289. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/complexity/complexity_base.py +0 -0
  290. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/complexity/hurst_exponent.py +0 -0
  291. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
  292. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/complexity/perm_entropy.py +0 -0
  293. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/complexity/range_entropy.py +0 -0
  294. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/complexity/range_entropy_auc.py +0 -0
  295. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/complexity/sample_entropy.py +0 -0
  296. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
  297. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
  298. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
  299. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
  300. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
  301. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
  302. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
  303. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
  304. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
  305. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/ets_rss.py +0 -0
  306. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/falff/__init__.py +0 -0
  307. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/falff/_afni_falff.py +0 -0
  308. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/falff/_junifer_falff.py +0 -0
  309. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/falff/falff_base.py +0 -0
  310. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/falff/falff_parcels.py +0 -0
  311. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/falff/falff_spheres.py +0 -0
  312. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
  313. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
  314. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/functional_connectivity/__init__.py +0 -0
  315. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
  316. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
  317. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
  318. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
  319. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
  320. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
  321. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
  322. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
  323. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
  324. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
  325. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
  326. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
  327. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/parcel_aggregation.py +0 -0
  328. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/reho/__init__.py +0 -0
  329. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/reho/_afni_reho.py +0 -0
  330. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/reho/_junifer_reho.py +0 -0
  331. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/reho/reho_base.py +0 -0
  332. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/reho/reho_parcels.py +0 -0
  333. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/reho/reho_spheres.py +0 -0
  334. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
  335. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
  336. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/sphere_aggregation.py +0 -0
  337. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/temporal_snr/__init__.py +0 -0
  338. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
  339. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
  340. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
  341. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
  342. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
  343. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
  344. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/tests/test_collection.py +0 -0
  345. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/tests/test_ets_rss.py +0 -0
  346. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/tests/test_marker_utils.py +0 -0
  347. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/tests/test_markers_base.py +0 -0
  348. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
  349. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
  350. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/markers/utils.py +0 -0
  351. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/onthefly/__init__.py +0 -0
  352. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/onthefly/read_transform.py +0 -0
  353. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/onthefly/tests/test_read_transform.py +0 -0
  354. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/pipeline/__init__.py +0 -0
  355. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/pipeline/pipeline_step_mixin.py +0 -0
  356. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/pipeline/registry.py +0 -0
  357. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/pipeline/singleton.py +0 -0
  358. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
  359. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/pipeline/tests/test_registry.py +0 -0
  360. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
  361. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
  362. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/pipeline/update_meta_mixin.py +0 -0
  363. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/pipeline/utils.py +0 -0
  364. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/pipeline/workdir_manager.py +0 -0
  365. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/preprocess/ants/__init__.py +0 -0
  366. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/preprocess/ants/ants_apply_transforms_warper.py +0 -0
  367. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/preprocess/ants/tests/test_ants_apply_transforms_warper.py +0 -0
  368. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/preprocess/base.py +0 -0
  369. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/preprocess/confounds/__init__.py +0 -0
  370. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
  371. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
  372. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/preprocess/fsl/__init__.py +0 -0
  373. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/preprocess/fsl/apply_warper.py +0 -0
  374. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/preprocess/fsl/tests/test_apply_warper.py +0 -0
  375. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/preprocess/tests/test_bold_warper.py +0 -0
  376. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
  377. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/stats.py +0 -0
  378. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/storage/__init__.py +0 -0
  379. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/storage/base.py +0 -0
  380. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/storage/hdf5.py +0 -0
  381. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/storage/pandas_base.py +0 -0
  382. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/storage/sqlite.py +0 -0
  383. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/storage/tests/test_hdf5.py +0 -0
  384. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/storage/tests/test_pandas_base.py +0 -0
  385. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/storage/tests/test_sqlite.py +0 -0
  386. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/storage/tests/test_storage_base.py +0 -0
  387. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/storage/tests/test_utils.py +0 -0
  388. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/storage/utils.py +0 -0
  389. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/testing/__init__.py +0 -0
  390. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
  391. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/testing/datagrabbers.py +0 -0
  392. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/testing/registry.py +0 -0
  393. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
  394. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
  395. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
  396. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/testing/tests/test_testing_registry.py +0 -0
  397. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/testing/utils.py +0 -0
  398. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/tests/test_main.py +0 -0
  399. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/tests/test_stats.py +0 -0
  400. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/utils/__init__.py +0 -0
  401. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/utils/fs.py +0 -0
  402. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/utils/helpers.py +0 -0
  403. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/utils/logging.py +0 -0
  404. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/utils/tests/test_fs.py +0 -0
  405. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/utils/tests/test_helpers.py +0 -0
  406. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer/utils/tests/test_logging.py +0 -0
  407. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer.egg-info/dependency_links.txt +0 -0
  408. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer.egg-info/entry_points.txt +0 -0
  409. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer.egg-info/requires.txt +0 -0
  410. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/junifer.egg-info/top_level.txt +0 -0
  411. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/pyproject.toml +0 -0
  412. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/setup.cfg +0 -0
  413. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/setup.py +0 -0
  414. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/tools/create_aomic1000_example_dataset.py +0 -0
  415. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/tools/create_aomicpiop1_example_dataset.py +0 -0
  416. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/tools/create_aomicpiop2_example_dataset.py +0 -0
  417. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/tools/create_bids_example_dataset.py +0 -0
  418. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/tools/create_bids_example_dataset_sessions.py +0 -0
  419. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
  420. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/tools/create_hcp1200_example_dataset.py +0 -0
  421. {junifer-0.0.4.dev663 → junifer-0.0.4.dev691}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: junifer
3
- Version: 0.0.4.dev663
3
+ Version: 0.0.4.dev691
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>
@@ -0,0 +1 @@
1
+ Introduce :class:`.SpaceWarper` for warping ``T1w``, ``BOLD``, ``VBM_GM``, ``VBM_WM``, ``fALFF``, ``GCOR`` and ``LCOR`` data to other spaces by `Synchon Mandal`_
@@ -0,0 +1 @@
1
+ Deprecate :class:`.BOLDWarper` and mark for removal in v0.0.4 by `Synchon Mandal`_
@@ -0,0 +1 @@
1
+ Fix :class:`.HTCondorAdapter`'s script generation to use double quotes instead of single quotes for HTCondor's ``VARS`` 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.dev663'
16
- __version_tuple__ = version_tuple = (0, 0, 4, 'dev663')
15
+ __version__ = version = '0.0.4.dev691'
16
+ __version_tuple__ = version_tuple = (0, 0, 4, 'dev691')
@@ -274,8 +274,8 @@ class HTCondorAdapter(QueueContextAdapter):
274
274
  )
275
275
  fixed += (
276
276
  f"JOB run{idx} {self._submit_run_path}\n"
277
- f"VARS run{idx} element='{str_element}' "
278
- f"log_element='{log_element}'\n\n"
277
+ f'VARS run{idx} element="{str_element}" ' # needs to be
278
+ f'log_element="{log_element}"\n\n' # double quoted
279
279
  )
280
280
  var = ""
281
281
  if self._collect == "yes":
@@ -139,13 +139,13 @@ def test_HTCondorAdapter_run_collect(
139
139
  (
140
140
  [("sub01", "ses01")],
141
141
  "yes",
142
- "element='sub01,ses01' log_element='sub01-ses01'",
142
+ 'element="sub01,ses01" log_element="sub01-ses01"',
143
143
  ),
144
144
  (["sub01"], "on_success_only", "JOB collect"),
145
145
  (
146
146
  [("sub01", "ses01")],
147
147
  "on_success_only",
148
- "element='sub01,ses01' log_element='sub01-ses01'",
148
+ 'element="sub01,ses01" log_element="sub01-ses01"',
149
149
  ),
150
150
  ],
151
151
  )
@@ -8,3 +8,4 @@
8
8
  from .base import BasePreprocessor
9
9
  from .confounds import fMRIPrepConfoundRemover
10
10
  from .bold_warper import BOLDWarper
11
+ from .warping import SpaceWarper
@@ -30,6 +30,10 @@ from .fsl.apply_warper import _ApplyWarper
30
30
  class BOLDWarper(BasePreprocessor):
31
31
  """Class for warping BOLD NIfTI images.
32
32
 
33
+ .. deprecated:: 0.0.3
34
+ `BOLDWarper` will be removed in v0.0.4, it is replaced by
35
+ `SpaceWarper` because the latter works also with T1w data.
36
+
33
37
  Parameters
34
38
  ----------
35
39
  using : {"fsl", "ants"}
@@ -0,0 +1,6 @@
1
+ """Provide imports for warping sub-package."""
2
+
3
+ # Authors: Synchon Mandal <s.mandal@fz-juelich.de>
4
+ # License: AGPL
5
+
6
+ from .space_warper import SpaceWarper
@@ -0,0 +1,167 @@
1
+ """Provide class for space warping via ANTs antsApplyTransforms."""
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
+ Set,
12
+ Union,
13
+ )
14
+
15
+ import nibabel as nib
16
+ import numpy as np
17
+
18
+ from ...data import get_template, get_xfm
19
+ from ...pipeline import WorkDirManager
20
+ from ...utils import logger, run_ext_cmd
21
+
22
+
23
+ class ANTsWarper:
24
+ """Class for space warping via ANTs antsApplyTransforms.
25
+
26
+ This class uses ANTs' ``ResampleImage`` for resampling (if required) and
27
+ ``antsApplyTransforms`` for transformation.
28
+
29
+ """
30
+
31
+ _EXT_DEPENDENCIES: ClassVar[List[Dict[str, Union[str, List[str]]]]] = [
32
+ {
33
+ "name": "ants",
34
+ "commands": ["ResampleImage", "antsApplyTransforms"],
35
+ },
36
+ ]
37
+
38
+ _DEPENDENCIES: ClassVar[Set[str]] = {"numpy", "nibabel"}
39
+
40
+ def preprocess(
41
+ self,
42
+ input: Dict[str, Any],
43
+ extra_input: Dict[str, Any],
44
+ reference: str,
45
+ ) -> Dict[str, Any]:
46
+ """Preprocess using ANTs.
47
+
48
+ Parameters
49
+ ----------
50
+ input : dict
51
+ A single input from the Junifer Data object in which to preprocess.
52
+ extra_input : dict
53
+ The other fields in the Junifer Data object. Should have ``T1w``
54
+ and ``Warp`` data types.
55
+ reference : str
56
+ The data type or template space to use as reference for warping.
57
+
58
+ Returns
59
+ -------
60
+ dict
61
+ The ``input`` dictionary with modified ``data`` and ``space`` key
62
+ values and new ``reference_path`` key whose value points to the
63
+ reference file used for warping.
64
+
65
+ """
66
+ # Create element-specific tempdir for storing post-warping assets
67
+ element_tempdir = WorkDirManager().get_element_tempdir(
68
+ prefix="ants_warper"
69
+ )
70
+
71
+ # Native space warping
72
+ if reference == "T1w":
73
+ logger.debug("Using ANTs for space warping")
74
+
75
+ # Get the min of the voxel sizes from input and use it as the
76
+ # resolution
77
+ resolution = np.min(input["data"].header.get_zooms()[:3])
78
+
79
+ # Create a tempfile for resampled reference output
80
+ resample_image_out_path = (
81
+ element_tempdir / "resampled_reference.nii.gz"
82
+ )
83
+ # Set ResampleImage command
84
+ resample_image_cmd = [
85
+ "ResampleImage",
86
+ "3", # image dimension
87
+ f"{extra_input['T1w']['path'].resolve()}",
88
+ f"{resample_image_out_path.resolve()}",
89
+ f"{resolution}x{resolution}x{resolution}",
90
+ "0", # option for spacing and not size
91
+ "3 3", # Lanczos windowed sinc
92
+ ]
93
+ # Call ResampleImage
94
+ run_ext_cmd(name="ResampleImage", cmd=resample_image_cmd)
95
+
96
+ # Create a tempfile for warped output
97
+ apply_transforms_out_path = element_tempdir / "output.nii.gz"
98
+ # Set antsApplyTransforms command
99
+ apply_transforms_cmd = [
100
+ "antsApplyTransforms",
101
+ "-d 3",
102
+ "-e 3",
103
+ "-n LanczosWindowedSinc",
104
+ f"-i {input['path'].resolve()}",
105
+ # use resampled reference
106
+ f"-r {resample_image_out_path.resolve()}",
107
+ f"-t {extra_input['Warp']['path'].resolve()}",
108
+ f"-o {apply_transforms_out_path.resolve()}",
109
+ ]
110
+ # Call antsApplyTransforms
111
+ run_ext_cmd(name="antsApplyTransforms", cmd=apply_transforms_cmd)
112
+
113
+ # Load nifti
114
+ input["data"] = nib.load(apply_transforms_out_path)
115
+ # Save resampled reference path
116
+ input["reference_path"] = resample_image_out_path
117
+ # Use reference input's space as warped input's space
118
+ input["space"] = extra_input["T1w"]["space"]
119
+
120
+ # Template space warping
121
+ else:
122
+ logger.debug(
123
+ f"Using ANTs to warp data from {input['space']} to {reference}"
124
+ )
125
+
126
+ # Get xfm file
127
+ xfm_file_path = get_xfm(src=input["space"], dst=reference)
128
+ # Get template space image
129
+ template_space_img = get_template(
130
+ space=reference,
131
+ target_data=input,
132
+ extra_input=None,
133
+ )
134
+
135
+ # Create component-scoped tempdir
136
+ tempdir = WorkDirManager().get_tempdir(prefix="ants_warper")
137
+ # Save template
138
+ template_space_img_path = tempdir / f"{reference}_T1w.nii.gz"
139
+ nib.save(template_space_img, template_space_img_path)
140
+
141
+ # Create a tempfile for warped output
142
+ warped_output_path = element_tempdir / (
143
+ f"data_warped_from_{input['space']}_to_" f"{reference}.nii.gz"
144
+ )
145
+
146
+ # Set antsApplyTransforms command
147
+ apply_transforms_cmd = [
148
+ "antsApplyTransforms",
149
+ "-d 3",
150
+ "-e 3",
151
+ "-n LanczosWindowedSinc",
152
+ f"-i {input['path'].resolve()}",
153
+ f"-r {template_space_img_path.resolve()}",
154
+ f"-t {xfm_file_path.resolve()}",
155
+ f"-o {warped_output_path.resolve()}",
156
+ ]
157
+ # Call antsApplyTransforms
158
+ run_ext_cmd(name="antsApplyTransforms", cmd=apply_transforms_cmd)
159
+
160
+ # Delete tempdir
161
+ WorkDirManager().delete_tempdir(tempdir)
162
+
163
+ # Modify target data
164
+ input["data"] = nib.load(warped_output_path)
165
+ input["space"] = reference
166
+
167
+ return input
@@ -0,0 +1,109 @@
1
+ """Provide class for space warping via FSL FLIRT."""
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
+ Set,
12
+ Union,
13
+ )
14
+
15
+ import nibabel as nib
16
+ import numpy as np
17
+
18
+ from ...pipeline import WorkDirManager
19
+ from ...utils import logger, run_ext_cmd
20
+
21
+
22
+ class FSLWarper:
23
+ """Class for space warping via FSL FLIRT.
24
+
25
+ This class uses FSL FLIRT's ``flirt`` for resampling and ``applywarp`` for
26
+ transformation.
27
+
28
+ """
29
+
30
+ _EXT_DEPENDENCIES: ClassVar[List[Dict[str, Union[str, List[str]]]]] = [
31
+ {
32
+ "name": "fsl",
33
+ "commands": ["flirt", "applywarp"],
34
+ },
35
+ ]
36
+
37
+ _DEPENDENCIES: ClassVar[Set[str]] = {"numpy", "nibabel"}
38
+
39
+ def preprocess(
40
+ self,
41
+ input: Dict[str, Any],
42
+ extra_input: Dict[str, Any],
43
+ ) -> Dict[str, Any]:
44
+ """Preprocess using FSL.
45
+
46
+ Parameters
47
+ ----------
48
+ input : dict
49
+ A single input from the Junifer Data object in which to preprocess.
50
+ extra_input : dict
51
+ The other fields in the Junifer Data object. Should have ``T1w``
52
+ and ``Warp`` data types.
53
+
54
+ Returns
55
+ -------
56
+ dict
57
+ The ``input`` dictionary with modified ``data`` and ``space`` key
58
+ values and new ``reference_path`` key whose value points to the
59
+ reference file used for warping.
60
+
61
+ """
62
+ logger.debug("Using FSL for space warping")
63
+
64
+ # Get the min of the voxel sizes from input and use it as the
65
+ # resolution
66
+ resolution = np.min(input["data"].header.get_zooms()[:3])
67
+
68
+ # Create element-specific tempdir for storing post-warping assets
69
+ element_tempdir = WorkDirManager().get_element_tempdir(
70
+ prefix="fsl_warper"
71
+ )
72
+
73
+ # Create a tempfile for resampled reference output
74
+ flirt_out_path = element_tempdir / "resampled_reference.nii.gz"
75
+ # Set flirt command
76
+ flirt_cmd = [
77
+ "flirt",
78
+ "-interp spline",
79
+ f"-in {extra_input['T1w']['path'].resolve()}",
80
+ f"-ref {extra_input['T1w']['path'].resolve()}",
81
+ f"-applyisoxfm {resolution}",
82
+ f"-out {flirt_out_path.resolve()}",
83
+ ]
84
+ # Call flirt
85
+ run_ext_cmd(name="flirt", cmd=flirt_cmd)
86
+
87
+ # Create a tempfile for warped output
88
+ applywarp_out_path = element_tempdir / "output.nii.gz"
89
+ # Set applywarp command
90
+ applywarp_cmd = [
91
+ "applywarp",
92
+ "--interp=spline",
93
+ f"-i {input['path'].resolve()}",
94
+ f"-r {flirt_out_path.resolve()}", # use resampled reference
95
+ f"-w {extra_input['Warp']['path'].resolve()}",
96
+ f"-o {applywarp_out_path.resolve()}",
97
+ ]
98
+ # Call applywarp
99
+ run_ext_cmd(name="applywarp", cmd=applywarp_cmd)
100
+
101
+ # Load nifti
102
+ input["data"] = nib.load(applywarp_out_path)
103
+ # Save resampled reference path
104
+ input["reference_path"] = flirt_out_path
105
+
106
+ # Use reference input's space as warped input's space
107
+ input["space"] = extra_input["T1w"]["space"]
108
+
109
+ return input
@@ -0,0 +1,203 @@
1
+ """Provide class for warping data to other template spaces."""
2
+
3
+ # Authors: Synchon Mandal <s.mandal@fz-juelich.de>
4
+ # License: AGPL
5
+
6
+ from typing import Any, ClassVar, Dict, List, Optional, Tuple, Type, Union
7
+
8
+ from templateflow import api as tflow
9
+
10
+ from ...api.decorators import register_preprocessor
11
+ from ...utils import logger, raise_error
12
+ from ..base import BasePreprocessor
13
+ from ._ants_warper import ANTsWarper
14
+ from ._fsl_warper import FSLWarper
15
+
16
+
17
+ __all__ = ["SpaceWarper"]
18
+
19
+
20
+ @register_preprocessor
21
+ class SpaceWarper(BasePreprocessor):
22
+ """Class for warping data to other template spaces.
23
+
24
+ Parameters
25
+ ----------
26
+ using : {"fsl", "ants"}
27
+ Implementation to use for warping:
28
+
29
+ * "fsl" : Use FSL's ``applywarp``
30
+ * "ants" : Use ANTs' ``antsApplyTransforms``
31
+
32
+ reference : str
33
+ The data type to use as reference for warping, can be either a data
34
+ type like ``"T1w"`` or a template space like ``"MNI152NLin2009cAsym"``.
35
+ Use ``"T1w"`` for native space warping and named templates for
36
+ template space warping.
37
+ on : {"T1w", "BOLD", "VBM_GM", "VBM_WM", "fALFF", "GCOR", "LCOR"} or list \
38
+ of the options
39
+ The data type to warp.
40
+
41
+ Raises
42
+ ------
43
+ ValueError
44
+ If ``using`` is invalid or
45
+ if ``reference`` is invalid.
46
+
47
+ """
48
+
49
+ _CONDITIONAL_DEPENDENCIES: ClassVar[List[Dict[str, Union[str, Type]]]] = [
50
+ {
51
+ "using": "fsl",
52
+ "depends_on": FSLWarper,
53
+ },
54
+ {
55
+ "using": "ants",
56
+ "depends_on": ANTsWarper,
57
+ },
58
+ ]
59
+
60
+ def __init__(
61
+ self, using: str, reference: str, on: Union[List[str], str]
62
+ ) -> None:
63
+ """Initialize the class."""
64
+ # Validate `using` parameter
65
+ valid_using = [dep["using"] for dep in self._CONDITIONAL_DEPENDENCIES]
66
+ if using not in valid_using:
67
+ raise_error(
68
+ f"Invalid value for `using`, should be one of: {valid_using}"
69
+ )
70
+ self.using = using
71
+ self.reference = reference
72
+ # Set required data types based on reference and
73
+ # initialize superclass
74
+ if self.reference == "T1w":
75
+ required_data_types = [self.reference, "Warp"]
76
+ # Listify on
77
+ if not isinstance(on, list):
78
+ on = [on]
79
+ # Extend required data types
80
+ required_data_types.extend(on)
81
+
82
+ super().__init__(
83
+ on=on,
84
+ required_data_types=required_data_types,
85
+ )
86
+ elif self.reference in tflow.templates():
87
+ super().__init__(on=on)
88
+ else:
89
+ raise_error(f"Unknown reference: {self.reference}")
90
+
91
+ def get_valid_inputs(self) -> List[str]:
92
+ """Get valid data types for input.
93
+
94
+ Returns
95
+ -------
96
+ list of str
97
+ The list of data types that can be used as input for this
98
+ preprocessor.
99
+
100
+ """
101
+ return ["T1w", "BOLD", "VBM_GM", "VBM_WM", "fALFF", "GCOR", "LCOR"]
102
+
103
+ def get_output_type(self, input_type: str) -> str:
104
+ """Get output type.
105
+
106
+ Parameters
107
+ ----------
108
+ input_type : str
109
+ The data type input to the preprocessor.
110
+
111
+ Returns
112
+ -------
113
+ str
114
+ The data type output by the preprocessor.
115
+
116
+ """
117
+ # Does not add any new keys
118
+ return input_type
119
+
120
+ def preprocess(
121
+ self,
122
+ input: Dict[str, Any],
123
+ extra_input: Optional[Dict[str, Any]] = None,
124
+ ) -> Tuple[Dict[str, Any], Optional[Dict[str, Dict[str, Any]]]]:
125
+ """Preprocess.
126
+
127
+ Parameters
128
+ ----------
129
+ input : dict
130
+ The input from the Junifer Data object.
131
+ extra_input : dict, optional
132
+ The other fields in the Junifer Data object.
133
+
134
+ Returns
135
+ -------
136
+ dict
137
+ The computed result as dictionary.
138
+ None
139
+ Extra "helper" data types as dictionary to add to the Junifer Data
140
+ object.
141
+
142
+ Raises
143
+ ------
144
+ ValueError
145
+ If ``extra_input`` is None when transforming to native space
146
+ i.e., using ``"T1w"`` as reference.
147
+ RuntimeError
148
+ If the data is in the correct space and does not require
149
+ warping or
150
+ if FSL is used for template space warping.
151
+
152
+ """
153
+ logger.info(f"Warping to {self.reference} space using SpaceWarper")
154
+ # Transform to native space
155
+ if self.using in ["fsl", "ants"] and self.reference == "T1w":
156
+ # Check for extra inputs
157
+ if extra_input is None:
158
+ raise_error(
159
+ "No extra input provided, requires `Warp` and "
160
+ f"`{self.reference}` data types in particular."
161
+ )
162
+ # Conditional preprocessor
163
+ if self.using == "fsl":
164
+ input = FSLWarper().preprocess(
165
+ input=input,
166
+ extra_input=extra_input,
167
+ )
168
+ elif self.using == "ants":
169
+ input = ANTsWarper().preprocess(
170
+ input=input,
171
+ extra_input=extra_input,
172
+ reference=self.reference,
173
+ )
174
+ # Transform to template space with ANTs possible
175
+ elif self.using == "ants" and self.reference != "T1w":
176
+ # Check pre-requirements for space manipulation
177
+ if self.reference == input["space"]:
178
+ raise_error(
179
+ (
180
+ f"The target data is in {self.reference} space "
181
+ "and thus warping will not be performed, hence you "
182
+ "should remove the SpaceWarper from the preprocess "
183
+ "step."
184
+ ),
185
+ klass=RuntimeError,
186
+ )
187
+
188
+ input = ANTsWarper().preprocess(
189
+ input=input,
190
+ extra_input={},
191
+ reference=self.reference,
192
+ )
193
+ # Transform to template space with FSL not possible
194
+ elif self.using == "fsl" and self.reference != "T1w":
195
+ raise_error(
196
+ (
197
+ f"Warping to {self.reference} space not possible with "
198
+ "FSL, use ANTs instead."
199
+ ),
200
+ klass=RuntimeError,
201
+ )
202
+
203
+ return input, None