junifer 0.0.5.dev183__tar.gz → 0.0.5.dev202__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 (402) hide show
  1. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/PKG-INFO +1 -1
  2. junifer-0.0.5.dev202/docs/changes/newsfragments/349.change +1 -0
  3. junifer-0.0.5.dev202/docs/changes/newsfragments/349.enh +1 -0
  4. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/extending/marker.rst +62 -65
  5. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/understanding/marker.rst +2 -4
  6. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/_version.py +2 -2
  7. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/tests/test_datalad_base.py +4 -4
  8. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/tests/test_pattern_datalad.py +4 -4
  9. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/base.py +49 -23
  10. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/brainprint.py +56 -265
  11. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/complexity/complexity_base.py +23 -43
  12. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/complexity/tests/test_hurst_exponent.py +4 -3
  13. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +4 -3
  14. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/complexity/tests/test_perm_entropy.py +4 -3
  15. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/complexity/tests/test_range_entropy.py +4 -3
  16. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/complexity/tests/test_range_entropy_auc.py +4 -3
  17. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/complexity/tests/test_sample_entropy.py +4 -3
  18. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +4 -3
  19. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/ets_rss.py +24 -42
  20. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/falff/falff_base.py +17 -46
  21. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/falff/falff_parcels.py +53 -27
  22. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/falff/falff_spheres.py +57 -29
  23. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/falff/tests/test_falff_parcels.py +39 -23
  24. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/falff/tests/test_falff_spheres.py +39 -23
  25. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +32 -48
  26. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +16 -10
  27. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +13 -9
  28. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/functional_connectivity/functional_connectivity_base.py +26 -40
  29. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +6 -6
  30. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +6 -6
  31. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +8 -4
  32. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +6 -3
  33. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +6 -3
  34. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +6 -3
  35. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +10 -5
  36. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/parcel_aggregation.py +40 -59
  37. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/reho/reho_base.py +6 -27
  38. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/reho/reho_parcels.py +23 -15
  39. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/reho/reho_spheres.py +22 -16
  40. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/reho/tests/test_reho_parcels.py +8 -3
  41. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/reho/tests/test_reho_spheres.py +8 -3
  42. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/sphere_aggregation.py +40 -59
  43. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/temporal_snr/temporal_snr_base.py +20 -32
  44. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/temporal_snr/temporal_snr_parcels.py +6 -6
  45. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/temporal_snr/temporal_snr_spheres.py +6 -6
  46. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +6 -3
  47. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +6 -3
  48. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/tests/test_brainprint.py +23 -12
  49. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/tests/test_collection.py +9 -8
  50. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/tests/test_ets_rss.py +15 -9
  51. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/tests/test_markers_base.py +17 -18
  52. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/tests/test_parcel_aggregation.py +93 -32
  53. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/tests/test_sphere_aggregation.py +72 -19
  54. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/pipeline/pipeline_step_mixin.py +11 -1
  55. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/pipeline/tests/test_registry.py +1 -1
  56. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer.egg-info/PKG-INFO +1 -1
  57. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer.egg-info/SOURCES.txt +2 -0
  58. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  59. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  60. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
  61. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
  62. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  63. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
  64. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/.github/dependabot.yml +0 -0
  65. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/.github/pull_request_template.md +0 -0
  66. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/.github/workflows/ci-docs.yml +0 -0
  67. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/.github/workflows/ci.yml +0 -0
  68. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/.github/workflows/docs-preview.yml +0 -0
  69. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/.github/workflows/docs.yml +0 -0
  70. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/.github/workflows/lint.yml +0 -0
  71. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/.github/workflows/pypi.yml +0 -0
  72. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/.gitignore +0 -0
  73. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/.gitmodules +0 -0
  74. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/.pre-commit-config.yaml +0 -0
  75. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/AUTHORS.rst +0 -0
  76. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/LICENSE.md +0 -0
  77. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/README.md +0 -0
  78. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/codecov.yml +0 -0
  79. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/conda-env.yml +0 -0
  80. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/Makefile +0 -0
  81. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/_static/css/custom.css +0 -0
  82. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/_static/js/custom.js +0 -0
  83. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/_templates/versions.html +0 -0
  84. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/api/api.rst +0 -0
  85. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/api/configs.rst +0 -0
  86. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/api/data.rst +0 -0
  87. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/api/datagrabbers.rst +0 -0
  88. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/api/datareaders.rst +0 -0
  89. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/api/index.rst +0 -0
  90. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/api/markers.rst +0 -0
  91. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/api/nilearn.rst +0 -0
  92. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/api/onthefly.rst +0 -0
  93. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/api/pipeline.rst +0 -0
  94. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/api/preprocessing.rst +0 -0
  95. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/api/stats.rst +0 -0
  96. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/api/storage.rst +0 -0
  97. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/api/testing.rst +0 -0
  98. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/api/utils.rst +0 -0
  99. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/builtin.rst +0 -0
  100. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/contributors.inc +0 -0
  101. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/.gitignore +0 -0
  102. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/115.doc +0 -0
  103. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/136.enh +0 -0
  104. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/161.feature +0 -0
  105. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/273.feature +0 -0
  106. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/318.misc +0 -0
  107. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/323.feature +0 -0
  108. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/324.bugfix +0 -0
  109. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/327.doc +0 -0
  110. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/330.doc +0 -0
  111. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/331.bugfix +0 -0
  112. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/332.bugfix +0 -0
  113. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/336.removal +0 -0
  114. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/337.misc +0 -0
  115. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/339.bugfix +0 -0
  116. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/340.bugfix +0 -0
  117. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/341.enh +0 -0
  118. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/342.misc +0 -0
  119. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/343.feature +0 -0
  120. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/344.feature +0 -0
  121. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/345.feature +0 -0
  122. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/346.enh +0 -0
  123. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/346.feature +0 -0
  124. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/347.misc +0 -0
  125. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/changes/newsfragments/350.enh +0 -0
  126. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/conf.py +0 -0
  127. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/contribution.rst +0 -0
  128. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/extending/coordinates.rst +0 -0
  129. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/extending/datagrabber.rst +0 -0
  130. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/extending/dependencies.rst +0 -0
  131. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/extending/extension.rst +0 -0
  132. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/extending/index.rst +0 -0
  133. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/extending/masks.rst +0 -0
  134. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/extending/parcellations.rst +0 -0
  135. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/extending/preprocessor.rst +0 -0
  136. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/faq.rst +0 -0
  137. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/help.rst +0 -0
  138. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/images/junifer_logo.png +0 -0
  139. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/index.rst +0 -0
  140. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/installation.rst +0 -0
  141. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/links.inc +0 -0
  142. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/maintaining.rst +0 -0
  143. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/redirect.html +0 -0
  144. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/sphinxext/gh_substitutions.py +0 -0
  145. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/starting.rst +0 -0
  146. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/understanding/data.rst +0 -0
  147. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/understanding/datagrabber.rst +0 -0
  148. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/understanding/datareader.rst +0 -0
  149. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/understanding/index.rst +0 -0
  150. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/understanding/pipeline.rst +0 -0
  151. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/understanding/preprocess.rst +0 -0
  152. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/understanding/storage.rst +0 -0
  153. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/using/codeless.rst +0 -0
  154. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/using/index.rst +0 -0
  155. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/using/masks.rst +0 -0
  156. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/using/queueing.rst +0 -0
  157. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/using/running.rst +0 -0
  158. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/docs/whats_new.rst +0 -0
  159. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/examples/README.rst +0 -0
  160. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/examples/norun_hcpfc_pearson.py +0 -0
  161. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/examples/norun_ukbvm_gmd.py +0 -0
  162. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/examples/run_compute_parcel_mean.py +0 -0
  163. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/examples/run_datagrabber_bids_datalad.py +0 -0
  164. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/examples/run_ets_rss_marker.py +0 -0
  165. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/examples/run_junifer_julearn.py +0 -0
  166. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/examples/run_run_gmd_mean.py +0 -0
  167. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/examples/yamls/gmd_mean.yaml +0 -0
  168. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
  169. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
  170. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/examples/yamls/ukb_gmd_mean.yaml +0 -0
  171. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/ignore_words.txt +0 -0
  172. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/__init__.py +0 -0
  173. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/__init__.py +0 -0
  174. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/cli.py +0 -0
  175. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/decorators.py +0 -0
  176. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/functions.py +0 -0
  177. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/parser.py +0 -0
  178. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/queue_context/__init__.py +0 -0
  179. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
  180. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/queue_context/htcondor_adapter.py +0 -0
  181. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/queue_context/queue_context_adapter.py +0 -0
  182. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
  183. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
  184. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
  185. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/afni/3dRSFC +0 -0
  186. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/afni/3dReHo +0 -0
  187. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/afni/afni +0 -0
  188. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/afni/run_afni_docker.sh +0 -0
  189. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/ants/ResampleImage +0 -0
  190. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/ants/antsApplyTransforms +0 -0
  191. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
  192. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/ants/run_ants_docker.sh +0 -0
  193. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/freesurfer/mri_binarize +0 -0
  194. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/freesurfer/mri_mc +0 -0
  195. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/freesurfer/mri_pretess +0 -0
  196. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/freesurfer/mris_convert +0 -0
  197. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
  198. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/fsl/applywarp +0 -0
  199. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/fsl/flirt +0 -0
  200. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/fsl/img2imgcoord +0 -0
  201. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
  202. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/fsl/std2imgcoord +0 -0
  203. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/run_conda.bash +0 -0
  204. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/run_conda.zsh +0 -0
  205. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/run_venv.bash +0 -0
  206. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/res/run_venv.zsh +0 -0
  207. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/tests/data/gmd_mean.yaml +0 -0
  208. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/tests/data/gmd_mean_htcondor.yaml +0 -0
  209. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
  210. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/tests/test_api_utils.py +0 -0
  211. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/tests/test_cli.py +0 -0
  212. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/tests/test_functions.py +0 -0
  213. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/tests/test_parser.py +0 -0
  214. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/api/utils.py +0 -0
  215. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/configs/__init__.py +0 -0
  216. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/configs/juseless/__init__.py +0 -0
  217. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
  218. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
  219. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
  220. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
  221. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
  222. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
  223. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
  224. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
  225. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
  226. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
  227. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
  228. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/VOIs/meta/AutobiographicalMemory_VOIs.txt +0 -0
  229. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/VOIs/meta/CogAC_VOIs.txt +0 -0
  230. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/VOIs/meta/CogAR_VOIs.txt +0 -0
  231. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/VOIs/meta/DMNBuckner_VOIs.txt +0 -0
  232. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/VOIs/meta/Dosenbach2010_MNI_VOIs.txt +0 -0
  233. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/VOIs/meta/Empathy_VOIs.txt +0 -0
  234. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/VOIs/meta/Motor_VOIs.txt +0 -0
  235. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/VOIs/meta/MultiTask_VOIs.txt +0 -0
  236. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/VOIs/meta/PhysioStress_VOIs.txt +0 -0
  237. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/VOIs/meta/Power2011_MNI_VOIs.txt +0 -0
  238. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/VOIs/meta/Power2013_MNI_VOIs.tsv +0 -0
  239. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/VOIs/meta/Rew_VOIs.txt +0 -0
  240. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/VOIs/meta/Somatosensory_VOIs.txt +0 -0
  241. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/VOIs/meta/ToM_VOIs.txt +0 -0
  242. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/VOIs/meta/VigAtt_VOIs.txt +0 -0
  243. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/VOIs/meta/WM_VOIs.txt +0 -0
  244. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/VOIs/meta/eMDN_VOIs.txt +0 -0
  245. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/VOIs/meta/eSAD_VOIs.txt +0 -0
  246. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/VOIs/meta/extDMN_VOIs.txt +0 -0
  247. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/__init__.py +0 -0
  248. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/coordinates.py +0 -0
  249. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/masks/ukb/UKB_15K_GM_template.nii.gz +0 -0
  250. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean.nii.gz +0 -0
  251. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean_3mm.nii.gz +0 -0
  252. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/masks/vickery-patil/GMprob0.2_cortex_3mm_NA_rm.nii.gz +0 -0
  253. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/masks.py +0 -0
  254. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/parcellations.py +0 -0
  255. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/template_spaces.py +0 -0
  256. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/tests/test_coordinates.py +0 -0
  257. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/tests/test_data_utils.py +0 -0
  258. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/tests/test_masks.py +0 -0
  259. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/tests/test_parcellations.py +0 -0
  260. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/tests/test_template_spaces.py +0 -0
  261. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/data/utils.py +0 -0
  262. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/__init__.py +0 -0
  263. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/aomic/__init__.py +0 -0
  264. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/aomic/id1000.py +0 -0
  265. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/aomic/piop1.py +0 -0
  266. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/aomic/piop2.py +0 -0
  267. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
  268. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
  269. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
  270. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/base.py +0 -0
  271. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/datalad_base.py +0 -0
  272. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
  273. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/hcp1200/__init__.py +0 -0
  274. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
  275. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
  276. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
  277. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/multiple.py +0 -0
  278. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/pattern.py +0 -0
  279. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/pattern_datalad.py +0 -0
  280. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/tests/test_base.py +0 -0
  281. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/tests/test_datagrabber_utils.py +0 -0
  282. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
  283. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/tests/test_multiple.py +0 -0
  284. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/tests/test_pattern.py +0 -0
  285. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datagrabber/utils.py +0 -0
  286. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datareader/__init__.py +0 -0
  287. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datareader/default.py +0 -0
  288. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/datareader/tests/test_default_reader.py +0 -0
  289. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
  290. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
  291. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
  292. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
  293. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
  294. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
  295. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
  296. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
  297. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/external/__init__.py +0 -0
  298. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/external/h5io/h5io/__init__.py +0 -0
  299. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/external/h5io/h5io/_h5io.py +0 -0
  300. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/external/h5io/h5io/_version.py +0 -0
  301. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/external/h5io/h5io/chunked_array.py +0 -0
  302. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/external/h5io/h5io/chunked_list.py +0 -0
  303. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/external/nilearn/__init__.py +0 -0
  304. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
  305. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
  306. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/__init__.py +0 -0
  307. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/collection.py +0 -0
  308. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/complexity/__init__.py +0 -0
  309. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/complexity/hurst_exponent.py +0 -0
  310. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
  311. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/complexity/perm_entropy.py +0 -0
  312. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/complexity/range_entropy.py +0 -0
  313. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/complexity/range_entropy_auc.py +0 -0
  314. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/complexity/sample_entropy.py +0 -0
  315. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
  316. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
  317. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/falff/__init__.py +0 -0
  318. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/falff/_afni_falff.py +0 -0
  319. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/falff/_junifer_falff.py +0 -0
  320. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/functional_connectivity/__init__.py +0 -0
  321. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
  322. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/reho/__init__.py +0 -0
  323. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/reho/_afni_reho.py +0 -0
  324. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/reho/_junifer_reho.py +0 -0
  325. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/temporal_snr/__init__.py +0 -0
  326. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
  327. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/tests/test_marker_utils.py +0 -0
  328. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/markers/utils.py +0 -0
  329. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/onthefly/__init__.py +0 -0
  330. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/onthefly/read_transform.py +0 -0
  331. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/onthefly/tests/test_read_transform.py +0 -0
  332. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/pipeline/__init__.py +0 -0
  333. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/pipeline/registry.py +0 -0
  334. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/pipeline/singleton.py +0 -0
  335. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
  336. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
  337. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
  338. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/pipeline/update_meta_mixin.py +0 -0
  339. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/pipeline/utils.py +0 -0
  340. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/pipeline/workdir_manager.py +0 -0
  341. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/preprocess/__init__.py +0 -0
  342. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/preprocess/base.py +0 -0
  343. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/preprocess/confounds/__init__.py +0 -0
  344. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
  345. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
  346. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/preprocess/smoothing/__init__.py +0 -0
  347. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
  348. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
  349. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
  350. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/preprocess/smoothing/smoothing.py +0 -0
  351. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
  352. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
  353. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/preprocess/warping/__init__.py +0 -0
  354. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/preprocess/warping/_ants_warper.py +0 -0
  355. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/preprocess/warping/_fsl_warper.py +0 -0
  356. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/preprocess/warping/space_warper.py +0 -0
  357. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
  358. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/stats.py +0 -0
  359. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/storage/__init__.py +0 -0
  360. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/storage/base.py +0 -0
  361. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/storage/hdf5.py +0 -0
  362. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/storage/pandas_base.py +0 -0
  363. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/storage/sqlite.py +0 -0
  364. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/storage/tests/test_hdf5.py +0 -0
  365. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/storage/tests/test_pandas_base.py +0 -0
  366. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/storage/tests/test_sqlite.py +0 -0
  367. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/storage/tests/test_storage_base.py +0 -0
  368. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/storage/tests/test_utils.py +0 -0
  369. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/storage/utils.py +0 -0
  370. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/testing/__init__.py +0 -0
  371. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
  372. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/testing/datagrabbers.py +0 -0
  373. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/testing/registry.py +0 -0
  374. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
  375. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
  376. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
  377. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/testing/tests/test_testing_registry.py +0 -0
  378. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/testing/utils.py +0 -0
  379. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/tests/test_main.py +0 -0
  380. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/tests/test_stats.py +0 -0
  381. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/utils/__init__.py +0 -0
  382. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/utils/fs.py +0 -0
  383. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/utils/helpers.py +0 -0
  384. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/utils/logging.py +0 -0
  385. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/utils/tests/test_fs.py +0 -0
  386. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/utils/tests/test_helpers.py +0 -0
  387. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer/utils/tests/test_logging.py +0 -0
  388. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer.egg-info/dependency_links.txt +0 -0
  389. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer.egg-info/entry_points.txt +0 -0
  390. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer.egg-info/requires.txt +0 -0
  391. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/junifer.egg-info/top_level.txt +0 -0
  392. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/pyproject.toml +0 -0
  393. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/setup.cfg +0 -0
  394. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/setup.py +0 -0
  395. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/tools/create_aomic1000_example_dataset.py +0 -0
  396. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/tools/create_aomicpiop1_example_dataset.py +0 -0
  397. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/tools/create_aomicpiop2_example_dataset.py +0 -0
  398. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/tools/create_bids_example_dataset.py +0 -0
  399. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/tools/create_bids_example_dataset_sessions.py +0 -0
  400. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
  401. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/tools/create_hcp1200_example_dataset.py +0 -0
  402. {junifer-0.0.5.dev183 → junifer-0.0.5.dev202}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: junifer
3
- Version: 0.0.5.dev183
3
+ Version: 0.0.5.dev202
4
4
  Summary: JUelich NeuroImaging FEature extractoR
5
5
  Author-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Synchon Mandal <s.mandal@fz-juelich.de>
6
6
  Maintainer-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Synchon Mandal <s.mandal@fz-juelich.de>
@@ -0,0 +1 @@
1
+ ``fractional`` parameter for ``ALFFBase``, :class:`.ALFFParcels` and :class:`.ALFFSpheres` have been removed in favour of returning both ALFF and fALFF by `Synchon Mandal`_
@@ -0,0 +1 @@
1
+ Enable Markers to output multiple features by `Synchon Mandal`_
@@ -5,24 +5,17 @@
5
5
  Creating Markers
6
6
  ================
7
7
 
8
- Computing a marker (a.k.a. *feature*) is the main goal of ``junifer``. While we
9
- aim to provide as many Markers as possible, it might be the case that the Marker
10
- you are looking for is not available. In this case, you can create your own Marker
11
- by following this tutorial.
8
+ Computing a marker (a.k.a. *feature(s)*) is the main goal of ``junifer``. While
9
+ we aim to provide as many Markers as possible, it might be the case that the
10
+ Marker you are looking for is not available. In this case, you can create your
11
+ own Marker by following this tutorial.
12
12
 
13
13
  Most of the functionality of a ``junifer`` Marker has been taken care by the
14
- :class:`.BaseMarker` class. Thus, only a few methods are required:
15
-
16
- #. ``get_valid_inputs``: The method to obtain the list of valid inputs for the
17
- Marker. This is used to check that the inputs provided by the user are
18
- valid. This method should return a list of strings, representing
19
- :ref:`data types <data_types>`.
20
- #. ``get_output_type``: The method to obtain the output type of the Marker.
21
- This is used to check that the output of the Marker is compatible with the
22
- storage. This method should return a string, representing
23
- :ref:`storage types <storage_types>`.
24
- #. ``compute``: The method that given the data, computes the Marker.
14
+ :class:`.BaseMarker` class. Thus, only a few methods and class attributes are
15
+ required:
16
+
25
17
  #. ``__init__``: The initialisation method, where the Marker is configured.
18
+ #. ``compute``: The method that given the data, computes the Marker.
26
19
 
27
20
  As an example, we will develop a ``ParcelMean`` Marker, a Marker that first
28
21
  applies a parcellation and then computes the mean of the data in each parcel.
@@ -35,24 +28,26 @@ Step 1: Configure input and output
35
28
 
36
29
  This step is quite simple: we need to define the input and output of the Marker.
37
30
  Based on the current :ref:`data types <data_types>`, we can have ``BOLD``,
38
- ``VBM_WM`` and ``VBM_GM`` as valid inputs.
31
+ ``VBM_WM`` and ``VBM_GM`` as valid inputs. The output of the Marker depends on
32
+ the input. For ``BOLD``, it will be ``timeseries``, while for the rest of the
33
+ inputs, it will be ``vector``. Thus, we have a class attribute like so:
39
34
 
40
35
  .. code-block:: python
41
36
 
42
- def get_valid_inputs(self) -> list[str]:
43
- return ["BOLD", "VBM_WM", "VBM_GM"]
44
-
45
- The output of the Marker depends on the input. For ``BOLD``, it will be
46
- ``timeseries``, while for the rest of the inputs, it will be ``vector``. Thus,
47
- we can define the output as:
48
-
49
- .. code-block:: python
50
-
51
- def get_output_type(self, input_type: str) -> str:
52
- if input_type == "BOLD":
53
- return "timeseries"
54
- else:
55
- return "vector"
37
+ # NOTE: data type -> feature -> storage type
38
+ # You can have multiple features for one data type,
39
+ # each feature having same or different storage type
40
+ _MARKER_INOUT_MAPPINGS = {
41
+ "BOLD": {
42
+ "parcel_mean": "timeseries",
43
+ },
44
+ "VBM_WM": {
45
+ "parcel_mean": "vector",
46
+ },
47
+ "VBM_GM": {
48
+ "parcel_mean": "vector",
49
+ },
50
+ }
56
51
 
57
52
  .. _extending_markers_init:
58
53
 
@@ -119,7 +114,8 @@ arguments:
119
114
  Following the example, we will compute the mean of the data in each parcel using
120
115
  :class:`nilearn.maskers.NiftiLabelsMasker`. Importantly, the output of the
121
116
  compute function must be a dictionary. This dictionary will later be passed onto
122
- the ``store`` method.
117
+ the ``store`` method. The dictionary's first level of keys would the feature name
118
+ and the values would be a dictionary of storage type specific key-value pairs.
123
119
 
124
120
  .. hint::
125
121
 
@@ -162,11 +158,13 @@ the ``store`` method.
162
158
  # mask the data
163
159
  out_values = masker.fit_transform([data])
164
160
 
165
- # Create the output dictionary
166
- out = {"data": out_values, "col_names": t_labels}
167
-
168
- return out
169
-
161
+ # Create and return the output dictionary
162
+ return {
163
+ "parcel_mean": {
164
+ "data": out_values,
165
+ "col_names": t_labels,
166
+ },
167
+ }
170
168
 
171
169
  .. _extending_markers_finalize:
172
170
 
@@ -193,11 +191,11 @@ Finally, we need to register the Marker using the ``@register_marker`` decorator
193
191
 
194
192
  .. code-block:: python
195
193
 
196
- from typing import Any
194
+ from typing import Any, ClassVar
197
195
 
198
196
  from junifer.api.decorators import register_marker
199
197
  from junifer.data import get_parcellation
200
- from junifer.markers.base import BaseMarker
198
+ from junifer.markers import BaseMarker
201
199
  from nilearn.maskers import NiftiLabelsMasker
202
200
 
203
201
 
@@ -206,6 +204,18 @@ Finally, we need to register the Marker using the ``@register_marker`` decorator
206
204
 
207
205
  _DEPENDENCIES = {"nilearn", "numpy"}
208
206
 
207
+ _MARKER_INOUT_MAPPINGS: ClassVar[dict[str, dict[str, str]]] = {
208
+ "BOLD": {
209
+ "parcel_mean": "timeseries",
210
+ },
211
+ "VBM_WM": {
212
+ "parcel_mean": "vector",
213
+ },
214
+ "VBM_GM": {
215
+ "parcel_mean": "vector",
216
+ },
217
+ }
218
+
209
219
  def __init__(
210
220
  self,
211
221
  parcellation: str,
@@ -215,15 +225,6 @@ Finally, we need to register the Marker using the ``@register_marker`` decorator
215
225
  self.parcellation = parcellation
216
226
  super().__init__(on=on, name=name)
217
227
 
218
- def get_valid_inputs(self) -> list[str]:
219
- return ["BOLD", "VBM_WM", "VBM_GM"]
220
-
221
- def get_output_type(self, input_type: str) -> str:
222
- if input_type == "BOLD":
223
- return "timeseries"
224
- else:
225
- return "vector"
226
-
227
228
  def compute(
228
229
  self,
229
230
  input: dict[str, Any],
@@ -250,11 +251,13 @@ Finally, we need to register the Marker using the ``@register_marker`` decorator
250
251
  # mask the data
251
252
  out_values = masker.fit_transform([data])
252
253
 
253
- # Create the output dictionary
254
- out = {"data": out_values, "col_names": t_labels}
255
-
256
- return out
257
-
254
+ # Create and return the output dictionary
255
+ return {
256
+ "parcel_mean": {
257
+ "data": out_values,
258
+ "col_names": t_labels,
259
+ },
260
+ }
258
261
 
259
262
  .. _extending_markers_template:
260
263
 
@@ -269,22 +272,16 @@ Template for a custom Marker
269
272
 
270
273
  @register_marker
271
274
  class TemplateMarker(BaseMarker):
275
+
276
+ # TODO: add the dependencies
277
+ _DEPENDENCIES = {}
278
+
279
+ # TODO: add the input-output mappings
280
+ _MARKER_INOUT_MAPPINGS = {}
281
+
272
282
  def __init__(self, on=None, name=None):
273
283
  # TODO: add marker-specific parameters
274
284
  super().__init__(on=on, name=name)
275
285
 
276
- def get_valid_inputs(self):
277
- # TODO: Complete with the valid inputs
278
- valid = []
279
- return valid
280
-
281
- def get_output_type(self, input_type):
282
- # TODO: Return the valid output type for each input type
283
- pass
284
-
285
286
  def compute(self, input, extra_input):
286
287
  # TODO: compute the marker and create the output dictionary
287
-
288
- # Create the output dictionary
289
- out = {"data": None, "col_names": None}
290
- return out
@@ -26,7 +26,5 @@ on them outside the context as long as the actual data is in the memory and the
26
26
  Python runtime has not garbage-collected it.
27
27
 
28
28
  If you are interested in using already provided Markers, please go to
29
- :doc:`../builtin`. And, if you want to implement your own Marker, you need to
30
- provide concrete implementation of :class:`.BaseMarker`. Specifically, you
31
- need to override ``get_valid_inputs``, ``get_output_type`` and ``compute``
32
- methods.
29
+ :doc:`../builtin`. And, if you want to implement your own Marker, please check
30
+ out :doc:`../extending/marker`.
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.0.5.dev183'
16
- __version_tuple__ = version_tuple = (0, 0, 5, 'dev183')
15
+ __version__ = version = '0.0.5.dev202'
16
+ __version_tuple__ = version_tuple = (0, 0, 5, 'dev202')
@@ -15,13 +15,13 @@ from junifer.datagrabber import DataladDataGrabber
15
15
  _testing_dataset = {
16
16
  "example_bids": {
17
17
  "uri": "https://gin.g-node.org/juaml/datalad-example-bids",
18
- "commit": "522dfb203afcd2cd55799bf347f9b211919a7338",
19
- "id": "fec92475-d9c0-4409-92ba-f041b6a12c40",
18
+ "commit": "b87897cbe51bf0ee5514becaa5c7dd76491db5ad",
19
+ "id": "8fddff30-6993-420a-9d1e-b5b028c59468",
20
20
  },
21
21
  "example_bids_ses": {
22
22
  "uri": "https://gin.g-node.org/juaml/datalad-example-bids-ses",
23
- "commit": "3d08d55d1faad4f12ab64ac9497544a0d924d47a",
24
- "id": "c83500d0-532f-45be-baf1-0dab703bdc2a",
23
+ "commit": "6b163aa98af76a9eac0272273c27e14127850181",
24
+ "id": "715c17cf-a1b9-42d6-9af8-9f74c1a4a724",
25
25
  },
26
26
  }
27
27
 
@@ -15,13 +15,13 @@ from junifer.datagrabber import PatternDataladDataGrabber
15
15
  _testing_dataset = {
16
16
  "example_bids": {
17
17
  "uri": "https://gin.g-node.org/juaml/datalad-example-bids",
18
- "commit": "522dfb203afcd2cd55799bf347f9b211919a7338",
19
- "id": "fec92475-d9c0-4409-92ba-f041b6a12c40",
18
+ "commit": "b87897cbe51bf0ee5514becaa5c7dd76491db5ad",
19
+ "id": "8fddff30-6993-420a-9d1e-b5b028c59468",
20
20
  },
21
21
  "example_bids_ses": {
22
22
  "uri": "https://gin.g-node.org/juaml/datalad-example-bids-ses",
23
- "commit": "3d08d55d1faad4f12ab64ac9497544a0d924d47a",
24
- "id": "c83500d0-532f-45be-baf1-0dab703bdc2a",
23
+ "commit": "6b163aa98af76a9eac0272273c27e14127850181",
24
+ "id": "715c17cf-a1b9-42d6-9af8-9f74c1a4a724",
25
25
  },
26
26
  }
27
27
 
@@ -5,6 +5,7 @@
5
5
  # License: AGPL
6
6
 
7
7
  from abc import ABC, abstractmethod
8
+ from copy import deepcopy
8
9
  from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union
9
10
 
10
11
  from ..pipeline import PipelineStepMixin, UpdateMetaMixin
@@ -35,6 +36,8 @@ class BaseMarker(ABC, PipelineStepMixin, UpdateMetaMixin):
35
36
 
36
37
  Raises
37
38
  ------
39
+ AttributeError
40
+ If the marker does not have `_MARKER_INOUT_MAPPINGS` attribute.
38
41
  ValueError
39
42
  If required input data type(s) is(are) not found.
40
43
 
@@ -45,6 +48,12 @@ class BaseMarker(ABC, PipelineStepMixin, UpdateMetaMixin):
45
48
  on: Optional[Union[List[str], str]] = None,
46
49
  name: Optional[str] = None,
47
50
  ) -> None:
51
+ # Check for missing mapping attribute
52
+ if not hasattr(self, "_MARKER_INOUT_MAPPINGS"):
53
+ raise_error(
54
+ msg=("Missing `_MARKER_INOUT_MAPPINGS` for the marker"),
55
+ klass=AttributeError,
56
+ )
48
57
  # Use all data types if not provided
49
58
  if on is None:
50
59
  on = self.get_valid_inputs()
@@ -88,7 +97,6 @@ class BaseMarker(ABC, PipelineStepMixin, UpdateMetaMixin):
88
97
  )
89
98
  return [x for x in self._on if x in input]
90
99
 
91
- @abstractmethod
92
100
  def get_valid_inputs(self) -> List[str]:
93
101
  """Get valid data types for input.
94
102
 
@@ -98,30 +106,25 @@ class BaseMarker(ABC, PipelineStepMixin, UpdateMetaMixin):
98
106
  The list of data types that can be used as input for this marker.
99
107
 
100
108
  """
101
- raise_error(
102
- msg="Concrete classes need to implement get_valid_inputs().",
103
- klass=NotImplementedError,
104
- )
109
+ return list(self._MARKER_INOUT_MAPPINGS.keys())
105
110
 
106
- @abstractmethod
107
- def get_output_type(self, input_type: str) -> str:
111
+ def get_output_type(self, input_type: str, output_feature: str) -> str:
108
112
  """Get output type.
109
113
 
110
114
  Parameters
111
115
  ----------
112
116
  input_type : str
113
117
  The data type input to the marker.
118
+ output_feature : str
119
+ The feature output of the marker.
114
120
 
115
121
  Returns
116
122
  -------
117
123
  str
118
- The storage type output by the marker.
124
+ The storage type output of the marker.
119
125
 
120
126
  """
121
- raise_error(
122
- msg="Concrete classes need to implement get_output_type().",
123
- klass=NotImplementedError,
124
- )
127
+ return self._MARKER_INOUT_MAPPINGS[input_type][output_feature]
125
128
 
126
129
  @abstractmethod
127
130
  def compute(self, input: Dict, extra_input: Optional[Dict] = None) -> Dict:
@@ -154,6 +157,7 @@ class BaseMarker(ABC, PipelineStepMixin, UpdateMetaMixin):
154
157
  def store(
155
158
  self,
156
159
  type_: str,
160
+ feature: str,
157
161
  out: Dict[str, Any],
158
162
  storage: "BaseFeatureStorage",
159
163
  ) -> None:
@@ -163,13 +167,15 @@ class BaseMarker(ABC, PipelineStepMixin, UpdateMetaMixin):
163
167
  ----------
164
168
  type_ : str
165
169
  The data type to store.
170
+ feature : str
171
+ The feature to store.
166
172
  out : dict
167
173
  The computed result as a dictionary to store.
168
174
  storage : storage-like
169
175
  The storage class, for example, SQLiteFeatureStorage.
170
176
 
171
177
  """
172
- output_type_ = self.get_output_type(type_)
178
+ output_type_ = self.get_output_type(type_, feature)
173
179
  logger.debug(f"Storing {output_type_} in {storage}")
174
180
  storage.store(kind=output_type_, **out)
175
181
 
@@ -213,15 +219,35 @@ class BaseMarker(ABC, PipelineStepMixin, UpdateMetaMixin):
213
219
  t_meta["type"] = type_
214
220
  # Compute marker
215
221
  t_out = self.compute(input=t_input, extra_input=extra_input)
216
- t_out["meta"] = t_meta
217
- # Update metadata for step
218
- self.update_meta(t_out, "marker")
219
- # Check storage
220
- if storage is not None:
221
- logger.info(f"Storing in {storage}")
222
- self.store(type_=type_, out=t_out, storage=storage)
223
- else:
224
- logger.info("No storage specified, returning dictionary")
225
- out[type_] = t_out
222
+ # Initialize empty dictionary if no storage object is provided
223
+ if storage is None:
224
+ out[type_] = {}
225
+ # Store individual features
226
+ for feature_name, feature_data in t_out.items():
227
+ # Make deep copy of the feature data for manipulation
228
+ feature_data_copy = deepcopy(feature_data)
229
+ # Make deep copy of metadata and add to feature data
230
+ feature_data_copy["meta"] = deepcopy(t_meta)
231
+ # Update metadata for the feature,
232
+ # feature data is not manipulated, only meta
233
+ self.update_meta(feature_data_copy, "marker")
234
+ # Update marker feature's metadata name
235
+ feature_data_copy["meta"]["marker"][
236
+ "name"
237
+ ] += f"_{feature_name}"
238
+
239
+ if storage is not None:
240
+ logger.info(f"Storing in {storage}")
241
+ self.store(
242
+ type_=type_,
243
+ feature=feature_name,
244
+ out=feature_data_copy,
245
+ storage=storage,
246
+ )
247
+ else:
248
+ logger.info(
249
+ "No storage specified, returning dictionary"
250
+ )
251
+ out[type_][feature_name] = feature_data_copy
226
252
 
227
253
  return out