spacr 0.3.36__tar.gz → 0.3.37__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 (278) hide show
  1. {spacr-0.3.36/spacr.egg-info → spacr-0.3.37}/PKG-INFO +1 -1
  2. {spacr-0.3.36 → spacr-0.3.37}/setup.py +1 -1
  3. {spacr-0.3.36 → spacr-0.3.37}/spacr/gui_elements.py +11 -1
  4. {spacr-0.3.36 → spacr-0.3.37}/spacr/ml.py +2 -2
  5. {spacr-0.3.36 → spacr-0.3.37}/spacr/plot.py +51 -15
  6. {spacr-0.3.36 → spacr-0.3.37}/spacr/utils.py +5 -0
  7. {spacr-0.3.36 → spacr-0.3.37/spacr.egg-info}/PKG-INFO +1 -1
  8. {spacr-0.3.36 → spacr-0.3.37}/.readthedocs.yaml +0 -0
  9. {spacr-0.3.36 → spacr-0.3.37}/LICENSE +0 -0
  10. {spacr-0.3.36 → spacr-0.3.37}/MANIFEST.in +0 -0
  11. {spacr-0.3.36 → spacr-0.3.37}/README.rst +0 -0
  12. {spacr-0.3.36 → spacr-0.3.37}/deploy_docs.sh +0 -0
  13. {spacr-0.3.36 → spacr-0.3.37}/docs/requirements.txt +0 -0
  14. {spacr-0.3.36 → spacr-0.3.37}/docs/source/Makefile +0 -0
  15. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/doctrees/environment.pickle +0 -0
  16. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/index.html +0 -0
  17. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/app_annotate.html +0 -0
  18. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/app_classify.html +0 -0
  19. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/app_make_masks.html +0 -0
  20. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/app_mask.html +0 -0
  21. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/app_measure.html +0 -0
  22. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/app_sequencing.html +0 -0
  23. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/app_umap.html +0 -0
  24. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/core.html +0 -0
  25. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/deep_spacr.html +0 -0
  26. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/graph_learning.html +0 -0
  27. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/gui.html +0 -0
  28. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/gui_core.html +0 -0
  29. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/gui_elements.html +0 -0
  30. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/gui_utils.html +0 -0
  31. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/io.html +0 -0
  32. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/logger.html +0 -0
  33. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/measure.html +0 -0
  34. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/plot.html +0 -0
  35. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/sequencing.html +0 -0
  36. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/settings.html +0 -0
  37. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/sim.html +0 -0
  38. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/timelapse.html +0 -0
  39. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_modules/spacr/utils.html +0 -0
  40. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_sources/index.rst.txt +0 -0
  41. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_sources/modules.rst.txt +0 -0
  42. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_sources/spacr.rst.txt +0 -0
  43. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/_sphinx_javascript_frameworks_compat.js +0 -0
  44. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/basic.css +0 -0
  45. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/css/badge_only.css +0 -0
  46. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  47. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  48. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  49. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  50. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
  51. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/css/fonts/fontawesome-webfont.svg +0 -0
  52. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  53. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
  54. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  55. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
  56. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  57. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/css/fonts/lato-bold.woff +0 -0
  58. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/css/fonts/lato-bold.woff2 +0 -0
  59. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
  60. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  61. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/css/fonts/lato-normal.woff +0 -0
  62. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/css/fonts/lato-normal.woff2 +0 -0
  63. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/css/theme.css +0 -0
  64. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/doctools.js +0 -0
  65. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/documentation_options.js +0 -0
  66. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/file.png +0 -0
  67. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/jquery.js +0 -0
  68. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/js/badge_only.js +0 -0
  69. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/js/html5shiv-printshiv.min.js +0 -0
  70. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/js/html5shiv.min.js +0 -0
  71. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/js/theme.js +0 -0
  72. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/language_data.js +0 -0
  73. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/minus.png +0 -0
  74. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/plus.png +0 -0
  75. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/pygments.css +0 -0
  76. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/searchtools.js +0 -0
  77. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/_static/sphinx_highlight.js +0 -0
  78. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/genindex.html +0 -0
  79. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/index.html +0 -0
  80. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/modules.html +0 -0
  81. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/objects.inv +0 -0
  82. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/py-modindex.html +0 -0
  83. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/search.html +0 -0
  84. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/searchindex.js +0 -0
  85. {spacr-0.3.36 → spacr-0.3.37}/docs/source/_build/html/spacr.html +0 -0
  86. {spacr-0.3.36 → spacr-0.3.37}/docs/source/conf.py +0 -0
  87. {spacr-0.3.36 → spacr-0.3.37}/docs/source/index.rst +0 -0
  88. {spacr-0.3.36 → spacr-0.3.37}/docs/source/make.bat +0 -0
  89. {spacr-0.3.36 → spacr-0.3.37}/docs/source/modules.rst +0 -0
  90. {spacr-0.3.36 → spacr-0.3.37}/docs/source/spacr.rst +0 -0
  91. {spacr-0.3.36 → spacr-0.3.37}/environment.yaml +0 -0
  92. {spacr-0.3.36 → spacr-0.3.37}/fonts/OpenSans-Regular.ttf +0 -0
  93. {spacr-0.3.36 → spacr-0.3.37}/notebooks/cv_scoring_nb.ipynb +0 -0
  94. {spacr-0.3.36 → spacr-0.3.37}/notebooks/deep_learning_spacr.ipynb +0 -0
  95. {spacr-0.3.36 → spacr-0.3.37}/notebooks/machine_learning_spacr_nb.ipynb +0 -0
  96. {spacr-0.3.36 → spacr-0.3.37}/notebooks/spacr_0.1_all_settings_git.ipynb +0 -0
  97. {spacr-0.3.36 → spacr-0.3.37}/notebooks/spacr_0.1_minimal.ipynb +0 -0
  98. {spacr-0.3.36 → spacr-0.3.37}/path/home/carruthers/datasets/plate1/measurements/measurements.db +0 -0
  99. {spacr-0.3.36 → spacr-0.3.37}/path/home/carruthers/datasets/plate1/settings/measure_crop_settings.csv +0 -0
  100. {spacr-0.3.36 → spacr-0.3.37}/path/settings/preprocess_generate_masks_settings.csv +0 -0
  101. {spacr-0.3.36 → spacr-0.3.37}/requirements.txt +0 -0
  102. {spacr-0.3.36 → spacr-0.3.37}/settings/measure_crop_settings.csv +0 -0
  103. {spacr-0.3.36 → spacr-0.3.37}/setup.cfg +0 -0
  104. {spacr-0.3.36 → spacr-0.3.37}/setup_docs.sh +0 -0
  105. {spacr-0.3.36 → spacr-0.3.37}/source/conf.py +0 -0
  106. {spacr-0.3.36 → spacr-0.3.37}/source/index.rst +0 -0
  107. {spacr-0.3.36 → spacr-0.3.37}/source/modules.rst +0 -0
  108. {spacr-0.3.36 → spacr-0.3.37}/source/setup.rst +0 -0
  109. {spacr-0.3.36 → spacr-0.3.37}/source/spacr.rst +0 -0
  110. {spacr-0.3.36 → spacr-0.3.37}/spacr/__init__.py +0 -0
  111. {spacr-0.3.36 → spacr-0.3.37}/spacr/__main__.py +0 -0
  112. {spacr-0.3.36 → spacr-0.3.37}/spacr/app_annotate.py +0 -0
  113. {spacr-0.3.36 → spacr-0.3.37}/spacr/app_classify.py +0 -0
  114. {spacr-0.3.36 → spacr-0.3.37}/spacr/app_make_masks.py +0 -0
  115. {spacr-0.3.36 → spacr-0.3.37}/spacr/app_mask.py +0 -0
  116. {spacr-0.3.36 → spacr-0.3.37}/spacr/app_measure.py +0 -0
  117. {spacr-0.3.36 → spacr-0.3.37}/spacr/app_sequencing.py +0 -0
  118. {spacr-0.3.36 → spacr-0.3.37}/spacr/app_umap.py +0 -0
  119. {spacr-0.3.36 → spacr-0.3.37}/spacr/cellpose.py +0 -0
  120. {spacr-0.3.36 → spacr-0.3.37}/spacr/core.py +0 -0
  121. {spacr-0.3.36 → spacr-0.3.37}/spacr/deep_spacr.py +0 -0
  122. {spacr-0.3.36 → spacr-0.3.37}/spacr/gui.py +0 -0
  123. {spacr-0.3.36 → spacr-0.3.37}/spacr/gui_core.py +0 -0
  124. {spacr-0.3.36 → spacr-0.3.37}/spacr/gui_utils.py +0 -0
  125. {spacr-0.3.36 → spacr-0.3.37}/spacr/io.py +0 -0
  126. {spacr-0.3.36 → spacr-0.3.37}/spacr/logger.py +0 -0
  127. {spacr-0.3.36 → spacr-0.3.37}/spacr/measure.py +0 -0
  128. {spacr-0.3.36 → spacr-0.3.37}/spacr/mediar.py +0 -0
  129. {spacr-0.3.36 → spacr-0.3.37}/spacr/openai.py +0 -0
  130. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/.gitignore +0 -0
  131. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/LICENSE +0 -0
  132. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/README.md +0 -0
  133. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/SetupDict.py +0 -0
  134. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/config/baseline.json +0 -0
  135. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/config/mediar_example.json +0 -0
  136. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/config/pred/pred_mediar.json +0 -0
  137. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/config/step1_pretraining/phase1.json +0 -0
  138. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/config/step1_pretraining/phase2.json +0 -0
  139. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/config/step2_finetuning/finetuning1.json +0 -0
  140. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/config/step2_finetuning/finetuning2.json +0 -0
  141. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/config/step3_prediction/base_prediction.json +0 -0
  142. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/config/step3_prediction/ensemble_tta.json +0 -0
  143. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/core/BasePredictor.py +0 -0
  144. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/core/BaseTrainer.py +0 -0
  145. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/core/Baseline/Predictor.py +0 -0
  146. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/core/Baseline/Trainer.py +0 -0
  147. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/core/Baseline/__init__.py +0 -0
  148. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/core/Baseline/utils.py +0 -0
  149. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/core/MEDIAR/EnsemblePredictor.py +0 -0
  150. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/core/MEDIAR/Predictor.py +0 -0
  151. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/core/MEDIAR/Trainer.py +0 -0
  152. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/core/MEDIAR/__init__.py +0 -0
  153. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/core/MEDIAR/utils.py +0 -0
  154. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/core/__init__.py +0 -0
  155. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/core/utils.py +0 -0
  156. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/evaluate.py +0 -0
  157. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/generate_mapping.py +0 -0
  158. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/image/examples/img1.tiff +0 -0
  159. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/image/examples/img2.tif +0 -0
  160. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/image/failure_cases.png +0 -0
  161. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/image/mediar_framework.png +0 -0
  162. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/image/mediar_model.PNG +0 -0
  163. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/image/mediar_results.png +0 -0
  164. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/main.py +0 -0
  165. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/predict.py +0 -0
  166. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/requirements.txt +0 -0
  167. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/train_tools/__init__.py +0 -0
  168. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/train_tools/data_utils/__init__.py +0 -0
  169. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/train_tools/data_utils/custom/CellAware.py +0 -0
  170. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/train_tools/data_utils/custom/LoadImage.py +0 -0
  171. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/train_tools/data_utils/custom/NormalizeImage.py +0 -0
  172. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/train_tools/data_utils/custom/__init__.py +0 -0
  173. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/train_tools/data_utils/custom/modalities.pkl +0 -0
  174. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/train_tools/data_utils/datasetter.py +0 -0
  175. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/train_tools/data_utils/transforms.py +0 -0
  176. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/train_tools/data_utils/utils.py +0 -0
  177. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/train_tools/measures.py +0 -0
  178. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/train_tools/models/MEDIARFormer.py +0 -0
  179. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/train_tools/models/__init__.py +0 -0
  180. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/MEDIAR/train_tools/utils.py +0 -0
  181. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/data/lopit.csv +0 -0
  182. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/data/toxoplasma_metadata.csv +0 -0
  183. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/OFL.txt +0 -0
  184. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/OpenSans-Italic-VariableFont_wdth,wght.ttf +0 -0
  185. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/OpenSans-VariableFont_wdth,wght.ttf +0 -0
  186. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/README.txt +0 -0
  187. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans-Bold.ttf +0 -0
  188. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans-BoldItalic.ttf +0 -0
  189. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans-ExtraBold.ttf +0 -0
  190. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans-ExtraBoldItalic.ttf +0 -0
  191. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans-Italic.ttf +0 -0
  192. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans-Light.ttf +0 -0
  193. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans-LightItalic.ttf +0 -0
  194. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans-Medium.ttf +0 -0
  195. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans-MediumItalic.ttf +0 -0
  196. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans-Regular.ttf +0 -0
  197. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans-SemiBold.ttf +0 -0
  198. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans-SemiBoldItalic.ttf +0 -0
  199. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Bold.ttf +0 -0
  200. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_Condensed-BoldItalic.ttf +0 -0
  201. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_Condensed-ExtraBold.ttf +0 -0
  202. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_Condensed-ExtraBoldItalic.ttf +0 -0
  203. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Italic.ttf +0 -0
  204. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Light.ttf +0 -0
  205. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_Condensed-LightItalic.ttf +0 -0
  206. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Medium.ttf +0 -0
  207. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_Condensed-MediumItalic.ttf +0 -0
  208. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Regular.ttf +0 -0
  209. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_Condensed-SemiBold.ttf +0 -0
  210. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_Condensed-SemiBoldItalic.ttf +0 -0
  211. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Bold.ttf +0 -0
  212. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-BoldItalic.ttf +0 -0
  213. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-ExtraBold.ttf +0 -0
  214. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-ExtraBoldItalic.ttf +0 -0
  215. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Italic.ttf +0 -0
  216. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Light.ttf +0 -0
  217. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-LightItalic.ttf +0 -0
  218. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Medium.ttf +0 -0
  219. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-MediumItalic.ttf +0 -0
  220. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Regular.ttf +0 -0
  221. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-SemiBold.ttf +0 -0
  222. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-SemiBoldItalic.ttf +0 -0
  223. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/abort.png +0 -0
  224. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/annotate.png +0 -0
  225. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/cellpose_all.png +0 -0
  226. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/cellpose_masks.png +0 -0
  227. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/classify.png +0 -0
  228. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/convert.png +0 -0
  229. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/default.png +0 -0
  230. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/dna_matrix.mp4 +0 -0
  231. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/download.png +0 -0
  232. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/logo.pdf +0 -0
  233. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/logo_spacr.png +0 -0
  234. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/logo_spacr_1.png +0 -0
  235. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/make_masks.png +0 -0
  236. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/map_barcodes.png +0 -0
  237. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/mask.png +0 -0
  238. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/measure.png +0 -0
  239. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/ml_analyze.png +0 -0
  240. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/plaque.png +0 -0
  241. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/recruitment.png +0 -0
  242. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/regression.png +0 -0
  243. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/run.png +0 -0
  244. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/sequencing.png +0 -0
  245. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/settings.png +0 -0
  246. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/train_cellpose.png +0 -0
  247. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/icons/umap.png +0 -0
  248. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/images/plate1_E01_T0001F001L01A01Z01C02.tif +0 -0
  249. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/images/plate1_E01_T0001F001L01A02Z01C01.tif +0 -0
  250. {spacr-0.3.36 → spacr-0.3.37}/spacr/resources/images/plate1_E01_T0001F001L01A03Z01C03.tif +0 -0
  251. {spacr-0.3.36 → spacr-0.3.37}/spacr/sequencing.py +0 -0
  252. {spacr-0.3.36 → spacr-0.3.37}/spacr/settings.py +0 -0
  253. {spacr-0.3.36 → spacr-0.3.37}/spacr/sim.py +0 -0
  254. {spacr-0.3.36 → spacr-0.3.37}/spacr/submodules.py +0 -0
  255. {spacr-0.3.36 → spacr-0.3.37}/spacr/timelapse.py +0 -0
  256. {spacr-0.3.36 → spacr-0.3.37}/spacr/toxo.py +0 -0
  257. {spacr-0.3.36 → spacr-0.3.37}/spacr/version.py +0 -0
  258. {spacr-0.3.36 → spacr-0.3.37}/spacr.egg-info/SOURCES.txt +0 -0
  259. {spacr-0.3.36 → spacr-0.3.37}/spacr.egg-info/dependency_links.txt +0 -0
  260. {spacr-0.3.36 → spacr-0.3.37}/spacr.egg-info/entry_points.txt +0 -0
  261. {spacr-0.3.36 → spacr-0.3.37}/spacr.egg-info/requires.txt +0 -0
  262. {spacr-0.3.36 → spacr-0.3.37}/spacr.egg-info/top_level.txt +0 -0
  263. {spacr-0.3.36 → spacr-0.3.37}/tests/test_annotate_app.py +0 -0
  264. {spacr-0.3.36 → spacr-0.3.37}/tests/test_core.py +0 -0
  265. {spacr-0.3.36 → spacr-0.3.37}/tests/test_gui_classify_app.py +0 -0
  266. {spacr-0.3.36 → spacr-0.3.37}/tests/test_gui_mask_app.py +0 -0
  267. {spacr-0.3.36 → spacr-0.3.37}/tests/test_gui_measure_app.py +0 -0
  268. {spacr-0.3.36 → spacr-0.3.37}/tests/test_gui_sim_app.py +0 -0
  269. {spacr-0.3.36 → spacr-0.3.37}/tests/test_gui_utils.py +0 -0
  270. {spacr-0.3.36 → spacr-0.3.37}/tests/test_io.py +0 -0
  271. {spacr-0.3.36 → spacr-0.3.37}/tests/test_mask_app.py +0 -0
  272. {spacr-0.3.36 → spacr-0.3.37}/tests/test_measure.py +0 -0
  273. {spacr-0.3.36 → spacr-0.3.37}/tests/test_plot.py +0 -0
  274. {spacr-0.3.36 → spacr-0.3.37}/tests/test_sim.py +0 -0
  275. {spacr-0.3.36 → spacr-0.3.37}/tests/test_timelapse.py +0 -0
  276. {spacr-0.3.36 → spacr-0.3.37}/tests/test_train.py +0 -0
  277. {spacr-0.3.36 → spacr-0.3.37}/tests/test_umap.py +0 -0
  278. {spacr-0.3.36 → spacr-0.3.37}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: spacr
3
- Version: 0.3.36
3
+ Version: 0.3.37
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
@@ -67,7 +67,7 @@ dependencies = [
67
67
 
68
68
  setup(
69
69
  name="spacr",
70
- version="0.3.36",
70
+ version="0.3.37",
71
71
  author="Einar Birnir Olafsson",
72
72
  author_email="olafsson@med.umich.com",
73
73
  description="Spatial phenotype analysis of crisp screens (SpaCr)",
@@ -2267,14 +2267,24 @@ class AnnotateApp:
2267
2267
  self.grid_rows = max(1, self.grid_rows)
2268
2268
 
2269
2269
  def prefilter_paths_annotations(self):
2270
- from .io import _read_and_join_tables
2270
+ from .io import _read_and_join_tables, _read_db
2271
2271
  from .utils import is_list_of_lists
2272
2272
 
2273
2273
  if self.measurement and self.threshold is not None:
2274
2274
  df = _read_and_join_tables(self.db_path)
2275
+ png_list_df = _read_db(self.db_path, tables=['png_list'])[0]
2276
+ png_list_df = png_list_df.set_index('prcfo')
2277
+ df = df.merge(png_list_df, left_index=True, right_index=True)
2275
2278
  df[self.annotation_column] = None
2276
2279
  before = len(df)
2277
2280
 
2281
+ if isinstance(self.threshold, int):
2282
+ if isinstance(self.measurement, list):
2283
+ mes = self.measurement[0]
2284
+ if isinstance(self.measurement, str):
2285
+ mes = self.measurement
2286
+ df = df[df[f'{mes}'] == self.threshold]
2287
+
2278
2288
  if is_list_of_lists(self.measurement):
2279
2289
  if isinstance(self.threshold, list) or is_list_of_lists(self.threshold):
2280
2290
  if len(self.measurement) == len(self.threshold):
@@ -763,7 +763,7 @@ def generate_ml_scores(settings):
763
763
  raise ValueError("The 'png_list_df' DataFrame must contain 'prcfo' and 'test' columns.")
764
764
  annotated_df = png_list_df[['prcfo', settings['annotation_column']]].set_index('prcfo')
765
765
  df = annotated_df.merge(df, left_index=True, right_index=True)
766
- display(df)
766
+ #display(df)
767
767
  unique_values = df[settings['annotation_column']].dropna().unique()
768
768
  if len(unique_values) == 1:
769
769
  unannotated_rows = df[df[settings['annotation_column']].isna()].index
@@ -846,6 +846,7 @@ def generate_ml_scores(settings):
846
846
  return [output, plate_heatmap]
847
847
 
848
848
  def ml_analysis(df, channel_of_interest=3, location_column='col', positive_control='c2', negative_control='c1', exclude=None, n_repeats=10, top_features=30, n_estimators=100, test_size=0.2, model_type='xgboost', n_jobs=-1, remove_low_variance_features=True, remove_highly_correlated_features=True, verbose=False):
849
+
849
850
  """
850
851
  Calculates permutation importance for numerical features in the dataframe,
851
852
  comparing groups based on specified column values and uses the model to predict
@@ -878,7 +879,6 @@ def ml_analysis(df, channel_of_interest=3, location_column='col', positive_contr
878
879
  if 'cells_per_well' in df.columns:
879
880
  df = df.drop(columns=['cells_per_well'])
880
881
 
881
-
882
882
  df_metadata = df[[location_column]].copy()
883
883
 
884
884
  df, features = filter_dataframe_features(df, channel_of_interest, exclude, remove_low_variance_features, remove_highly_correlated_features, verbose)
@@ -2591,35 +2591,71 @@ class spacrGraph:
2591
2591
  return self.fig
2592
2592
 
2593
2593
  def plot_data_from_db(settings):
2594
- from .io import _read_db
2594
+ from .io import _read_db, _read_and_merge_data
2595
2595
  from .utils import annotate_conditions
2596
2596
  """
2597
2597
  Extracts the specified table from the SQLite database and plots a specified column.
2598
2598
 
2599
2599
  Args:
2600
2600
  db_path (str): The path to the SQLite database.
2601
- table_name (str): The name of the table to extract.
2601
+ table_names (str): The name of the table to extract.
2602
2602
  column_name (str): The column to plot from the table.
2603
2603
 
2604
2604
  Returns:
2605
2605
  df (pd.DataFrame): The extracted table as a DataFrame.
2606
2606
  """
2607
+
2608
+ if isinstance(settings['src'], str):
2609
+ srcs = [settings['src']]
2610
+ elif isinstance(settings['src'], list):
2611
+ srcs = settings['src']
2612
+ if isinstance(settings['database'], str):
2613
+ settings['database'] = [settings['database'] for _ in range(len(srcs))]
2614
+ else:
2615
+ raise ValueError("src must be a string or a list of strings.")
2607
2616
 
2608
- db_loc = os.path.join(settings['src'], 'measurements',settings['database'])
2609
-
2610
- [df] = _read_db(db_loc, tables=[settings['table_name']])
2617
+ dfs = []
2618
+ for i, src in enumerate(srcs):
2619
+
2620
+ db_loc = os.path.join(src, 'measurements', settings['database'][i])
2611
2621
 
2612
- df = annotate_conditions(df,
2613
- cells=settings['cell_types'],
2614
- cell_loc=settings['cell_plate_metadata'],
2615
- pathogens=settings['pathogen_types'],
2616
- pathogen_loc=settings['pathogen_plate_metadata'],
2617
- treatments=settings['treatments'],
2618
- treatment_loc=settings['treatment_plate_metadata'])
2619
-
2622
+ if settings['table_names'] in ['saliency_image_correlations']:
2623
+ [df1] = _read_db(db_loc, tables=[settings['table_names']])
2624
+ else:
2625
+ df1, _ = _read_and_merge_data(locs=[db_loc],
2626
+ tables = ['cell', 'nucleus', 'pathogen','cytoplasm'],
2627
+ verbose=settings['verbose'],
2628
+ nuclei_limit=settings['nuclei_limit'],
2629
+ pathogen_limit=settings['pathogen_limit'],
2630
+ uninfected=settings['uninfected'])
2631
+
2632
+ dft = annotate_conditions(df1,
2633
+ cells=settings['cell_types'],
2634
+ cell_loc=settings['cell_plate_metadata'],
2635
+ pathogens=settings['pathogen_types'],
2636
+ pathogen_loc=settings['pathogen_plate_metadata'],
2637
+ treatments=settings['treatments'],
2638
+ treatment_loc=settings['treatment_plate_metadata'])
2639
+ dfs.append(dft)
2640
+
2641
+ df = pd.concat(dfs, axis=0)
2620
2642
  df['prc'] = df['plate'].astype(str) + '_' + df['row'].astype(str) + '_' + df['col'].astype(str)
2643
+ df['recruitment'] = df['pathogen_channel_1_mean_intensity'] / df['cytoplasm_channel_1_mean_intensity']
2644
+
2645
+ if settings['cell_plate_metadata'] != None:
2646
+ df = df.dropna(subset='host_cell')
2647
+
2648
+ if settings['pathogen_plate_metadata'] != None:
2649
+ df = df.dropna(subset='pathogen')
2650
+
2651
+ if settings['treatment_plate_metadata'] != None:
2652
+ df = df.dropna(subset='treatment')
2653
+
2621
2654
  df = df.dropna(subset=settings['column_name'])
2622
- df['class'] = df['png_path'].apply(lambda x: 'class_1' if 'class_1' in x else ('class_0' if 'class_0' in x else None))
2655
+ df = df.dropna(subset=settings['grouping_column'])
2656
+ #display(df)
2657
+
2658
+ #df['class'] = df['png_path'].apply(lambda x: 'class_1' if 'class_1' in x else ('class_0' if 'class_0' in x else None))
2623
2659
 
2624
2660
  spacr_graph = spacrGraph(
2625
2661
  df=df, # Your DataFrame
@@ -2632,7 +2668,7 @@ def plot_data_from_db(settings):
2632
2668
  save=settings['save'], # Whether to save the plot and results
2633
2669
  y_lim=settings['y_lim'], # Starting point for y-axis (optional)
2634
2670
  error_bar_type='std', # Type of error bar ('std' or 'sem')
2635
- representation='well',
2671
+ representation=settings['representation'],
2636
2672
  theme=settings['theme'], # Seaborn color palette theme (e.g., 'pastel', 'muted')
2637
2673
  )
2638
2674
 
@@ -5060,6 +5060,11 @@ def add_column_to_database(settings):
5060
5060
  # Read the DataFrame from the provided CSV path
5061
5061
  df = pd.read_csv(settings['csv_path'])
5062
5062
 
5063
+ # Check for any 0 values in the update column and replace them with 2
5064
+ if (df[settings['update_column']] == 0).any():
5065
+ print("Replacing all 0 values with 2 in the update column.")
5066
+ df[settings['update_column']].replace(0, 2, inplace=True)
5067
+
5063
5068
  # Connect to the SQLite database
5064
5069
  conn = sqlite3.connect(settings['db_path'])
5065
5070
  cursor = conn.cursor()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: spacr
3
- Version: 0.3.36
3
+ Version: 0.3.37
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes