celldetective 1.5.0b0__tar.gz → 1.5.0b1__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.0b0 → celldetective-1.5.0b1}/PKG-INFO +1 -1
- celldetective-1.5.0b1/celldetective/_version.py +1 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/InitWindow.py +3 -3
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/workers.py +99 -0
- celldetective-1.5.0b1/celldetective/processes/downloader.py +137 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/downloaders.py +38 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective.egg-info/PKG-INFO +1 -1
- celldetective-1.5.0b0/celldetective/_version.py +0 -1
- celldetective-1.5.0b0/celldetective/processes/downloader.py +0 -111
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/LICENSE +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/README.md +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/__init__.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/__main__.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/datasets/segmentation_annotations/blank +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/datasets/signal_annotations/blank +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/events.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/exceptions.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/extra_properties.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/filters.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/__init__.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/about.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/analyze_block.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/base/__init__.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/base/channel_norm_generator.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/base/components.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/base/feature_choice.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/base/figure_canvas.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/base/list_widget.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/base/styles.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/base/utils.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/base_annotator.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/classifier_widget.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/configure_new_exp.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/control_panel.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/dynamic_progress.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/event_annotator.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/generic_signal_plot.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/gui_utils.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/help/DL-segmentation-strategy.json +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/help/Threshold-vs-DL.json +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/help/cell-populations.json +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/help/exp-structure.json +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/help/feature-btrack.json +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/help/neighborhood.json +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/help/prefilter-for-segmentation.json +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/help/preprocessing.json +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/help/propagate-classification.json +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/help/track-postprocessing.json +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/help/tracking.json +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/interactions_block.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/interactive_timeseries_viewer.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/json_readers.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/layouts/__init__.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/layouts/background_model_free_layout.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/layouts/channel_offset_layout.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/layouts/local_correction_layout.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/layouts/model_fit_layout.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/layouts/operation_layout.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/layouts/protocol_designer_layout.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/pair_event_annotator.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/plot_measurements.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/plot_signals_ui.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/preprocessing_block.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/process_block.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/seg_model_loader.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/settings/__init__.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/settings/_cellpose_model_params.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/settings/_event_detection_model_params.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/settings/_segmentation_model_params.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/settings/_settings_base.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/settings/_settings_event_model_training.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/settings/_settings_measurements.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/settings/_settings_neighborhood.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/settings/_settings_segmentation.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/settings/_settings_segmentation_model_training.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/settings/_settings_signal_annotator.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/settings/_settings_tracking.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/settings/_stardist_model_params.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/survival_ui.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/tableUI.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/table_ops/__init__.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/table_ops/_maths.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/table_ops/_merge_groups.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/table_ops/_merge_one_hot.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/table_ops/_query_table.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/table_ops/_rename_col.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/thresholds_gui.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/viewers/__init__.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/viewers/base_viewer.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/viewers/channel_offset_viewer.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/viewers/contour_viewer.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/viewers/size_viewer.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/viewers/spot_detection_viewer.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/viewers/threshold_viewer.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/icons/logo-large.png +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/icons/logo.png +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/icons/signals_icon.png +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/icons/splash-test.png +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/icons/splash.png +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/icons/splash0.png +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/icons/survival2.png +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/icons/vignette_signals2.png +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/icons/vignette_signals2.svg +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/links/zenodo.json +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/log_manager.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/measure.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/models/pair_signal_detection/blank +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/models/segmentation_effectors/blank +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/models/segmentation_generic/blank +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/models/segmentation_targets/blank +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/models/signal_detection/blank +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/models/tracking_configs/biased_motion.json +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/models/tracking_configs/mcf7.json +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/models/tracking_configs/no_z_motion.json +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/models/tracking_configs/ricm.json +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/models/tracking_configs/ricm2.json +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/napari/__init__.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/napari/utils.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/neighborhood.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/preprocessing.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/processes/__init__.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/processes/background_correction.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/processes/compute_neighborhood.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/processes/detect_events.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/processes/measure_cells.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/processes/segment_cells.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/processes/track_cells.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/processes/train_segmentation_model.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/processes/train_signal_model.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/processes/unified_process.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/regionprops/__init__.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/regionprops/_regionprops.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/regionprops/props.json +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/relative_measurements.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/scripts/analyze_signals.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/scripts/measure_cells.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/scripts/measure_relative.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/scripts/segment_cells.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/scripts/segment_cells_thresholds.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/scripts/track_cells.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/scripts/train_segmentation_model.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/scripts/train_signal_model.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/segmentation.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/signals.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/tracking.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/__init__.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/cellpose_utils/__init__.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/color_mappings.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/data_cleaning.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/data_loaders.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/dataset_helpers.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/event_detection/__init__.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/experiment.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/image_augmenters.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/image_cleaning.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/image_loaders.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/image_transforms.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/io.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/mask_cleaning.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/mask_transforms.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/masks.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/maths.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/model_getters.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/model_loaders.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/normalization.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/parsing.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/plots/__init__.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/plots/regression.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/resources.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/stardist_utils/__init__.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/stats.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/types.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective.egg-info/SOURCES.txt +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective.egg-info/dependency_links.txt +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective.egg-info/entry_points.txt +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective.egg-info/not-zip-safe +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective.egg-info/requires.txt +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective.egg-info/top_level.txt +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/setup.cfg +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/setup.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/tests/__init__.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/tests/gui/__init__.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/tests/gui/test_new_project.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/tests/gui/test_project.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/tests/test_events.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/tests/test_filters.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/tests/test_io.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/tests/test_measure.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/tests/test_neighborhood.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/tests/test_notebooks.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/tests/test_preprocessing.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/tests/test_segmentation.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/tests/test_signals.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/tests/test_tracking.py +0 -0
- {celldetective-1.5.0b0 → celldetective-1.5.0b1}/tests/test_utils.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.5.0b1"
|
|
@@ -256,7 +256,7 @@ class AppInitWindow(CelldetectiveMainWindow):
|
|
|
256
256
|
DownloadProcess = self.bg_loader.DownloadProcess
|
|
257
257
|
else:
|
|
258
258
|
from celldetective.processes.downloader import DownloadProcess
|
|
259
|
-
from celldetective.gui.workers import
|
|
259
|
+
from celldetective.gui.workers import GenericProgressWindow
|
|
260
260
|
|
|
261
261
|
self.target_dir = str(
|
|
262
262
|
QFileDialog.getExistingDirectory(self, "Select Folder for Download")
|
|
@@ -268,12 +268,12 @@ class AppInitWindow(CelldetectiveMainWindow):
|
|
|
268
268
|
self.output_dir = self.target_dir
|
|
269
269
|
self.file = "demo_ricm"
|
|
270
270
|
process_args = {"output_dir": self.output_dir, "file": self.file}
|
|
271
|
-
self.job =
|
|
271
|
+
self.job = GenericProgressWindow(
|
|
272
272
|
DownloadProcess,
|
|
273
273
|
parent_window=self,
|
|
274
274
|
title="Download",
|
|
275
|
-
position_info=False,
|
|
276
275
|
process_args=process_args,
|
|
276
|
+
label_text="Downloading demo_ricm...",
|
|
277
277
|
)
|
|
278
278
|
result = self.job.exec_()
|
|
279
279
|
if result == QDialog.Accepted:
|
|
@@ -316,3 +316,102 @@ class RunnerSignal(QObject):
|
|
|
316
316
|
|
|
317
317
|
finished = pyqtSignal()
|
|
318
318
|
error = pyqtSignal(str)
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
class GenericProgressWindow(CelldetectiveDialog):
|
|
322
|
+
|
|
323
|
+
def __init__(
|
|
324
|
+
self,
|
|
325
|
+
process=None,
|
|
326
|
+
parent_window=None,
|
|
327
|
+
title="",
|
|
328
|
+
process_args=None,
|
|
329
|
+
label_text="Progress:",
|
|
330
|
+
):
|
|
331
|
+
|
|
332
|
+
super().__init__()
|
|
333
|
+
|
|
334
|
+
self.setWindowTitle(f"{title}")
|
|
335
|
+
self.__process = process
|
|
336
|
+
self.parent_window = parent_window
|
|
337
|
+
|
|
338
|
+
self.__btn_stp = QPushButton("Cancel")
|
|
339
|
+
self.__label = QLabel("Idle")
|
|
340
|
+
self.progress_label = QLabel(label_text)
|
|
341
|
+
|
|
342
|
+
self.progress_bar = QProgressBar()
|
|
343
|
+
self.progress_bar.setValue(0)
|
|
344
|
+
self.progress_bar.setFormat("%p%")
|
|
345
|
+
|
|
346
|
+
self.__runner = Runner(
|
|
347
|
+
process=self.__process,
|
|
348
|
+
process_args=process_args,
|
|
349
|
+
)
|
|
350
|
+
logger.info("Runner initialized...")
|
|
351
|
+
self.pool = QThreadPool.globalInstance()
|
|
352
|
+
|
|
353
|
+
self.__btn_stp.clicked.connect(self.__stp_net)
|
|
354
|
+
self.__runner.signals.finished.connect(self.__on_finished)
|
|
355
|
+
self.__runner.signals.error.connect(self.__on_error)
|
|
356
|
+
self.__runner.signals.update_status.connect(self.__label.setText)
|
|
357
|
+
|
|
358
|
+
# Connect update_pos for generic progress (Runner maps generic list progress to update_pos)
|
|
359
|
+
self.__runner.signals.update_pos.connect(self.progress_bar.setValue)
|
|
360
|
+
|
|
361
|
+
self.__btn_stp.setDisabled(True)
|
|
362
|
+
|
|
363
|
+
self.layout = QVBoxLayout()
|
|
364
|
+
self.layout.addWidget(self.progress_label)
|
|
365
|
+
self.layout.addWidget(self.progress_bar)
|
|
366
|
+
|
|
367
|
+
self.btn_layout = QHBoxLayout()
|
|
368
|
+
self.btn_layout.addWidget(self.__btn_stp)
|
|
369
|
+
self.btn_layout.addWidget(self.__label)
|
|
370
|
+
|
|
371
|
+
self.layout.addLayout(self.btn_layout)
|
|
372
|
+
|
|
373
|
+
self.setLayout(self.layout)
|
|
374
|
+
self.setFixedSize(QSize(400, 150))
|
|
375
|
+
self.show()
|
|
376
|
+
self.raise_()
|
|
377
|
+
self.activateWindow()
|
|
378
|
+
logger.info("GenericProgressWindow initialized and shown.")
|
|
379
|
+
self.__run_net()
|
|
380
|
+
self.setModal(True)
|
|
381
|
+
|
|
382
|
+
def closeEvent(self, evnt):
|
|
383
|
+
evnt.ignore()
|
|
384
|
+
self.setWindowState(Qt.WindowMinimized)
|
|
385
|
+
|
|
386
|
+
def __run_net(self):
|
|
387
|
+
self.__btn_stp.setEnabled(True)
|
|
388
|
+
self.__label.setText("Running...")
|
|
389
|
+
self.pool.start(self.__runner)
|
|
390
|
+
|
|
391
|
+
def __stp_net(self):
|
|
392
|
+
self.__runner.close()
|
|
393
|
+
logger.info("\n Job cancelled... Abort.")
|
|
394
|
+
self.reject()
|
|
395
|
+
|
|
396
|
+
def __on_finished(self):
|
|
397
|
+
self.__btn_stp.setDisabled(True)
|
|
398
|
+
self.__label.setText("\nFinished!")
|
|
399
|
+
self.__runner.close()
|
|
400
|
+
self.accept()
|
|
401
|
+
|
|
402
|
+
def __on_error(self, message="Error"):
|
|
403
|
+
self.__btn_stp.setDisabled(True)
|
|
404
|
+
self.__label.setText("\nError")
|
|
405
|
+
self.__runner.close()
|
|
406
|
+
|
|
407
|
+
# Show error in a message box to ensure it's seen
|
|
408
|
+
from PyQt5.QtWidgets import QMessageBox
|
|
409
|
+
|
|
410
|
+
msg = QMessageBox()
|
|
411
|
+
msg.setIcon(QMessageBox.Critical)
|
|
412
|
+
msg.setText("Process failed")
|
|
413
|
+
msg.setInformativeText(str(message))
|
|
414
|
+
msg.setWindowTitle("Error")
|
|
415
|
+
msg.exec_()
|
|
416
|
+
|
|
417
|
+
self.reject()
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import ssl
|
|
3
|
+
from tqdm import tqdm
|
|
4
|
+
from multiprocessing import Process
|
|
5
|
+
from glob import glob
|
|
6
|
+
import shutil
|
|
7
|
+
from urllib.request import urlopen
|
|
8
|
+
import zipfile
|
|
9
|
+
import tempfile
|
|
10
|
+
import time
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
import json
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class DownloadProcess(Process):
|
|
16
|
+
|
|
17
|
+
def __init__(self, queue=None, process_args=None, *args, **kwargs):
|
|
18
|
+
|
|
19
|
+
super().__init__(*args, **kwargs)
|
|
20
|
+
|
|
21
|
+
if process_args is not None:
|
|
22
|
+
for key, value in process_args.items():
|
|
23
|
+
setattr(self, key, value)
|
|
24
|
+
|
|
25
|
+
self.queue = queue
|
|
26
|
+
self.progress = True
|
|
27
|
+
|
|
28
|
+
# Get celldetective package root
|
|
29
|
+
current_dir = os.path.dirname(os.path.realpath(__file__))
|
|
30
|
+
package_root = os.path.dirname(current_dir)
|
|
31
|
+
zenodo_json = os.path.join(package_root, "links", "zenodo.json")
|
|
32
|
+
# print(f"{zenodo_json=}")
|
|
33
|
+
|
|
34
|
+
with open(zenodo_json, "r") as f:
|
|
35
|
+
zenodo_json = json.load(f)
|
|
36
|
+
all_files = list(zenodo_json["files"]["entries"].keys())
|
|
37
|
+
all_files_short = [f.replace(".zip", "") for f in all_files]
|
|
38
|
+
zenodo_url = zenodo_json["links"]["files"].replace("api/", "")
|
|
39
|
+
full_links = ["/".join([zenodo_url, f]) for f in all_files]
|
|
40
|
+
index = all_files_short.index(self.file)
|
|
41
|
+
|
|
42
|
+
self.zip_url = full_links[index]
|
|
43
|
+
self.path_to_zip_file = os.sep.join([self.output_dir, "temp.zip"])
|
|
44
|
+
|
|
45
|
+
self.sum_done = 0
|
|
46
|
+
self.t0 = time.time()
|
|
47
|
+
|
|
48
|
+
def download_url_to_file(self, url, dst):
|
|
49
|
+
try:
|
|
50
|
+
file_size = None
|
|
51
|
+
ssl._create_default_https_context = ssl._create_unverified_context
|
|
52
|
+
u = urlopen(url)
|
|
53
|
+
meta = u.info()
|
|
54
|
+
if hasattr(meta, "getheaders"):
|
|
55
|
+
content_length = meta.getheaders("Content-Length")
|
|
56
|
+
else:
|
|
57
|
+
content_length = meta.get_all("Content-Length")
|
|
58
|
+
if content_length is not None and len(content_length) > 0:
|
|
59
|
+
file_size = int(content_length[0])
|
|
60
|
+
# We deliberately save it in a temp file and move it after
|
|
61
|
+
dst = os.path.expanduser(dst)
|
|
62
|
+
dst_dir = os.path.dirname(dst)
|
|
63
|
+
f = tempfile.NamedTemporaryFile(delete=False, dir=dst_dir)
|
|
64
|
+
|
|
65
|
+
try:
|
|
66
|
+
with tqdm(
|
|
67
|
+
total=file_size,
|
|
68
|
+
disable=not self.progress,
|
|
69
|
+
unit="B",
|
|
70
|
+
unit_scale=True,
|
|
71
|
+
unit_divisor=1024,
|
|
72
|
+
) as pbar:
|
|
73
|
+
while True:
|
|
74
|
+
buffer = u.read(8192) # 8192
|
|
75
|
+
if len(buffer) == 0:
|
|
76
|
+
break
|
|
77
|
+
f.write(buffer)
|
|
78
|
+
pbar.update(len(buffer))
|
|
79
|
+
self.sum_done += len(buffer) / file_size * 100
|
|
80
|
+
mean_exec_per_step = (time.time() - self.t0) / (
|
|
81
|
+
self.sum_done * file_size / 100 + 1
|
|
82
|
+
)
|
|
83
|
+
pred_time = (
|
|
84
|
+
file_size - (self.sum_done * file_size / 100 + 1)
|
|
85
|
+
) * mean_exec_per_step
|
|
86
|
+
self.queue.put([self.sum_done, pred_time])
|
|
87
|
+
f.close()
|
|
88
|
+
shutil.move(f.name, dst)
|
|
89
|
+
finally:
|
|
90
|
+
f.close()
|
|
91
|
+
if os.path.exists(f.name):
|
|
92
|
+
os.remove(f.name)
|
|
93
|
+
except Exception as e:
|
|
94
|
+
print("No internet connection: ", e)
|
|
95
|
+
return None
|
|
96
|
+
|
|
97
|
+
def run(self):
|
|
98
|
+
|
|
99
|
+
self.download_url_to_file(rf"{self.zip_url}", self.path_to_zip_file)
|
|
100
|
+
with zipfile.ZipFile(self.path_to_zip_file, "r") as zip_ref:
|
|
101
|
+
zip_ref.extractall(self.output_dir)
|
|
102
|
+
|
|
103
|
+
file_to_rename = glob(
|
|
104
|
+
os.sep.join(
|
|
105
|
+
[
|
|
106
|
+
self.output_dir,
|
|
107
|
+
self.file,
|
|
108
|
+
"*[!.json][!.png][!.h5][!.csv][!.npy][!.tif][!.ini]",
|
|
109
|
+
]
|
|
110
|
+
)
|
|
111
|
+
)
|
|
112
|
+
if (
|
|
113
|
+
len(file_to_rename) > 0
|
|
114
|
+
and not file_to_rename[0].endswith(os.sep)
|
|
115
|
+
and not self.file.startswith("demo")
|
|
116
|
+
):
|
|
117
|
+
os.rename(
|
|
118
|
+
file_to_rename[0], os.sep.join([self.output_dir, self.file, self.file])
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
os.remove(self.path_to_zip_file)
|
|
122
|
+
self.queue.put([100, 0])
|
|
123
|
+
time.sleep(0.5)
|
|
124
|
+
|
|
125
|
+
# Send end signal
|
|
126
|
+
self.queue.put("finished")
|
|
127
|
+
self.queue.close()
|
|
128
|
+
|
|
129
|
+
def end_process(self):
|
|
130
|
+
|
|
131
|
+
self.terminate()
|
|
132
|
+
self.queue.put("finished")
|
|
133
|
+
|
|
134
|
+
def abort_process(self):
|
|
135
|
+
|
|
136
|
+
self.terminate()
|
|
137
|
+
self.queue.put("error")
|
|
@@ -159,6 +159,44 @@ def download_url_to_file(url, dst, progress=True):
|
|
|
159
159
|
def download_zenodo_file(file, output_dir):
|
|
160
160
|
|
|
161
161
|
logger.info(f"{file=} {output_dir=}")
|
|
162
|
+
|
|
163
|
+
# GUI Check
|
|
164
|
+
try:
|
|
165
|
+
from PyQt5.QtWidgets import QApplication, QDialog
|
|
166
|
+
|
|
167
|
+
app = QApplication.instance()
|
|
168
|
+
use_gui = app is not None
|
|
169
|
+
except ImportError:
|
|
170
|
+
use_gui = False
|
|
171
|
+
|
|
172
|
+
if use_gui:
|
|
173
|
+
try:
|
|
174
|
+
from celldetective.gui.workers import GenericProgressWindow
|
|
175
|
+
from celldetective.processes.downloader import DownloadProcess
|
|
176
|
+
|
|
177
|
+
# Find parent window if possible, else None is fine for a dialog
|
|
178
|
+
parent = app.activeWindow()
|
|
179
|
+
|
|
180
|
+
process_args = {"output_dir": output_dir, "file": file}
|
|
181
|
+
job = GenericProgressWindow(
|
|
182
|
+
DownloadProcess,
|
|
183
|
+
parent_window=parent,
|
|
184
|
+
title="Download",
|
|
185
|
+
process_args=process_args,
|
|
186
|
+
label_text=f"Downloading {file}...",
|
|
187
|
+
)
|
|
188
|
+
result = job.exec_()
|
|
189
|
+
if result == QDialog.Accepted:
|
|
190
|
+
return # DownloadProcess handles the file operations
|
|
191
|
+
else:
|
|
192
|
+
logger.info("Download cancelled or failed.")
|
|
193
|
+
return
|
|
194
|
+
|
|
195
|
+
except Exception as e:
|
|
196
|
+
logger.error(f"Failed to use GUI downloader: {e}. Falling back to console.")
|
|
197
|
+
# Fallback to console implementation below if GUI fails
|
|
198
|
+
|
|
199
|
+
# Console Implementation
|
|
162
200
|
zenodo_json = os.sep.join(
|
|
163
201
|
[
|
|
164
202
|
os.path.split(os.path.dirname(os.path.realpath(__file__)))[0],
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.5.0b"
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import os
|
|
2
|
-
import ssl
|
|
3
|
-
from tqdm import tqdm
|
|
4
|
-
from multiprocessing import Process
|
|
5
|
-
from glob import glob
|
|
6
|
-
import shutil
|
|
7
|
-
from urllib.request import urlopen
|
|
8
|
-
import zipfile
|
|
9
|
-
import tempfile
|
|
10
|
-
import time
|
|
11
|
-
from pathlib import Path
|
|
12
|
-
import json
|
|
13
|
-
|
|
14
|
-
class DownloadProcess(Process):
|
|
15
|
-
|
|
16
|
-
def __init__(self, queue=None, process_args=None, *args, **kwargs):
|
|
17
|
-
|
|
18
|
-
super().__init__(*args, **kwargs)
|
|
19
|
-
|
|
20
|
-
if process_args is not None:
|
|
21
|
-
for key, value in process_args.items():
|
|
22
|
-
setattr(self, key, value)
|
|
23
|
-
|
|
24
|
-
self.queue = queue
|
|
25
|
-
self.progress = True
|
|
26
|
-
|
|
27
|
-
file_path = Path(os.path.dirname(os.path.realpath(__file__)))
|
|
28
|
-
zenodo_json = os.sep.join([str(file_path.parents[2]),"celldetective", "links", "zenodo.json"])
|
|
29
|
-
print(f"{zenodo_json=}")
|
|
30
|
-
|
|
31
|
-
with open(zenodo_json,"r") as f:
|
|
32
|
-
zenodo_json = json.load(f)
|
|
33
|
-
all_files = list(zenodo_json['files']['entries'].keys())
|
|
34
|
-
all_files_short = [f.replace(".zip","") for f in all_files]
|
|
35
|
-
zenodo_url = zenodo_json['links']['files'].replace('api/','')
|
|
36
|
-
full_links = ["/".join([zenodo_url, f]) for f in all_files]
|
|
37
|
-
index = all_files_short.index(self.file)
|
|
38
|
-
|
|
39
|
-
self.zip_url = full_links[index]
|
|
40
|
-
self.path_to_zip_file = os.sep.join([self.output_dir, 'temp.zip'])
|
|
41
|
-
|
|
42
|
-
self.sum_done = 0
|
|
43
|
-
self.t0 = time.time()
|
|
44
|
-
|
|
45
|
-
def download_url_to_file(self, url, dst):
|
|
46
|
-
try:
|
|
47
|
-
file_size = None
|
|
48
|
-
ssl._create_default_https_context = ssl._create_unverified_context
|
|
49
|
-
u = urlopen(url)
|
|
50
|
-
meta = u.info()
|
|
51
|
-
if hasattr(meta, 'getheaders'):
|
|
52
|
-
content_length = meta.getheaders("Content-Length")
|
|
53
|
-
else:
|
|
54
|
-
content_length = meta.get_all("Content-Length")
|
|
55
|
-
if content_length is not None and len(content_length) > 0:
|
|
56
|
-
file_size = int(content_length[0])
|
|
57
|
-
# We deliberately save it in a temp file and move it after
|
|
58
|
-
dst = os.path.expanduser(dst)
|
|
59
|
-
dst_dir = os.path.dirname(dst)
|
|
60
|
-
f = tempfile.NamedTemporaryFile(delete=False, dir=dst_dir)
|
|
61
|
-
|
|
62
|
-
try:
|
|
63
|
-
with tqdm(total=file_size, disable=not self.progress,
|
|
64
|
-
unit='B', unit_scale=True, unit_divisor=1024) as pbar:
|
|
65
|
-
while True:
|
|
66
|
-
buffer = u.read(8192) #8192
|
|
67
|
-
if len(buffer) == 0:
|
|
68
|
-
break
|
|
69
|
-
f.write(buffer)
|
|
70
|
-
pbar.update(len(buffer))
|
|
71
|
-
self.sum_done+=len(buffer) / file_size * 100
|
|
72
|
-
mean_exec_per_step = (time.time() - self.t0) / (self.sum_done*file_size / 100 + 1)
|
|
73
|
-
pred_time = (file_size - (self.sum_done*file_size / 100 + 1)) * mean_exec_per_step
|
|
74
|
-
self.queue.put([self.sum_done, pred_time])
|
|
75
|
-
f.close()
|
|
76
|
-
shutil.move(f.name, dst)
|
|
77
|
-
finally:
|
|
78
|
-
f.close()
|
|
79
|
-
if os.path.exists(f.name):
|
|
80
|
-
os.remove(f.name)
|
|
81
|
-
except Exception as e:
|
|
82
|
-
print("No internet connection: ", e)
|
|
83
|
-
return None
|
|
84
|
-
|
|
85
|
-
def run(self):
|
|
86
|
-
|
|
87
|
-
self.download_url_to_file(fr"{self.zip_url}",self.path_to_zip_file)
|
|
88
|
-
with zipfile.ZipFile(self.path_to_zip_file, 'r') as zip_ref:
|
|
89
|
-
zip_ref.extractall(self.output_dir)
|
|
90
|
-
|
|
91
|
-
file_to_rename = glob(os.sep.join([self.output_dir,self.file,"*[!.json][!.png][!.h5][!.csv][!.npy][!.tif][!.ini]"]))
|
|
92
|
-
if len(file_to_rename)>0 and not file_to_rename[0].endswith(os.sep) and not self.file.startswith('demo'):
|
|
93
|
-
os.rename(file_to_rename[0], os.sep.join([self.output_dir,self.file,self.file]))
|
|
94
|
-
|
|
95
|
-
os.remove(self.path_to_zip_file)
|
|
96
|
-
self.queue.put([100,0])
|
|
97
|
-
time.sleep(0.5)
|
|
98
|
-
|
|
99
|
-
# Send end signal
|
|
100
|
-
self.queue.put("finished")
|
|
101
|
-
self.queue.close()
|
|
102
|
-
|
|
103
|
-
def end_process(self):
|
|
104
|
-
|
|
105
|
-
self.terminate()
|
|
106
|
-
self.queue.put("finished")
|
|
107
|
-
|
|
108
|
-
def abort_process(self):
|
|
109
|
-
|
|
110
|
-
self.terminate()
|
|
111
|
-
self.queue.put("error")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/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
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/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.0b0 → celldetective-1.5.0b1}/celldetective/gui/help/DL-segmentation-strategy.json
RENAMED
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/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.0b0 → celldetective-1.5.0b1}/celldetective/gui/help/propagate-classification.json
RENAMED
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/help/track-postprocessing.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/interactive_timeseries_viewer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/layouts/channel_offset_layout.py
RENAMED
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/layouts/local_correction_layout.py
RENAMED
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/layouts/model_fit_layout.py
RENAMED
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/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.0b0 → celldetective-1.5.0b1}/celldetective/gui/settings/_cellpose_model_params.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/settings/_settings_base.py
RENAMED
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/settings/_settings_measurements.py
RENAMED
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/settings/_settings_neighborhood.py
RENAMED
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/settings/_settings_segmentation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/settings/_settings_tracking.py
RENAMED
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/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.0b0 → celldetective-1.5.0b1}/celldetective/gui/table_ops/_merge_groups.py
RENAMED
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/table_ops/_merge_one_hot.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/viewers/channel_offset_viewer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/gui/viewers/spot_detection_viewer.py
RENAMED
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/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
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/models/pair_signal_detection/blank
RENAMED
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/models/segmentation_effectors/blank
RENAMED
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/models/segmentation_generic/blank
RENAMED
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/models/segmentation_targets/blank
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/models/tracking_configs/mcf7.json
RENAMED
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/models/tracking_configs/ricm.json
RENAMED
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/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.0b0 → celldetective-1.5.0b1}/celldetective/processes/background_correction.py
RENAMED
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/processes/compute_neighborhood.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/processes/train_segmentation_model.py
RENAMED
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/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.0b0 → celldetective-1.5.0b1}/celldetective/scripts/segment_cells_thresholds.py
RENAMED
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/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
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/celldetective/utils/cellpose_utils/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celldetective-1.5.0b0 → celldetective-1.5.0b1}/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.0b0 → celldetective-1.5.0b1}/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
|