celldetective 1.5.0b3__tar.gz → 1.5.0b4__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.5.0b3 → celldetective-1.5.0b4}/PKG-INFO +1 -1
- celldetective-1.5.0b4/celldetective/_version.py +1 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/measure_annotator.py +3 -3
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/settings/_settings_segmentation_model_training.py +6 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/viewers/base_viewer.py +5 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/cellpose_utils/__init__.py +23 -7
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective.egg-info/PKG-INFO +1 -1
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective.egg-info/SOURCES.txt +2 -0
- celldetective-1.5.0b4/tests/gui/test_measure_annotator_bugfix.py +130 -0
- celldetective-1.5.0b4/tests/test_cellpose_fallback.py +101 -0
- celldetective-1.5.0b3/celldetective/_version.py +0 -1
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/LICENSE +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/README.md +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/__init__.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/__main__.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/datasets/segmentation_annotations/blank +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/datasets/signal_annotations/blank +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/events.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/exceptions.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/extra_properties.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/filters.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/InitWindow.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/__init__.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/about.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/analyze_block.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/base/__init__.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/base/channel_norm_generator.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/base/components.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/base/feature_choice.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/base/figure_canvas.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/base/list_widget.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/base/styles.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/base/utils.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/base_annotator.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/classifier_widget.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/configure_new_exp.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/control_panel.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/dynamic_progress.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/event_annotator.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/generic_signal_plot.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/gui_utils.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/help/DL-segmentation-strategy.json +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/help/Threshold-vs-DL.json +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/help/cell-populations.json +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/help/exp-structure.json +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/help/feature-btrack.json +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/help/neighborhood.json +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/help/prefilter-for-segmentation.json +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/help/preprocessing.json +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/help/propagate-classification.json +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/help/track-postprocessing.json +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/help/tracking.json +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/interactions_block.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/interactive_timeseries_viewer.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/json_readers.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/layouts/__init__.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/layouts/background_model_free_layout.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/layouts/channel_offset_layout.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/layouts/local_correction_layout.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/layouts/model_fit_layout.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/layouts/operation_layout.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/layouts/protocol_designer_layout.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/pair_event_annotator.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/plot_measurements.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/plot_signals_ui.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/preprocessing_block.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/process_block.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/seg_model_loader.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/settings/__init__.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/settings/_cellpose_model_params.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/settings/_event_detection_model_params.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/settings/_segmentation_model_params.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/settings/_settings_base.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/settings/_settings_event_model_training.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/settings/_settings_measurements.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/settings/_settings_neighborhood.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/settings/_settings_segmentation.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/settings/_settings_signal_annotator.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/settings/_settings_tracking.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/settings/_stardist_model_params.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/survival_ui.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/tableUI.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/table_ops/__init__.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/table_ops/_maths.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/table_ops/_merge_groups.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/table_ops/_merge_one_hot.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/table_ops/_query_table.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/table_ops/_rename_col.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/thresholds_gui.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/viewers/__init__.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/viewers/channel_offset_viewer.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/viewers/contour_viewer.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/viewers/size_viewer.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/viewers/spot_detection_viewer.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/viewers/threshold_viewer.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/workers.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/icons/logo-large.png +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/icons/logo.png +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/icons/signals_icon.png +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/icons/splash-test.png +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/icons/splash.png +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/icons/splash0.png +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/icons/survival2.png +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/icons/vignette_signals2.png +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/icons/vignette_signals2.svg +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/links/zenodo.json +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/log_manager.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/measure.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/models/pair_signal_detection/blank +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/models/segmentation_effectors/blank +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/models/segmentation_generic/blank +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/models/segmentation_targets/blank +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/models/signal_detection/blank +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/models/tracking_configs/biased_motion.json +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/models/tracking_configs/mcf7.json +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/models/tracking_configs/no_z_motion.json +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/models/tracking_configs/ricm.json +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/models/tracking_configs/ricm2.json +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/napari/__init__.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/napari/utils.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/neighborhood.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/preprocessing.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/processes/__init__.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/processes/background_correction.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/processes/compute_neighborhood.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/processes/detect_events.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/processes/downloader.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/processes/load_table.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/processes/measure_cells.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/processes/segment_cells.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/processes/track_cells.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/processes/train_segmentation_model.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/processes/train_signal_model.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/processes/unified_process.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/regionprops/__init__.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/regionprops/_regionprops.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/regionprops/props.json +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/relative_measurements.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/scripts/analyze_signals.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/scripts/measure_cells.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/scripts/measure_relative.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/scripts/segment_cells.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/scripts/segment_cells_thresholds.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/scripts/track_cells.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/scripts/train_segmentation_model.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/scripts/train_signal_model.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/segmentation.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/signals.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/tracking.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/__init__.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/color_mappings.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/data_cleaning.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/data_loaders.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/dataset_helpers.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/downloaders.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/event_detection/__init__.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/experiment.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/image_augmenters.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/image_cleaning.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/image_loaders.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/image_transforms.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/io.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/mask_cleaning.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/mask_transforms.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/masks.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/maths.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/model_getters.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/model_loaders.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/normalization.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/parsing.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/plots/__init__.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/plots/regression.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/resources.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/stardist_utils/__init__.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/stats.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/types.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective.egg-info/dependency_links.txt +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective.egg-info/entry_points.txt +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective.egg-info/not-zip-safe +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective.egg-info/requires.txt +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective.egg-info/top_level.txt +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/setup.cfg +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/setup.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/tests/__init__.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/tests/gui/__init__.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/tests/gui/test_enhancements.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/tests/gui/test_new_project.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/tests/gui/test_project.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/tests/test_events.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/tests/test_filters.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/tests/test_io.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/tests/test_measure.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/tests/test_neighborhood.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/tests/test_notebooks.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/tests/test_preprocessing.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/tests/test_segmentation.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/tests/test_signals.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/tests/test_tracking.py +0 -0
- {celldetective-1.5.0b3 → celldetective-1.5.0b4}/tests/test_utils.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.5.0b4"
|
|
@@ -950,9 +950,9 @@ class MeasureAnnotator(BaseAnnotator):
|
|
|
950
950
|
].to_numpy()
|
|
951
951
|
)
|
|
952
952
|
self.colors.append(
|
|
953
|
-
self.df_tracks.loc[
|
|
954
|
-
|
|
955
|
-
|
|
953
|
+
self.df_tracks.loc[self.df_tracks["FRAME"] == t, ["group_color"]]
|
|
954
|
+
.to_numpy()
|
|
955
|
+
.copy()
|
|
956
956
|
)
|
|
957
957
|
if "TRACK_ID" in self.df_tracks.columns:
|
|
958
958
|
self.tracks.append(
|
|
@@ -84,6 +84,12 @@ class SettingsSegmentationModelTraining(CelldetectiveSettingsPanel):
|
|
|
84
84
|
self.bg_loader = BackgroundLoader()
|
|
85
85
|
self.bg_loader.start()
|
|
86
86
|
|
|
87
|
+
def closeEvent(self, event):
|
|
88
|
+
if self.bg_loader.isRunning():
|
|
89
|
+
logger.info("Waiting for background loader to finish...")
|
|
90
|
+
self.bg_loader.wait()
|
|
91
|
+
super().closeEvent(event)
|
|
92
|
+
|
|
87
93
|
def _add_to_layout(self):
|
|
88
94
|
|
|
89
95
|
self._layout.addWidget(self.model_frame)
|
|
@@ -111,6 +111,11 @@ class StackLoader(QThread):
|
|
|
111
111
|
# If nothing to load, wait
|
|
112
112
|
self.mutex.lock()
|
|
113
113
|
self.condition.wait(self.mutex, 500) # Wait 500ms or until new priority
|
|
114
|
+
|
|
115
|
+
if not self.running:
|
|
116
|
+
self.mutex.unlock()
|
|
117
|
+
break
|
|
118
|
+
|
|
114
119
|
self.mutex.unlock()
|
|
115
120
|
|
|
116
121
|
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/cellpose_utils/__init__.py
RENAMED
|
@@ -113,13 +113,29 @@ def _prep_cellpose_model(
|
|
|
113
113
|
|
|
114
114
|
from cellpose.models import CellposeModel
|
|
115
115
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
116
|
+
try:
|
|
117
|
+
model = CellposeModel(
|
|
118
|
+
gpu=use_gpu,
|
|
119
|
+
device=device,
|
|
120
|
+
pretrained_model=path + model_name,
|
|
121
|
+
model_type=None,
|
|
122
|
+
nchan=n_channels,
|
|
123
|
+
) # diam_mean=30.0,
|
|
124
|
+
except AssertionError as e:
|
|
125
|
+
if use_gpu:
|
|
126
|
+
print(
|
|
127
|
+
f"[WARNING] Could not load Cellpose model with GPU ({e}). Retrying with CPU..."
|
|
128
|
+
)
|
|
129
|
+
device = torch.device("cpu")
|
|
130
|
+
model = CellposeModel(
|
|
131
|
+
gpu=False,
|
|
132
|
+
device=device,
|
|
133
|
+
pretrained_model=path + model_name,
|
|
134
|
+
model_type=None,
|
|
135
|
+
nchan=n_channels,
|
|
136
|
+
)
|
|
137
|
+
else:
|
|
138
|
+
raise e
|
|
123
139
|
if scale is None:
|
|
124
140
|
scale_model = model.diam_mean / model.diam_labels
|
|
125
141
|
else:
|
|
@@ -177,6 +177,7 @@ celldetective/utils/plots/__init__.py
|
|
|
177
177
|
celldetective/utils/plots/regression.py
|
|
178
178
|
celldetective/utils/stardist_utils/__init__.py
|
|
179
179
|
tests/__init__.py
|
|
180
|
+
tests/test_cellpose_fallback.py
|
|
180
181
|
tests/test_events.py
|
|
181
182
|
tests/test_filters.py
|
|
182
183
|
tests/test_io.py
|
|
@@ -190,5 +191,6 @@ tests/test_tracking.py
|
|
|
190
191
|
tests/test_utils.py
|
|
191
192
|
tests/gui/__init__.py
|
|
192
193
|
tests/gui/test_enhancements.py
|
|
194
|
+
tests/gui/test_measure_annotator_bugfix.py
|
|
193
195
|
tests/gui/test_new_project.py
|
|
194
196
|
tests/gui/test_project.py
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
import os
|
|
3
|
+
import pandas as pd
|
|
4
|
+
import numpy as np
|
|
5
|
+
import logging
|
|
6
|
+
from PyQt5 import QtCore
|
|
7
|
+
from celldetective.gui.InitWindow import AppInitWindow
|
|
8
|
+
from celldetective.gui.measure_annotator import MeasureAnnotator
|
|
9
|
+
from celldetective import get_software_location
|
|
10
|
+
from unittest.mock import patch
|
|
11
|
+
import shutil
|
|
12
|
+
import tifffile
|
|
13
|
+
|
|
14
|
+
software_location = get_software_location()
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@pytest.fixture(autouse=True)
|
|
18
|
+
def disable_logging():
|
|
19
|
+
"""Disable all logging to avoid Windows OSError with pytest capture."""
|
|
20
|
+
logger = logging.getLogger()
|
|
21
|
+
try:
|
|
22
|
+
logging.disable(logging.CRITICAL)
|
|
23
|
+
yield
|
|
24
|
+
finally:
|
|
25
|
+
logging.disable(logging.NOTSET)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@pytest.fixture
|
|
29
|
+
def app(qtbot):
|
|
30
|
+
test_app = AppInitWindow(software_location=software_location)
|
|
31
|
+
qtbot.addWidget(test_app)
|
|
32
|
+
return test_app
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def create_dummy_movie(exp_dir, well="W1", pos="100", prefix="sample", frames=5):
|
|
36
|
+
movie_dir = os.path.join(exp_dir, well, pos, "movie")
|
|
37
|
+
os.makedirs(movie_dir, exist_ok=True)
|
|
38
|
+
# Use a single multi-page TIF as expected by locate_stack
|
|
39
|
+
movie_path = os.path.join(movie_dir, f"{prefix}.tif")
|
|
40
|
+
img = np.zeros((frames, 100, 100), dtype=np.uint16)
|
|
41
|
+
tifffile.imwrite(movie_path, img)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def test_measure_annotator_colors_writable(app, qtbot, tmp_path):
|
|
45
|
+
"""
|
|
46
|
+
Test that self.colors in MeasureAnnotator contains writable arrays.
|
|
47
|
+
This verifies the fix for 'ValueError: assignment destination is read-only'.
|
|
48
|
+
"""
|
|
49
|
+
exp_dir = str(tmp_path / "ExperimentColors")
|
|
50
|
+
os.makedirs(os.path.join(exp_dir, "W1", "100", "output", "tables"), exist_ok=True)
|
|
51
|
+
os.makedirs(os.path.join(exp_dir, "configs"), exist_ok=True)
|
|
52
|
+
|
|
53
|
+
with open(os.path.join(exp_dir, "config.ini"), "w") as f:
|
|
54
|
+
f.write(
|
|
55
|
+
"[MovieSettings]\nmovie_prefix = sample\nlen_movie = 10\nshape_x = 100\nshape_y = 100\npxtoum = 1.0\nframetomin = 1.0\n"
|
|
56
|
+
)
|
|
57
|
+
f.write(
|
|
58
|
+
"[Labels]\nconcentrations = 0\ncell_types = dummy\nantibodies = none\npharmaceutical_agents = none\n[Channels]\nChannel1 = 0\n"
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
create_dummy_movie(exp_dir, well="W1", pos="100", prefix="sample", frames=10)
|
|
62
|
+
|
|
63
|
+
# DataFrame with tracks
|
|
64
|
+
df = pd.DataFrame(
|
|
65
|
+
{
|
|
66
|
+
"TRACK_ID": [1, 1],
|
|
67
|
+
"FRAME": [0, 1],
|
|
68
|
+
"group_experimental": ["A", "A"],
|
|
69
|
+
"area": [100.0, 110.0],
|
|
70
|
+
"POSITION_X": [10, 12],
|
|
71
|
+
"POSITION_Y": [10, 12],
|
|
72
|
+
"status": [0, 0], # Ensure status column exists
|
|
73
|
+
}
|
|
74
|
+
)
|
|
75
|
+
# The 'group_color' column is usually generated inside MeasureAnnotator,
|
|
76
|
+
# but let's see if we need to let it generate it.
|
|
77
|
+
# MeasureAnnotator calls 'color_from_state', then assigns 'group_color'.
|
|
78
|
+
|
|
79
|
+
traj_path = os.path.join(
|
|
80
|
+
exp_dir, "W1", "100", "output", "tables", "trajectories_effectors.csv"
|
|
81
|
+
)
|
|
82
|
+
df.to_csv(traj_path, index=False)
|
|
83
|
+
|
|
84
|
+
app.experiment_path_selection.setText(exp_dir)
|
|
85
|
+
qtbot.mouseClick(app.validate_button, QtCore.Qt.LeftButton)
|
|
86
|
+
qtbot.waitUntil(lambda: hasattr(app, "control_panel"), timeout=30000)
|
|
87
|
+
|
|
88
|
+
cp = app.control_panel
|
|
89
|
+
p0 = cp.ProcessPopulations[0]
|
|
90
|
+
|
|
91
|
+
qtbot.waitUntil(lambda: cp.well_list.count() > 0, timeout=30000)
|
|
92
|
+
|
|
93
|
+
with patch.object(cp.well_list, "getSelectedIndices", return_value=[0]):
|
|
94
|
+
with patch.object(cp.position_list, "getSelectedIndices", return_value=[0]):
|
|
95
|
+
|
|
96
|
+
cp.update_position_options()
|
|
97
|
+
qtbot.wait(500)
|
|
98
|
+
|
|
99
|
+
qtbot.mouseClick(p0.check_measurements_btn, QtCore.Qt.LeftButton)
|
|
100
|
+
|
|
101
|
+
try:
|
|
102
|
+
qtbot.waitUntil(lambda: hasattr(p0, "measure_annotator"), timeout=15000)
|
|
103
|
+
except Exception:
|
|
104
|
+
print("DEBUG: measure_annotator not found on p0.")
|
|
105
|
+
raise
|
|
106
|
+
|
|
107
|
+
annotator = p0.measure_annotator
|
|
108
|
+
qtbot.wait(1000)
|
|
109
|
+
assert annotator is not None
|
|
110
|
+
|
|
111
|
+
# Verify that self.colors arrays are writable
|
|
112
|
+
# extract_scatter_from_trajectories should have been called during init
|
|
113
|
+
assert hasattr(annotator, "colors")
|
|
114
|
+
assert len(annotator.colors) > 0
|
|
115
|
+
|
|
116
|
+
# Check the first frame's colors
|
|
117
|
+
colors_frame_0 = annotator.colors[0]
|
|
118
|
+
|
|
119
|
+
# Check flags
|
|
120
|
+
assert colors_frame_0.flags[
|
|
121
|
+
"WRITEABLE"
|
|
122
|
+
], "self.colors arrays must be writable"
|
|
123
|
+
|
|
124
|
+
# Try to modify (should not raise ValueError)
|
|
125
|
+
try:
|
|
126
|
+
colors_frame_0[0] = "lime"
|
|
127
|
+
except ValueError as e:
|
|
128
|
+
pytest.fail(f"Could not modify colors array: {e}")
|
|
129
|
+
|
|
130
|
+
annotator.close()
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import unittest
|
|
2
|
+
from unittest.mock import MagicMock, patch
|
|
3
|
+
import sys
|
|
4
|
+
|
|
5
|
+
# Do not import torch here to avoid WinError 1114 if environment is broken.
|
|
6
|
+
# We will mock it in setUp.
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class TestCellposeFallback(unittest.TestCase):
|
|
10
|
+
|
|
11
|
+
def setUp(self):
|
|
12
|
+
# Create a mock for torch
|
|
13
|
+
self.mock_torch = MagicMock()
|
|
14
|
+
self.mock_torch.device = MagicMock(return_value="cpu")
|
|
15
|
+
self.mock_torch.cuda = MagicMock()
|
|
16
|
+
self.mock_torch.cuda.is_available.return_value = (
|
|
17
|
+
False # Default to CPU environment simulation
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
# Patch modules so that 'import torch' and 'import cellpose' work with our mocks
|
|
21
|
+
# We need to patch 'torch' in sys.modules BEFORE importing code that uses it.
|
|
22
|
+
self.modules_patcher = patch.dict(
|
|
23
|
+
sys.modules,
|
|
24
|
+
{
|
|
25
|
+
"torch": self.mock_torch,
|
|
26
|
+
"cellpose": MagicMock(),
|
|
27
|
+
"cellpose.models": MagicMock(),
|
|
28
|
+
},
|
|
29
|
+
)
|
|
30
|
+
self.modules_patcher.start()
|
|
31
|
+
|
|
32
|
+
# Define a mock CellposeModel that we can control
|
|
33
|
+
self.MockCellposeModel = MagicMock()
|
|
34
|
+
sys.modules["cellpose.models"].CellposeModel = self.MockCellposeModel
|
|
35
|
+
|
|
36
|
+
def tearDown(self):
|
|
37
|
+
self.modules_patcher.stop()
|
|
38
|
+
|
|
39
|
+
def test_gpu_fallback_on_assertion_error(self):
|
|
40
|
+
"""
|
|
41
|
+
Test that _prep_cellpose_model falls back to CPU if GPU init fails with AssertionError.
|
|
42
|
+
"""
|
|
43
|
+
# Lazy import inside the test method/patch context
|
|
44
|
+
from celldetective.utils.cellpose_utils import _prep_cellpose_model
|
|
45
|
+
|
|
46
|
+
# Side effect for CellposeModel constructor
|
|
47
|
+
def side_effect(gpu=False, **kwargs):
|
|
48
|
+
if gpu:
|
|
49
|
+
raise AssertionError("Torch not compiled with CUDA enabled")
|
|
50
|
+
|
|
51
|
+
# Return a mock model object
|
|
52
|
+
model = MagicMock()
|
|
53
|
+
model.diam_mean = 30.0
|
|
54
|
+
model.diam_labels = 30.0
|
|
55
|
+
return model
|
|
56
|
+
|
|
57
|
+
self.MockCellposeModel.side_effect = side_effect
|
|
58
|
+
|
|
59
|
+
# Call the function with use_gpu=True
|
|
60
|
+
# We expect it to try with gpu=True, fail, print warning, and retry with gpu=False
|
|
61
|
+
model, scale = _prep_cellpose_model(
|
|
62
|
+
model_name="fake_model", path="fake_path/", use_gpu=True, n_channels=2
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
# Check call history
|
|
66
|
+
self.assertEqual(self.MockCellposeModel.call_count, 2)
|
|
67
|
+
|
|
68
|
+
args1, kwargs1 = self.MockCellposeModel.call_args_list[0]
|
|
69
|
+
self.assertTrue(kwargs1.get("gpu"), "First call should try gpu=True")
|
|
70
|
+
|
|
71
|
+
args2, kwargs2 = self.MockCellposeModel.call_args_list[1]
|
|
72
|
+
self.assertFalse(kwargs2.get("gpu"), "Second call should retry with gpu=False")
|
|
73
|
+
|
|
74
|
+
self.assertIsNotNone(model)
|
|
75
|
+
|
|
76
|
+
def test_gpu_success(self):
|
|
77
|
+
"""
|
|
78
|
+
Test that _prep_cellpose_model works normally if GPU init succeeds.
|
|
79
|
+
"""
|
|
80
|
+
from celldetective.utils.cellpose_utils import _prep_cellpose_model
|
|
81
|
+
|
|
82
|
+
# Side effect for success
|
|
83
|
+
def side_effect(gpu=False, **kwargs):
|
|
84
|
+
model = MagicMock()
|
|
85
|
+
model.diam_mean = 30.0
|
|
86
|
+
model.diam_labels = 30.0
|
|
87
|
+
return model
|
|
88
|
+
|
|
89
|
+
self.MockCellposeModel.side_effect = side_effect
|
|
90
|
+
|
|
91
|
+
model, scale = _prep_cellpose_model(
|
|
92
|
+
model_name="fake_model", path="fake_path/", use_gpu=True, n_channels=2
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
self.assertEqual(self.MockCellposeModel.call_count, 1)
|
|
96
|
+
args, kwargs = self.MockCellposeModel.call_args
|
|
97
|
+
self.assertTrue(kwargs.get("gpu"))
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
if __name__ == "__main__":
|
|
101
|
+
unittest.main()
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.5.0b3"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/datasets/signal_annotations/blank
RENAMED
|
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
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/base/channel_norm_generator.py
RENAMED
|
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
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/help/DL-segmentation-strategy.json
RENAMED
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/help/cell-populations.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/help/propagate-classification.json
RENAMED
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/help/track-postprocessing.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/interactive_timeseries_viewer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/layouts/channel_offset_layout.py
RENAMED
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/layouts/local_correction_layout.py
RENAMED
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/layouts/model_fit_layout.py
RENAMED
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/layouts/operation_layout.py
RENAMED
|
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
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/settings/_cellpose_model_params.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/settings/_settings_base.py
RENAMED
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/settings/_settings_measurements.py
RENAMED
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/settings/_settings_neighborhood.py
RENAMED
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/settings/_settings_segmentation.py
RENAMED
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/settings/_settings_tracking.py
RENAMED
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/settings/_stardist_model_params.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/table_ops/_merge_groups.py
RENAMED
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/table_ops/_merge_one_hot.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/viewers/channel_offset_viewer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/viewers/spot_detection_viewer.py
RENAMED
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/gui/viewers/threshold_viewer.py
RENAMED
|
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
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/models/pair_signal_detection/blank
RENAMED
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/models/segmentation_effectors/blank
RENAMED
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/models/segmentation_generic/blank
RENAMED
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/models/segmentation_targets/blank
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/models/tracking_configs/mcf7.json
RENAMED
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/models/tracking_configs/ricm.json
RENAMED
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/models/tracking_configs/ricm2.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/processes/background_correction.py
RENAMED
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/processes/compute_neighborhood.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/processes/train_segmentation_model.py
RENAMED
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/processes/train_signal_model.py
RENAMED
|
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
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/scripts/segment_cells_thresholds.py
RENAMED
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/scripts/train_segmentation_model.py
RENAMED
|
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
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/event_detection/__init__.py
RENAMED
|
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
|
{celldetective-1.5.0b3 → celldetective-1.5.0b4}/celldetective/utils/stardist_utils/__init__.py
RENAMED
|
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
|