celldetective 1.5.0b1__tar.gz → 1.5.0b2__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 (197) hide show
  1. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/PKG-INFO +1 -1
  2. celldetective-1.5.0b2/celldetective/_version.py +1 -0
  3. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/InitWindow.py +23 -1
  4. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/base/components.py +20 -1
  5. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/base_annotator.py +11 -7
  6. celldetective-1.5.0b2/celldetective/gui/event_annotator.py +1037 -0
  7. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/interactions_block.py +55 -25
  8. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/interactive_timeseries_viewer.py +11 -1
  9. celldetective-1.5.0b2/celldetective/gui/measure_annotator.py +968 -0
  10. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/process_block.py +88 -34
  11. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/viewers/base_viewer.py +134 -3
  12. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/viewers/contour_viewer.py +4 -4
  13. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/workers.py +25 -10
  14. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/measure.py +3 -0
  15. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/napari/utils.py +29 -19
  16. celldetective-1.5.0b2/celldetective/processes/load_table.py +55 -0
  17. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/processes/measure_cells.py +107 -81
  18. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/processes/track_cells.py +39 -39
  19. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/segmentation.py +1 -1
  20. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/tracking.py +9 -0
  21. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/data_loaders.py +21 -1
  22. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/maths.py +14 -1
  23. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective.egg-info/PKG-INFO +1 -1
  24. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective.egg-info/SOURCES.txt +2 -0
  25. celldetective-1.5.0b1/celldetective/_version.py +0 -1
  26. celldetective-1.5.0b1/celldetective/gui/event_annotator.py +0 -2046
  27. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/LICENSE +0 -0
  28. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/README.md +0 -0
  29. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/__init__.py +0 -0
  30. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/__main__.py +0 -0
  31. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/datasets/segmentation_annotations/blank +0 -0
  32. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/datasets/signal_annotations/blank +0 -0
  33. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/events.py +0 -0
  34. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/exceptions.py +0 -0
  35. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/extra_properties.py +0 -0
  36. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/filters.py +0 -0
  37. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/__init__.py +0 -0
  38. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/about.py +0 -0
  39. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/analyze_block.py +0 -0
  40. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/base/__init__.py +0 -0
  41. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/base/channel_norm_generator.py +0 -0
  42. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/base/feature_choice.py +0 -0
  43. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/base/figure_canvas.py +0 -0
  44. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/base/list_widget.py +0 -0
  45. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/base/styles.py +0 -0
  46. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/base/utils.py +0 -0
  47. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/classifier_widget.py +0 -0
  48. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/configure_new_exp.py +0 -0
  49. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/control_panel.py +0 -0
  50. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/dynamic_progress.py +0 -0
  51. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/generic_signal_plot.py +0 -0
  52. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/gui_utils.py +0 -0
  53. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/help/DL-segmentation-strategy.json +0 -0
  54. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/help/Threshold-vs-DL.json +0 -0
  55. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/help/cell-populations.json +0 -0
  56. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/help/exp-structure.json +0 -0
  57. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/help/feature-btrack.json +0 -0
  58. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/help/neighborhood.json +0 -0
  59. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/help/prefilter-for-segmentation.json +0 -0
  60. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/help/preprocessing.json +0 -0
  61. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/help/propagate-classification.json +0 -0
  62. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/help/track-postprocessing.json +0 -0
  63. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/help/tracking.json +0 -0
  64. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/json_readers.py +0 -0
  65. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/layouts/__init__.py +0 -0
  66. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/layouts/background_model_free_layout.py +0 -0
  67. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/layouts/channel_offset_layout.py +0 -0
  68. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/layouts/local_correction_layout.py +0 -0
  69. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/layouts/model_fit_layout.py +0 -0
  70. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/layouts/operation_layout.py +0 -0
  71. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/layouts/protocol_designer_layout.py +0 -0
  72. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/pair_event_annotator.py +0 -0
  73. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/plot_measurements.py +0 -0
  74. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/plot_signals_ui.py +0 -0
  75. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/preprocessing_block.py +0 -0
  76. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/seg_model_loader.py +0 -0
  77. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/settings/__init__.py +0 -0
  78. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/settings/_cellpose_model_params.py +0 -0
  79. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/settings/_event_detection_model_params.py +0 -0
  80. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/settings/_segmentation_model_params.py +0 -0
  81. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/settings/_settings_base.py +0 -0
  82. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/settings/_settings_event_model_training.py +0 -0
  83. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/settings/_settings_measurements.py +0 -0
  84. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/settings/_settings_neighborhood.py +0 -0
  85. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/settings/_settings_segmentation.py +0 -0
  86. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/settings/_settings_segmentation_model_training.py +0 -0
  87. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/settings/_settings_signal_annotator.py +0 -0
  88. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/settings/_settings_tracking.py +0 -0
  89. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/settings/_stardist_model_params.py +0 -0
  90. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/survival_ui.py +0 -0
  91. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/tableUI.py +0 -0
  92. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/table_ops/__init__.py +0 -0
  93. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/table_ops/_maths.py +0 -0
  94. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/table_ops/_merge_groups.py +0 -0
  95. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/table_ops/_merge_one_hot.py +0 -0
  96. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/table_ops/_query_table.py +0 -0
  97. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/table_ops/_rename_col.py +0 -0
  98. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/thresholds_gui.py +0 -0
  99. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/viewers/__init__.py +0 -0
  100. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/viewers/channel_offset_viewer.py +0 -0
  101. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/viewers/size_viewer.py +0 -0
  102. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/viewers/spot_detection_viewer.py +0 -0
  103. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/gui/viewers/threshold_viewer.py +0 -0
  104. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/icons/logo-large.png +0 -0
  105. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/icons/logo.png +0 -0
  106. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/icons/signals_icon.png +0 -0
  107. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/icons/splash-test.png +0 -0
  108. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/icons/splash.png +0 -0
  109. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/icons/splash0.png +0 -0
  110. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/icons/survival2.png +0 -0
  111. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/icons/vignette_signals2.png +0 -0
  112. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/icons/vignette_signals2.svg +0 -0
  113. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/links/zenodo.json +0 -0
  114. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/log_manager.py +0 -0
  115. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/models/pair_signal_detection/blank +0 -0
  116. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/models/segmentation_effectors/blank +0 -0
  117. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/models/segmentation_generic/blank +0 -0
  118. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/models/segmentation_targets/blank +0 -0
  119. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/models/signal_detection/blank +0 -0
  120. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/models/tracking_configs/biased_motion.json +0 -0
  121. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/models/tracking_configs/mcf7.json +0 -0
  122. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/models/tracking_configs/no_z_motion.json +0 -0
  123. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/models/tracking_configs/ricm.json +0 -0
  124. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/models/tracking_configs/ricm2.json +0 -0
  125. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/napari/__init__.py +0 -0
  126. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/neighborhood.py +0 -0
  127. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/preprocessing.py +0 -0
  128. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/processes/__init__.py +0 -0
  129. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/processes/background_correction.py +0 -0
  130. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/processes/compute_neighborhood.py +0 -0
  131. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/processes/detect_events.py +0 -0
  132. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/processes/downloader.py +0 -0
  133. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/processes/segment_cells.py +0 -0
  134. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/processes/train_segmentation_model.py +0 -0
  135. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/processes/train_signal_model.py +0 -0
  136. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/processes/unified_process.py +0 -0
  137. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/regionprops/__init__.py +0 -0
  138. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/regionprops/_regionprops.py +0 -0
  139. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/regionprops/props.json +0 -0
  140. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/relative_measurements.py +0 -0
  141. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/scripts/analyze_signals.py +0 -0
  142. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/scripts/measure_cells.py +0 -0
  143. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/scripts/measure_relative.py +0 -0
  144. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/scripts/segment_cells.py +0 -0
  145. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/scripts/segment_cells_thresholds.py +0 -0
  146. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/scripts/track_cells.py +0 -0
  147. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/scripts/train_segmentation_model.py +0 -0
  148. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/scripts/train_signal_model.py +0 -0
  149. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/signals.py +0 -0
  150. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/__init__.py +0 -0
  151. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/cellpose_utils/__init__.py +0 -0
  152. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/color_mappings.py +0 -0
  153. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/data_cleaning.py +0 -0
  154. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/dataset_helpers.py +0 -0
  155. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/downloaders.py +0 -0
  156. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/event_detection/__init__.py +0 -0
  157. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/experiment.py +0 -0
  158. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/image_augmenters.py +0 -0
  159. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/image_cleaning.py +0 -0
  160. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/image_loaders.py +0 -0
  161. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/image_transforms.py +0 -0
  162. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/io.py +0 -0
  163. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/mask_cleaning.py +0 -0
  164. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/mask_transforms.py +0 -0
  165. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/masks.py +0 -0
  166. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/model_getters.py +0 -0
  167. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/model_loaders.py +0 -0
  168. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/normalization.py +0 -0
  169. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/parsing.py +0 -0
  170. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/plots/__init__.py +0 -0
  171. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/plots/regression.py +0 -0
  172. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/resources.py +0 -0
  173. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/stardist_utils/__init__.py +0 -0
  174. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/stats.py +0 -0
  175. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective/utils/types.py +0 -0
  176. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective.egg-info/dependency_links.txt +0 -0
  177. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective.egg-info/entry_points.txt +0 -0
  178. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective.egg-info/not-zip-safe +0 -0
  179. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective.egg-info/requires.txt +0 -0
  180. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/celldetective.egg-info/top_level.txt +0 -0
  181. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/setup.cfg +0 -0
  182. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/setup.py +0 -0
  183. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/tests/__init__.py +0 -0
  184. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/tests/gui/__init__.py +0 -0
  185. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/tests/gui/test_new_project.py +0 -0
  186. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/tests/gui/test_project.py +0 -0
  187. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/tests/test_events.py +0 -0
  188. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/tests/test_filters.py +0 -0
  189. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/tests/test_io.py +0 -0
  190. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/tests/test_measure.py +0 -0
  191. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/tests/test_neighborhood.py +0 -0
  192. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/tests/test_notebooks.py +0 -0
  193. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/tests/test_preprocessing.py +0 -0
  194. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/tests/test_segmentation.py +0 -0
  195. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/tests/test_signals.py +0 -0
  196. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/tests/test_tracking.py +0 -0
  197. {celldetective-1.5.0b1 → celldetective-1.5.0b2}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: celldetective
3
- Version: 1.5.0b1
3
+ Version: 1.5.0b2
4
4
  Summary: description
5
5
  Home-page: http://github.com/remyeltorro/celldetective
6
6
  Author: Rémy Torro
@@ -0,0 +1 @@
1
+ __version__ = "1.5.0b2"
@@ -21,6 +21,7 @@ from PyQt5.QtWidgets import (
21
21
  QPushButton,
22
22
  QMessageBox,
23
23
  QVBoxLayout,
24
+ QProgressDialog,
24
25
  )
25
26
  from fonticon_mdi6 import MDI6
26
27
  from psutil import cpu_count
@@ -57,6 +58,8 @@ class BackgroundLoader(QThread):
57
58
  import scipy.ndimage
58
59
  import tifffile
59
60
  import numpy
61
+ import napari
62
+ from celldetective.napari.utils import launch_napari_viewer
60
63
  except Exception:
61
64
  logger.error("Background packages not loaded...")
62
65
  logger.info("Background packages loaded...")
@@ -337,14 +340,33 @@ class AppInitWindow(CelldetectiveMainWindow):
337
340
  )
338
341
 
339
342
  def correct_seg_annotation(self):
343
+
340
344
  from celldetective.napari.utils import correct_annotation
341
345
 
342
346
  self.filename, _ = QFileDialog.getOpenFileName(
343
347
  self, "Open Image", "/home/", "TIF Files (*.tif)"
344
348
  )
349
+
345
350
  if self.filename != "":
351
+ # 2. Show progress bar for opening the image in Napari
352
+ progress_open = QProgressDialog(
353
+ f"Opening {os.path.basename(self.filename)} in napari...",
354
+ None,
355
+ 0,
356
+ 0,
357
+ self,
358
+ )
359
+ progress_open.setWindowTitle("Please wait")
360
+ progress_open.setWindowModality(Qt.WindowModal)
361
+ progress_open.setMinimumDuration(0)
362
+ progress_open.show()
363
+ QApplication.processEvents()
364
+
346
365
  logger.info(f"Opening {self.filename} in napari...")
347
- correct_annotation(self.filename)
366
+ try:
367
+ correct_annotation(self.filename)
368
+ finally:
369
+ progress_open.close()
348
370
  else:
349
371
  return None
350
372
 
@@ -11,11 +11,13 @@ from PyQt5.QtWidgets import (
11
11
  QStylePainter,
12
12
  QStyleOptionComboBox,
13
13
  QStyle,
14
- QFrame,
15
14
  QSizePolicy,
16
15
  QProgressDialog,
16
+ QPushButton,
17
+ QFrame,
17
18
  )
18
19
  from PyQt5.QtCore import Qt, pyqtSignal, QEvent
20
+ from superqt.fonticon import icon
19
21
  from celldetective.gui.base.styles import Styles
20
22
 
21
23
 
@@ -247,3 +249,20 @@ class QHSeperationLine(QFrame):
247
249
  self.setFrameShape(QFrame.HLine)
248
250
  self.setFrameShadow(QFrame.Sunken)
249
251
  self.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Minimum)
252
+
253
+
254
+ class HoverButton(QPushButton):
255
+ def __init__(self, text, icon_enum, default_color="black", hover_color="white"):
256
+ super().__init__(text)
257
+ self.icon_enum = icon_enum
258
+ self.default_color = default_color
259
+ self.hover_color = hover_color
260
+ self.setIcon(icon(self.icon_enum, color=self.default_color))
261
+
262
+ def enterEvent(self, event):
263
+ self.setIcon(icon(self.icon_enum, color=self.hover_color))
264
+ super().enterEvent(event)
265
+
266
+ def leaveEvent(self, event):
267
+ self.setIcon(icon(self.icon_enum, color=self.default_color))
268
+ super().leaveEvent(event)
@@ -47,6 +47,9 @@ from celldetective.gui.gui_utils import (
47
47
  from celldetective.gui.base.figure_canvas import FigureCanvas
48
48
  from celldetective.gui.base.utils import center_window
49
49
  import gc
50
+ from celldetective import get_logger
51
+
52
+ logger = get_logger(__name__)
50
53
 
51
54
 
52
55
  class BaseAnnotator(CelldetectiveMainWindow, Styles):
@@ -364,7 +367,7 @@ class BaseAnnotator(CelldetectiveMainWindow, Styles):
364
367
  self.correct_btn.disconnect()
365
368
  self.correct_btn.clicked.connect(self.show_annotation_buttons)
366
369
 
367
- print(f"{self.selection=}")
370
+ logger.info(f"{self.selection=}")
368
371
 
369
372
  ind = event.ind
370
373
 
@@ -711,7 +714,7 @@ class BaseAnnotator(CelldetectiveMainWindow, Styles):
711
714
  try:
712
715
  self.df_tracks = self.df_tracks.drop([c], axis=1)
713
716
  except Exception as e:
714
- print(e)
717
+ logger.error(e)
715
718
  item_idx = self.class_choice_cb.findText(class_to_delete)
716
719
  self.class_choice_cb.removeItem(item_idx)
717
720
 
@@ -755,7 +758,7 @@ class BaseAnnotator(CelldetectiveMainWindow, Styles):
755
758
  self.log_btn.setIcon(icon(MDI6.math_log, color="black"))
756
759
  self.log_scale = False
757
760
  except Exception as e:
758
- print(e)
761
+ logger.error(e)
759
762
 
760
763
  # self.cell_ax.autoscale()
761
764
  self.cell_fcanvas.canvas.draw_idle()
@@ -839,9 +842,9 @@ class BaseAnnotator(CelldetectiveMainWindow, Styles):
839
842
  pathsave += ".npy"
840
843
  try:
841
844
  np.save(pathsave, training_set)
842
- print(f"File successfully written in {pathsave}.")
845
+ logger.info(f"File successfully written in {pathsave}.")
843
846
  except Exception as e:
844
- print(f"Error {e}...")
847
+ logger.error(f"Error {e}...")
845
848
 
846
849
  def create_new_event_class(self):
847
850
 
@@ -897,10 +900,11 @@ class BaseAnnotator(CelldetectiveMainWindow, Styles):
897
900
 
898
901
  def save_trajectories(self):
899
902
  # specific to signal/static annotator
900
- print("Save trajectory function not implemented for BaseAnnotator class...")
903
+ logger.info(
904
+ "Save trajectory function not implemented for BaseAnnotator class..."
905
+ )
901
906
 
902
907
  def cancel_selection(self):
903
- print("we are in cancel selection...")
904
908
  self.hide_annotation_buttons()
905
909
  self.correct_btn.setEnabled(False)
906
910
  self.correct_btn.setText("correct")