spacr 0.3.46__tar.gz → 0.3.50__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 (280) hide show
  1. {spacr-0.3.46/spacr.egg-info → spacr-0.3.50}/PKG-INFO +2 -1
  2. {spacr-0.3.46 → spacr-0.3.50}/setup.py +2 -1
  3. spacr-0.3.50/spacr/chat_bot.py +31 -0
  4. {spacr-0.3.46 → spacr-0.3.50}/spacr/gui_elements.py +33 -7
  5. {spacr-0.3.46 → spacr-0.3.50}/spacr/ml.py +478 -76
  6. {spacr-0.3.46 → spacr-0.3.50}/spacr/plot.py +488 -47
  7. {spacr-0.3.46 → spacr-0.3.50}/spacr/sequencing.py +122 -1
  8. {spacr-0.3.46 → spacr-0.3.50}/spacr/settings.py +2 -1
  9. spacr-0.3.50/spacr/toxo.py +453 -0
  10. {spacr-0.3.46 → spacr-0.3.50}/spacr/utils.py +27 -4
  11. {spacr-0.3.46 → spacr-0.3.50/spacr.egg-info}/PKG-INFO +2 -1
  12. {spacr-0.3.46 → spacr-0.3.50}/spacr.egg-info/SOURCES.txt +1 -0
  13. {spacr-0.3.46 → spacr-0.3.50}/spacr.egg-info/requires.txt +1 -0
  14. spacr-0.3.46/spacr/toxo.py +0 -334
  15. {spacr-0.3.46 → spacr-0.3.50}/.readthedocs.yaml +0 -0
  16. {spacr-0.3.46 → spacr-0.3.50}/LICENSE +0 -0
  17. {spacr-0.3.46 → spacr-0.3.50}/MANIFEST.in +0 -0
  18. {spacr-0.3.46 → spacr-0.3.50}/README.rst +0 -0
  19. {spacr-0.3.46 → spacr-0.3.50}/deploy_docs.sh +0 -0
  20. {spacr-0.3.46 → spacr-0.3.50}/docs/requirements.txt +0 -0
  21. {spacr-0.3.46 → spacr-0.3.50}/docs/source/Makefile +0 -0
  22. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/doctrees/environment.pickle +0 -0
  23. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/index.html +0 -0
  24. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/app_annotate.html +0 -0
  25. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/app_classify.html +0 -0
  26. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/app_make_masks.html +0 -0
  27. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/app_mask.html +0 -0
  28. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/app_measure.html +0 -0
  29. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/app_sequencing.html +0 -0
  30. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/app_umap.html +0 -0
  31. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/core.html +0 -0
  32. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/deep_spacr.html +0 -0
  33. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/graph_learning.html +0 -0
  34. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/gui.html +0 -0
  35. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/gui_core.html +0 -0
  36. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/gui_elements.html +0 -0
  37. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/gui_utils.html +0 -0
  38. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/io.html +0 -0
  39. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/logger.html +0 -0
  40. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/measure.html +0 -0
  41. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/plot.html +0 -0
  42. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/sequencing.html +0 -0
  43. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/settings.html +0 -0
  44. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/sim.html +0 -0
  45. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/timelapse.html +0 -0
  46. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_modules/spacr/utils.html +0 -0
  47. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_sources/index.rst.txt +0 -0
  48. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_sources/modules.rst.txt +0 -0
  49. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_sources/spacr.rst.txt +0 -0
  50. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/_sphinx_javascript_frameworks_compat.js +0 -0
  51. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/basic.css +0 -0
  52. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/css/badge_only.css +0 -0
  53. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  54. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  55. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  56. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  57. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
  58. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/css/fonts/fontawesome-webfont.svg +0 -0
  59. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  60. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
  61. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  62. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
  63. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  64. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/css/fonts/lato-bold.woff +0 -0
  65. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/css/fonts/lato-bold.woff2 +0 -0
  66. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
  67. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  68. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/css/fonts/lato-normal.woff +0 -0
  69. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/css/fonts/lato-normal.woff2 +0 -0
  70. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/css/theme.css +0 -0
  71. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/doctools.js +0 -0
  72. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/documentation_options.js +0 -0
  73. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/file.png +0 -0
  74. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/jquery.js +0 -0
  75. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/js/badge_only.js +0 -0
  76. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/js/html5shiv-printshiv.min.js +0 -0
  77. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/js/html5shiv.min.js +0 -0
  78. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/js/theme.js +0 -0
  79. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/language_data.js +0 -0
  80. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/minus.png +0 -0
  81. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/plus.png +0 -0
  82. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/pygments.css +0 -0
  83. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/searchtools.js +0 -0
  84. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/_static/sphinx_highlight.js +0 -0
  85. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/genindex.html +0 -0
  86. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/index.html +0 -0
  87. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/modules.html +0 -0
  88. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/objects.inv +0 -0
  89. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/py-modindex.html +0 -0
  90. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/search.html +0 -0
  91. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/searchindex.js +0 -0
  92. {spacr-0.3.46 → spacr-0.3.50}/docs/source/_build/html/spacr.html +0 -0
  93. {spacr-0.3.46 → spacr-0.3.50}/docs/source/conf.py +0 -0
  94. {spacr-0.3.46 → spacr-0.3.50}/docs/source/index.rst +0 -0
  95. {spacr-0.3.46 → spacr-0.3.50}/docs/source/make.bat +0 -0
  96. {spacr-0.3.46 → spacr-0.3.50}/docs/source/modules.rst +0 -0
  97. {spacr-0.3.46 → spacr-0.3.50}/docs/source/spacr.rst +0 -0
  98. {spacr-0.3.46 → spacr-0.3.50}/environment.yaml +0 -0
  99. {spacr-0.3.46 → spacr-0.3.50}/fonts/OpenSans-Regular.ttf +0 -0
  100. {spacr-0.3.46 → spacr-0.3.50}/notebooks/cv_scoring_nb.ipynb +0 -0
  101. {spacr-0.3.46 → spacr-0.3.50}/notebooks/deep_learning_spacr.ipynb +0 -0
  102. {spacr-0.3.46 → spacr-0.3.50}/notebooks/machine_learning_spacr_nb.ipynb +0 -0
  103. {spacr-0.3.46 → spacr-0.3.50}/notebooks/spacr_0.1_all_settings_git.ipynb +0 -0
  104. {spacr-0.3.46 → spacr-0.3.50}/notebooks/spacr_0.1_minimal.ipynb +0 -0
  105. {spacr-0.3.46 → spacr-0.3.50}/path/home/carruthers/datasets/plate1/measurements/measurements.db +0 -0
  106. {spacr-0.3.46 → spacr-0.3.50}/path/home/carruthers/datasets/plate1/settings/measure_crop_settings.csv +0 -0
  107. {spacr-0.3.46 → spacr-0.3.50}/path/settings/preprocess_generate_masks_settings.csv +0 -0
  108. {spacr-0.3.46 → spacr-0.3.50}/requirements.txt +0 -0
  109. {spacr-0.3.46 → spacr-0.3.50}/settings/measure_crop_settings.csv +0 -0
  110. {spacr-0.3.46 → spacr-0.3.50}/setup.cfg +0 -0
  111. {spacr-0.3.46 → spacr-0.3.50}/setup_docs.sh +0 -0
  112. {spacr-0.3.46 → spacr-0.3.50}/source/conf.py +0 -0
  113. {spacr-0.3.46 → spacr-0.3.50}/source/index.rst +0 -0
  114. {spacr-0.3.46 → spacr-0.3.50}/source/modules.rst +0 -0
  115. {spacr-0.3.46 → spacr-0.3.50}/source/setup.rst +0 -0
  116. {spacr-0.3.46 → spacr-0.3.50}/source/spacr.rst +0 -0
  117. {spacr-0.3.46 → spacr-0.3.50}/spacr/__init__.py +0 -0
  118. {spacr-0.3.46 → spacr-0.3.50}/spacr/__main__.py +0 -0
  119. {spacr-0.3.46 → spacr-0.3.50}/spacr/app_annotate.py +0 -0
  120. {spacr-0.3.46 → spacr-0.3.50}/spacr/app_classify.py +0 -0
  121. {spacr-0.3.46 → spacr-0.3.50}/spacr/app_make_masks.py +0 -0
  122. {spacr-0.3.46 → spacr-0.3.50}/spacr/app_mask.py +0 -0
  123. {spacr-0.3.46 → spacr-0.3.50}/spacr/app_measure.py +0 -0
  124. {spacr-0.3.46 → spacr-0.3.50}/spacr/app_sequencing.py +0 -0
  125. {spacr-0.3.46 → spacr-0.3.50}/spacr/app_umap.py +0 -0
  126. {spacr-0.3.46 → spacr-0.3.50}/spacr/cellpose.py +0 -0
  127. {spacr-0.3.46 → spacr-0.3.50}/spacr/core.py +0 -0
  128. {spacr-0.3.46 → spacr-0.3.50}/spacr/deep_spacr.py +0 -0
  129. {spacr-0.3.46 → spacr-0.3.50}/spacr/gui.py +0 -0
  130. {spacr-0.3.46 → spacr-0.3.50}/spacr/gui_core.py +0 -0
  131. {spacr-0.3.46 → spacr-0.3.50}/spacr/gui_utils.py +0 -0
  132. {spacr-0.3.46 → spacr-0.3.50}/spacr/io.py +0 -0
  133. {spacr-0.3.46 → spacr-0.3.50}/spacr/logger.py +0 -0
  134. {spacr-0.3.46 → spacr-0.3.50}/spacr/measure.py +0 -0
  135. {spacr-0.3.46 → spacr-0.3.50}/spacr/mediar.py +0 -0
  136. {spacr-0.3.46 → spacr-0.3.50}/spacr/openai.py +0 -0
  137. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/.gitignore +0 -0
  138. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/LICENSE +0 -0
  139. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/README.md +0 -0
  140. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/SetupDict.py +0 -0
  141. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/config/baseline.json +0 -0
  142. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/config/mediar_example.json +0 -0
  143. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/config/pred/pred_mediar.json +0 -0
  144. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/config/step1_pretraining/phase1.json +0 -0
  145. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/config/step1_pretraining/phase2.json +0 -0
  146. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/config/step2_finetuning/finetuning1.json +0 -0
  147. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/config/step2_finetuning/finetuning2.json +0 -0
  148. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/config/step3_prediction/base_prediction.json +0 -0
  149. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/config/step3_prediction/ensemble_tta.json +0 -0
  150. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/core/BasePredictor.py +0 -0
  151. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/core/BaseTrainer.py +0 -0
  152. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/core/Baseline/Predictor.py +0 -0
  153. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/core/Baseline/Trainer.py +0 -0
  154. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/core/Baseline/__init__.py +0 -0
  155. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/core/Baseline/utils.py +0 -0
  156. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/core/MEDIAR/EnsemblePredictor.py +0 -0
  157. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/core/MEDIAR/Predictor.py +0 -0
  158. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/core/MEDIAR/Trainer.py +0 -0
  159. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/core/MEDIAR/__init__.py +0 -0
  160. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/core/MEDIAR/utils.py +0 -0
  161. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/core/__init__.py +0 -0
  162. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/core/utils.py +0 -0
  163. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/evaluate.py +0 -0
  164. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/generate_mapping.py +0 -0
  165. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/image/examples/img1.tiff +0 -0
  166. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/image/examples/img2.tif +0 -0
  167. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/image/failure_cases.png +0 -0
  168. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/image/mediar_framework.png +0 -0
  169. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/image/mediar_model.PNG +0 -0
  170. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/image/mediar_results.png +0 -0
  171. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/main.py +0 -0
  172. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/predict.py +0 -0
  173. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/requirements.txt +0 -0
  174. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/train_tools/__init__.py +0 -0
  175. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/train_tools/data_utils/__init__.py +0 -0
  176. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/train_tools/data_utils/custom/CellAware.py +0 -0
  177. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/train_tools/data_utils/custom/LoadImage.py +0 -0
  178. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/train_tools/data_utils/custom/NormalizeImage.py +0 -0
  179. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/train_tools/data_utils/custom/__init__.py +0 -0
  180. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/train_tools/data_utils/custom/modalities.pkl +0 -0
  181. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/train_tools/data_utils/datasetter.py +0 -0
  182. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/train_tools/data_utils/transforms.py +0 -0
  183. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/train_tools/data_utils/utils.py +0 -0
  184. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/train_tools/measures.py +0 -0
  185. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/train_tools/models/MEDIARFormer.py +0 -0
  186. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/train_tools/models/__init__.py +0 -0
  187. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/MEDIAR/train_tools/utils.py +0 -0
  188. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/data/lopit.csv +0 -0
  189. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/data/toxoplasma_metadata.csv +0 -0
  190. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/OFL.txt +0 -0
  191. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/OpenSans-Italic-VariableFont_wdth,wght.ttf +0 -0
  192. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/OpenSans-VariableFont_wdth,wght.ttf +0 -0
  193. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/README.txt +0 -0
  194. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans-Bold.ttf +0 -0
  195. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans-BoldItalic.ttf +0 -0
  196. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans-ExtraBold.ttf +0 -0
  197. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans-ExtraBoldItalic.ttf +0 -0
  198. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans-Italic.ttf +0 -0
  199. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans-Light.ttf +0 -0
  200. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans-LightItalic.ttf +0 -0
  201. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans-Medium.ttf +0 -0
  202. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans-MediumItalic.ttf +0 -0
  203. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans-Regular.ttf +0 -0
  204. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans-SemiBold.ttf +0 -0
  205. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans-SemiBoldItalic.ttf +0 -0
  206. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Bold.ttf +0 -0
  207. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_Condensed-BoldItalic.ttf +0 -0
  208. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_Condensed-ExtraBold.ttf +0 -0
  209. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_Condensed-ExtraBoldItalic.ttf +0 -0
  210. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Italic.ttf +0 -0
  211. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Light.ttf +0 -0
  212. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_Condensed-LightItalic.ttf +0 -0
  213. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Medium.ttf +0 -0
  214. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_Condensed-MediumItalic.ttf +0 -0
  215. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Regular.ttf +0 -0
  216. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_Condensed-SemiBold.ttf +0 -0
  217. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_Condensed-SemiBoldItalic.ttf +0 -0
  218. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Bold.ttf +0 -0
  219. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-BoldItalic.ttf +0 -0
  220. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-ExtraBold.ttf +0 -0
  221. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-ExtraBoldItalic.ttf +0 -0
  222. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Italic.ttf +0 -0
  223. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Light.ttf +0 -0
  224. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-LightItalic.ttf +0 -0
  225. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Medium.ttf +0 -0
  226. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-MediumItalic.ttf +0 -0
  227. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Regular.ttf +0 -0
  228. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-SemiBold.ttf +0 -0
  229. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-SemiBoldItalic.ttf +0 -0
  230. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/abort.png +0 -0
  231. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/annotate.png +0 -0
  232. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/cellpose_all.png +0 -0
  233. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/cellpose_masks.png +0 -0
  234. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/classify.png +0 -0
  235. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/convert.png +0 -0
  236. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/default.png +0 -0
  237. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/dna_matrix.mp4 +0 -0
  238. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/download.png +0 -0
  239. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/logo.pdf +0 -0
  240. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/logo_spacr.png +0 -0
  241. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/logo_spacr_1.png +0 -0
  242. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/make_masks.png +0 -0
  243. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/map_barcodes.png +0 -0
  244. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/mask.png +0 -0
  245. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/measure.png +0 -0
  246. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/ml_analyze.png +0 -0
  247. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/plaque.png +0 -0
  248. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/recruitment.png +0 -0
  249. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/regression.png +0 -0
  250. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/run.png +0 -0
  251. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/sequencing.png +0 -0
  252. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/settings.png +0 -0
  253. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/train_cellpose.png +0 -0
  254. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/icons/umap.png +0 -0
  255. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/images/plate1_E01_T0001F001L01A01Z01C02.tif +0 -0
  256. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/images/plate1_E01_T0001F001L01A02Z01C01.tif +0 -0
  257. {spacr-0.3.46 → spacr-0.3.50}/spacr/resources/images/plate1_E01_T0001F001L01A03Z01C03.tif +0 -0
  258. {spacr-0.3.46 → spacr-0.3.50}/spacr/sim.py +0 -0
  259. {spacr-0.3.46 → spacr-0.3.50}/spacr/submodules.py +0 -0
  260. {spacr-0.3.46 → spacr-0.3.50}/spacr/timelapse.py +0 -0
  261. {spacr-0.3.46 → spacr-0.3.50}/spacr/version.py +0 -0
  262. {spacr-0.3.46 → spacr-0.3.50}/spacr.egg-info/dependency_links.txt +0 -0
  263. {spacr-0.3.46 → spacr-0.3.50}/spacr.egg-info/entry_points.txt +0 -0
  264. {spacr-0.3.46 → spacr-0.3.50}/spacr.egg-info/top_level.txt +0 -0
  265. {spacr-0.3.46 → spacr-0.3.50}/tests/test_annotate_app.py +0 -0
  266. {spacr-0.3.46 → spacr-0.3.50}/tests/test_core.py +0 -0
  267. {spacr-0.3.46 → spacr-0.3.50}/tests/test_gui_classify_app.py +0 -0
  268. {spacr-0.3.46 → spacr-0.3.50}/tests/test_gui_mask_app.py +0 -0
  269. {spacr-0.3.46 → spacr-0.3.50}/tests/test_gui_measure_app.py +0 -0
  270. {spacr-0.3.46 → spacr-0.3.50}/tests/test_gui_sim_app.py +0 -0
  271. {spacr-0.3.46 → spacr-0.3.50}/tests/test_gui_utils.py +0 -0
  272. {spacr-0.3.46 → spacr-0.3.50}/tests/test_io.py +0 -0
  273. {spacr-0.3.46 → spacr-0.3.50}/tests/test_mask_app.py +0 -0
  274. {spacr-0.3.46 → spacr-0.3.50}/tests/test_measure.py +0 -0
  275. {spacr-0.3.46 → spacr-0.3.50}/tests/test_plot.py +0 -0
  276. {spacr-0.3.46 → spacr-0.3.50}/tests/test_sim.py +0 -0
  277. {spacr-0.3.46 → spacr-0.3.50}/tests/test_timelapse.py +0 -0
  278. {spacr-0.3.46 → spacr-0.3.50}/tests/test_train.py +0 -0
  279. {spacr-0.3.46 → spacr-0.3.50}/tests/test_umap.py +0 -0
  280. {spacr-0.3.46 → spacr-0.3.50}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: spacr
3
- Version: 0.3.46
3
+ Version: 0.3.50
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
@@ -66,6 +66,7 @@ Requires-Dist: gdown
66
66
  Requires-Dist: IPython<9.0,>=8.18.1
67
67
  Requires-Dist: ipykernel
68
68
  Requires-Dist: ipywidgets<9.0,>=8.1.2
69
+ Requires-Dist: brokenaxes<1.0,>=0.6.2
69
70
  Requires-Dist: huggingface-hub<0.25,>=0.24.0
70
71
  Provides-Extra: dev
71
72
  Requires-Dist: pytest<3.11,>=3.9; extra == "dev"
@@ -62,12 +62,13 @@ dependencies = [
62
62
  'IPython>=8.18.1,<9.0',
63
63
  'ipykernel',
64
64
  'ipywidgets>=8.1.2,<9.0',
65
+ 'brokenaxes>=0.6.2,<1.0',
65
66
  'huggingface-hub>=0.24.0,<0.25'
66
67
  ]
67
68
 
68
69
  setup(
69
70
  name="spacr",
70
- version="0.3.46",
71
+ version="0.3.50",
71
72
  author="Einar Birnir Olafsson",
72
73
  author_email="olafsson@med.umich.com",
73
74
  description="Spatial phenotype analysis of crisp screens (SpaCr)",
@@ -0,0 +1,31 @@
1
+ import os
2
+ import torch
3
+ from multiprocessing import Queue
4
+ from transformers import AutoTokenizer, AutoModelForCausalLM
5
+
6
+ # Disable parallelism warnings
7
+ os.environ["TOKENIZERS_PARALLELISM"] = "false"
8
+
9
+ def load_model(model_queue):
10
+ """Load the Falcon-7B model and send the status via a queue."""
11
+ try:
12
+ print("Loading Falcon-7B model...")
13
+ tokenizer = AutoTokenizer.from_pretrained("tiiuae/falcon-7b")
14
+
15
+ # Set `pad_token` to `eos_token` if not already set
16
+ if tokenizer.pad_token is None:
17
+ tokenizer.pad_token = tokenizer.eos_token
18
+
19
+ model = AutoModelForCausalLM.from_pretrained("tiiuae/falcon-7b")
20
+ model.config.pad_token_id = tokenizer.pad_token_id
21
+
22
+ # Send the loaded model and tokenizer back via the queue
23
+ model_queue.put((model, tokenizer, "Model loaded successfully!"))
24
+ except Exception as e:
25
+ model_queue.put((None, None, f"Error loading model: {e}"))
26
+
27
+ def language_chat(tokenizer, model, user_input):
28
+ inputs = tokenizer(user_input, return_tensors="pt", padding=True, truncation=True)
29
+ outputs = model.generate(inputs.input_ids, max_length=256, pad_token_id=tokenizer.eos_token_id)
30
+ return tokenizer.decode(outputs[0], skip_special_tokens=True)
31
+
@@ -16,7 +16,8 @@ from collections import deque
16
16
  from skimage.draw import polygon, line
17
17
  from skimage.transform import resize
18
18
  from scipy.ndimage import binary_fill_holes, label
19
- from tkinter import ttk, scrolledtext
19
+ from tkinter import ttk, scrolledtext
20
+ from skimage.color import rgb2gray
20
21
 
21
22
  fig = None
22
23
 
@@ -1534,20 +1535,45 @@ class ModifyMaskApp:
1534
1535
  tk.Label(self.zoom_toolbar, text="Upper Percentile:", bg='black', fg='white').pack(side='left')
1535
1536
  self.upper_entry = tk.Entry(self.zoom_toolbar, textvariable=self.upper_quantile, bg='black', fg='white')
1536
1537
  self.upper_entry.pack(side='left')
1537
-
1538
-
1538
+
1539
1539
  def load_image_and_mask(self, index):
1540
+ # Load the image
1540
1541
  image_path = os.path.join(self.folder_path, self.image_filenames[index])
1541
- image = imageio.imread(image_path)
1542
+ image = imageio.imread(image_path)
1543
+ print(f"Original Image shape: {image.shape}, dtype: {image.dtype}")
1544
+
1545
+ # Handle multi-channel or transparency issues
1546
+ if image.ndim == 3:
1547
+ if image.shape[2] == 4: # If the image has an alpha channel (RGBA)
1548
+ image = image[..., :3] # Remove the alpha channel
1549
+
1550
+ # Convert RGB to grayscale using weighted average
1551
+ image = np.dot(image[..., :3], [0.2989, 0.5870, 0.1140]).astype(np.uint8)
1552
+ print(f"Converted to grayscale: {image.shape}")
1553
+
1554
+ # Ensure the shape is (height, width) without extra channel
1555
+ if image.ndim == 3 and image.shape[2] == 1:
1556
+ image = np.squeeze(image, axis=-1)
1557
+
1558
+ if image.dtype != np.uint16:
1559
+ # Scale the image to fit the 16-bit range (0–65535)
1560
+ image = (image / image.max() * 65535).astype(np.uint16)
1561
+ # eventually remove this images should not have to be 16 bit look into downstream function (non 16bit images are jsut black)
1562
+
1563
+ # Load the corresponding mask
1542
1564
  mask_path = os.path.join(self.masks_folder, self.image_filenames[index])
1543
1565
  if os.path.exists(mask_path):
1544
- print(f'loading mask:{mask_path} for image: {image_path}')
1566
+ print(f'Loading mask: {mask_path} for image: {image_path}')
1545
1567
  mask = imageio.imread(mask_path)
1568
+
1569
+ # Ensure mask is uint8
1546
1570
  if mask.dtype != np.uint8:
1547
- mask = (mask / np.max(mask) * 255).astype(np.uint8)
1571
+ mask = (mask / mask.max() * 255).astype(np.uint8)
1548
1572
  else:
1573
+ # Create a new mask with the same size as the image
1549
1574
  mask = np.zeros(image.shape[:2], dtype=np.uint8)
1550
- print(f'loaded new mask for image: {image_path}')
1575
+ print(f'Loaded new mask for image: {image_path}')
1576
+
1551
1577
  return image, mask
1552
1578
 
1553
1579
  ####################################################################################################