spacr 1.0.6__tar.gz → 1.0.7__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 (673) hide show
  1. {spacr-1.0.6/spacr.egg-info → spacr-1.0.7}/PKG-INFO +1 -1
  2. {spacr-1.0.6 → spacr-1.0.7}/setup.py +1 -5
  3. {spacr-1.0.6 → spacr-1.0.7}/spacr/__init__.py +0 -9
  4. {spacr-1.0.6 → spacr-1.0.7}/spacr/core.py +0 -357
  5. {spacr-1.0.6 → spacr-1.0.7}/spacr/gui.py +2 -9
  6. {spacr-1.0.6 → spacr-1.0.7}/spacr/gui_core.py +21 -28
  7. spacr-1.0.7/spacr/gui_elements.py +1724 -0
  8. {spacr-1.0.6 → spacr-1.0.7}/spacr/gui_utils.py +3 -7
  9. spacr-1.0.7/spacr/resources/data/lopit.csv +3833 -0
  10. spacr-1.0.7/spacr/resources/icons/flow_chart_v3.png +0 -0
  11. spacr-1.0.7/spacr/resources/icons/logo_spacr.png +0 -0
  12. {spacr-1.0.6 → spacr-1.0.7/spacr.egg-info}/PKG-INFO +1 -1
  13. {spacr-1.0.6 → spacr-1.0.7}/spacr.egg-info/SOURCES.txt +0 -127
  14. {spacr-1.0.6 → spacr-1.0.7}/spacr.egg-info/entry_points.txt +0 -3
  15. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans-ExtraBold.ttf +0 -0
  16. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans-ExtraBoldItalic.ttf +0 -0
  17. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans-Medium.ttf +0 -0
  18. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans-MediumItalic.ttf +0 -0
  19. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_Condensed-Bold.ttf +0 -0
  20. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_Condensed-BoldItalic.ttf +0 -0
  21. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_Condensed-ExtraBold.ttf +0 -0
  22. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_Condensed-ExtraBoldItalic.ttf +0 -0
  23. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_Condensed-Italic.ttf +0 -0
  24. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_Condensed-Light.ttf +0 -0
  25. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_Condensed-LightItalic.ttf +0 -0
  26. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_Condensed-Medium.ttf +0 -0
  27. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_Condensed-MediumItalic.ttf +0 -0
  28. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_Condensed-Regular.ttf +0 -0
  29. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_Condensed-SemiBold.ttf +0 -0
  30. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_Condensed-SemiBoldItalic.ttf +0 -0
  31. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_SemiCondensed-Bold.ttf +0 -0
  32. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_SemiCondensed-BoldItalic.ttf +0 -0
  33. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_SemiCondensed-ExtraBold.ttf +0 -0
  34. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_SemiCondensed-ExtraBoldItalic.ttf +0 -0
  35. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_SemiCondensed-Italic.ttf +0 -0
  36. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_SemiCondensed-Light.ttf +0 -0
  37. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_SemiCondensed-LightItalic.ttf +0 -0
  38. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_SemiCondensed-Medium.ttf +0 -0
  39. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_SemiCondensed-MediumItalic.ttf +0 -0
  40. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_SemiCondensed-Regular.ttf +0 -0
  41. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_SemiCondensed-SemiBold.ttf +0 -0
  42. spacr-1.0.6/docs/resources/font/open_sans/static/OpenSans_SemiCondensed-SemiBoldItalic.ttf +0 -0
  43. spacr-1.0.6/docs/resources/tutorial/1_mask/gui/Screenshot from 2025-06-25 22-03-41.png +0 -0
  44. spacr-1.0.6/docs/resources/tutorial/1_mask/gui/Screenshot from 2025-06-25 22-07-50.png +0 -0
  45. spacr-1.0.6/docs/resources/tutorial/1_mask/gui/Screenshot from 2025-06-25 22-08-06.png +0 -0
  46. spacr-1.0.6/docs/resources/tutorial/1_mask/gui/Screenshot from 2025-06-25 22-08-19.png +0 -0
  47. spacr-1.0.6/docs/resources/tutorial/1_mask/gui/Screenshot from 2025-06-25 22-08-37.png +0 -0
  48. spacr-1.0.6/docs/resources/tutorial/1_mask/gui/Screenshot from 2025-06-25 22-08-55.png +0 -0
  49. spacr-1.0.6/docs/resources/tutorial/1_mask/gui/Screenshot from 2025-06-25 22-09-03.png +0 -0
  50. spacr-1.0.6/docs/resources/tutorial/1_mask/gui/Screenshot from 2025-06-25 22-09-20.png +0 -0
  51. spacr-1.0.6/docs/resources/tutorial/1_mask/gui/Screenshot from 2025-06-25 22-09-34.png +0 -0
  52. spacr-1.0.6/docs/resources/tutorial/1_mask/gui/Screenshot from 2025-06-25 22-09-43.png +0 -0
  53. spacr-1.0.6/docs/resources/tutorial/1_mask/gui/Screenshot from 2025-06-25 22-09-56.png +0 -0
  54. spacr-1.0.6/docs/resources/tutorial/1_mask/gui/Screenshot from 2025-06-25 22-10-25.png +0 -0
  55. spacr-1.0.6/docs/resources/tutorial/1_mask/gui/Screenshot from 2025-06-25 22-11-04.png +0 -0
  56. spacr-1.0.6/docs/resources/tutorial/1_mask/gui/Screenshot from 2025-06-25 22-11-11.png +0 -0
  57. spacr-1.0.6/docs/resources/tutorial/1_mask/gui/Screenshot from 2025-06-25 22-11-18.png +0 -0
  58. spacr-1.0.6/docs/resources/tutorial/1_mask/gui/Screenshot from 2025-06-25 22-11-27.png +0 -0
  59. spacr-1.0.6/docs/resources/tutorial/1_mask/gui/gui.png +0 -0
  60. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_00_code.txt +0 -37
  61. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_code.txt +0 -1
  62. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_00_text.txt +0 -3
  63. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_02_text.txt +0 -63
  64. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_04_text.txt +0 -20
  65. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_06_text.txt +0 -4
  66. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_08_text.txt +0 -1
  67. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_19_text.txt +0 -1
  68. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_21_text.txt +0 -4
  69. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_23_text.txt +0 -1
  70. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_34_text.txt +0 -1
  71. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_36_text.txt +0 -4
  72. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_38_text.txt +0 -1
  73. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_49_text.txt +0 -23
  74. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_51_text.txt +0 -1
  75. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_53_text.txt +0 -1
  76. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_55_text.txt +0 -1
  77. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_57_text.txt +0 -1
  78. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_59_text.txt +0 -1
  79. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_61_text.txt +0 -1
  80. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_63_text.txt +0 -1
  81. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_65_text.txt +0 -1
  82. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_67_text.txt +0 -1
  83. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_01_out_69_text.txt +0 -2
  84. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/cell_02_code.txt +0 -0
  85. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/console_output.js +0 -63
  86. spacr-1.0.6/docs/resources/tutorial/1_mask/notebook/console_output.txt +0 -63
  87. spacr-1.0.6/docs/resources/tutorial/2_measure/notebook/2_spacr_generate_mesurments_crop_images-ipynb/cell_00_code.txt +0 -25
  88. spacr-1.0.6/docs/resources/tutorial/2_measure/notebook/2_spacr_generate_mesurments_crop_images-ipynb/cell_01_code.txt +0 -1
  89. spacr-1.0.6/docs/resources/tutorial/2_measure/notebook/2_spacr_generate_mesurments_crop_images-ipynb/cell_01_out_00_text.txt +0 -3
  90. spacr-1.0.6/docs/resources/tutorial/2_measure/notebook/2_spacr_generate_mesurments_crop_images-ipynb/cell_01_out_02_text.txt +0 -1
  91. spacr-1.0.6/docs/resources/tutorial/2_measure/notebook/2_spacr_generate_mesurments_crop_images-ipynb/cell_01_out_04_text.txt +0 -2
  92. spacr-1.0.6/docs/resources/tutorial/2_measure/notebook/2_spacr_generate_mesurments_crop_images-ipynb/cell_01_out_10_text.txt +0 -1
  93. spacr-1.0.6/docs/resources/tutorial/2_measure/notebook/2_spacr_generate_mesurments_crop_images-ipynb/cell_01_out_16_text.txt +0 -1
  94. spacr-1.0.6/docs/resources/tutorial/2_measure/notebook/2_spacr_generate_mesurments_crop_images-ipynb/cell_01_out_22_text.txt +0 -1
  95. spacr-1.0.6/docs/resources/tutorial/2_measure/notebook/2_spacr_generate_mesurments_crop_images-ipynb/cell_01_out_28_text.txt +0 -1
  96. spacr-1.0.6/docs/resources/tutorial/2_measure/notebook/2_spacr_generate_mesurments_crop_images-ipynb/cell_01_out_34_text.txt +0 -1
  97. spacr-1.0.6/docs/resources/tutorial/2_measure/notebook/2_spacr_generate_mesurments_crop_images-ipynb/cell_01_out_40_text.txt +0 -1
  98. spacr-1.0.6/docs/resources/tutorial/2_measure/notebook/2_spacr_generate_mesurments_crop_images-ipynb/cell_01_out_46_text.txt +0 -1
  99. spacr-1.0.6/docs/resources/tutorial/2_measure/notebook/2_spacr_generate_mesurments_crop_images-ipynb/cell_01_out_52_text.txt +0 -1
  100. spacr-1.0.6/docs/resources/tutorial/2_measure/notebook/2_spacr_generate_mesurments_crop_images-ipynb/cell_01_out_58_text.txt +0 -1
  101. spacr-1.0.6/docs/resources/tutorial/2_measure/notebook/2_spacr_generate_mesurments_crop_images-ipynb/cell_01_out_64_text.txt +0 -2
  102. spacr-1.0.6/docs/resources/tutorial/2_measure/notebook/2_spacr_generate_mesurments_crop_images-ipynb/cell_02_code.txt +0 -0
  103. spacr-1.0.6/spacr/app_annotate.py +0 -64
  104. spacr-1.0.6/spacr/app_make_masks.py +0 -44
  105. spacr-1.0.6/spacr/app_umap.py +0 -8
  106. spacr-1.0.6/spacr/gui_elements.py +0 -3398
  107. spacr-1.0.6/spacr/resources/data/lopit.csv +0 -3833
  108. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans-ExtraBold.ttf +0 -0
  109. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans-ExtraBoldItalic.ttf +0 -0
  110. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans-Medium.ttf +0 -0
  111. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans-MediumItalic.ttf +0 -0
  112. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_Condensed-Bold.ttf +0 -0
  113. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_Condensed-BoldItalic.ttf +0 -0
  114. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_Condensed-ExtraBold.ttf +0 -0
  115. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_Condensed-ExtraBoldItalic.ttf +0 -0
  116. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_Condensed-Italic.ttf +0 -0
  117. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_Condensed-Light.ttf +0 -0
  118. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_Condensed-LightItalic.ttf +0 -0
  119. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_Condensed-Medium.ttf +0 -0
  120. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_Condensed-MediumItalic.ttf +0 -0
  121. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_Condensed-Regular.ttf +0 -0
  122. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_Condensed-SemiBold.ttf +0 -0
  123. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_Condensed-SemiBoldItalic.ttf +0 -0
  124. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Bold.ttf +0 -0
  125. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-BoldItalic.ttf +0 -0
  126. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-ExtraBold.ttf +0 -0
  127. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-ExtraBoldItalic.ttf +0 -0
  128. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Italic.ttf +0 -0
  129. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Light.ttf +0 -0
  130. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-LightItalic.ttf +0 -0
  131. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Medium.ttf +0 -0
  132. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-MediumItalic.ttf +0 -0
  133. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Regular.ttf +0 -0
  134. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-SemiBold.ttf +0 -0
  135. spacr-1.0.6/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-SemiBoldItalic.ttf +0 -0
  136. spacr-1.0.6/spacr/resources/icons/flow_chart_v3.png +0 -0
  137. spacr-1.0.6/spacr/resources/icons/logo_spacr.png +0 -0
  138. spacr-1.0.6/spacr/resources/icons/logo_spacr_1.png +0 -0
  139. spacr-1.0.6/spacr/resources/icons/logo_v1.pdf +2 -2790
  140. spacr-1.0.6/spacr/resources/icons/logo_v2.pdf +1 -273
  141. spacr-1.0.6/spacr/resources/icons/logo_v2_dark.pdf +5 -322
  142. spacr-1.0.6/spacr/resources/icons/logo_v2_dark.png +0 -0
  143. spacr-1.0.6/spacr/resources/icons/logo_v2_white.pdf +2 -384
  144. spacr-1.0.6/spacr/resources/icons/logo_v2_white.png +0 -0
  145. spacr-1.0.6/spacr/sim.py +0 -1692
  146. {spacr-1.0.6 → spacr-1.0.7}/LICENSE +0 -0
  147. {spacr-1.0.6 → spacr-1.0.7}/MANIFEST.in +0 -0
  148. {spacr-1.0.6 → spacr-1.0.7}/README.rst +0 -0
  149. {spacr-1.0.6 → spacr-1.0.7}/deploy_docs.sh +0 -0
  150. {spacr-1.0.6 → spacr-1.0.7}/docs/.doctrees/environment.pickle +0 -0
  151. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/.doctrees/environment.pickle +0 -0
  152. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_images/logo_spacr.png +0 -0
  153. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/index.html +0 -0
  154. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/app_annotate.html +0 -0
  155. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/app_classify.html +0 -0
  156. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/app_make_masks.html +0 -0
  157. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/app_mask.html +0 -0
  158. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/app_measure.html +0 -0
  159. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/app_sequencing.html +0 -0
  160. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/app_umap.html +0 -0
  161. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/core.html +0 -0
  162. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/deep_spacr.html +0 -0
  163. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/gui.html +0 -0
  164. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/gui_core.html +0 -0
  165. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/gui_elements.html +0 -0
  166. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/gui_utils.html +0 -0
  167. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/io.html +0 -0
  168. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/logger.html +0 -0
  169. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/measure.html +0 -0
  170. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/ml.html +0 -0
  171. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/plot.html +0 -0
  172. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/sequencing.html +0 -0
  173. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/settings.html +0 -0
  174. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/sim.html +0 -0
  175. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/sp_stats.html +0 -0
  176. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/spacr_cellpose.html +0 -0
  177. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/submodules.html +0 -0
  178. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/timelapse.html +0 -0
  179. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/toxo.html +0 -0
  180. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/utils.html +0 -0
  181. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_modules/spacr/version.html +0 -0
  182. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/index.rst.txt +0 -0
  183. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/app_annotate/index.rst.txt +0 -0
  184. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/app_classify/index.rst.txt +0 -0
  185. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/app_make_masks/index.rst.txt +0 -0
  186. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/app_mask/index.rst.txt +0 -0
  187. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/app_measure/index.rst.txt +0 -0
  188. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/app_sequencing/index.rst.txt +0 -0
  189. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/app_umap/index.rst.txt +0 -0
  190. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/core/index.rst.txt +0 -0
  191. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/deep_spacr/index.rst.txt +0 -0
  192. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/gui/index.rst.txt +0 -0
  193. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/gui_core/index.rst.txt +0 -0
  194. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/gui_elements/index.rst.txt +0 -0
  195. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/gui_utils/index.rst.txt +0 -0
  196. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/index.rst.txt +0 -0
  197. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/io/index.rst.txt +0 -0
  198. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/logger/index.rst.txt +0 -0
  199. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/measure/index.rst.txt +0 -0
  200. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/ml/index.rst.txt +0 -0
  201. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/plot/index.rst.txt +0 -0
  202. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/sequencing/index.rst.txt +0 -0
  203. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/settings/index.rst.txt +0 -0
  204. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/sim/index.rst.txt +0 -0
  205. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/sp_stats/index.rst.txt +0 -0
  206. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/spacr_cellpose/index.rst.txt +0 -0
  207. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/submodules/index.rst.txt +0 -0
  208. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/timelapse/index.rst.txt +0 -0
  209. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/toxo/index.rst.txt +0 -0
  210. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/utils/index.rst.txt +0 -0
  211. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/api/spacr/version/index.rst.txt +0 -0
  212. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_sources/index.rst.txt +0 -0
  213. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js +0 -0
  214. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/basic.css +0 -0
  215. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/css/badge_only.css +0 -0
  216. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  217. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  218. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  219. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  220. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
  221. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/css/fonts/fontawesome-webfont.svg +0 -0
  222. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  223. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
  224. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  225. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
  226. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  227. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/css/fonts/lato-bold.woff +0 -0
  228. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/css/fonts/lato-bold.woff2 +0 -0
  229. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
  230. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  231. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/css/fonts/lato-normal.woff +0 -0
  232. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/css/fonts/lato-normal.woff2 +0 -0
  233. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/css/theme.css +0 -0
  234. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/custom.css +0 -0
  235. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/doctools.js +0 -0
  236. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/documentation_options.js +0 -0
  237. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/file.png +0 -0
  238. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/Lato/lato-bold.eot +0 -0
  239. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/Lato/lato-bold.ttf +0 -0
  240. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/Lato/lato-bold.woff +0 -0
  241. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/Lato/lato-bold.woff2 +0 -0
  242. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/Lato/lato-bolditalic.eot +0 -0
  243. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
  244. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/Lato/lato-bolditalic.woff +0 -0
  245. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
  246. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/Lato/lato-italic.eot +0 -0
  247. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/Lato/lato-italic.ttf +0 -0
  248. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/Lato/lato-italic.woff +0 -0
  249. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/Lato/lato-italic.woff2 +0 -0
  250. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/Lato/lato-regular.eot +0 -0
  251. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/Lato/lato-regular.ttf +0 -0
  252. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/Lato/lato-regular.woff +0 -0
  253. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/Lato/lato-regular.woff2 +0 -0
  254. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
  255. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
  256. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
  257. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
  258. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
  259. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
  260. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
  261. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
  262. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/graphviz.css +0 -0
  263. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/jquery.js +0 -0
  264. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/js/badge_only.js +0 -0
  265. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/js/theme.js +0 -0
  266. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/js/versions.js +0 -0
  267. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/language_data.js +0 -0
  268. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/logo_spacr.png +0 -0
  269. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/minus.png +0 -0
  270. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/plus.png +0 -0
  271. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/pygments.css +0 -0
  272. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/searchtools.js +0 -0
  273. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/_static/sphinx_highlight.js +0 -0
  274. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/index.html +0 -0
  275. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/app_annotate/index.html +0 -0
  276. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/app_classify/index.html +0 -0
  277. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/app_make_masks/index.html +0 -0
  278. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/app_mask/index.html +0 -0
  279. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/app_measure/index.html +0 -0
  280. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/app_sequencing/index.html +0 -0
  281. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/app_umap/index.html +0 -0
  282. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/core/index.html +0 -0
  283. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/deep_spacr/index.html +0 -0
  284. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/gui/index.html +0 -0
  285. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/gui_core/index.html +0 -0
  286. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/gui_elements/index.html +0 -0
  287. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/gui_utils/index.html +0 -0
  288. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/index.html +0 -0
  289. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/io/index.html +0 -0
  290. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/logger/index.html +0 -0
  291. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/measure/index.html +0 -0
  292. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/ml/index.html +0 -0
  293. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/plot/index.html +0 -0
  294. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/sequencing/index.html +0 -0
  295. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/settings/index.html +0 -0
  296. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/sim/index.html +0 -0
  297. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/sp_stats/index.html +0 -0
  298. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/spacr_cellpose/index.html +0 -0
  299. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/submodules/index.html +0 -0
  300. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/timelapse/index.html +0 -0
  301. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/toxo/index.html +0 -0
  302. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/utils/index.html +0 -0
  303. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/api/spacr/version/index.html +0 -0
  304. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/genindex.html +0 -0
  305. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/index.html +0 -0
  306. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/objects.inv +0 -0
  307. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/py-modindex.html +0 -0
  308. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/search.html +0 -0
  309. {spacr-1.0.6 → spacr-1.0.7}/docs/_build/html/searchindex.js +0 -0
  310. {spacr-1.0.6 → spacr-1.0.7}/docs/_images/logo_spacr.png +0 -0
  311. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/SetupDict.html +0 -0
  312. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/core/BasePredictor.html +0 -0
  313. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/core/BaseTrainer.html +0 -0
  314. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/core/Baseline/Predictor.html +0 -0
  315. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/core/Baseline/Trainer.html +0 -0
  316. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/core/Baseline/utils.html +0 -0
  317. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/core/MEDIAR/EnsemblePredictor.html +0 -0
  318. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/core/MEDIAR/Predictor.html +0 -0
  319. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/core/MEDIAR/Trainer.html +0 -0
  320. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/core/MEDIAR/utils.html +0 -0
  321. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/core/utils.html +0 -0
  322. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/evaluate.html +0 -0
  323. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/generate_mapping.html +0 -0
  324. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/index.html +0 -0
  325. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/main.html +0 -0
  326. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/predict.html +0 -0
  327. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/app_annotate.html +0 -0
  328. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/app_classify.html +0 -0
  329. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/app_make_masks.html +0 -0
  330. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/app_mask.html +0 -0
  331. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/app_measure.html +0 -0
  332. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/app_sequencing.html +0 -0
  333. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/app_umap.html +0 -0
  334. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/chat_bot.html +0 -0
  335. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/core.html +0 -0
  336. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/deep_spacr.html +0 -0
  337. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/gui.html +0 -0
  338. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/gui_core.html +0 -0
  339. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/gui_elements.html +0 -0
  340. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/gui_utils.html +0 -0
  341. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/io.html +0 -0
  342. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/logger.html +0 -0
  343. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/measure.html +0 -0
  344. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/mediar.html +0 -0
  345. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/ml.html +0 -0
  346. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/plot.html +0 -0
  347. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/sequencing.html +0 -0
  348. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/settings.html +0 -0
  349. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/sim.html +0 -0
  350. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/sp_stats.html +0 -0
  351. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/spacr_cellpose.html +0 -0
  352. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/submodules.html +0 -0
  353. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/timelapse.html +0 -0
  354. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/toxo.html +0 -0
  355. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/utils.html +0 -0
  356. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/spacr/version.html +0 -0
  357. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/train_tools/data_utils/custom/CellAware.html +0 -0
  358. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/train_tools/data_utils/custom/LoadImage.html +0 -0
  359. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/train_tools/data_utils/custom/NormalizeImage.html +0 -0
  360. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/train_tools/data_utils/datasetter.html +0 -0
  361. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/train_tools/data_utils/transforms.html +0 -0
  362. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/train_tools/data_utils/utils.html +0 -0
  363. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/train_tools/measures.html +0 -0
  364. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/train_tools/models/MEDIARFormer.html +0 -0
  365. {spacr-1.0.6 → spacr-1.0.7}/docs/_modules/train_tools/utils.html +0 -0
  366. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/SetupDict/index.rst.txt +0 -0
  367. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/core/BasePredictor/index.rst.txt +0 -0
  368. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/core/BaseTrainer/index.rst.txt +0 -0
  369. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/core/Baseline/Predictor/index.rst.txt +0 -0
  370. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/core/Baseline/Trainer/index.rst.txt +0 -0
  371. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/core/Baseline/index.rst.txt +0 -0
  372. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/core/Baseline/utils/index.rst.txt +0 -0
  373. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/core/MEDIAR/EnsemblePredictor/index.rst.txt +0 -0
  374. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/core/MEDIAR/Predictor/index.rst.txt +0 -0
  375. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/core/MEDIAR/Trainer/index.rst.txt +0 -0
  376. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/core/MEDIAR/index.rst.txt +0 -0
  377. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/core/MEDIAR/utils/index.rst.txt +0 -0
  378. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/core/index.rst.txt +0 -0
  379. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/core/utils/index.rst.txt +0 -0
  380. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/evaluate/index.rst.txt +0 -0
  381. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/generate_mapping/index.rst.txt +0 -0
  382. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/index.rst.txt +0 -0
  383. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/main/index.rst.txt +0 -0
  384. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/predict/index.rst.txt +0 -0
  385. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/app_annotate/index.rst.txt +0 -0
  386. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/app_classify/index.rst.txt +0 -0
  387. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/app_make_masks/index.rst.txt +0 -0
  388. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/app_mask/index.rst.txt +0 -0
  389. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/app_measure/index.rst.txt +0 -0
  390. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/app_sequencing/index.rst.txt +0 -0
  391. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/app_umap/index.rst.txt +0 -0
  392. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/chat_bot/index.rst.txt +0 -0
  393. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/core/index.rst.txt +0 -0
  394. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/deep_spacr/index.rst.txt +0 -0
  395. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/gui/index.rst.txt +0 -0
  396. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/gui_core/index.rst.txt +0 -0
  397. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/gui_elements/index.rst.txt +0 -0
  398. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/gui_utils/index.rst.txt +0 -0
  399. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/index.rst.txt +0 -0
  400. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/io/index.rst.txt +0 -0
  401. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/logger/index.rst.txt +0 -0
  402. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/measure/index.rst.txt +0 -0
  403. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/mediar/index.rst.txt +0 -0
  404. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/ml/index.rst.txt +0 -0
  405. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/openai/index.rst.txt +0 -0
  406. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/plot/index.rst.txt +0 -0
  407. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/sequencing/index.rst.txt +0 -0
  408. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/settings/index.rst.txt +0 -0
  409. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/sim/index.rst.txt +0 -0
  410. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/sp_stats/index.rst.txt +0 -0
  411. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/spacr_cellpose/index.rst.txt +0 -0
  412. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/submodules/index.rst.txt +0 -0
  413. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/timelapse/index.rst.txt +0 -0
  414. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/toxo/index.rst.txt +0 -0
  415. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/utils/index.rst.txt +0 -0
  416. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/spacr/version/index.rst.txt +0 -0
  417. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/train_tools/data_utils/custom/CellAware/index.rst.txt +0 -0
  418. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/train_tools/data_utils/custom/LoadImage/index.rst.txt +0 -0
  419. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/train_tools/data_utils/custom/NormalizeImage/index.rst.txt +0 -0
  420. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/train_tools/data_utils/custom/index.rst.txt +0 -0
  421. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/train_tools/data_utils/datasetter/index.rst.txt +0 -0
  422. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/train_tools/data_utils/index.rst.txt +0 -0
  423. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/train_tools/data_utils/transforms/index.rst.txt +0 -0
  424. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/train_tools/data_utils/utils/index.rst.txt +0 -0
  425. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/train_tools/index.rst.txt +0 -0
  426. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/train_tools/measures/index.rst.txt +0 -0
  427. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/train_tools/models/MEDIARFormer/index.rst.txt +0 -0
  428. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/train_tools/models/index.rst.txt +0 -0
  429. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/api/train_tools/utils/index.rst.txt +0 -0
  430. {spacr-1.0.6 → spacr-1.0.7}/docs/_sources/index.rst.txt +0 -0
  431. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/_sphinx_javascript_frameworks_compat.js +0 -0
  432. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/basic.css +0 -0
  433. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/css/badge_only.css +0 -0
  434. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  435. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  436. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  437. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  438. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/css/fonts/fontawesome-webfont.eot +0 -0
  439. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/css/fonts/fontawesome-webfont.svg +0 -0
  440. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  441. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/css/fonts/fontawesome-webfont.woff +0 -0
  442. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  443. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/css/fonts/lato-bold-italic.woff +0 -0
  444. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  445. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/css/fonts/lato-bold.woff +0 -0
  446. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/css/fonts/lato-bold.woff2 +0 -0
  447. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/css/fonts/lato-normal-italic.woff +0 -0
  448. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  449. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/css/fonts/lato-normal.woff +0 -0
  450. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/css/fonts/lato-normal.woff2 +0 -0
  451. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/css/theme.css +0 -0
  452. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/custom.css +0 -0
  453. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/doctools.js +0 -0
  454. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/documentation_options.js +0 -0
  455. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/file.png +0 -0
  456. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/Lato/lato-bold.eot +0 -0
  457. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/Lato/lato-bold.ttf +0 -0
  458. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/Lato/lato-bold.woff +0 -0
  459. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/Lato/lato-bold.woff2 +0 -0
  460. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/Lato/lato-bolditalic.eot +0 -0
  461. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
  462. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/Lato/lato-bolditalic.woff +0 -0
  463. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
  464. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/Lato/lato-italic.eot +0 -0
  465. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/Lato/lato-italic.ttf +0 -0
  466. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/Lato/lato-italic.woff +0 -0
  467. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/Lato/lato-italic.woff2 +0 -0
  468. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/Lato/lato-regular.eot +0 -0
  469. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/Lato/lato-regular.ttf +0 -0
  470. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/Lato/lato-regular.woff +0 -0
  471. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/Lato/lato-regular.woff2 +0 -0
  472. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
  473. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
  474. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
  475. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
  476. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
  477. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
  478. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
  479. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
  480. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/graphviz.css +0 -0
  481. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/jquery.js +0 -0
  482. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/js/badge_only.js +0 -0
  483. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/js/theme.js +0 -0
  484. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/js/versions.js +0 -0
  485. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/language_data.js +0 -0
  486. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/logo_spacr.png +0 -0
  487. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/minus.png +0 -0
  488. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/plus.png +0 -0
  489. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/pygments.css +0 -0
  490. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/searchtools.js +0 -0
  491. {spacr-1.0.6 → spacr-1.0.7}/docs/_static/sphinx_highlight.js +0 -0
  492. {spacr-1.0.6 → spacr-1.0.7}/docs/api/index.html +0 -0
  493. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/app_annotate/index.html +0 -0
  494. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/app_classify/index.html +0 -0
  495. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/app_make_masks/index.html +0 -0
  496. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/app_mask/index.html +0 -0
  497. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/app_measure/index.html +0 -0
  498. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/app_sequencing/index.html +0 -0
  499. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/app_umap/index.html +0 -0
  500. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/core/index.html +0 -0
  501. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/deep_spacr/index.html +0 -0
  502. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/gui/index.html +0 -0
  503. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/gui_core/index.html +0 -0
  504. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/gui_elements/index.html +0 -0
  505. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/gui_utils/index.html +0 -0
  506. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/index.html +0 -0
  507. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/io/index.html +0 -0
  508. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/logger/index.html +0 -0
  509. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/measure/index.html +0 -0
  510. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/ml/index.html +0 -0
  511. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/plot/index.html +0 -0
  512. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/sequencing/index.html +0 -0
  513. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/settings/index.html +0 -0
  514. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/sim/index.html +0 -0
  515. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/sp_stats/index.html +0 -0
  516. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/spacr_cellpose/index.html +0 -0
  517. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/submodules/index.html +0 -0
  518. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/timelapse/index.html +0 -0
  519. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/toxo/index.html +0 -0
  520. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/utils/index.html +0 -0
  521. {spacr-1.0.6 → spacr-1.0.7}/docs/api/spacr/version/index.html +0 -0
  522. {spacr-1.0.6 → spacr-1.0.7}/docs/genindex.html +0 -0
  523. {spacr-1.0.6 → spacr-1.0.7}/docs/index.html +0 -0
  524. {spacr-1.0.6 → spacr-1.0.7}/docs/objects.inv +0 -0
  525. {spacr-1.0.6 → spacr-1.0.7}/docs/py-modindex.html +0 -0
  526. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/font/open_sans/OFL.txt +0 -0
  527. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/font/open_sans/OpenSans-Italic-VariableFont_wdth,wght.ttf +0 -0
  528. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/font/open_sans/OpenSans-VariableFont_wdth,wght.ttf +0 -0
  529. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/font/open_sans/README.txt +0 -0
  530. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/font/open_sans/static/OpenSans-Bold.ttf +0 -0
  531. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/font/open_sans/static/OpenSans-BoldItalic.ttf +0 -0
  532. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/font/open_sans/static/OpenSans-Italic.ttf +0 -0
  533. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/font/open_sans/static/OpenSans-Light.ttf +0 -0
  534. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/font/open_sans/static/OpenSans-LightItalic.ttf +0 -0
  535. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/font/open_sans/static/OpenSans-Regular.ttf +0 -0
  536. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/font/open_sans/static/OpenSans-SemiBold.ttf +0 -0
  537. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/font/open_sans/static/OpenSans-SemiBoldItalic.ttf +0 -0
  538. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/icons/abort.png +0 -0
  539. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/icons/classify.png +0 -0
  540. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/icons/default.png +0 -0
  541. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/icons/download.png +0 -0
  542. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/icons/map_barcodes.png +0 -0
  543. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/icons/mask.png +0 -0
  544. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/icons/measure.png +0 -0
  545. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/icons/regression.png +0 -0
  546. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/icons/run.png +0 -0
  547. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/icons/settings.png +0 -0
  548. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/1_mask/gui/001_placeholder.png +0 -0
  549. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/1_mask/gui/002_placeholder.png +0 -0
  550. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/1_mask/gui/003_placeholder.png +0 -0
  551. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/1_mask/gui/004_placeholder.png +0 -0
  552. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/1_mask/notebook/img1.png +0 -0
  553. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/1_mask/notebook/img2.png +0 -0
  554. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/1_mask/notebook/img3.png +0 -0
  555. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/1_mask/notebook/img4.png +0 -0
  556. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/1_mask/notebook/img5.png +0 -0
  557. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/2_measure/gui/001_placeholder.png +0 -0
  558. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/2_measure/gui/002_placeholder.png +0 -0
  559. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/2_measure/gui/003_placeholder.png +0 -0
  560. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/2_measure/gui/004_placeholder.png +0 -0
  561. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/2_measure/notebook/img1.png +0 -0
  562. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/2_measure/notebook/img2.png +0 -0
  563. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/2_measure/notebook/img3.png +0 -0
  564. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/3_classify/gui/001_placeholder.png +0 -0
  565. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/3_classify/gui/002_placeholder.png +0 -0
  566. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/3_classify/gui/003_placeholder.png +0 -0
  567. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/3_classify/gui/004_placeholder.png +0 -0
  568. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/3_classify/notebook/img1.png +0 -0
  569. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/3_classify/notebook/img2.png +0 -0
  570. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/3_classify/notebook/img3.png +0 -0
  571. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/3_classify/notebook/img4.png +0 -0
  572. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/3_classify/notebook/img5.png +0 -0
  573. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/4_map_barcodes/gui/001_placeholder.png +0 -0
  574. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/4_map_barcodes/gui/002_placeholder.png +0 -0
  575. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/4_map_barcodes/gui/003_placeholder.png +0 -0
  576. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/4_map_barcodes/gui/004_placeholder.png +0 -0
  577. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/4_map_barcodes/notebook/img1.png +0 -0
  578. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/4_map_barcodes/notebook/img2.png +0 -0
  579. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/4_map_barcodes/notebook/img3.png +0 -0
  580. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/4_map_barcodes/notebook/img4.png +0 -0
  581. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/4_map_barcodes/notebook/img5.png +0 -0
  582. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/5_regression/gui/001_placeholder.png +0 -0
  583. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/5_regression/gui/002_placeholder.png +0 -0
  584. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/5_regression/gui/003_placeholder.png +0 -0
  585. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/5_regression/gui/004_placeholder.png +0 -0
  586. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/5_regression/notebook/img1.png +0 -0
  587. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/5_regression/notebook/img2.png +0 -0
  588. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/5_regression/notebook/img3.png +0 -0
  589. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/5_regression/notebook/img4.png +0 -0
  590. {spacr-1.0.6 → spacr-1.0.7}/docs/resources/tutorial/5_regression/notebook/img5.png +0 -0
  591. {spacr-1.0.6 → spacr-1.0.7}/docs/search.html +0 -0
  592. {spacr-1.0.6 → spacr-1.0.7}/docs/searchindex.js +0 -0
  593. {spacr-1.0.6 → spacr-1.0.7}/docs/source/_static/custom.css +0 -0
  594. {spacr-1.0.6 → spacr-1.0.7}/docs/source/_static/logo_spacr.png +0 -0
  595. {spacr-1.0.6 → spacr-1.0.7}/docs/source/conf.py +0 -0
  596. {spacr-1.0.6 → spacr-1.0.7}/docs/source/index.rst +0 -0
  597. {spacr-1.0.6 → spacr-1.0.7}/docs/tutorial/1_mask_gen_gui.html +0 -0
  598. {spacr-1.0.6 → spacr-1.0.7}/docs/tutorial/1_mask_gen_notebook.html +0 -0
  599. {spacr-1.0.6 → spacr-1.0.7}/docs/tutorial/2_measure_gui.html +0 -0
  600. {spacr-1.0.6 → spacr-1.0.7}/docs/tutorial/2_measure_notebook.html +0 -0
  601. {spacr-1.0.6 → spacr-1.0.7}/docs/tutorial/3_classify_gui.html +0 -0
  602. {spacr-1.0.6 → spacr-1.0.7}/docs/tutorial/3_classify_notebook.html +0 -0
  603. {spacr-1.0.6 → spacr-1.0.7}/docs/tutorial/4_map_barcodes_gui.html +0 -0
  604. {spacr-1.0.6 → spacr-1.0.7}/docs/tutorial/4_map_barcodes_notebook.html +0 -0
  605. {spacr-1.0.6 → spacr-1.0.7}/docs/tutorial/5_regression_gui.html +0 -0
  606. {spacr-1.0.6 → spacr-1.0.7}/docs/tutorial/5_regression_notebook.html +0 -0
  607. {spacr-1.0.6 → spacr-1.0.7}/docs/tutorial/index.html +0 -0
  608. {spacr-1.0.6 → spacr-1.0.7}/environment.yaml +0 -0
  609. {spacr-1.0.6 → spacr-1.0.7}/fonts/OpenSans-Regular.ttf +0 -0
  610. {spacr-1.0.6 → spacr-1.0.7}/pyproject.toml +0 -0
  611. {spacr-1.0.6 → spacr-1.0.7}/requirements.txt +0 -0
  612. {spacr-1.0.6 → spacr-1.0.7}/rtd_trigger.txt +0 -0
  613. {spacr-1.0.6 → spacr-1.0.7}/setup.cfg +0 -0
  614. {spacr-1.0.6 → spacr-1.0.7}/setup_docs.sh +0 -0
  615. {spacr-1.0.6 → spacr-1.0.7}/spacr/__main__.py +0 -0
  616. {spacr-1.0.6 → spacr-1.0.7}/spacr/app_classify.py +0 -0
  617. {spacr-1.0.6 → spacr-1.0.7}/spacr/app_mask.py +0 -0
  618. {spacr-1.0.6 → spacr-1.0.7}/spacr/app_measure.py +0 -0
  619. {spacr-1.0.6 → spacr-1.0.7}/spacr/app_sequencing.py +0 -0
  620. {spacr-1.0.6 → spacr-1.0.7}/spacr/deep_spacr.py +0 -0
  621. {spacr-1.0.6 → spacr-1.0.7}/spacr/io.py +0 -0
  622. {spacr-1.0.6 → spacr-1.0.7}/spacr/logger.py +0 -0
  623. {spacr-1.0.6 → spacr-1.0.7}/spacr/measure.py +0 -0
  624. {spacr-1.0.6 → spacr-1.0.7}/spacr/ml.py +0 -0
  625. {spacr-1.0.6 → spacr-1.0.7}/spacr/plot.py +0 -0
  626. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/data/toxoplasma_metadata.csv +0 -0
  627. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/font/open_sans/OFL.txt +0 -0
  628. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/font/open_sans/OpenSans-Italic-VariableFont_wdth,wght.ttf +0 -0
  629. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/font/open_sans/OpenSans-VariableFont_wdth,wght.ttf +0 -0
  630. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/font/open_sans/README.txt +0 -0
  631. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/font/open_sans/static/OpenSans-Bold.ttf +0 -0
  632. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/font/open_sans/static/OpenSans-BoldItalic.ttf +0 -0
  633. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/font/open_sans/static/OpenSans-Italic.ttf +0 -0
  634. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/font/open_sans/static/OpenSans-Light.ttf +0 -0
  635. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/font/open_sans/static/OpenSans-LightItalic.ttf +0 -0
  636. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/font/open_sans/static/OpenSans-Regular.ttf +0 -0
  637. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/font/open_sans/static/OpenSans-SemiBold.ttf +0 -0
  638. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/font/open_sans/static/OpenSans-SemiBoldItalic.ttf +0 -0
  639. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/abort.png +0 -0
  640. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/activation.png +0 -0
  641. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/annotate.png +0 -0
  642. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/cellpose_all.png +0 -0
  643. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/cellpose_masks.png +0 -0
  644. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/classify.png +0 -0
  645. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/convert.png +0 -0
  646. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/default.png +0 -0
  647. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/download.png +0 -0
  648. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/logo_spacr_v1.png +0 -0
  649. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/make_masks.png +0 -0
  650. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/map_barcodes.png +0 -0
  651. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/mask.png +0 -0
  652. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/measure.png +0 -0
  653. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/ml_analyze.png +0 -0
  654. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/plaque.png +0 -0
  655. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/recruitment.png +0 -0
  656. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/regression.png +0 -0
  657. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/run.png +0 -0
  658. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/sequencing.png +0 -0
  659. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/settings.png +0 -0
  660. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/train_cellpose.png +0 -0
  661. {spacr-1.0.6 → spacr-1.0.7}/spacr/resources/icons/umap.png +0 -0
  662. {spacr-1.0.6 → spacr-1.0.7}/spacr/sequencing.py +0 -0
  663. {spacr-1.0.6 → spacr-1.0.7}/spacr/settings.py +0 -0
  664. {spacr-1.0.6 → spacr-1.0.7}/spacr/sp_stats.py +0 -0
  665. {spacr-1.0.6 → spacr-1.0.7}/spacr/spacr_cellpose.py +0 -0
  666. {spacr-1.0.6 → spacr-1.0.7}/spacr/submodules.py +0 -0
  667. {spacr-1.0.6 → spacr-1.0.7}/spacr/timelapse.py +0 -0
  668. {spacr-1.0.6 → spacr-1.0.7}/spacr/toxo.py +0 -0
  669. {spacr-1.0.6 → spacr-1.0.7}/spacr/utils.py +0 -0
  670. {spacr-1.0.6 → spacr-1.0.7}/spacr/version.py +0 -0
  671. {spacr-1.0.6 → spacr-1.0.7}/spacr.egg-info/dependency_links.txt +0 -0
  672. {spacr-1.0.6 → spacr-1.0.7}/spacr.egg-info/requires.txt +0 -0
  673. {spacr-1.0.6 → spacr-1.0.7}/spacr.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: spacr
3
- Version: 1.0.6
3
+ Version: 1.0.7
4
4
  Summary: Spatial phenotype analysis of crisp screens (SpaCr)
5
5
  Home-page: https://github.com/EinarOlafsson/spacr
6
6
  Author: Einar Birnir Olafsson
@@ -72,7 +72,7 @@ dependencies = [
72
72
  'huggingface-hub>=0.24.0,<0.25'
73
73
  ]
74
74
 
75
- VERSION = "1.0.6"
75
+ VERSION = "1.0.7"
76
76
 
77
77
  setup(
78
78
  name="spacr",
@@ -91,11 +91,7 @@ setup(
91
91
  'console_scripts': [
92
92
  'mask=spacr.app_mask:start_mask_app',
93
93
  'measure=spacr.app_measure:start_measure_app',
94
- 'make_masks=spacr.app_make_masks:gui_make_masks',
95
- #'annotate=spacr.app_annotate:gui_annotate',
96
- 'annotate=spacr.app_annotate:start_annotate_app',
97
94
  'classify=spacr.app_classify:start_classify_app',
98
- 'sim=spacr.app_sim:gui_sim',
99
95
  'spacr=spacr.gui:gui_app',
100
96
  ],
101
97
  },
@@ -15,21 +15,17 @@ from . import utils
15
15
  from . import settings
16
16
  from . import plot
17
17
  from . import measure
18
- from . import sim
19
18
  from . import sequencing
20
19
  from . import timelapse
21
20
  from . import deep_spacr
22
- from . import app_annotate
23
21
  from . import gui_utils
24
22
  from . import gui_elements
25
23
  from . import gui_core
26
24
  from . import gui
27
- from . import app_make_masks
28
25
  from . import app_mask
29
26
  from . import app_measure
30
27
  from . import app_classify
31
28
  from . import app_sequencing
32
- from . import app_umap
33
29
  from . import submodules
34
30
  from . import ml
35
31
  from . import toxo
@@ -44,23 +40,18 @@ __all__ = [
44
40
  "settings",
45
41
  "plot",
46
42
  "measure",
47
- "sim",
48
43
  "sequencing",
49
44
  "timelapse",
50
45
  "deep_spacr",
51
- "app_annotate",
52
46
  "gui_utils",
53
47
  "gui_elements",
54
48
  "gui_core",
55
49
  "gui",
56
- "app_make_masks",
57
50
  "app_mask",
58
51
  "app_measure",
59
52
  "app_classify",
60
53
  "app_sequencing",
61
- "app_umap",
62
54
  "submodules",
63
- "openai",
64
55
  "ml",
65
56
  "toxo",
66
57
  "spacr_cellpose",
@@ -1,7 +1,6 @@
1
1
  import os, gc, torch, time, random
2
2
  import numpy as np
3
3
  import pandas as pd
4
- import matplotlib.pyplot as plt
5
4
  from IPython.display import display
6
5
 
7
6
  import warnings
@@ -449,362 +448,6 @@ def generate_cellpose_masks(src, settings, object_type):
449
448
  torch.cuda.empty_cache()
450
449
  return
451
450
 
452
- def generate_image_umap(settings={}):
453
- """
454
- Generate UMAP or tSNE embedding and visualize the data with clustering.
455
-
456
- Parameters:
457
- settings (dict): Dictionary containing the following keys:
458
- src (str): Source directory containing the data.
459
- row_limit (int): Limit the number of rows to process.
460
- tables (list): List of table names to read from the database.
461
- visualize (str): Visualization type.
462
- image_nr (int): Number of images to display.
463
- dot_size (int): Size of dots in the scatter plot.
464
- n_neighbors (int): Number of neighbors for UMAP.
465
- figuresize (int): Size of the figure.
466
- black_background (bool): Whether to use a black background.
467
- remove_image_canvas (bool): Whether to remove the image canvas.
468
- plot_outlines (bool): Whether to plot outlines.
469
- plot_points (bool): Whether to plot points.
470
- smooth_lines (bool): Whether to smooth lines.
471
- verbose (bool): Whether to print verbose output.
472
- embedding_by_controls (bool): Whether to use embedding from controls.
473
- col_to_compare (str): Column to compare for control-based embedding.
474
- pos (str): Positive control value.
475
- neg (str): Negative control value.
476
- clustering (str): Clustering method ('DBSCAN' or 'KMeans').
477
- exclude (list): List of columns to exclude from the analysis.
478
- plot_images (bool): Whether to plot images.
479
- reduction_method (str): Dimensionality reduction method ('UMAP' or 'tSNE').
480
- save_figure (bool): Whether to save the figure as a PDF.
481
-
482
- Returns:
483
- pd.DataFrame: DataFrame with the original data and an additional column 'cluster' containing the cluster identity.
484
- """
485
-
486
- from .io import _read_and_join_tables
487
- from .utils import get_db_paths, preprocess_data, reduction_and_clustering, remove_noise, generate_colors, correct_paths, plot_embedding, plot_clusters_grid, cluster_feature_analysis, map_condition
488
- from .settings import set_default_umap_image_settings
489
- settings = set_default_umap_image_settings(settings)
490
-
491
- if isinstance(settings['src'], str):
492
- settings['src'] = [settings['src']]
493
-
494
- if settings['plot_images'] is False:
495
- settings['black_background'] = False
496
-
497
- if settings['color_by']:
498
- settings['remove_cluster_noise'] = False
499
- settings['plot_outlines'] = False
500
- settings['smooth_lines'] = False
501
-
502
- print(f'Generating Image UMAP ...')
503
- settings_df = pd.DataFrame(list(settings.items()), columns=['Key', 'Value'])
504
- settings_dir = os.path.join(settings['src'][0],'settings')
505
- settings_csv = os.path.join(settings_dir,'embedding_settings.csv')
506
- os.makedirs(settings_dir, exist_ok=True)
507
- settings_df.to_csv(settings_csv, index=False)
508
- display(settings_df)
509
-
510
- db_paths = get_db_paths(settings['src'])
511
- tables = settings['tables'] + ['png_list']
512
- all_df = pd.DataFrame()
513
-
514
- for i,db_path in enumerate(db_paths):
515
- df = _read_and_join_tables(db_path, table_names=tables)
516
- df, image_paths_tmp = correct_paths(df, settings['src'][i])
517
- all_df = pd.concat([all_df, df], axis=0)
518
- #image_paths.extend(image_paths_tmp)
519
-
520
- all_df['cond'] = all_df['columnID'].apply(map_condition, neg=settings['neg'], pos=settings['pos'], mix=settings['mix'])
521
-
522
- if settings['exclude_conditions']:
523
- if isinstance(settings['exclude_conditions'], str):
524
- settings['exclude_conditions'] = [settings['exclude_conditions']]
525
- row_count_before = len(all_df)
526
- all_df = all_df[~all_df['cond'].isin(settings['exclude_conditions'])]
527
- if settings['verbose']:
528
- print(f'Excluded {row_count_before - len(all_df)} rows after excluding: {settings["exclude_conditions"]}, rows left: {len(all_df)}')
529
-
530
- if settings['row_limit'] is not None:
531
- all_df = all_df.sample(n=settings['row_limit'], random_state=42)
532
-
533
- image_paths = all_df['png_path'].to_list()
534
-
535
- if settings['embedding_by_controls']:
536
-
537
- # Extract and reset the index for the column to compare
538
- col_to_compare = all_df[settings['col_to_compare']].reset_index(drop=True)
539
- print(col_to_compare)
540
- #if settings['only_top_features']:
541
- # column_list = None
542
-
543
- # Preprocess the data to obtain numeric data
544
- numeric_data = preprocess_data(all_df, settings['filter_by'], settings['remove_highly_correlated'], settings['log_data'], settings['exclude'])
545
-
546
- # Convert numeric_data back to a DataFrame to align with col_to_compare
547
- numeric_data_df = pd.DataFrame(numeric_data)
548
-
549
- # Ensure numeric_data_df and col_to_compare are properly aligned
550
- numeric_data_df = numeric_data_df.reset_index(drop=True)
551
-
552
- # Assign the column back to numeric_data_df
553
- numeric_data_df[settings['col_to_compare']] = col_to_compare
554
-
555
- # Subset the dataframe based on specified column values for controls
556
- positive_control_df = numeric_data_df[numeric_data_df[settings['col_to_compare']] == settings['pos']].copy()
557
- negative_control_df = numeric_data_df[numeric_data_df[settings['col_to_compare']] == settings['neg']].copy()
558
- control_numeric_data_df = pd.concat([positive_control_df, negative_control_df])
559
-
560
- # Drop the comparison column from numeric_data_df and control_numeric_data_df
561
- numeric_data_df = numeric_data_df.drop(columns=[settings['col_to_compare']])
562
- control_numeric_data_df = control_numeric_data_df.drop(columns=[settings['col_to_compare']])
563
-
564
- # Convert numeric_data_df and control_numeric_data_df back to numpy arrays
565
- numeric_data = numeric_data_df.values
566
- control_numeric_data = control_numeric_data_df.values
567
-
568
- # Train the reducer on control data
569
- _, _, reducer = reduction_and_clustering(control_numeric_data, settings['n_neighbors'], settings['min_dist'], settings['metric'], settings['eps'], settings['min_samples'], settings['clustering'], settings['reduction_method'], settings['verbose'], n_jobs=settings['n_jobs'], mode='fit', model=False)
570
-
571
- # Apply the trained reducer to the entire dataset
572
- numeric_data = preprocess_data(all_df, settings['filter_by'], settings['remove_highly_correlated'], settings['log_data'], settings['exclude'])
573
- embedding, labels, _ = reduction_and_clustering(numeric_data, settings['n_neighbors'], settings['min_dist'], settings['metric'], settings['eps'], settings['min_samples'], settings['clustering'], settings['reduction_method'], settings['verbose'], n_jobs=settings['n_jobs'], mode=None, model=reducer)
574
-
575
- else:
576
- if settings['resnet_features']:
577
- # placeholder for resnet features, not implemented yet
578
- pass
579
- #numeric_data, embedding, labels = generate_umap_from_images(image_paths, settings['n_neighbors'], settings['min_dist'], settings['metric'], settings['clustering'], settings['eps'], settings['min_samples'], settings['n_jobs'], settings['verbose'])
580
- else:
581
- # Apply the trained reducer to the entire dataset
582
- numeric_data = preprocess_data(all_df, settings['filter_by'], settings['remove_highly_correlated'], settings['log_data'], settings['exclude'])
583
- embedding, labels, _ = reduction_and_clustering(numeric_data, settings['n_neighbors'], settings['min_dist'], settings['metric'], settings['eps'], settings['min_samples'], settings['clustering'], settings['reduction_method'], settings['verbose'], n_jobs=settings['n_jobs'])
584
-
585
- if settings['remove_cluster_noise']:
586
- # Remove noise from the clusters (removes -1 labels from DBSCAN)
587
- embedding, labels = remove_noise(embedding, labels)
588
-
589
- # Plot the results
590
- if settings['color_by']:
591
- if settings['embedding_by_controls']:
592
- labels = all_df[settings['color_by']]
593
- else:
594
- labels = all_df[settings['color_by']]
595
-
596
- # Generate colors for the clusters
597
- colors = generate_colors(len(np.unique(labels)), settings['black_background'])
598
-
599
- # Plot the embedding
600
- umap_plt = plot_embedding(embedding, image_paths, labels, settings['image_nr'], settings['img_zoom'], colors, settings['plot_by_cluster'], settings['plot_outlines'], settings['plot_points'], settings['plot_images'], settings['smooth_lines'], settings['black_background'], settings['figuresize'], settings['dot_size'], settings['remove_image_canvas'], settings['verbose'])
601
- if settings['plot_cluster_grids'] and settings['plot_images']:
602
- grid_plt = plot_clusters_grid(embedding, labels, settings['image_nr'], image_paths, colors, settings['figuresize'], settings['black_background'], settings['verbose'])
603
-
604
- # Save figure as PDF if required
605
- if settings['save_figure']:
606
- results_dir = os.path.join(settings['src'][0], 'results')
607
- os.makedirs(results_dir, exist_ok=True)
608
- reduction_method = settings['reduction_method'].upper()
609
- embedding_path = os.path.join(results_dir, f'{reduction_method}_embedding.pdf')
610
- umap_plt.savefig(embedding_path, format='pdf')
611
- print(f'Saved {reduction_method} embedding to {embedding_path} and grid to {embedding_path}')
612
- if settings['plot_cluster_grids'] and settings['plot_images']:
613
- grid_path = os.path.join(results_dir, f'{reduction_method}_grid.pdf')
614
- grid_plt.savefig(grid_path, format='pdf')
615
- print(f'Saved {reduction_method} embedding to {embedding_path} and grid to {grid_path}')
616
-
617
- # Add cluster labels to the dataframe
618
- if len(labels) > 0:
619
- all_df['cluster'] = labels
620
- else:
621
- all_df['cluster'] = 1 # Assign a default cluster label
622
- print("No clusters found. Consider reducing 'min_samples' or increasing 'eps' for DBSCAN.")
623
-
624
- # Save the results to a CSV file
625
- results_dir = os.path.join(settings['src'][0], 'results')
626
- results_csv = os.path.join(results_dir,'embedding_results.csv')
627
- os.makedirs(results_dir, exist_ok=True)
628
- all_df.to_csv(results_csv, index=False)
629
- print(f'Results saved to {results_csv}')
630
-
631
- if settings['analyze_clusters']:
632
- combined_results = cluster_feature_analysis(all_df)
633
- results_dir = os.path.join(settings['src'][0], 'results')
634
- cluster_results_csv = os.path.join(results_dir,'cluster_results.csv')
635
- os.makedirs(results_dir, exist_ok=True)
636
- combined_results.to_csv(cluster_results_csv, index=False)
637
- print(f'Cluster results saved to {cluster_results_csv}')
638
-
639
- return all_df
640
-
641
- def reducer_hyperparameter_search(settings={}, reduction_params=None, dbscan_params=None, kmeans_params=None, save=False):
642
- """
643
- Perform a hyperparameter search for UMAP or tSNE on the given data.
644
-
645
- Parameters:
646
- settings (dict): Dictionary containing the following keys:
647
- src (str): Source directory containing the data.
648
- row_limit (int): Limit the number of rows to process.
649
- tables (list): List of table names to read from the database.
650
- filter_by (str): Column to filter the data.
651
- sample_size (int): Number of samples to use for the hyperparameter search.
652
- remove_highly_correlated (bool): Whether to remove highly correlated columns.
653
- log_data (bool): Whether to log transform the data.
654
- verbose (bool): Whether to print verbose output.
655
- reduction_method (str): Dimensionality reduction method ('UMAP' or 'tSNE').
656
- reduction_params (list): List of dictionaries containing hyperparameters to test for the reduction method.
657
- dbscan_params (list): List of dictionaries containing DBSCAN hyperparameters to test.
658
- kmeans_params (list): List of dictionaries containing KMeans hyperparameters to test.
659
- pointsize (int): Size of the points in the scatter plot.
660
- save (bool): Whether to save the resulting plot as a file.
661
-
662
- Returns:
663
- None
664
- """
665
-
666
- from .io import _read_and_join_tables
667
- from .utils import get_db_paths, preprocess_data, search_reduction_and_clustering, generate_colors, map_condition
668
- from .settings import set_default_umap_image_settings
669
-
670
- settings = set_default_umap_image_settings(settings)
671
- pointsize = settings['dot_size']
672
- if isinstance(dbscan_params, dict):
673
- dbscan_params = [dbscan_params]
674
-
675
- if isinstance(kmeans_params, dict):
676
- kmeans_params = [kmeans_params]
677
-
678
- if isinstance(reduction_params, dict):
679
- reduction_params = [reduction_params]
680
-
681
- # Determine reduction method based on the keys in reduction_param
682
- if any('n_neighbors' in param for param in reduction_params):
683
- reduction_method = 'umap'
684
- elif any('perplexity' in param for param in reduction_params):
685
- reduction_method = 'tsne'
686
- elif any('perplexity' in param for param in reduction_params) and any('n_neighbors' in param for param in reduction_params):
687
- raise ValueError("Reduction parameters must include 'n_neighbors' for UMAP or 'perplexity' for tSNE, not both.")
688
-
689
- if settings['reduction_method'].lower() != reduction_method:
690
- settings['reduction_method'] = reduction_method
691
- print(f'Changed reduction method to {reduction_method} based on the provided parameters.')
692
-
693
- if settings['verbose']:
694
- display(pd.DataFrame(list(settings.items()), columns=['Key', 'Value']))
695
-
696
- db_paths = get_db_paths(settings['src'])
697
-
698
- tables = settings['tables']
699
- all_df = pd.DataFrame()
700
- for db_path in db_paths:
701
- df = _read_and_join_tables(db_path, table_names=tables)
702
- all_df = pd.concat([all_df, df], axis=0)
703
-
704
- all_df['cond'] = all_df['columnID'].apply(map_condition, neg=settings['neg'], pos=settings['pos'], mix=settings['mix'])
705
-
706
- if settings['exclude_conditions']:
707
- if isinstance(settings['exclude_conditions'], str):
708
- settings['exclude_conditions'] = [settings['exclude_conditions']]
709
- row_count_before = len(all_df)
710
- all_df = all_df[~all_df['cond'].isin(settings['exclude_conditions'])]
711
- if settings['verbose']:
712
- print(f'Excluded {row_count_before - len(all_df)} rows after excluding: {settings["exclude_conditions"]}, rows left: {len(all_df)}')
713
-
714
- if settings['row_limit'] is not None:
715
- all_df = all_df.sample(n=settings['row_limit'], random_state=42)
716
-
717
- numeric_data = preprocess_data(all_df, settings['filter_by'], settings['remove_highly_correlated'], settings['log_data'], settings['exclude'])
718
-
719
- # Combine DBSCAN and KMeans parameters
720
- clustering_params = []
721
- if dbscan_params:
722
- for param in dbscan_params:
723
- param['method'] = 'dbscan'
724
- clustering_params.append(param)
725
- if kmeans_params:
726
- for param in kmeans_params:
727
- param['method'] = 'kmeans'
728
- clustering_params.append(param)
729
-
730
- print('Testing paramiters:', reduction_params)
731
- print('Testing clustering paramiters:', clustering_params)
732
-
733
- # Calculate the grid size
734
- grid_rows = len(reduction_params)
735
- grid_cols = len(clustering_params)
736
-
737
- fig_width = grid_cols*10
738
- fig_height = grid_rows*10
739
-
740
- fig, axs = plt.subplots(grid_rows, grid_cols, figsize=(fig_width, fig_height))
741
-
742
- # Make sure axs is always an array of axes
743
- axs = np.atleast_1d(axs)
744
-
745
- # Iterate through the Cartesian product of reduction and clustering hyperparameters
746
- for i, reduction_param in enumerate(reduction_params):
747
- for j, clustering_param in enumerate(clustering_params):
748
- if len(clustering_params) <= 1:
749
- axs[i].axis('off')
750
- ax = axs[i]
751
- elif len(reduction_params) <= 1:
752
- axs[j].axis('off')
753
- ax = axs[j]
754
- else:
755
- ax = axs[i, j]
756
-
757
- # Perform dimensionality reduction and clustering
758
- if settings['reduction_method'].lower() == 'umap':
759
- n_neighbors = reduction_param.get('n_neighbors', 15)
760
-
761
- if isinstance(n_neighbors, float):
762
- n_neighbors = int(n_neighbors * len(numeric_data))
763
-
764
- min_dist = reduction_param.get('min_dist', 0.1)
765
- embedding, labels = search_reduction_and_clustering(numeric_data, n_neighbors, min_dist, settings['metric'],
766
- clustering_param.get('eps', 0.5), clustering_param.get('min_samples', 5),
767
- clustering_param['method'], settings['reduction_method'], settings['verbose'], reduction_param, n_jobs=settings['n_jobs'])
768
-
769
- elif settings['reduction_method'].lower() == 'tsne':
770
- perplexity = reduction_param.get('perplexity', 30)
771
-
772
- if isinstance(perplexity, float):
773
- perplexity = int(perplexity * len(numeric_data))
774
-
775
- embedding, labels = search_reduction_and_clustering(numeric_data, perplexity, 0.1, settings['metric'],
776
- clustering_param.get('eps', 0.5), clustering_param.get('min_samples', 5),
777
- clustering_param['method'], settings['reduction_method'], settings['verbose'], reduction_param, n_jobs=settings['n_jobs'])
778
-
779
- else:
780
- raise ValueError(f"Unsupported reduction method: {settings['reduction_method']}. Supported methods are 'UMAP' and 'tSNE'")
781
-
782
- # Plot the results
783
- if settings['color_by']:
784
- unique_groups = all_df[settings['color_by']].unique()
785
- colors = generate_colors(len(unique_groups), False)
786
- for group, color in zip(unique_groups, colors):
787
- indices = all_df[settings['color_by']] == group
788
- ax.scatter(embedding[indices, 0], embedding[indices, 1], s=pointsize, label=f"{group}", color=color)
789
- else:
790
- unique_labels = np.unique(labels)
791
- colors = generate_colors(len(unique_labels), False)
792
- for label, color in zip(unique_labels, colors):
793
- ax.scatter(embedding[labels == label, 0], embedding[labels == label, 1], s=pointsize, label=f"Cluster {label}", color=color)
794
-
795
- ax.set_title(f"{settings['reduction_method']} {reduction_param}\n{clustering_param['method']} {clustering_param}")
796
- ax.legend()
797
-
798
- plt.tight_layout()
799
- if save:
800
- results_dir = os.path.join(settings['src'], 'results')
801
- os.makedirs(results_dir, exist_ok=True)
802
- plt.savefig(os.path.join(results_dir, 'hyperparameter_search.pdf'))
803
- else:
804
- plt.show()
805
-
806
- return
807
-
808
451
  def generate_screen_graphs(settings):
809
452
  """
810
453
  Generate screen graphs for different measurements in a given source directory.
@@ -44,22 +44,15 @@ class MainApp(tk.Tk):
44
44
  self.main_gui_apps = {
45
45
  "Mask": (lambda frame: initiate_root(self, 'mask'), "Generate cellpose masks for cells, nuclei and pathogen images."),
46
46
  "Measure": (lambda frame: initiate_root(self, 'measure'), "Measure single object intensity and morphological feature. Crop and save single object image"),
47
- #"Annotate": (lambda frame: initiate_root(self, 'annotate'), "Annotation single object images on a grid. Annotations are saved to database."),
48
- #"Make Masks": (lambda frame: initiate_root(self, 'make_masks'), "Adjust pre-existing Cellpose models to your specific dataset for improved performance"),
49
47
  "Classify": (lambda frame: initiate_root(self, 'classify'), "Train Torch Convolutional Neural Networks (CNNs) or Transformers to classify single object images."),
50
48
  }
51
49
 
52
50
  self.additional_gui_apps = {
53
- #"Umap": (lambda frame: initiate_root(self, 'umap'), "Generate UMAP embeddings with datapoints represented as images."),
54
- #"Train Cellpose": (lambda frame: initiate_root(self, 'train_cellpose'), "Train custom Cellpose models."),
55
- #"ML Analyze": (lambda frame: initiate_root(self, 'ml_analyze'), "Machine learning analysis of data."),
56
- #"Cellpose Masks": (lambda frame: initiate_root(self, 'cellpose_masks'), "Generate Cellpose masks."),
57
- #"Cellpose All": (lambda frame: initiate_root(self, 'cellpose_all'), "Run Cellpose on all images."),
51
+ "ML Analyze": (lambda frame: initiate_root(self, 'ml_analyze'), "Machine learning analysis of data."),
58
52
  "Map Barcodes": (lambda frame: initiate_root(self, 'map_barcodes'), "Map barcodes to data."),
59
53
  "Regression": (lambda frame: initiate_root(self, 'regression'), "Perform regression analysis."),
60
- #"Recruitment": (lambda frame: initiate_root(self, 'recruitment'), "Analyze recruitment data."),
54
+ "Recruitment": (lambda frame: initiate_root(self, 'recruitment'), "Analyze recruitment data."),
61
55
  "Activation": (lambda frame: initiate_root(self, 'activation'), "Generate activation maps of computer vision models and measure channel-activation correlation."),
62
- #"Plaque": (lambda frame: initiate_root(self, 'analyze_plaques'), "Analyze plaque data.")
63
56
  }
64
57
 
65
58
  self.selected_app = tk.StringVar()
@@ -1266,36 +1266,29 @@ def initiate_root(parent, settings_type='mask'):
1266
1266
  fig_queue = Queue()
1267
1267
  parent_frame, vertical_container, horizontal_container, settings_container = setup_frame(parent_frame)
1268
1268
 
1269
- if settings_type == 'annotate':
1270
- from .app_annotate import initiate_annotation_app
1271
- initiate_annotation_app(horizontal_container)
1272
- elif settings_type == 'make_masks':
1273
- from .app_make_masks import initiate_make_mask_app
1274
- initiate_make_mask_app(horizontal_container)
1269
+ scrollable_frame, vars_dict = setup_settings_panel(settings_container, settings_type)
1270
+ print('setup_settings_panel')
1271
+ canvas, canvas_widget = setup_plot_section(vertical_container, settings_type)
1272
+ console_output, _ = setup_console(vertical_container) #, chatbot)
1273
+ button_scrollable_frame, btn_col = setup_button_section(horizontal_container, settings_type)
1274
+
1275
+ if num_cores > 12:
1276
+ _, usage_bars, btn_col = setup_usage_panel(horizontal_container, btn_col, uppdate_frequency)
1275
1277
  else:
1276
- scrollable_frame, vars_dict = setup_settings_panel(settings_container, settings_type)
1277
- print('setup_settings_panel')
1278
- canvas, canvas_widget = setup_plot_section(vertical_container, settings_type)
1279
- console_output, _ = setup_console(vertical_container) #, chatbot)
1280
- button_scrollable_frame, btn_col = setup_button_section(horizontal_container, settings_type)
1281
-
1282
- if num_cores > 12:
1283
- _, usage_bars, btn_col = setup_usage_panel(horizontal_container, btn_col, uppdate_frequency)
1284
- else:
1285
- usage_bars = []
1278
+ usage_bars = []
1286
1279
 
1287
- set_globals(thread_control, q, console_output, parent_frame, vars_dict, canvas, canvas_widget, scrollable_frame, fig_queue, progress_bar, usage_bars)
1288
- description_text = descriptions.get(settings_type, "No description available for this module.")
1289
-
1290
- q.put(f"Console")
1291
- q.put(f" ")
1292
- q.put(description_text)
1293
-
1294
- process_console_queue()
1295
- process_fig_queue()
1296
- create_menu_bar(parent)
1297
- after_id = parent_window.after(uppdate_frequency, lambda: main_thread_update_function(parent_window, q, fig_queue, canvas_widget))
1298
- parent_window.after_tasks.append(after_id)
1280
+ set_globals(thread_control, q, console_output, parent_frame, vars_dict, canvas, canvas_widget, scrollable_frame, fig_queue, progress_bar, usage_bars)
1281
+ description_text = descriptions.get(settings_type, "No description available for this module.")
1282
+
1283
+ q.put(f"Console")
1284
+ q.put(f" ")
1285
+ q.put(description_text)
1286
+
1287
+ process_console_queue()
1288
+ process_fig_queue()
1289
+ create_menu_bar(parent)
1290
+ after_id = parent_window.after(uppdate_frequency, lambda: main_thread_update_function(parent_window, q, fig_queue, canvas_widget))
1291
+ parent_window.after_tasks.append(after_id)
1299
1292
 
1300
1293
  print("Root initialization complete")
1301
1294
  return parent_frame, vars_dict