celldetective 1.3.9.post3__tar.gz → 1.5.0b8__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.
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/PKG-INFO +39 -22
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/README.md +22 -17
- celldetective-1.5.0b8/celldetective/__init__.py +26 -0
- celldetective-1.5.0b8/celldetective/__main__.py +85 -0
- celldetective-1.5.0b8/celldetective/_version.py +1 -0
- celldetective-1.5.0b8/celldetective/event_detection_models.py +2463 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/events.py +2 -4
- celldetective-1.5.0b8/celldetective/exceptions.py +11 -0
- celldetective-1.5.0b8/celldetective/extra_properties.py +647 -0
- celldetective-1.5.0b8/celldetective/filters.py +250 -0
- celldetective-1.5.0b8/celldetective/gui/InitWindow.py +594 -0
- {celldetective-1.3.9.post3/tests → celldetective-1.5.0b8/celldetective/gui}/__init__.py +0 -0
- celldetective-1.5.0b8/celldetective/gui/about.py +53 -0
- celldetective-1.5.0b8/celldetective/gui/analyze_block.py +132 -0
- celldetective-1.5.0b8/celldetective/gui/base/channel_norm_generator.py +351 -0
- celldetective-1.5.0b8/celldetective/gui/base/components.py +270 -0
- celldetective-1.5.0b8/celldetective/gui/base/feature_choice.py +92 -0
- celldetective-1.5.0b8/celldetective/gui/base/figure_canvas.py +66 -0
- celldetective-1.5.0b8/celldetective/gui/base/list_widget.py +133 -0
- {celldetective-1.3.9.post3/celldetective/gui → celldetective-1.5.0b8/celldetective/gui/base}/styles.py +92 -35
- celldetective-1.5.0b8/celldetective/gui/base/utils.py +33 -0
- celldetective-1.5.0b8/celldetective/gui/base_annotator.py +927 -0
- celldetective-1.5.0b8/celldetective/gui/classifier_widget.py +656 -0
- celldetective-1.5.0b8/celldetective/gui/configure_new_exp.py +798 -0
- celldetective-1.5.0b8/celldetective/gui/control_panel.py +655 -0
- celldetective-1.5.0b8/celldetective/gui/dynamic_progress.py +449 -0
- celldetective-1.5.0b8/celldetective/gui/event_annotator.py +1147 -0
- celldetective-1.5.0b8/celldetective/gui/generic_signal_plot.py +1316 -0
- celldetective-1.5.0b8/celldetective/gui/gui_utils.py +992 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/gui/help/neighborhood.json +2 -2
- celldetective-1.5.0b8/celldetective/gui/interactions_block.py +688 -0
- celldetective-1.5.0b8/celldetective/gui/interactive_timeseries_viewer.py +457 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/gui/json_readers.py +51 -17
- celldetective-1.5.0b8/celldetective/gui/layouts/__init__.py +5 -0
- celldetective-1.5.0b8/celldetective/gui/layouts/background_model_free_layout.py +537 -0
- celldetective-1.5.0b8/celldetective/gui/layouts/channel_offset_layout.py +134 -0
- celldetective-1.5.0b8/celldetective/gui/layouts/local_correction_layout.py +91 -0
- celldetective-1.5.0b8/celldetective/gui/layouts/model_fit_layout.py +372 -0
- celldetective-1.5.0b8/celldetective/gui/layouts/operation_layout.py +68 -0
- celldetective-1.5.0b8/celldetective/gui/layouts/protocol_designer_layout.py +96 -0
- celldetective-1.5.0b8/celldetective/gui/measure_annotator.py +1064 -0
- celldetective-1.5.0b8/celldetective/gui/pair_event_annotator.py +3277 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/gui/plot_measurements.py +602 -281
- celldetective-1.5.0b8/celldetective/gui/plot_signals_ui.py +744 -0
- celldetective-1.5.0b8/celldetective/gui/preprocessing_block.py +395 -0
- celldetective-1.5.0b8/celldetective/gui/process_block.py +1921 -0
- celldetective-1.5.0b8/celldetective/gui/seg_model_loader.py +592 -0
- celldetective-1.5.0b8/celldetective/gui/settings/_cellpose_model_params.py +181 -0
- celldetective-1.5.0b8/celldetective/gui/settings/_event_detection_model_params.py +95 -0
- celldetective-1.5.0b8/celldetective/gui/settings/_segmentation_model_params.py +159 -0
- celldetective-1.5.0b8/celldetective/gui/settings/_settings_base.py +82 -0
- celldetective-1.5.0b8/celldetective/gui/settings/_settings_event_model_training.py +788 -0
- celldetective-1.5.0b8/celldetective/gui/settings/_settings_measurements.py +1158 -0
- celldetective-1.5.0b8/celldetective/gui/settings/_settings_neighborhood.py +585 -0
- celldetective-1.5.0b8/celldetective/gui/settings/_settings_segmentation.py +49 -0
- celldetective-1.5.0b8/celldetective/gui/settings/_settings_segmentation_model_training.py +801 -0
- celldetective-1.5.0b8/celldetective/gui/settings/_settings_signal_annotator.py +324 -0
- celldetective-1.5.0b8/celldetective/gui/settings/_settings_tracking.py +1333 -0
- celldetective-1.5.0b8/celldetective/gui/settings/_stardist_model_params.py +98 -0
- celldetective-1.5.0b8/celldetective/gui/survival_ui.py +439 -0
- celldetective-1.5.0b8/celldetective/gui/tableUI.py +1706 -0
- celldetective-1.5.0b8/celldetective/gui/table_ops/_maths.py +295 -0
- celldetective-1.5.0b8/celldetective/gui/table_ops/_merge_groups.py +140 -0
- celldetective-1.5.0b8/celldetective/gui/table_ops/_merge_one_hot.py +95 -0
- celldetective-1.5.0b8/celldetective/gui/table_ops/_query_table.py +43 -0
- celldetective-1.5.0b8/celldetective/gui/table_ops/_rename_col.py +44 -0
- celldetective-1.5.0b8/celldetective/gui/thresholds_gui.py +917 -0
- celldetective-1.5.0b8/celldetective/gui/viewers/base_viewer.py +889 -0
- celldetective-1.5.0b8/celldetective/gui/viewers/channel_offset_viewer.py +445 -0
- celldetective-1.5.0b8/celldetective/gui/viewers/contour_viewer.py +394 -0
- celldetective-1.5.0b8/celldetective/gui/viewers/size_viewer.py +153 -0
- celldetective-1.5.0b8/celldetective/gui/viewers/spot_detection_viewer.py +341 -0
- celldetective-1.5.0b8/celldetective/gui/viewers/threshold_viewer.py +317 -0
- celldetective-1.5.0b8/celldetective/gui/workers.py +432 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/links/zenodo.json +145 -144
- celldetective-1.5.0b8/celldetective/log_manager.py +92 -0
- celldetective-1.5.0b8/celldetective/measure.py +1924 -0
- celldetective-1.5.0b8/celldetective/models/segmentation_effectors/blank +0 -0
- celldetective-1.5.0b8/celldetective/models/segmentation_generic/blank +0 -0
- celldetective-1.5.0b8/celldetective/models/segmentation_targets/blank +0 -0
- celldetective-1.5.0b8/celldetective/models/signal_detection/blank +0 -0
- celldetective-1.5.0b8/celldetective/napari/__init__.py +0 -0
- celldetective-1.5.0b8/celldetective/napari/utils.py +1035 -0
- celldetective-1.5.0b8/celldetective/neighborhood.py +1949 -0
- celldetective-1.5.0b8/celldetective/preprocessing.py +1643 -0
- celldetective-1.5.0b8/celldetective/processes/__init__.py +0 -0
- celldetective-1.5.0b8/celldetective/processes/background_correction.py +271 -0
- celldetective-1.5.0b8/celldetective/processes/compute_neighborhood.py +894 -0
- celldetective-1.5.0b8/celldetective/processes/detect_events.py +246 -0
- celldetective-1.5.0b8/celldetective/processes/downloader.py +137 -0
- celldetective-1.5.0b8/celldetective/processes/load_table.py +55 -0
- celldetective-1.5.0b8/celldetective/processes/measure_cells.py +591 -0
- celldetective-1.5.0b8/celldetective/processes/segment_cells.py +760 -0
- celldetective-1.5.0b8/celldetective/processes/track_cells.py +435 -0
- celldetective-1.5.0b8/celldetective/processes/train_segmentation_model.py +694 -0
- celldetective-1.5.0b8/celldetective/processes/train_signal_model.py +265 -0
- celldetective-1.5.0b8/celldetective/processes/unified_process.py +306 -0
- celldetective-1.5.0b8/celldetective/regionprops/_regionprops.py +378 -0
- celldetective-1.5.0b8/celldetective/relative_measurements.py +1061 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/scripts/analyze_signals.py +4 -1
- celldetective-1.5.0b8/celldetective/scripts/measure_cells.py +418 -0
- celldetective-1.5.0b8/celldetective/scripts/measure_relative.py +136 -0
- celldetective-1.5.0b8/celldetective/scripts/segment_cells.py +252 -0
- celldetective-1.5.0b8/celldetective/scripts/segment_cells_thresholds.py +174 -0
- celldetective-1.5.0b8/celldetective/scripts/track_cells.py +306 -0
- celldetective-1.5.0b8/celldetective/scripts/train_segmentation_model.py +375 -0
- celldetective-1.5.0b8/celldetective/scripts/train_signal_model.py +121 -0
- celldetective-1.5.0b8/celldetective/segmentation.py +873 -0
- celldetective-1.5.0b8/celldetective/signals.py +1177 -0
- celldetective-1.5.0b8/celldetective/tracking.py +1380 -0
- celldetective-1.5.0b8/celldetective/utils/__init__.py +0 -0
- celldetective-1.5.0b8/celldetective/utils/cellpose_utils/__init__.py +162 -0
- celldetective-1.5.0b8/celldetective/utils/color_mappings.py +42 -0
- celldetective-1.5.0b8/celldetective/utils/data_cleaning.py +630 -0
- celldetective-1.5.0b8/celldetective/utils/data_loaders.py +470 -0
- celldetective-1.5.0b8/celldetective/utils/dataset_helpers.py +207 -0
- celldetective-1.5.0b8/celldetective/utils/downloaders.py +269 -0
- celldetective-1.5.0b8/celldetective/utils/event_detection/__init__.py +8 -0
- celldetective-1.5.0b8/celldetective/utils/experiment.py +1782 -0
- celldetective-1.5.0b8/celldetective/utils/image_augmenters.py +308 -0
- celldetective-1.5.0b8/celldetective/utils/image_cleaning.py +74 -0
- celldetective-1.5.0b8/celldetective/utils/image_loaders.py +929 -0
- celldetective-1.5.0b8/celldetective/utils/image_transforms.py +335 -0
- celldetective-1.5.0b8/celldetective/utils/io.py +62 -0
- celldetective-1.5.0b8/celldetective/utils/mask_cleaning.py +348 -0
- celldetective-1.5.0b8/celldetective/utils/mask_transforms.py +5 -0
- celldetective-1.5.0b8/celldetective/utils/masks.py +184 -0
- celldetective-1.5.0b8/celldetective/utils/maths.py +364 -0
- celldetective-1.5.0b8/celldetective/utils/model_getters.py +325 -0
- celldetective-1.5.0b8/celldetective/utils/model_loaders.py +296 -0
- celldetective-1.5.0b8/celldetective/utils/normalization.py +380 -0
- celldetective-1.5.0b8/celldetective/utils/parsing.py +465 -0
- celldetective-1.5.0b8/celldetective/utils/plots/__init__.py +0 -0
- celldetective-1.5.0b8/celldetective/utils/plots/regression.py +53 -0
- celldetective-1.5.0b8/celldetective/utils/resources.py +34 -0
- celldetective-1.5.0b8/celldetective/utils/stardist_utils/__init__.py +110 -0
- celldetective-1.5.0b8/celldetective/utils/stats.py +90 -0
- celldetective-1.5.0b8/celldetective/utils/types.py +21 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective.egg-info/PKG-INFO +39 -22
- celldetective-1.5.0b8/celldetective.egg-info/SOURCES.txt +198 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective.egg-info/requires.txt +15 -3
- celldetective-1.5.0b8/setup.py +79 -0
- celldetective-1.5.0b8/tests/__init__.py +0 -0
- celldetective-1.5.0b8/tests/gui/__init__.py +0 -0
- celldetective-1.5.0b8/tests/gui/test_enhancements.py +351 -0
- celldetective-1.5.0b8/tests/gui/test_measure_annotator_bugfix.py +130 -0
- celldetective-1.5.0b8/tests/gui/test_new_project.py +240 -0
- celldetective-1.5.0b8/tests/gui/test_project.py +147 -0
- celldetective-1.5.0b8/tests/test_cellpose_fallback.py +101 -0
- celldetective-1.5.0b8/tests/test_filters.py +48 -0
- celldetective-1.5.0b8/tests/test_notebooks.py +9 -0
- celldetective-1.5.0b8/tests/test_partial_install.py +75 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/tests/test_preprocessing.py +2 -2
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/tests/test_signals.py +4 -4
- celldetective-1.5.0b8/tests/test_tracking.py +445 -0
- celldetective-1.5.0b8/tests/test_utils.py +164 -0
- celldetective-1.3.9.post3/celldetective/__init__.py +0 -4
- celldetective-1.3.9.post3/celldetective/__main__.py +0 -66
- celldetective-1.3.9.post3/celldetective/_version.py +0 -1
- celldetective-1.3.9.post3/celldetective/extra_properties.py +0 -273
- celldetective-1.3.9.post3/celldetective/filters.py +0 -149
- celldetective-1.3.9.post3/celldetective/gui/InitWindow.py +0 -434
- celldetective-1.3.9.post3/celldetective/gui/__init__.py +0 -21
- celldetective-1.3.9.post3/celldetective/gui/about.py +0 -44
- celldetective-1.3.9.post3/celldetective/gui/analyze_block.py +0 -81
- celldetective-1.3.9.post3/celldetective/gui/btrack_options.py +0 -1154
- celldetective-1.3.9.post3/celldetective/gui/classifier_widget.py +0 -572
- celldetective-1.3.9.post3/celldetective/gui/configure_new_exp.py +0 -575
- celldetective-1.3.9.post3/celldetective/gui/control_panel.py +0 -609
- celldetective-1.3.9.post3/celldetective/gui/generic_signal_plot.py +0 -970
- celldetective-1.3.9.post3/celldetective/gui/gui_utils.py +0 -1342
- celldetective-1.3.9.post3/celldetective/gui/layouts.py +0 -1368
- celldetective-1.3.9.post3/celldetective/gui/measurement_options.py +0 -1027
- celldetective-1.3.9.post3/celldetective/gui/neighborhood_options.py +0 -502
- celldetective-1.3.9.post3/celldetective/gui/plot_signals_ui.py +0 -471
- celldetective-1.3.9.post3/celldetective/gui/process_block.py +0 -1753
- celldetective-1.3.9.post3/celldetective/gui/processes/downloader.py +0 -108
- celldetective-1.3.9.post3/celldetective/gui/processes/measure_cells.py +0 -349
- celldetective-1.3.9.post3/celldetective/gui/processes/segment_cells.py +0 -354
- celldetective-1.3.9.post3/celldetective/gui/processes/track_cells.py +0 -298
- celldetective-1.3.9.post3/celldetective/gui/processes/train_segmentation_model.py +0 -270
- celldetective-1.3.9.post3/celldetective/gui/processes/train_signal_model.py +0 -108
- celldetective-1.3.9.post3/celldetective/gui/retrain_segmentation_model_options.py +0 -634
- celldetective-1.3.9.post3/celldetective/gui/retrain_signal_model_options.py +0 -599
- celldetective-1.3.9.post3/celldetective/gui/seg_model_loader.py +0 -526
- celldetective-1.3.9.post3/celldetective/gui/signal_annotator.py +0 -2582
- celldetective-1.3.9.post3/celldetective/gui/signal_annotator2.py +0 -2658
- celldetective-1.3.9.post3/celldetective/gui/signal_annotator_options.py +0 -344
- celldetective-1.3.9.post3/celldetective/gui/survival_ui.py +0 -375
- celldetective-1.3.9.post3/celldetective/gui/tableUI.py +0 -1713
- celldetective-1.3.9.post3/celldetective/gui/thresholds_gui.py +0 -1318
- celldetective-1.3.9.post3/celldetective/gui/viewers.py +0 -1289
- celldetective-1.3.9.post3/celldetective/gui/workers.py +0 -136
- celldetective-1.3.9.post3/celldetective/io.py +0 -3574
- celldetective-1.3.9.post3/celldetective/measure.py +0 -1463
- celldetective-1.3.9.post3/celldetective/models/segmentation_effectors/ricm_bf_all_last/config_input.json +0 -79
- celldetective-1.3.9.post3/celldetective/models/segmentation_effectors/ricm_bf_all_last/ricm_bf_all_last +0 -0
- celldetective-1.3.9.post3/celldetective/models/segmentation_effectors/ricm_bf_all_last/training_instructions.json +0 -37
- celldetective-1.3.9.post3/celldetective/models/segmentation_effectors/test-transfer/config_input.json +0 -39
- celldetective-1.3.9.post3/celldetective/models/segmentation_effectors/test-transfer/test-transfer +0 -0
- celldetective-1.3.9.post3/celldetective/models/signal_detection/NucCond/classification_loss.png +0 -0
- celldetective-1.3.9.post3/celldetective/models/signal_detection/NucCond/classifier.h5 +0 -0
- celldetective-1.3.9.post3/celldetective/models/signal_detection/NucCond/config_input.json +0 -1
- celldetective-1.3.9.post3/celldetective/models/signal_detection/NucCond/log_classifier.csv +0 -126
- celldetective-1.3.9.post3/celldetective/models/signal_detection/NucCond/log_regressor.csv +0 -282
- celldetective-1.3.9.post3/celldetective/models/signal_detection/NucCond/regression_loss.png +0 -0
- celldetective-1.3.9.post3/celldetective/models/signal_detection/NucCond/regressor.h5 +0 -0
- celldetective-1.3.9.post3/celldetective/models/signal_detection/NucCond/scores.npy +0 -0
- celldetective-1.3.9.post3/celldetective/models/signal_detection/NucCond/test_confusion_matrix.png +0 -0
- celldetective-1.3.9.post3/celldetective/models/signal_detection/NucCond/test_regression.png +0 -0
- celldetective-1.3.9.post3/celldetective/models/signal_detection/NucCond/validation_confusion_matrix.png +0 -0
- celldetective-1.3.9.post3/celldetective/models/signal_detection/NucCond/validation_regression.png +0 -0
- celldetective-1.3.9.post3/celldetective/neighborhood.py +0 -1409
- celldetective-1.3.9.post3/celldetective/preprocessing.py +0 -1222
- celldetective-1.3.9.post3/celldetective/regionprops/_regionprops.py +0 -319
- celldetective-1.3.9.post3/celldetective/relative_measurements.py +0 -763
- celldetective-1.3.9.post3/celldetective/scripts/measure_cells.py +0 -317
- celldetective-1.3.9.post3/celldetective/scripts/measure_relative.py +0 -84
- celldetective-1.3.9.post3/celldetective/scripts/segment_cells.py +0 -197
- celldetective-1.3.9.post3/celldetective/scripts/segment_cells_thresholds.py +0 -146
- celldetective-1.3.9.post3/celldetective/scripts/track_cells.py +0 -255
- celldetective-1.3.9.post3/celldetective/scripts/train_segmentation_model.py +0 -240
- celldetective-1.3.9.post3/celldetective/scripts/train_signal_model.py +0 -79
- celldetective-1.3.9.post3/celldetective/segmentation.py +0 -778
- celldetective-1.3.9.post3/celldetective/signals.py +0 -2931
- celldetective-1.3.9.post3/celldetective/tracking.py +0 -1039
- celldetective-1.3.9.post3/celldetective/utils.py +0 -3080
- celldetective-1.3.9.post3/celldetective.egg-info/SOURCES.txt +0 -133
- celldetective-1.3.9.post3/setup.py +0 -51
- celldetective-1.3.9.post3/tests/test_filters.py +0 -24
- celldetective-1.3.9.post3/tests/test_qt.py +0 -103
- celldetective-1.3.9.post3/tests/test_tracking.py +0 -164
- celldetective-1.3.9.post3/tests/test_utils.py +0 -118
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/LICENSE +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/datasets/segmentation_annotations/blank +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/datasets/signal_annotations/blank +0 -0
- /celldetective-1.3.9.post3/celldetective/models/pair_signal_detection/blank → /celldetective-1.5.0b8/celldetective/gui/base/__init__.py +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/gui/help/DL-segmentation-strategy.json +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/gui/help/Threshold-vs-DL.json +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/gui/help/cell-populations.json +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/gui/help/exp-structure.json +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/gui/help/feature-btrack.json +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/gui/help/prefilter-for-segmentation.json +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/gui/help/preprocessing.json +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/gui/help/propagate-classification.json +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/gui/help/track-postprocessing.json +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/gui/help/tracking.json +0 -0
- /celldetective-1.3.9.post3/celldetective/models/segmentation_effectors/blank → /celldetective-1.5.0b8/celldetective/gui/settings/__init__.py +0 -0
- /celldetective-1.3.9.post3/celldetective/models/segmentation_generic/blank → /celldetective-1.5.0b8/celldetective/gui/table_ops/__init__.py +0 -0
- /celldetective-1.3.9.post3/celldetective/models/segmentation_targets/blank → /celldetective-1.5.0b8/celldetective/gui/viewers/__init__.py +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/icons/logo-large.png +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/icons/logo.png +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/icons/signals_icon.png +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/icons/splash-test.png +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/icons/splash.png +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/icons/splash0.png +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/icons/survival2.png +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/icons/vignette_signals2.png +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/icons/vignette_signals2.svg +0 -0
- {celldetective-1.3.9.post3/celldetective/models/signal_detection → celldetective-1.5.0b8/celldetective/models/pair_signal_detection}/blank +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/models/tracking_configs/biased_motion.json +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/models/tracking_configs/mcf7.json +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/models/tracking_configs/no_z_motion.json +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/models/tracking_configs/ricm.json +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/models/tracking_configs/ricm2.json +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/regionprops/__init__.py +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective/regionprops/props.json +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective.egg-info/dependency_links.txt +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective.egg-info/entry_points.txt +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective.egg-info/not-zip-safe +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/celldetective.egg-info/top_level.txt +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/setup.cfg +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/tests/test_events.py +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/tests/test_io.py +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/tests/test_measure.py +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/tests/test_neighborhood.py +0 -0
- {celldetective-1.3.9.post3 → celldetective-1.5.0b8}/tests/test_segmentation.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: celldetective
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.5.0b8
|
|
4
4
|
Summary: description
|
|
5
5
|
Home-page: http://github.com/remyeltorro/celldetective
|
|
6
6
|
Author: Rémy Torro
|
|
@@ -15,11 +15,8 @@ Requires-Dist: sphinx_rtd_theme
|
|
|
15
15
|
Requires-Dist: sphinx
|
|
16
16
|
Requires-Dist: jinja2
|
|
17
17
|
Requires-Dist: ipykernel
|
|
18
|
-
Requires-Dist: stardist
|
|
19
|
-
Requires-Dist: cellpose<3
|
|
20
18
|
Requires-Dist: scikit-learn
|
|
21
19
|
Requires-Dist: btrack
|
|
22
|
-
Requires-Dist: tensorflow~=2.15.0
|
|
23
20
|
Requires-Dist: napari<0.6.0
|
|
24
21
|
Requires-Dist: tqdm
|
|
25
22
|
Requires-Dist: mahotas
|
|
@@ -44,12 +41,27 @@ Requires-Dist: h5py
|
|
|
44
41
|
Requires-Dist: cliffs_delta
|
|
45
42
|
Requires-Dist: requests
|
|
46
43
|
Requires-Dist: trackpy
|
|
44
|
+
Requires-Dist: prettyprint
|
|
45
|
+
Requires-Dist: pandas
|
|
46
|
+
Requires-Dist: matplotlib
|
|
47
|
+
Requires-Dist: prettytable
|
|
48
|
+
Requires-Dist: scikit-image
|
|
49
|
+
Requires-Dist: natsort
|
|
50
|
+
Provides-Extra: tensorflow
|
|
51
|
+
Requires-Dist: tensorflow~=2.15.0; extra == "tensorflow"
|
|
52
|
+
Requires-Dist: stardist; extra == "tensorflow"
|
|
53
|
+
Provides-Extra: all
|
|
54
|
+
Requires-Dist: cellpose<3; extra == "all"
|
|
55
|
+
Requires-Dist: stardist; extra == "all"
|
|
56
|
+
Requires-Dist: tensorflow~=2.15.0; extra == "all"
|
|
47
57
|
Dynamic: author
|
|
48
58
|
Dynamic: author-email
|
|
49
59
|
Dynamic: description
|
|
50
60
|
Dynamic: description-content-type
|
|
51
61
|
Dynamic: home-page
|
|
52
62
|
Dynamic: license
|
|
63
|
+
Dynamic: license-file
|
|
64
|
+
Dynamic: provides-extra
|
|
53
65
|
Dynamic: requires-dist
|
|
54
66
|
Dynamic: summary
|
|
55
67
|
|
|
@@ -143,10 +155,12 @@ To use the software, you must install python, *e.g.* through
|
|
|
143
155
|
|
|
144
156
|
Celldetective requires a version of Python between 3.9 and 3.11 (included). If your Python version is older or more recent, consider using `conda` to create an environment as described below.
|
|
145
157
|
|
|
146
|
-
With the proper Python version, Celldetective can be directly installed with `pip
|
|
158
|
+
With the proper Python version, Celldetective can be directly installed with `pip`.
|
|
159
|
+
**Important**: By default, `pip install celldetective` will **not** install deep-learning libraries (`tensorflow`, `cellpose`, `stardist`) to allow users to manage their own GPU environment (e.g. `torch`, `cuda`).
|
|
147
160
|
|
|
161
|
+
If you want the standard full installation (recommended for most users), use:
|
|
148
162
|
``` bash
|
|
149
|
-
pip install celldetective
|
|
163
|
+
pip install celldetective[all]
|
|
150
164
|
```
|
|
151
165
|
|
|
152
166
|
We recommend that you create an environment to use Celldetective, to protect your package versions and fix the Python version *e.g.*
|
|
@@ -155,7 +169,7 @@ with `conda`:
|
|
|
155
169
|
``` bash
|
|
156
170
|
conda create -n celldetective python=3.11 pyqt
|
|
157
171
|
conda activate celldetective
|
|
158
|
-
pip install celldetective
|
|
172
|
+
pip install celldetective[all]
|
|
159
173
|
```
|
|
160
174
|
|
|
161
175
|
Need an update? Simply type the following in the terminal (in your
|
|
@@ -183,26 +197,29 @@ For more information about how to get started, please check the [documentation](
|
|
|
183
197
|
# How to cite?
|
|
184
198
|
|
|
185
199
|
If you use this software in your research, please cite the
|
|
186
|
-
[Celldetective](https://
|
|
187
|
-
paper (currently preprint):
|
|
200
|
+
[Celldetective](https://elifesciences.org/reviewed-preprints/105302)
|
|
201
|
+
paper (currently a reviewed preprint at eLife):
|
|
188
202
|
|
|
189
203
|
``` raw
|
|
190
|
-
@article
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
204
|
+
@article{torroCelldetectiveAIenhancedImage2025,
|
|
205
|
+
title = {Celldetective: An {{AI-enhanced}} Image Analysis Tool for Unraveling Dynamic Cell Interactions},
|
|
206
|
+
shorttitle = {Celldetective},
|
|
207
|
+
author = {Torro, Rémy and Díaz-Bello, Beatriz and Arawi, Dalia El and Dervanova, Ksenija and Ammer, Lorna and Dupuy, Florian and Chames, Patrick and Sengupta, Kheya and Limozin, Laurent},
|
|
208
|
+
date = {2025-03-10},
|
|
209
|
+
journaltitle = {eLife},
|
|
210
|
+
volume = {14},
|
|
211
|
+
publisher = {eLife Sciences Publications Limited},
|
|
212
|
+
doi = {10.7554/eLife.105302.1},
|
|
213
|
+
url = {https://elifesciences.org/reviewed-preprints/105302},
|
|
214
|
+
urldate = {2025-03-20},
|
|
215
|
+
abstract = {A current challenge in bioimaging for immunology and immunotherapy research lies in analyzing multimodal and multidimensional data that capture dynamic interactions between diverse cell populations. Here, we introduce Celldetective, an open-source Python-based software designed for high-performance, end-to-end analysis of image-based in vitro immune and immunotherapy assays. Purpose-built for multicondition, 2D multichannel time-lapse microscopy of mixed cell populations, Celldetective is optimized for the needs of immunology assays. The software seamlessly integrates AI-based segmentation, Bayesian tracking, and automated single-cell event detection, all within an intuitive graphical interface that supports interactive visualization, annotation, and training capabilities. We demonstrate its utility with original data on immune effector cell interactions with an activating surface, mediated by bispecific antibodies, and further showcase its potential for analyzing extensive sets of pairwise interactions in antibody-dependent cell cytotoxicity events.},
|
|
216
|
+
langid = {english},
|
|
217
|
+
file = {/home/torro/Zotero/storage/VFYBBMQF/Torro et al. - 2025 - Celldetective an AI-enhanced image analysis tool .pdf;/home/torro/Zotero/storage/UGMCKKST/105302.html}
|
|
201
218
|
}
|
|
202
219
|
```
|
|
203
220
|
|
|
204
221
|
Make sure you to cite the papers of any segmentation model (StarDist,
|
|
205
|
-
Cellpose) or tracker (bTrack) you used through Celldetective.
|
|
222
|
+
Cellpose) or tracker (bTrack, TrackPy) you used through Celldetective.
|
|
206
223
|
|
|
207
224
|
# Bibliography
|
|
208
225
|
|
|
@@ -88,10 +88,12 @@ To use the software, you must install python, *e.g.* through
|
|
|
88
88
|
|
|
89
89
|
Celldetective requires a version of Python between 3.9 and 3.11 (included). If your Python version is older or more recent, consider using `conda` to create an environment as described below.
|
|
90
90
|
|
|
91
|
-
With the proper Python version, Celldetective can be directly installed with `pip
|
|
91
|
+
With the proper Python version, Celldetective can be directly installed with `pip`.
|
|
92
|
+
**Important**: By default, `pip install celldetective` will **not** install deep-learning libraries (`tensorflow`, `cellpose`, `stardist`) to allow users to manage their own GPU environment (e.g. `torch`, `cuda`).
|
|
92
93
|
|
|
94
|
+
If you want the standard full installation (recommended for most users), use:
|
|
93
95
|
``` bash
|
|
94
|
-
pip install celldetective
|
|
96
|
+
pip install celldetective[all]
|
|
95
97
|
```
|
|
96
98
|
|
|
97
99
|
We recommend that you create an environment to use Celldetective, to protect your package versions and fix the Python version *e.g.*
|
|
@@ -100,7 +102,7 @@ with `conda`:
|
|
|
100
102
|
``` bash
|
|
101
103
|
conda create -n celldetective python=3.11 pyqt
|
|
102
104
|
conda activate celldetective
|
|
103
|
-
pip install celldetective
|
|
105
|
+
pip install celldetective[all]
|
|
104
106
|
```
|
|
105
107
|
|
|
106
108
|
Need an update? Simply type the following in the terminal (in your
|
|
@@ -128,26 +130,29 @@ For more information about how to get started, please check the [documentation](
|
|
|
128
130
|
# How to cite?
|
|
129
131
|
|
|
130
132
|
If you use this software in your research, please cite the
|
|
131
|
-
[Celldetective](https://
|
|
132
|
-
paper (currently preprint):
|
|
133
|
+
[Celldetective](https://elifesciences.org/reviewed-preprints/105302)
|
|
134
|
+
paper (currently a reviewed preprint at eLife):
|
|
133
135
|
|
|
134
136
|
``` raw
|
|
135
|
-
@article
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
137
|
+
@article{torroCelldetectiveAIenhancedImage2025,
|
|
138
|
+
title = {Celldetective: An {{AI-enhanced}} Image Analysis Tool for Unraveling Dynamic Cell Interactions},
|
|
139
|
+
shorttitle = {Celldetective},
|
|
140
|
+
author = {Torro, Rémy and Díaz-Bello, Beatriz and Arawi, Dalia El and Dervanova, Ksenija and Ammer, Lorna and Dupuy, Florian and Chames, Patrick and Sengupta, Kheya and Limozin, Laurent},
|
|
141
|
+
date = {2025-03-10},
|
|
142
|
+
journaltitle = {eLife},
|
|
143
|
+
volume = {14},
|
|
144
|
+
publisher = {eLife Sciences Publications Limited},
|
|
145
|
+
doi = {10.7554/eLife.105302.1},
|
|
146
|
+
url = {https://elifesciences.org/reviewed-preprints/105302},
|
|
147
|
+
urldate = {2025-03-20},
|
|
148
|
+
abstract = {A current challenge in bioimaging for immunology and immunotherapy research lies in analyzing multimodal and multidimensional data that capture dynamic interactions between diverse cell populations. Here, we introduce Celldetective, an open-source Python-based software designed for high-performance, end-to-end analysis of image-based in vitro immune and immunotherapy assays. Purpose-built for multicondition, 2D multichannel time-lapse microscopy of mixed cell populations, Celldetective is optimized for the needs of immunology assays. The software seamlessly integrates AI-based segmentation, Bayesian tracking, and automated single-cell event detection, all within an intuitive graphical interface that supports interactive visualization, annotation, and training capabilities. We demonstrate its utility with original data on immune effector cell interactions with an activating surface, mediated by bispecific antibodies, and further showcase its potential for analyzing extensive sets of pairwise interactions in antibody-dependent cell cytotoxicity events.},
|
|
149
|
+
langid = {english},
|
|
150
|
+
file = {/home/torro/Zotero/storage/VFYBBMQF/Torro et al. - 2025 - Celldetective an AI-enhanced image analysis tool .pdf;/home/torro/Zotero/storage/UGMCKKST/105302.html}
|
|
146
151
|
}
|
|
147
152
|
```
|
|
148
153
|
|
|
149
154
|
Make sure you to cite the papers of any segmentation model (StarDist,
|
|
150
|
-
Cellpose) or tracker (bTrack) you used through Celldetective.
|
|
155
|
+
Cellpose) or tracker (bTrack, TrackPy) you used through Celldetective.
|
|
151
156
|
|
|
152
157
|
# Bibliography
|
|
153
158
|
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from ._version import __version__
|
|
2
|
+
import os
|
|
3
|
+
from .log_manager import setup_global_logging, get_logger
|
|
4
|
+
|
|
5
|
+
# Define default log path in user home
|
|
6
|
+
USER_LOG_DIR = os.path.join(os.path.expanduser("~"), ".celldetective", "logs")
|
|
7
|
+
GLOBAL_LOG_FILE = os.path.join(USER_LOG_DIR, "celldetective.log")
|
|
8
|
+
|
|
9
|
+
# Setup logging
|
|
10
|
+
setup_global_logging(log_file=GLOBAL_LOG_FILE)
|
|
11
|
+
|
|
12
|
+
# Expose logger
|
|
13
|
+
logger = get_logger()
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def get_software_location() -> str:
|
|
17
|
+
"""
|
|
18
|
+
Get the installation folder of celldetective.
|
|
19
|
+
|
|
20
|
+
Returns
|
|
21
|
+
-------
|
|
22
|
+
str
|
|
23
|
+
Path to the celldetective installation folder.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
return rf"{os.path.split(os.path.dirname(os.path.realpath(__file__)))[0]}"
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
import sys
|
|
3
|
+
import os
|
|
4
|
+
|
|
5
|
+
os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"
|
|
6
|
+
|
|
7
|
+
from PyQt5.QtWidgets import QApplication, QSplashScreen
|
|
8
|
+
from PyQt5.QtGui import QPixmap
|
|
9
|
+
from os import sep
|
|
10
|
+
|
|
11
|
+
# os.environ['QT_DEBUG_PLUGINS'] = '1'
|
|
12
|
+
|
|
13
|
+
if __name__ == "__main__":
|
|
14
|
+
|
|
15
|
+
splash = True
|
|
16
|
+
from celldetective import logger
|
|
17
|
+
from celldetective import get_software_location
|
|
18
|
+
|
|
19
|
+
logger.info("Loading the libraries...")
|
|
20
|
+
|
|
21
|
+
App = QApplication(sys.argv)
|
|
22
|
+
App.setStyle("Fusion")
|
|
23
|
+
|
|
24
|
+
software_location = get_software_location()
|
|
25
|
+
|
|
26
|
+
if splash:
|
|
27
|
+
splash_pix = QPixmap(
|
|
28
|
+
sep.join([software_location, "celldetective", "icons", "splash.png"])
|
|
29
|
+
)
|
|
30
|
+
splash = QSplashScreen(splash_pix)
|
|
31
|
+
splash.setMask(splash_pix.mask())
|
|
32
|
+
splash.show()
|
|
33
|
+
App.processEvents()
|
|
34
|
+
|
|
35
|
+
# Update check in background
|
|
36
|
+
def check_update():
|
|
37
|
+
try:
|
|
38
|
+
import requests
|
|
39
|
+
import re
|
|
40
|
+
from celldetective import __version__
|
|
41
|
+
|
|
42
|
+
package = "celldetective"
|
|
43
|
+
response = requests.get(f"https://pypi.org/pypi/{package}/json", timeout=5)
|
|
44
|
+
latest_version = response.json()["info"]["version"]
|
|
45
|
+
|
|
46
|
+
latest_version_num = re.sub("[^0-9]", "", latest_version)
|
|
47
|
+
current_version_num = re.sub("[^0-9]", "", __version__)
|
|
48
|
+
|
|
49
|
+
if len(latest_version_num) != len(current_version_num):
|
|
50
|
+
max_length = max([len(latest_version_num), len(current_version_num)])
|
|
51
|
+
latest_version_num = int(
|
|
52
|
+
latest_version_num.zfill(max_length - len(latest_version_num))
|
|
53
|
+
)
|
|
54
|
+
current_version_num = int(
|
|
55
|
+
current_version_num.zfill(max_length - len(current_version_num))
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
if latest_version_num > current_version_num:
|
|
59
|
+
logger.warning(
|
|
60
|
+
"Update is available...\nPlease update using `pip install --upgrade celldetective`..."
|
|
61
|
+
)
|
|
62
|
+
except Exception as e:
|
|
63
|
+
logger.error(
|
|
64
|
+
f"Update check failed... Please check your internet connection: {e}"
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
import threading
|
|
68
|
+
|
|
69
|
+
update_thread = threading.Thread(target=check_update)
|
|
70
|
+
update_thread.daemon = True
|
|
71
|
+
update_thread.start()
|
|
72
|
+
|
|
73
|
+
from celldetective.gui.InitWindow import AppInitWindow
|
|
74
|
+
|
|
75
|
+
logger.info("Libraries successfully loaded...")
|
|
76
|
+
|
|
77
|
+
from celldetective.gui.base.utils import center_window
|
|
78
|
+
|
|
79
|
+
window = AppInitWindow(App, software_location=software_location)
|
|
80
|
+
center_window(window)
|
|
81
|
+
|
|
82
|
+
if splash:
|
|
83
|
+
splash.finish(window)
|
|
84
|
+
|
|
85
|
+
sys.exit(App.exec())
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.5.0b8"
|