junifer 0.0.7.dev43__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.dev43 → junifer-0.0.7.dev65}/PKG-INFO +1 -1
  2. {junifer-0.0.7.dev43 → 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.dev65/docs/changes/newsfragments/444.bugfix +1 -0
  5. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/_version.py +2 -2
  6. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/pipeline/pipeline_component_registry.py +1 -0
  7. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/__init__.pyi +2 -0
  8. junifer-0.0.7.dev65/junifer/preprocess/_temporal_slicer.py +236 -0
  9. junifer-0.0.7.dev65/junifer/preprocess/tests/test_temporal_slicer.py +138 -0
  10. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/storage/hdf5.py +14 -2
  11. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/storage/tests/test_hdf5.py +1 -0
  12. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer.egg-info/PKG-INFO +1 -1
  13. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer.egg-info/SOURCES.txt +4 -0
  14. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/.dockerignore +0 -0
  15. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  16. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  17. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
  18. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
  19. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  20. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
  21. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/.github/dependabot.yml +0 -0
  22. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/.github/pull_request_template.md +0 -0
  23. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/.github/workflows/ci-docs.yml +0 -0
  24. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/.github/workflows/ci.yml +0 -0
  25. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/.github/workflows/docker-ci-publish.yml +0 -0
  26. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/.github/workflows/docker-docs-publish.yml +0 -0
  27. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/.github/workflows/docs-preview.yml +0 -0
  28. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/.github/workflows/docs.yml +0 -0
  29. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/.github/workflows/lint.yml +0 -0
  30. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/.github/workflows/publish.yml +0 -0
  31. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/.gitignore +0 -0
  32. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/.gitmodules +0 -0
  33. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/.pre-commit-config.yaml +0 -0
  34. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/AUTHORS.rst +0 -0
  35. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/Dockerfile-ci +0 -0
  36. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/Dockerfile-docs +0 -0
  37. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/LICENSE.md +0 -0
  38. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/README.md +0 -0
  39. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/codecov.yml +0 -0
  40. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/conda-env.yml +0 -0
  41. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/Makefile +0 -0
  42. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/_static/css/custom.css +0 -0
  43. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/_static/js/custom.js +0 -0
  44. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/_templates/versions.html +0 -0
  45. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/api/api.rst +0 -0
  46. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/api/cli.rst +0 -0
  47. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/api/configs.rst +0 -0
  48. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/api/data.rst +0 -0
  49. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/api/datagrabbers.rst +0 -0
  50. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/api/datareaders.rst +0 -0
  51. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/api/index.rst +0 -0
  52. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/api/markers.rst +0 -0
  53. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/api/nilearn.rst +0 -0
  54. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/api/onthefly.rst +0 -0
  55. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/api/pipeline.rst +0 -0
  56. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/api/preprocessing.rst +0 -0
  57. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/api/stats.rst +0 -0
  58. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/api/storage.rst +0 -0
  59. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/api/testing.rst +0 -0
  60. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/api/utils.rst +0 -0
  61. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/changes/contributors.inc +0 -0
  62. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/changes/newsfragments/.gitignore +0 -0
  63. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/changes/newsfragments/333.enh +0 -0
  64. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/changes/newsfragments/441.misc +0 -0
  65. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/conf.py +0 -0
  66. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/contribution.rst +0 -0
  67. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/extending/coordinates.rst +0 -0
  68. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/extending/datagrabber.rst +0 -0
  69. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/extending/dependencies.rst +0 -0
  70. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/extending/extension.rst +0 -0
  71. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/extending/index.rst +0 -0
  72. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/extending/marker.rst +0 -0
  73. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/extending/masks.rst +0 -0
  74. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/extending/parcellations.rst +0 -0
  75. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/extending/plugins.rst +0 -0
  76. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/extending/preprocessor.rst +0 -0
  77. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/faq.rst +0 -0
  78. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/help.rst +0 -0
  79. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/images/junifer_logo.png +0 -0
  80. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/index.rst +0 -0
  81. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/installation.rst +0 -0
  82. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/links.inc +0 -0
  83. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/maintaining.rst +0 -0
  84. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/redirect.html +0 -0
  85. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/starting.rst +0 -0
  86. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/understanding/data.rst +0 -0
  87. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/understanding/datagrabber.rst +0 -0
  88. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/understanding/datareader.rst +0 -0
  89. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/understanding/index.rst +0 -0
  90. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/understanding/marker.rst +0 -0
  91. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/understanding/pipeline.rst +0 -0
  92. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/understanding/preprocess.rst +0 -0
  93. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/understanding/storage.rst +0 -0
  94. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/using/codeless.rst +0 -0
  95. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/using/index.rst +0 -0
  96. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/using/masks.rst +0 -0
  97. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/using/queueing.rst +0 -0
  98. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/using/running.rst +0 -0
  99. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/docs/whats_new.rst +0 -0
  100. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/examples/README.rst +0 -0
  101. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/examples/norun_hcpfc_pearson.py +0 -0
  102. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/examples/norun_ukbvm_gmd.py +0 -0
  103. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/examples/run_compute_parcel_mean.py +0 -0
  104. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/examples/run_datagrabber_bids_datalad.py +0 -0
  105. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/examples/run_ets_rss_marker.py +0 -0
  106. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/examples/run_junifer_julearn.py +0 -0
  107. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/examples/run_run_gmd_mean.py +0 -0
  108. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/examples/yamls/gmd_mean.yaml +0 -0
  109. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
  110. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
  111. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/examples/yamls/ukb_gmd_mean.yaml +0 -0
  112. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/ignore_words.txt +0 -0
  113. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/__init__.py +0 -0
  114. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/__init__.pyi +0 -0
  115. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/__init__.py +0 -0
  116. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/__init__.pyi +0 -0
  117. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/decorators.py +0 -0
  118. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/functions.py +0 -0
  119. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/py.typed +0 -0
  120. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/queue_context/__init__.py +0 -0
  121. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/queue_context/__init__.pyi +0 -0
  122. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
  123. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/queue_context/htcondor_adapter.py +0 -0
  124. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/queue_context/py.typed +0 -0
  125. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/queue_context/queue_context_adapter.py +0 -0
  126. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
  127. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
  128. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
  129. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/afni/3dRSFC +0 -0
  130. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/afni/3dReHo +0 -0
  131. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/afni/afni +0 -0
  132. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/afni/run_afni_docker.sh +0 -0
  133. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/ants/ResampleImage +0 -0
  134. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/ants/antsApplyTransforms +0 -0
  135. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
  136. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/ants/run_ants_docker.sh +0 -0
  137. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/freesurfer/mri_binarize +0 -0
  138. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/freesurfer/mri_mc +0 -0
  139. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/freesurfer/mri_pretess +0 -0
  140. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/freesurfer/mris_convert +0 -0
  141. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
  142. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/fsl/applywarp +0 -0
  143. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/fsl/flirt +0 -0
  144. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/fsl/img2imgcoord +0 -0
  145. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
  146. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/fsl/std2imgcoord +0 -0
  147. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/run_conda.bash +0 -0
  148. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/run_conda.zsh +0 -0
  149. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/run_venv.bash +0 -0
  150. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/res/run_venv.zsh +0 -0
  151. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/api/tests/test_functions.py +0 -0
  152. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/cli/__init__.py +0 -0
  153. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/cli/__init__.pyi +0 -0
  154. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/cli/cli.py +0 -0
  155. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/cli/parser.py +0 -0
  156. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/cli/py.typed +0 -0
  157. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
  158. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +0 -0
  159. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
  160. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/cli/tests/test_cli.py +0 -0
  161. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/cli/tests/test_cli_utils.py +0 -0
  162. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/cli/tests/test_parser.py +0 -0
  163. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/cli/utils.py +0 -0
  164. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/configs/__init__.py +0 -0
  165. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/configs/juseless/__init__.py +0 -0
  166. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/configs/juseless/__init__.pyi +0 -0
  167. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
  168. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
  169. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
  170. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
  171. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
  172. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
  173. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
  174. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
  175. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
  176. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
  177. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
  178. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
  179. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
  180. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/configs/juseless/py.typed +0 -0
  181. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/conftest.py +0 -0
  182. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/__init__.py +0 -0
  183. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/__init__.pyi +0 -0
  184. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/_dispatch.py +0 -0
  185. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/coordinates/__init__.py +0 -0
  186. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/coordinates/__init__.pyi +0 -0
  187. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/coordinates/_ants_coordinates_warper.py +0 -0
  188. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/coordinates/_coordinates.py +0 -0
  189. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/coordinates/_fsl_coordinates_warper.py +0 -0
  190. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
  191. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/masks/__init__.py +0 -0
  192. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/masks/__init__.pyi +0 -0
  193. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/masks/_ants_mask_warper.py +0 -0
  194. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/masks/_fsl_mask_warper.py +0 -0
  195. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/masks/_masks.py +0 -0
  196. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/masks/tests/test_masks.py +0 -0
  197. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/parcellations/__init__.py +0 -0
  198. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/parcellations/__init__.pyi +0 -0
  199. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/parcellations/_ants_parcellation_warper.py +0 -0
  200. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/parcellations/_fsl_parcellation_warper.py +0 -0
  201. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/parcellations/_parcellations.py +0 -0
  202. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
  203. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/pipeline_data_registry_base.py +0 -0
  204. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/py.typed +0 -0
  205. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/template_spaces.py +0 -0
  206. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/tests/test_data_utils.py +0 -0
  207. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/tests/test_template_spaces.py +0 -0
  208. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/data/utils.py +0 -0
  209. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/__init__.py +0 -0
  210. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/__init__.pyi +0 -0
  211. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/__init__.py +0 -0
  212. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/__init__.pyi +0 -0
  213. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/id1000.py +0 -0
  214. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/piop1.py +0 -0
  215. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/piop2.py +0 -0
  216. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/py.typed +0 -0
  217. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
  218. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
  219. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
  220. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/base.py +0 -0
  221. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/datalad_base.py +0 -0
  222. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
  223. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/hcp1200/__init__.py +0 -0
  224. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
  225. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
  226. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
  227. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/hcp1200/py.typed +0 -0
  228. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
  229. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/multiple.py +0 -0
  230. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/pattern.py +0 -0
  231. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/pattern_datalad.py +0 -0
  232. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/pattern_validation_mixin.py +0 -0
  233. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/py.typed +0 -0
  234. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/tests/test_base.py +0 -0
  235. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
  236. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
  237. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/tests/test_multiple.py +0 -0
  238. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/tests/test_pattern.py +0 -0
  239. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
  240. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
  241. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datareader/__init__.py +0 -0
  242. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datareader/__init__.pyi +0 -0
  243. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datareader/default.py +0 -0
  244. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datareader/py.typed +0 -0
  245. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/datareader/tests/test_default_reader.py +0 -0
  246. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
  247. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
  248. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
  249. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
  250. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
  251. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
  252. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
  253. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
  254. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/external/__init__.py +0 -0
  255. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/external/h5io/h5io/__init__.py +0 -0
  256. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/external/h5io/h5io/_h5io.py +0 -0
  257. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/external/h5io/h5io/_version.py +0 -0
  258. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/external/h5io/h5io/chunked_array.py +0 -0
  259. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/external/h5io/h5io/chunked_list.py +0 -0
  260. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/external/nilearn/__init__.py +0 -0
  261. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/external/nilearn/__init__.pyi +0 -0
  262. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
  263. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
  264. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/external/nilearn/py.typed +0 -0
  265. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
  266. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
  267. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/__init__.py +0 -0
  268. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/__init__.pyi +0 -0
  269. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/base.py +0 -0
  270. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/brainprint.py +0 -0
  271. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/complexity/__init__.py +0 -0
  272. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/complexity/__init__.pyi +0 -0
  273. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/complexity/complexity_base.py +0 -0
  274. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/complexity/hurst_exponent.py +0 -0
  275. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
  276. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/complexity/perm_entropy.py +0 -0
  277. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/complexity/py.typed +0 -0
  278. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/complexity/range_entropy.py +0 -0
  279. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/complexity/range_entropy_auc.py +0 -0
  280. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/complexity/sample_entropy.py +0 -0
  281. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
  282. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
  283. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
  284. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
  285. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
  286. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
  287. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
  288. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
  289. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
  290. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/ets_rss.py +0 -0
  291. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/falff/__init__.py +0 -0
  292. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/falff/__init__.pyi +0 -0
  293. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/falff/_afni_falff.py +0 -0
  294. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/falff/_junifer_falff.py +0 -0
  295. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/falff/falff_base.py +0 -0
  296. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/falff/falff_parcels.py +0 -0
  297. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/falff/falff_spheres.py +0 -0
  298. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/falff/py.typed +0 -0
  299. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
  300. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
  301. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/__init__.py +0 -0
  302. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
  303. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
  304. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
  305. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
  306. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
  307. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
  308. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
  309. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/py.typed +0 -0
  310. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
  311. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
  312. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
  313. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
  314. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
  315. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
  316. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/parcel_aggregation.py +0 -0
  317. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/py.typed +0 -0
  318. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/reho/__init__.py +0 -0
  319. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/reho/__init__.pyi +0 -0
  320. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/reho/_afni_reho.py +0 -0
  321. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/reho/_junifer_reho.py +0 -0
  322. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/reho/py.typed +0 -0
  323. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/reho/reho_base.py +0 -0
  324. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/reho/reho_parcels.py +0 -0
  325. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/reho/reho_spheres.py +0 -0
  326. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
  327. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
  328. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/sphere_aggregation.py +0 -0
  329. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/__init__.py +0 -0
  330. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/__init__.pyi +0 -0
  331. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/py.typed +0 -0
  332. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
  333. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
  334. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
  335. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
  336. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
  337. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
  338. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/tests/test_brainprint.py +0 -0
  339. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/tests/test_ets_rss.py +0 -0
  340. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/tests/test_marker_utils.py +0 -0
  341. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/tests/test_markers_base.py +0 -0
  342. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
  343. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
  344. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/markers/utils.py +0 -0
  345. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/onthefly/__init__.py +0 -0
  346. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/onthefly/_brainprint.py +0 -0
  347. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/onthefly/read_transform.py +0 -0
  348. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/onthefly/tests/test_read_transform.py +0 -0
  349. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/pipeline/__init__.py +0 -0
  350. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/pipeline/__init__.pyi +0 -0
  351. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/pipeline/marker_collection.py +0 -0
  352. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/pipeline/pipeline_step_mixin.py +0 -0
  353. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/pipeline/py.typed +0 -0
  354. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/pipeline/tests/test_marker_collection.py +0 -0
  355. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
  356. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
  357. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
  358. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
  359. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/pipeline/update_meta_mixin.py +0 -0
  360. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/pipeline/utils.py +0 -0
  361. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/pipeline/workdir_manager.py +0 -0
  362. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/__init__.py +0 -0
  363. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/base.py +0 -0
  364. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/confounds/__init__.py +0 -0
  365. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/confounds/__init__.pyi +0 -0
  366. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
  367. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/confounds/py.typed +0 -0
  368. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
  369. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/py.typed +0 -0
  370. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/__init__.py +0 -0
  371. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/__init__.pyi +0 -0
  372. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
  373. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
  374. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
  375. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/py.typed +0 -0
  376. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/smoothing.py +0 -0
  377. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
  378. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
  379. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/warping/__init__.py +0 -0
  380. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/warping/__init__.pyi +0 -0
  381. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/warping/_ants_warper.py +0 -0
  382. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/warping/_fsl_warper.py +0 -0
  383. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/warping/py.typed +0 -0
  384. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/warping/space_warper.py +0 -0
  385. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
  386. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/py.typed +0 -0
  387. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/stats.py +0 -0
  388. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/storage/__init__.py +0 -0
  389. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/storage/__init__.pyi +0 -0
  390. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/storage/base.py +0 -0
  391. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/storage/pandas_base.py +0 -0
  392. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/storage/py.typed +0 -0
  393. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/storage/sqlite.py +0 -0
  394. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/storage/tests/test_pandas_base.py +0 -0
  395. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/storage/tests/test_sqlite.py +0 -0
  396. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/storage/tests/test_storage_base.py +0 -0
  397. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/storage/tests/test_utils.py +0 -0
  398. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/storage/utils.py +0 -0
  399. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/testing/__init__.py +0 -0
  400. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/testing/__init__.pyi +0 -0
  401. {junifer-0.0.7.dev43 → 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.dev43 → junifer-0.0.7.dev65}/junifer/testing/datagrabbers.py +0 -0
  403. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/testing/py.typed +0 -0
  404. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/testing/registry.py +0 -0
  405. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
  406. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
  407. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
  408. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/testing/tests/test_testing_registry.py +0 -0
  409. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/testing/utils.py +0 -0
  410. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/tests/test_main.py +0 -0
  411. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/tests/test_stats.py +0 -0
  412. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/typing/__init__.py +0 -0
  413. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/typing/__init__.pyi +0 -0
  414. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/typing/_typing.py +0 -0
  415. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/utils/__init__.py +0 -0
  416. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/utils/__init__.pyi +0 -0
  417. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/utils/_config.py +0 -0
  418. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/utils/_yaml.py +0 -0
  419. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/utils/fs.py +0 -0
  420. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/utils/helpers.py +0 -0
  421. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/utils/logging.py +0 -0
  422. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/utils/py.typed +0 -0
  423. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/utils/singleton.py +0 -0
  424. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/utils/tests/test_config.py +0 -0
  425. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/utils/tests/test_fs.py +0 -0
  426. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/utils/tests/test_helpers.py +0 -0
  427. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer/utils/tests/test_logging.py +0 -0
  428. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer.egg-info/dependency_links.txt +0 -0
  429. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer.egg-info/entry_points.txt +0 -0
  430. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer.egg-info/requires.txt +0 -0
  431. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/junifer.egg-info/top_level.txt +0 -0
  432. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/pyproject.toml +0 -0
  433. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/setup.cfg +0 -0
  434. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/setup.py +0 -0
  435. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/tools/create_aomic1000_example_dataset.py +0 -0
  436. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/tools/create_aomicpiop1_example_dataset.py +0 -0
  437. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/tools/create_aomicpiop2_example_dataset.py +0 -0
  438. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/tools/create_bids_example_dataset.py +0 -0
  439. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/tools/create_bids_example_dataset_sessions.py +0 -0
  440. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
  441. {junifer-0.0.7.dev43 → junifer-0.0.7.dev65}/tools/create_hcp1200_example_dataset.py +0 -0
  442. {junifer-0.0.7.dev43 → 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.dev43
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`_
@@ -0,0 +1 @@
1
+ Allow ``timeseries_2d`` storage for :class:`.HDF5FeatureStorage` by `Fede Raimondo`_
@@ -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.dev43'
21
- __version_tuple__ = version_tuple = (0, 0, 7, 'dev43')
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
@@ -157,7 +157,13 @@ class HDF5FeatureStorage(BaseFeatureStorage):
157
157
  uri.parent.mkdir(parents=True, exist_ok=True)
158
158
 
159
159
  # Available storage kinds
160
- storage_types = ["vector", "timeseries", "matrix", "scalar_table"]
160
+ storage_types = [
161
+ "vector",
162
+ "timeseries",
163
+ "matrix",
164
+ "scalar_table",
165
+ "timeseries_2d",
166
+ ]
161
167
 
162
168
  super().__init__(
163
169
  uri=uri,
@@ -180,7 +186,13 @@ class HDF5FeatureStorage(BaseFeatureStorage):
180
186
  storage.
181
187
 
182
188
  """
183
- return ["matrix", "vector", "timeseries", "scalar_table"]
189
+ return [
190
+ "matrix",
191
+ "vector",
192
+ "timeseries",
193
+ "scalar_table",
194
+ "timeseries_2d",
195
+ ]
184
196
 
185
197
  def _fetch_correct_uri_for_io(self, element: Optional[dict]) -> str:
186
198
  """Return proper URI for I/O based on `element`.
@@ -29,6 +29,7 @@ def test_get_valid_inputs() -> None:
29
29
  "vector",
30
30
  "timeseries",
31
31
  "scalar_table",
32
+ "timeseries_2d",
32
33
  ]
33
34
 
34
35
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: junifer
3
- Version: 0.0.7.dev43
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,8 @@ 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
69
+ docs/changes/newsfragments/444.bugfix
68
70
  docs/extending/coordinates.rst
69
71
  docs/extending/datagrabber.rst
70
72
  docs/extending/dependencies.rst
@@ -362,6 +364,7 @@ junifer/pipeline/tests/test_update_meta_mixin.py
362
364
  junifer/pipeline/tests/test_workdir_manager.py
363
365
  junifer/preprocess/__init__.py
364
366
  junifer/preprocess/__init__.pyi
367
+ junifer/preprocess/_temporal_slicer.py
365
368
  junifer/preprocess/base.py
366
369
  junifer/preprocess/py.typed
367
370
  junifer/preprocess/confounds/__init__.py
@@ -378,6 +381,7 @@ junifer/preprocess/smoothing/py.typed
378
381
  junifer/preprocess/smoothing/smoothing.py
379
382
  junifer/preprocess/smoothing/tests/test_smoothing.py
380
383
  junifer/preprocess/tests/test_preprocess_base.py
384
+ junifer/preprocess/tests/test_temporal_slicer.py
381
385
  junifer/preprocess/warping/__init__.py
382
386
  junifer/preprocess/warping/__init__.pyi
383
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