celldetective 1.4.0__py3-none-any.whl → 1.4.1.post1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. celldetective/_version.py +1 -1
  2. celldetective/exceptions.py +11 -0
  3. celldetective/filters.py +7 -1
  4. celldetective/gui/InitWindow.py +4 -1
  5. celldetective/gui/__init__.py +2 -9
  6. celldetective/gui/about.py +2 -2
  7. celldetective/gui/base_annotator.py +786 -0
  8. celldetective/gui/classifier_widget.py +18 -13
  9. celldetective/gui/configure_new_exp.py +51 -30
  10. celldetective/gui/control_panel.py +10 -7
  11. celldetective/gui/{signal_annotator.py → event_annotator.py} +473 -1437
  12. celldetective/gui/generic_signal_plot.py +2 -1
  13. celldetective/gui/gui_utils.py +5 -2
  14. celldetective/gui/help/neighborhood.json +2 -2
  15. celldetective/gui/layouts.py +21 -11
  16. celldetective/gui/{signal_annotator2.py → pair_event_annotator.py} +3 -1
  17. celldetective/gui/process_block.py +129 -91
  18. celldetective/gui/processes/downloader.py +37 -34
  19. celldetective/gui/processes/measure_cells.py +14 -8
  20. celldetective/gui/processes/segment_cells.py +438 -314
  21. celldetective/gui/processes/track_cells.py +12 -13
  22. celldetective/gui/settings/__init__.py +7 -0
  23. celldetective/gui/settings/_settings_base.py +70 -0
  24. celldetective/gui/{retrain_signal_model_options.py → settings/_settings_event_model_training.py} +35 -91
  25. celldetective/gui/{measurement_options.py → settings/_settings_measurements.py} +28 -81
  26. celldetective/gui/{neighborhood_options.py → settings/_settings_neighborhood.py} +1 -1
  27. celldetective/gui/settings/_settings_segmentation.py +49 -0
  28. celldetective/gui/{retrain_segmentation_model_options.py → settings/_settings_segmentation_model_training.py} +33 -79
  29. celldetective/gui/{signal_annotator_options.py → settings/_settings_signal_annotator.py} +73 -95
  30. celldetective/gui/{btrack_options.py → settings/_settings_tracking.py} +64 -87
  31. celldetective/gui/styles.py +2 -1
  32. celldetective/gui/survival_ui.py +1 -1
  33. celldetective/gui/tableUI.py +25 -0
  34. celldetective/gui/table_ops/__init__.py +0 -0
  35. celldetective/gui/table_ops/merge_groups.py +118 -0
  36. celldetective/gui/viewers.py +3 -5
  37. celldetective/gui/workers.py +0 -2
  38. celldetective/io.py +98 -55
  39. celldetective/links/zenodo.json +145 -144
  40. celldetective/measure.py +31 -26
  41. celldetective/preprocessing.py +34 -21
  42. celldetective/regionprops/_regionprops.py +16 -5
  43. celldetective/scripts/measure_cells.py +5 -5
  44. celldetective/scripts/measure_relative.py +16 -11
  45. celldetective/scripts/segment_cells.py +4 -4
  46. celldetective/scripts/segment_cells_thresholds.py +3 -3
  47. celldetective/scripts/track_cells.py +7 -7
  48. celldetective/scripts/train_segmentation_model.py +10 -1
  49. celldetective/tracking.py +10 -4
  50. celldetective/utils.py +59 -58
  51. {celldetective-1.4.0.dist-info → celldetective-1.4.1.post1.dist-info}/METADATA +1 -1
  52. celldetective-1.4.1.post1.dist-info/RECORD +123 -0
  53. tests/gui/__init__.py +0 -0
  54. tests/gui/test_new_project.py +228 -0
  55. tests/{test_qt.py → gui/test_project.py} +22 -26
  56. tests/test_preprocessing.py +2 -2
  57. celldetective/models/segmentation_effectors/ricm_bf_all_last/config_input.json +0 -79
  58. celldetective/models/segmentation_effectors/ricm_bf_all_last/ricm_bf_all_last +0 -0
  59. celldetective/models/segmentation_effectors/ricm_bf_all_last/training_instructions.json +0 -37
  60. celldetective/models/segmentation_effectors/test-transfer/config_input.json +0 -39
  61. celldetective/models/segmentation_effectors/test-transfer/test-transfer +0 -0
  62. celldetective/models/signal_detection/NucCond/classification_loss.png +0 -0
  63. celldetective/models/signal_detection/NucCond/classifier.h5 +0 -0
  64. celldetective/models/signal_detection/NucCond/config_input.json +0 -1
  65. celldetective/models/signal_detection/NucCond/log_classifier.csv +0 -126
  66. celldetective/models/signal_detection/NucCond/log_regressor.csv +0 -282
  67. celldetective/models/signal_detection/NucCond/regression_loss.png +0 -0
  68. celldetective/models/signal_detection/NucCond/regressor.h5 +0 -0
  69. celldetective/models/signal_detection/NucCond/scores.npy +0 -0
  70. celldetective/models/signal_detection/NucCond/test_confusion_matrix.png +0 -0
  71. celldetective/models/signal_detection/NucCond/test_regression.png +0 -0
  72. celldetective/models/signal_detection/NucCond/validation_confusion_matrix.png +0 -0
  73. celldetective/models/signal_detection/NucCond/validation_regression.png +0 -0
  74. celldetective-1.4.0.dist-info/RECORD +0 -131
  75. {celldetective-1.4.0.dist-info → celldetective-1.4.1.post1.dist-info}/WHEEL +0 -0
  76. {celldetective-1.4.0.dist-info → celldetective-1.4.1.post1.dist-info}/entry_points.txt +0 -0
  77. {celldetective-1.4.0.dist-info → celldetective-1.4.1.post1.dist-info}/licenses/LICENSE +0 -0
  78. {celldetective-1.4.0.dist-info → celldetective-1.4.1.post1.dist-info}/top_level.txt +0 -0
@@ -6,7 +6,7 @@ import json
6
6
  from pathlib import Path, PurePath
7
7
 
8
8
  from celldetective.io import auto_load_number_of_frames, load_frames, locate_labels
9
- from celldetective.utils import extract_experiment_channels, ConfigSectionMap, _get_img_num_per_channel
9
+ from celldetective.utils import extract_experiment_channels, config_section_to_dict, _get_img_num_per_channel
10
10
  from celldetective.utils import remove_trajectory_measurements, _extract_coordinates_from_features, _remove_invalid_cols
11
11
  from celldetective.measure import drop_tonal_features, measure_features, measure_isotropic_intensity, measure_radial_distance_to_center, center_of_mass_to_abs_coordinates
12
12
 
@@ -17,9 +17,14 @@ import concurrent.futures
17
17
  import pandas as pd
18
18
  from natsort import natsorted
19
19
  from art import tprint
20
+ from typing import Optional, Union
20
21
 
21
22
 
22
23
  class MeasurementProcess(Process):
24
+
25
+ pos: Optional[Union[str,Path]] = None
26
+ mode: Optional[str] = None
27
+ n_threads: int = 1
23
28
 
24
29
  def __init__(self, queue=None, process_args=None):
25
30
 
@@ -173,12 +178,12 @@ class MeasurementProcess(Process):
173
178
 
174
179
  def extract_experiment_parameters(self):
175
180
 
176
- self.movie_prefix = ConfigSectionMap(self.config,"MovieSettings")["movie_prefix"]
177
- self.spatial_calibration = float(ConfigSectionMap(self.config,"MovieSettings")["pxtoum"])
178
- self.time_calibration = float(ConfigSectionMap(self.config,"MovieSettings")["frametomin"])
179
- self.len_movie = float(ConfigSectionMap(self.config,"MovieSettings")["len_movie"])
180
- self.shape_x = int(ConfigSectionMap(self.config,"MovieSettings")["shape_x"])
181
- self.shape_y = int(ConfigSectionMap(self.config,"MovieSettings")["shape_y"])
181
+ self.movie_prefix = config_section_to_dict(self.config, "MovieSettings")["movie_prefix"]
182
+ self.spatial_calibration = float(config_section_to_dict(self.config, "MovieSettings")["pxtoum"])
183
+ self.time_calibration = float(config_section_to_dict(self.config, "MovieSettings")["frametomin"])
184
+ self.len_movie = float(config_section_to_dict(self.config, "MovieSettings")["len_movie"])
185
+ self.shape_x = int(config_section_to_dict(self.config, "MovieSettings")["shape_x"])
186
+ self.shape_y = int(config_section_to_dict(self.config, "MovieSettings")["shape_y"])
182
187
 
183
188
  self.channel_names, self.channel_indices = extract_experiment_channels(self.exp_dir)
184
189
  self.nbr_channels = len(self.channel_names)
@@ -331,7 +336,8 @@ class MeasurementProcess(Process):
331
336
 
332
337
  df = df.reset_index(drop=True)
333
338
  df = _remove_invalid_cols(df)
334
-
339
+ df = df.replace([np.inf, -np.inf], np.nan)
340
+
335
341
  df.to_csv(self.pos+os.sep.join(["output", "tables", self.table_name]), index=False)
336
342
  print(f'Measurement table successfully exported in {os.sep.join(["output", "tables"])}...')
337
343
  print('Done.')