junifer 0.0.7.dev47__tar.gz → 0.0.7.dev65__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 (442) hide show
  1. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/PKG-INFO +1 -1
  2. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/builtin.rst +4 -0
  3. junifer-0.0.7.dev65/docs/changes/newsfragments/443.feature +1 -0
  4. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/_version.py +2 -2
  5. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/pipeline_component_registry.py +1 -0
  6. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/__init__.pyi +2 -0
  7. junifer-0.0.7.dev65/junifer/preprocess/_temporal_slicer.py +236 -0
  8. junifer-0.0.7.dev65/junifer/preprocess/tests/test_temporal_slicer.py +138 -0
  9. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer.egg-info/PKG-INFO +1 -1
  10. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer.egg-info/SOURCES.txt +3 -0
  11. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.dockerignore +0 -0
  12. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  13. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  14. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
  15. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
  16. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  17. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
  18. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/dependabot.yml +0 -0
  19. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/pull_request_template.md +0 -0
  20. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/workflows/ci-docs.yml +0 -0
  21. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/workflows/ci.yml +0 -0
  22. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/workflows/docker-ci-publish.yml +0 -0
  23. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/workflows/docker-docs-publish.yml +0 -0
  24. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/workflows/docs-preview.yml +0 -0
  25. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/workflows/docs.yml +0 -0
  26. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/workflows/lint.yml +0 -0
  27. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.github/workflows/publish.yml +0 -0
  28. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.gitignore +0 -0
  29. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.gitmodules +0 -0
  30. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/.pre-commit-config.yaml +0 -0
  31. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/AUTHORS.rst +0 -0
  32. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/Dockerfile-ci +0 -0
  33. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/Dockerfile-docs +0 -0
  34. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/LICENSE.md +0 -0
  35. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/README.md +0 -0
  36. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/codecov.yml +0 -0
  37. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/conda-env.yml +0 -0
  38. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/Makefile +0 -0
  39. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/_static/css/custom.css +0 -0
  40. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/_static/js/custom.js +0 -0
  41. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/_templates/versions.html +0 -0
  42. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/api.rst +0 -0
  43. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/cli.rst +0 -0
  44. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/configs.rst +0 -0
  45. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/data.rst +0 -0
  46. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/datagrabbers.rst +0 -0
  47. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/datareaders.rst +0 -0
  48. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/index.rst +0 -0
  49. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/markers.rst +0 -0
  50. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/nilearn.rst +0 -0
  51. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/onthefly.rst +0 -0
  52. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/pipeline.rst +0 -0
  53. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/preprocessing.rst +0 -0
  54. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/stats.rst +0 -0
  55. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/storage.rst +0 -0
  56. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/testing.rst +0 -0
  57. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/api/utils.rst +0 -0
  58. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/changes/contributors.inc +0 -0
  59. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/changes/newsfragments/.gitignore +0 -0
  60. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/changes/newsfragments/333.enh +0 -0
  61. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/changes/newsfragments/441.misc +0 -0
  62. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/changes/newsfragments/444.bugfix +0 -0
  63. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/conf.py +0 -0
  64. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/contribution.rst +0 -0
  65. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/extending/coordinates.rst +0 -0
  66. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/extending/datagrabber.rst +0 -0
  67. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/extending/dependencies.rst +0 -0
  68. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/extending/extension.rst +0 -0
  69. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/extending/index.rst +0 -0
  70. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/extending/marker.rst +0 -0
  71. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/extending/masks.rst +0 -0
  72. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/extending/parcellations.rst +0 -0
  73. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/extending/plugins.rst +0 -0
  74. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/extending/preprocessor.rst +0 -0
  75. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/faq.rst +0 -0
  76. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/help.rst +0 -0
  77. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/images/junifer_logo.png +0 -0
  78. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/index.rst +0 -0
  79. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/installation.rst +0 -0
  80. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/links.inc +0 -0
  81. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/maintaining.rst +0 -0
  82. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/redirect.html +0 -0
  83. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/starting.rst +0 -0
  84. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/understanding/data.rst +0 -0
  85. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/understanding/datagrabber.rst +0 -0
  86. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/understanding/datareader.rst +0 -0
  87. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/understanding/index.rst +0 -0
  88. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/understanding/marker.rst +0 -0
  89. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/understanding/pipeline.rst +0 -0
  90. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/understanding/preprocess.rst +0 -0
  91. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/understanding/storage.rst +0 -0
  92. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/using/codeless.rst +0 -0
  93. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/using/index.rst +0 -0
  94. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/using/masks.rst +0 -0
  95. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/using/queueing.rst +0 -0
  96. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/using/running.rst +0 -0
  97. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/docs/whats_new.rst +0 -0
  98. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/README.rst +0 -0
  99. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/norun_hcpfc_pearson.py +0 -0
  100. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/norun_ukbvm_gmd.py +0 -0
  101. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/run_compute_parcel_mean.py +0 -0
  102. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/run_datagrabber_bids_datalad.py +0 -0
  103. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/run_ets_rss_marker.py +0 -0
  104. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/run_junifer_julearn.py +0 -0
  105. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/run_run_gmd_mean.py +0 -0
  106. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/yamls/gmd_mean.yaml +0 -0
  107. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
  108. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
  109. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/examples/yamls/ukb_gmd_mean.yaml +0 -0
  110. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/ignore_words.txt +0 -0
  111. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/__init__.py +0 -0
  112. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/__init__.pyi +0 -0
  113. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/__init__.py +0 -0
  114. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/__init__.pyi +0 -0
  115. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/decorators.py +0 -0
  116. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/functions.py +0 -0
  117. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/py.typed +0 -0
  118. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/queue_context/__init__.py +0 -0
  119. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/queue_context/__init__.pyi +0 -0
  120. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
  121. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/queue_context/htcondor_adapter.py +0 -0
  122. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/queue_context/py.typed +0 -0
  123. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/queue_context/queue_context_adapter.py +0 -0
  124. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
  125. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
  126. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
  127. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/afni/3dRSFC +0 -0
  128. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/afni/3dReHo +0 -0
  129. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/afni/afni +0 -0
  130. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/afni/run_afni_docker.sh +0 -0
  131. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/ants/ResampleImage +0 -0
  132. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/ants/antsApplyTransforms +0 -0
  133. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
  134. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/ants/run_ants_docker.sh +0 -0
  135. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/freesurfer/mri_binarize +0 -0
  136. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/freesurfer/mri_mc +0 -0
  137. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/freesurfer/mri_pretess +0 -0
  138. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/freesurfer/mris_convert +0 -0
  139. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
  140. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/fsl/applywarp +0 -0
  141. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/fsl/flirt +0 -0
  142. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/fsl/img2imgcoord +0 -0
  143. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
  144. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/fsl/std2imgcoord +0 -0
  145. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/run_conda.bash +0 -0
  146. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/run_conda.zsh +0 -0
  147. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/run_venv.bash +0 -0
  148. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/res/run_venv.zsh +0 -0
  149. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/api/tests/test_functions.py +0 -0
  150. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/__init__.py +0 -0
  151. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/__init__.pyi +0 -0
  152. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/cli.py +0 -0
  153. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/parser.py +0 -0
  154. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/py.typed +0 -0
  155. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
  156. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +0 -0
  157. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
  158. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/tests/test_cli.py +0 -0
  159. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/tests/test_cli_utils.py +0 -0
  160. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/tests/test_parser.py +0 -0
  161. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/cli/utils.py +0 -0
  162. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/__init__.py +0 -0
  163. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/__init__.py +0 -0
  164. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/__init__.pyi +0 -0
  165. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
  166. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
  167. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
  168. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
  169. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
  170. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
  171. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
  172. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
  173. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
  174. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
  175. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
  176. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
  177. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
  178. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/configs/juseless/py.typed +0 -0
  179. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/conftest.py +0 -0
  180. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/__init__.py +0 -0
  181. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/__init__.pyi +0 -0
  182. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/_dispatch.py +0 -0
  183. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/coordinates/__init__.py +0 -0
  184. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/coordinates/__init__.pyi +0 -0
  185. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/coordinates/_ants_coordinates_warper.py +0 -0
  186. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/coordinates/_coordinates.py +0 -0
  187. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/coordinates/_fsl_coordinates_warper.py +0 -0
  188. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
  189. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/masks/__init__.py +0 -0
  190. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/masks/__init__.pyi +0 -0
  191. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/masks/_ants_mask_warper.py +0 -0
  192. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/masks/_fsl_mask_warper.py +0 -0
  193. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/masks/_masks.py +0 -0
  194. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/masks/tests/test_masks.py +0 -0
  195. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/parcellations/__init__.py +0 -0
  196. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/parcellations/__init__.pyi +0 -0
  197. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/parcellations/_ants_parcellation_warper.py +0 -0
  198. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/parcellations/_fsl_parcellation_warper.py +0 -0
  199. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/parcellations/_parcellations.py +0 -0
  200. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
  201. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/pipeline_data_registry_base.py +0 -0
  202. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/py.typed +0 -0
  203. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/template_spaces.py +0 -0
  204. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/tests/test_data_utils.py +0 -0
  205. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/tests/test_template_spaces.py +0 -0
  206. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/data/utils.py +0 -0
  207. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/__init__.py +0 -0
  208. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/__init__.pyi +0 -0
  209. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/__init__.py +0 -0
  210. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/__init__.pyi +0 -0
  211. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/id1000.py +0 -0
  212. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/piop1.py +0 -0
  213. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/piop2.py +0 -0
  214. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/py.typed +0 -0
  215. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
  216. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
  217. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
  218. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/base.py +0 -0
  219. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/datalad_base.py +0 -0
  220. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
  221. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/hcp1200/__init__.py +0 -0
  222. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
  223. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
  224. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
  225. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/hcp1200/py.typed +0 -0
  226. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
  227. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/multiple.py +0 -0
  228. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/pattern.py +0 -0
  229. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/pattern_datalad.py +0 -0
  230. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/pattern_validation_mixin.py +0 -0
  231. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/py.typed +0 -0
  232. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/tests/test_base.py +0 -0
  233. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
  234. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
  235. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/tests/test_multiple.py +0 -0
  236. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/tests/test_pattern.py +0 -0
  237. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
  238. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
  239. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datareader/__init__.py +0 -0
  240. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datareader/__init__.pyi +0 -0
  241. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datareader/default.py +0 -0
  242. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datareader/py.typed +0 -0
  243. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/datareader/tests/test_default_reader.py +0 -0
  244. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
  245. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
  246. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
  247. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
  248. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
  249. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
  250. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
  251. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
  252. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/__init__.py +0 -0
  253. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/h5io/h5io/__init__.py +0 -0
  254. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/h5io/h5io/_h5io.py +0 -0
  255. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/h5io/h5io/_version.py +0 -0
  256. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/h5io/h5io/chunked_array.py +0 -0
  257. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/h5io/h5io/chunked_list.py +0 -0
  258. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/nilearn/__init__.py +0 -0
  259. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/nilearn/__init__.pyi +0 -0
  260. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
  261. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
  262. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/nilearn/py.typed +0 -0
  263. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
  264. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
  265. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/__init__.py +0 -0
  266. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/__init__.pyi +0 -0
  267. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/base.py +0 -0
  268. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/brainprint.py +0 -0
  269. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/__init__.py +0 -0
  270. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/__init__.pyi +0 -0
  271. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/complexity_base.py +0 -0
  272. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/hurst_exponent.py +0 -0
  273. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
  274. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/perm_entropy.py +0 -0
  275. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/py.typed +0 -0
  276. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/range_entropy.py +0 -0
  277. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/range_entropy_auc.py +0 -0
  278. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/sample_entropy.py +0 -0
  279. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
  280. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
  281. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
  282. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
  283. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
  284. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
  285. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
  286. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
  287. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
  288. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/ets_rss.py +0 -0
  289. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/falff/__init__.py +0 -0
  290. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/falff/__init__.pyi +0 -0
  291. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/falff/_afni_falff.py +0 -0
  292. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/falff/_junifer_falff.py +0 -0
  293. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/falff/falff_base.py +0 -0
  294. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/falff/falff_parcels.py +0 -0
  295. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/falff/falff_spheres.py +0 -0
  296. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/falff/py.typed +0 -0
  297. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
  298. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
  299. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/__init__.py +0 -0
  300. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
  301. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
  302. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
  303. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
  304. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
  305. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
  306. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
  307. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/py.typed +0 -0
  308. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
  309. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
  310. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
  311. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
  312. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
  313. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
  314. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/parcel_aggregation.py +0 -0
  315. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/py.typed +0 -0
  316. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/reho/__init__.py +0 -0
  317. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/reho/__init__.pyi +0 -0
  318. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/reho/_afni_reho.py +0 -0
  319. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/reho/_junifer_reho.py +0 -0
  320. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/reho/py.typed +0 -0
  321. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/reho/reho_base.py +0 -0
  322. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/reho/reho_parcels.py +0 -0
  323. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/reho/reho_spheres.py +0 -0
  324. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
  325. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
  326. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/sphere_aggregation.py +0 -0
  327. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/__init__.py +0 -0
  328. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/__init__.pyi +0 -0
  329. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/py.typed +0 -0
  330. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
  331. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
  332. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
  333. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
  334. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
  335. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
  336. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/tests/test_brainprint.py +0 -0
  337. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/tests/test_ets_rss.py +0 -0
  338. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/tests/test_marker_utils.py +0 -0
  339. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/tests/test_markers_base.py +0 -0
  340. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
  341. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
  342. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/markers/utils.py +0 -0
  343. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/onthefly/__init__.py +0 -0
  344. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/onthefly/_brainprint.py +0 -0
  345. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/onthefly/read_transform.py +0 -0
  346. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/onthefly/tests/test_read_transform.py +0 -0
  347. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/__init__.py +0 -0
  348. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/__init__.pyi +0 -0
  349. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/marker_collection.py +0 -0
  350. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/pipeline_step_mixin.py +0 -0
  351. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/py.typed +0 -0
  352. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/tests/test_marker_collection.py +0 -0
  353. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
  354. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
  355. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
  356. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
  357. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/update_meta_mixin.py +0 -0
  358. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/utils.py +0 -0
  359. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/pipeline/workdir_manager.py +0 -0
  360. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/__init__.py +0 -0
  361. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/base.py +0 -0
  362. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/confounds/__init__.py +0 -0
  363. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/confounds/__init__.pyi +0 -0
  364. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
  365. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/confounds/py.typed +0 -0
  366. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
  367. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/py.typed +0 -0
  368. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/__init__.py +0 -0
  369. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/__init__.pyi +0 -0
  370. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
  371. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
  372. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
  373. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/py.typed +0 -0
  374. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/smoothing.py +0 -0
  375. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
  376. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
  377. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/warping/__init__.py +0 -0
  378. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/warping/__init__.pyi +0 -0
  379. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/warping/_ants_warper.py +0 -0
  380. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/warping/_fsl_warper.py +0 -0
  381. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/warping/py.typed +0 -0
  382. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/warping/space_warper.py +0 -0
  383. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
  384. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/py.typed +0 -0
  385. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/stats.py +0 -0
  386. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/__init__.py +0 -0
  387. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/__init__.pyi +0 -0
  388. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/base.py +0 -0
  389. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/hdf5.py +0 -0
  390. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/pandas_base.py +0 -0
  391. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/py.typed +0 -0
  392. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/sqlite.py +0 -0
  393. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/tests/test_hdf5.py +0 -0
  394. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/tests/test_pandas_base.py +0 -0
  395. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/tests/test_sqlite.py +0 -0
  396. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/tests/test_storage_base.py +0 -0
  397. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/tests/test_utils.py +0 -0
  398. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/storage/utils.py +0 -0
  399. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/__init__.py +0 -0
  400. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/__init__.pyi +0 -0
  401. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
  402. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/datagrabbers.py +0 -0
  403. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/py.typed +0 -0
  404. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/registry.py +0 -0
  405. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
  406. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
  407. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
  408. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/tests/test_testing_registry.py +0 -0
  409. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/testing/utils.py +0 -0
  410. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/tests/test_main.py +0 -0
  411. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/tests/test_stats.py +0 -0
  412. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/typing/__init__.py +0 -0
  413. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/typing/__init__.pyi +0 -0
  414. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/typing/_typing.py +0 -0
  415. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/__init__.py +0 -0
  416. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/__init__.pyi +0 -0
  417. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/_config.py +0 -0
  418. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/_yaml.py +0 -0
  419. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/fs.py +0 -0
  420. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/helpers.py +0 -0
  421. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/logging.py +0 -0
  422. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/py.typed +0 -0
  423. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/singleton.py +0 -0
  424. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/tests/test_config.py +0 -0
  425. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/tests/test_fs.py +0 -0
  426. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/tests/test_helpers.py +0 -0
  427. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer/utils/tests/test_logging.py +0 -0
  428. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer.egg-info/dependency_links.txt +0 -0
  429. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer.egg-info/entry_points.txt +0 -0
  430. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer.egg-info/requires.txt +0 -0
  431. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/junifer.egg-info/top_level.txt +0 -0
  432. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/pyproject.toml +0 -0
  433. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/setup.cfg +0 -0
  434. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/setup.py +0 -0
  435. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/tools/create_aomic1000_example_dataset.py +0 -0
  436. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/tools/create_aomicpiop1_example_dataset.py +0 -0
  437. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/tools/create_aomicpiop2_example_dataset.py +0 -0
  438. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/tools/create_bids_example_dataset.py +0 -0
  439. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/tools/create_bids_example_dataset_sessions.py +0 -0
  440. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
  441. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/tools/create_hcp1200_example_dataset.py +0 -0
  442. {junifer-0.0.7.dev47 → junifer-0.0.7.dev65}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: junifer
3
- Version: 0.0.7.dev47
3
+ Version: 0.0.7.dev65
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>
@@ -163,6 +163,10 @@ Available
163
163
  | ``fMRIPrep``-ed data
164
164
  - In Progress
165
165
  - :gh:`161`
166
+ * - ``TemporalSlicer``
167
+ - Slice ``BOLD`` data temporally
168
+ - | Done
169
+ - :gh:`443`
166
170
 
167
171
 
168
172
  ..
@@ -0,0 +1 @@
1
+ Introduce :class:`.TemporalSlicer` preprocessor for temporally slicing BOLD data by `Synchon Mandal`_
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.0.7.dev47'
21
- __version_tuple__ = version_tuple = (0, 0, 7, 'dev47')
20
+ __version__ = version = '0.0.7.dev65'
21
+ __version_tuple__ = version_tuple = (0, 0, 7, 'dev65')
@@ -75,6 +75,7 @@ class PipelineComponentRegistry(metaclass=Singleton):
75
75
  "Smoothing": "Smoothing",
76
76
  "SpaceWarper": "SpaceWarper",
77
77
  "fMRIPrepConfoundRemover": "fMRIPrepConfoundRemover",
78
+ "TemporalSlicer": "TemporalSlicer",
78
79
  },
79
80
  "marker": {
80
81
  "ALFFParcels": "ALFFParcels",
@@ -3,9 +3,11 @@ __all__ = [
3
3
  "fMRIPrepConfoundRemover",
4
4
  "SpaceWarper",
5
5
  "Smoothing",
6
+ "TemporalSlicer",
6
7
  ]
7
8
 
8
9
  from .base import BasePreprocessor
9
10
  from .confounds import fMRIPrepConfoundRemover
10
11
  from .warping import SpaceWarper
11
12
  from .smoothing import Smoothing
13
+ from ._temporal_slicer import TemporalSlicer
@@ -0,0 +1,236 @@
1
+ """Provide class for temporal slicing."""
2
+
3
+ # Authors: Synchon Mandal <s.mandal@fz-juelich.de>
4
+ # License: AGPL
5
+
6
+ from typing import Any, ClassVar, Optional
7
+
8
+ import nibabel as nib
9
+ import nilearn.image as nimg
10
+
11
+ from ..api.decorators import register_preprocessor
12
+ from ..pipeline import WorkDirManager
13
+ from ..typing import Dependencies
14
+ from ..utils import logger, raise_error
15
+ from .base import BasePreprocessor
16
+
17
+
18
+ __all__ = ["TemporalSlicer"]
19
+
20
+
21
+ @register_preprocessor
22
+ class TemporalSlicer(BasePreprocessor):
23
+ """Class for temporal slicing.
24
+
25
+ Parameters
26
+ ----------
27
+ start : float
28
+ Starting time point, in second.
29
+ stop : float or None
30
+ Ending time point, in second. If None, stops at the last time point.
31
+ Can also do negative indexing and has the same meaning as standard
32
+ Python slicing except it represents time points.
33
+ duration : float or None, optional
34
+ Time duration to add to ``start``, in second. If None, ``stop`` is
35
+ respected, else error is raised (default None).
36
+ t_r : float or None, optional
37
+ Repetition time, in second (sampling period).
38
+ If None, it will use t_r from nifti header (default None).
39
+
40
+ Raises
41
+ ------
42
+ ValueError
43
+ If ``start`` is negative.
44
+
45
+ """
46
+
47
+ _DEPENDENCIES: ClassVar[Dependencies] = {"nilearn"}
48
+
49
+ def __init__(
50
+ self,
51
+ start: float,
52
+ stop: Optional[float],
53
+ duration: Optional[float] = None,
54
+ t_r: Optional[float] = None,
55
+ ) -> None:
56
+ """Initialize the class."""
57
+ if start < 0:
58
+ raise_error("`start` cannot be negative")
59
+ else:
60
+ self.start = start
61
+ self.stop = stop
62
+ self.duration = duration
63
+ self.t_r = t_r
64
+ super().__init__(on="BOLD", required_data_types=["BOLD"])
65
+
66
+ def get_valid_inputs(self) -> list[str]:
67
+ """Get valid data types for input.
68
+
69
+ Returns
70
+ -------
71
+ list of str
72
+ The list of data types that can be used as input for this
73
+ preprocessor.
74
+
75
+ """
76
+ return ["BOLD"]
77
+
78
+ def get_output_type(self, input_type: str) -> str:
79
+ """Get output type.
80
+
81
+ Parameters
82
+ ----------
83
+ input_type : str
84
+ The data type input to the preprocessor.
85
+
86
+ Returns
87
+ -------
88
+ str
89
+ The data type output by the preprocessor.
90
+
91
+ """
92
+ # Does not add any new keys
93
+ return input_type
94
+
95
+ def preprocess(
96
+ self,
97
+ input: dict[str, Any],
98
+ extra_input: Optional[dict[str, Any]] = None,
99
+ ) -> tuple[dict[str, Any], Optional[dict[str, dict[str, Any]]]]:
100
+ """Preprocess.
101
+
102
+ Parameters
103
+ ----------
104
+ input : dict
105
+ The input from the Junifer Data object.
106
+ extra_input : dict, optional
107
+ The other fields in the Junifer Data object.
108
+
109
+ Returns
110
+ -------
111
+ dict
112
+ The computed result as dictionary.
113
+ None
114
+ Extra "helper" data types as dictionary to add to the Junifer Data
115
+ object.
116
+
117
+ Raises
118
+ ------
119
+ RuntimeError
120
+ If no time slicing will be performed or
121
+ if ``stop`` is not None when ``duration`` is provided or
122
+ if calculated stop index is greater than allowed value.
123
+
124
+ """
125
+ logger.debug("Temporal slicing")
126
+
127
+ # Get BOLD data
128
+ bold_img = input["data"]
129
+ time_dim = bold_img.shape[3]
130
+
131
+ # Check if slicing is not required
132
+ if self.start == 0:
133
+ if self.stop is None or self.stop == -1 or self.stop == time_dim:
134
+ raise_error(
135
+ "No temporal slicing will be performed as "
136
+ f"`start` = {self.start} and "
137
+ f"`stop` = {self.stop}, hence you "
138
+ "should remove the TemporalSlicer from the preprocess "
139
+ "step.",
140
+ klass=RuntimeError,
141
+ )
142
+
143
+ # Sanity check for stop and duration combination
144
+ if self.duration is not None and self.stop is not None:
145
+ raise_error(
146
+ "`stop` should be None if `duration` is not None. "
147
+ "Set `stop` = None for TemporalSlicer to continue.",
148
+ klass=RuntimeError,
149
+ )
150
+
151
+ # Set t_r
152
+ t_r = self.t_r
153
+ if t_r is None:
154
+ logger.info("No `t_r` specified, using t_r from NIfTI header")
155
+ t_r = bold_img.header.get_zooms()[3] # type: ignore
156
+ logger.info(
157
+ f"Read t_r from NIfTI header: {t_r}",
158
+ )
159
+
160
+ # Create element-specific tempdir for storing generated data
161
+ element_tempdir = WorkDirManager().get_element_tempdir(
162
+ prefix="temporal_slicer"
163
+ )
164
+
165
+ # Check stop; duration is None
166
+ if self.stop is None:
167
+ if self.duration is not None:
168
+ stop = self.start + self.duration
169
+ else:
170
+ stop = time_dim
171
+ else:
172
+ # Calculate stop index if going from end
173
+ if self.stop < 0:
174
+ stop = time_dim + 1 + self.stop
175
+ else:
176
+ stop = self.stop
177
+
178
+ # Convert slice range from seconds to indices
179
+ index = slice(int(self.start // t_r), int(stop // t_r))
180
+
181
+ # Check if stop index is out of bounds
182
+ if index.stop > time_dim:
183
+ raise_error(
184
+ f"Calculated stop index: {index.stop} is greater than "
185
+ f"allowed value: {time_dim}",
186
+ klass=IndexError,
187
+ )
188
+
189
+ logger.info(
190
+ "Computed slice range for TemporalSlicer: "
191
+ f"[{index.start},{index.stop}]"
192
+ )
193
+
194
+ # Slice image
195
+ sliced_img = nimg.index_img(bold_img, index)
196
+ # Fix t_r as nilearn messes it up
197
+ sliced_img.header["pixdim"][4] = t_r
198
+ # Save sliced data
199
+ sliced_img_path = element_tempdir / "sliced_data.nii.gz"
200
+ nib.save(sliced_img, sliced_img_path)
201
+
202
+ logger.debug("Updating `BOLD`")
203
+ input.update(
204
+ {
205
+ # Update path to sync with "data"
206
+ "path": sliced_img_path,
207
+ # Update data
208
+ "data": sliced_img,
209
+ }
210
+ )
211
+
212
+ # Check for BOLD.confounds and update if found
213
+ if input.get("confounds") is not None:
214
+ # Slice confounds
215
+ sliced_confounds_df = input["confounds"]["data"].iloc[index, :]
216
+ # Save sliced confounds
217
+ sliced_confounds_path = (
218
+ element_tempdir / "sliced_confounds_regressors.tsv"
219
+ )
220
+ sliced_confounds_df.to_csv(
221
+ sliced_confounds_path,
222
+ sep="\t",
223
+ index=False,
224
+ )
225
+
226
+ logger.debug("Updating `BOLD.confounds`")
227
+ input["confounds"].update(
228
+ {
229
+ # Update path to sync with "data"
230
+ "path": sliced_confounds_path,
231
+ # Update data
232
+ "data": sliced_confounds_df,
233
+ }
234
+ )
235
+
236
+ return input, None
@@ -0,0 +1,138 @@
1
+ """Provide tests for TemporalSlicer."""
2
+
3
+ # Authors: Synchon Mandal <s.mandal@fz-juelich.de>
4
+ # License: AGPL
5
+
6
+ from contextlib import AbstractContextManager, nullcontext
7
+ from typing import Optional
8
+
9
+ import pytest
10
+
11
+ from junifer.datareader import DefaultDataReader
12
+ from junifer.preprocess import TemporalSlicer
13
+ from junifer.testing.datagrabbers import PartlyCloudyTestingDataGrabber
14
+
15
+
16
+ @pytest.mark.parametrize(
17
+ "start, stop, duration, t_r, expected_dim, expect",
18
+ (
19
+ [
20
+ 0.0,
21
+ 168.0,
22
+ None,
23
+ 2.0,
24
+ 84,
25
+ pytest.raises(RuntimeError, match="No temporal slicing"),
26
+ ], # t_r from doc is 2.0
27
+ [0.0, 167.0, None, 2.0, 83, nullcontext()], # t_r from doc is 2.0
28
+ [
29
+ 0.0,
30
+ None,
31
+ None,
32
+ 2.0,
33
+ 84,
34
+ pytest.raises(RuntimeError, match="No temporal slicing"),
35
+ ], # total with no end
36
+ [2.0, None, None, 2.0, 83, nullcontext()], # total with no end
37
+ [0.0, 84.0, None, 2.0, 42, nullcontext()], # first half
38
+ [0.0, -85.0, None, 2.0, 42, nullcontext()], # first half from end
39
+ [84.0, -1.0, None, 2.0, 42, nullcontext()], # second half
40
+ [
41
+ 33.0,
42
+ -33.0,
43
+ 33.0,
44
+ 2.0,
45
+ 42,
46
+ pytest.raises(RuntimeError, match="`stop` should be None"),
47
+ ],
48
+ [10.0, None, 30.0, 2.0, 15, nullcontext()],
49
+ [
50
+ 0.0,
51
+ 168.0,
52
+ None,
53
+ None,
54
+ 168,
55
+ pytest.raises(RuntimeError, match="No temporal slicing"),
56
+ ], # t_r from image is 1.0
57
+ [0.0, 167.0, None, None, 167, nullcontext()], # t_r from image is 1.0
58
+ [
59
+ 0.0,
60
+ None,
61
+ None,
62
+ None,
63
+ 168,
64
+ pytest.raises(RuntimeError, match="No temporal slicing"),
65
+ ], # total with no end
66
+ [0.0, 84.0, None, None, 84, nullcontext()], # first half
67
+ [0.0, -85.0, None, None, 84, nullcontext()], # first half from end
68
+ [84.0, -1.0, None, None, 84, nullcontext()], # second half
69
+ [
70
+ 33.0,
71
+ -33.0,
72
+ 33.0,
73
+ None,
74
+ 84,
75
+ pytest.raises(RuntimeError, match="`stop` should be None"),
76
+ ],
77
+ [10.0, None, 30.0, None, 30, nullcontext()],
78
+ [
79
+ -1.0,
80
+ None,
81
+ None,
82
+ None,
83
+ 84,
84
+ pytest.raises(ValueError, match="`start` cannot be negative"),
85
+ ],
86
+ [
87
+ 0.0,
88
+ 500.0,
89
+ None,
90
+ 2.0,
91
+ 42,
92
+ pytest.raises(IndexError, match="Calculated stop index:"),
93
+ ],
94
+ ),
95
+ )
96
+ def test_TemporalSlicer(
97
+ start: float,
98
+ stop: Optional[float],
99
+ duration: Optional[float],
100
+ t_r: Optional[float],
101
+ expected_dim: int,
102
+ expect: AbstractContextManager,
103
+ ) -> None:
104
+ """Test TemporalSlicer.
105
+
106
+ Parameters
107
+ ----------
108
+ start : float
109
+ The parametrized start.
110
+ stop : float or None
111
+ The parametrized stop.
112
+ duration : float or None
113
+ The parametrized duration.
114
+ t_r : float or None
115
+ The parametrized TR.
116
+ expected_dim : int
117
+ The parametrized expected time dimension size.
118
+ expect : typing.ContextManager
119
+ The parametrized ContextManager object.
120
+
121
+ """
122
+
123
+ with PartlyCloudyTestingDataGrabber() as dg:
124
+ # Read data
125
+ element_data = DefaultDataReader().fit_transform(dg["sub-01"])
126
+ # Preprocess data
127
+ with expect:
128
+ output = TemporalSlicer(
129
+ start=start, # in seconds
130
+ stop=stop, # in seconds
131
+ duration=duration, # in seconds
132
+ t_r=t_r, # in seconds
133
+ ).fit_transform(element_data)
134
+
135
+ # Check image data dim
136
+ assert output["BOLD"]["data"].shape[3] == expected_dim
137
+ # Check confounds dim
138
+ assert output["BOLD"]["confounds"]["data"].shape[0] == expected_dim
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: junifer
3
- Version: 0.0.7.dev47
3
+ Version: 0.0.7.dev65
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>
@@ -65,6 +65,7 @@ docs/changes/contributors.inc
65
65
  docs/changes/newsfragments/.gitignore
66
66
  docs/changes/newsfragments/333.enh
67
67
  docs/changes/newsfragments/441.misc
68
+ docs/changes/newsfragments/443.feature
68
69
  docs/changes/newsfragments/444.bugfix
69
70
  docs/extending/coordinates.rst
70
71
  docs/extending/datagrabber.rst
@@ -363,6 +364,7 @@ junifer/pipeline/tests/test_update_meta_mixin.py
363
364
  junifer/pipeline/tests/test_workdir_manager.py
364
365
  junifer/preprocess/__init__.py
365
366
  junifer/preprocess/__init__.pyi
367
+ junifer/preprocess/_temporal_slicer.py
366
368
  junifer/preprocess/base.py
367
369
  junifer/preprocess/py.typed
368
370
  junifer/preprocess/confounds/__init__.py
@@ -379,6 +381,7 @@ junifer/preprocess/smoothing/py.typed
379
381
  junifer/preprocess/smoothing/smoothing.py
380
382
  junifer/preprocess/smoothing/tests/test_smoothing.py
381
383
  junifer/preprocess/tests/test_preprocess_base.py
384
+ junifer/preprocess/tests/test_temporal_slicer.py
382
385
  junifer/preprocess/warping/__init__.py
383
386
  junifer/preprocess/warping/__init__.pyi
384
387
  junifer/preprocess/warping/_ants_warper.py
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes