small-fish-gui 2.1.4__tar.gz → 2.1.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/PKG-INFO +1 -1
  2. small_fish_gui-2.1.5/error_log.txt +374 -0
  3. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/pyproject.toml +1 -1
  4. small_fish_gui-2.1.5/small_fish_gui.code-workspace +7 -0
  5. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/__init__.py +2 -2
  6. small_fish_gui-2.1.5/src/small_fish_gui/batch/values.txt +65 -0
  7. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/gui/napari_visualiser.py +30 -6
  8. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/interface/settings.json +3 -3
  9. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/pipeline/detection.py +4 -3
  10. small_fish_gui-2.1.5/src/small_fish_gui/pipeline/testing.ipynb +3636 -0
  11. small_fish_gui-2.1.5/src/small_fish_gui/small_fish_gui.code-workspace +7 -0
  12. small_fish_gui-2.1.4/error_log.txt +0 -952
  13. small_fish_gui-2.1.4/src/small_fish_gui/interface/testing.ipynb +0 -4354
  14. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/LICENSE +0 -0
  15. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/README.md +0 -0
  16. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/illustrations/DetectionVitrine_filtre.png +0 -0
  17. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/illustrations/DetectionVitrine_signal.png +0 -0
  18. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/illustrations/FocciVitrine.png +0 -0
  19. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/illustrations/FocciVitrine_no_spots.png +0 -0
  20. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/illustrations/Segmentation2D.png +0 -0
  21. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/illustrations/Segmentation2D_with_labels.png +0 -0
  22. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/logo.png +0 -0
  23. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/requirements.txt +0 -0
  24. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/screenshot/general_help_screenshot.png +0 -0
  25. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/screenshot/mapping_help_screenshot.png +0 -0
  26. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/screenshot/segmentation_help_screenshot.png +0 -0
  27. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/__main__.py +0 -0
  28. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/batch/__init__.py +0 -0
  29. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/batch/input.py +0 -0
  30. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/batch/integrity.py +0 -0
  31. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/batch/output.py +0 -0
  32. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/batch/pipeline.py +0 -0
  33. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/batch/prompt.py +0 -0
  34. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/batch/test.py +0 -0
  35. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/batch/update.py +0 -0
  36. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/batch/utils.py +0 -0
  37. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/gui/__init__.py +0 -0
  38. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/gui/_napari_widgets.py +0 -0
  39. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/gui/animation.py +0 -0
  40. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/gui/layout.py +0 -0
  41. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/gui/prompts.py +0 -0
  42. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/gui/testing.ipynb +0 -0
  43. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/gui/theme.py +0 -0
  44. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/gui/tooltips.py +0 -0
  45. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/hints.py +0 -0
  46. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/interface/__init__.py +0 -0
  47. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/interface/default_settings.py +0 -0
  48. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/interface/image.py +0 -0
  49. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/interface/inoutput.py +0 -0
  50. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/interface/testing.py +0 -0
  51. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/interface/user_settings.py +0 -0
  52. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/main_menu.py +0 -0
  53. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/pipeline/__init__.py +0 -0
  54. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/pipeline/_bigfish_wrapers.py +0 -0
  55. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/pipeline/_colocalisation.py +0 -0
  56. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/pipeline/_custom_errors.py +0 -0
  57. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/pipeline/_preprocess.py +0 -0
  58. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/pipeline/actions.py +0 -0
  59. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/pipeline/segmentation.py +0 -0
  60. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/pipeline/spots.py +0 -0
  61. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/pipeline/test.py +0 -0
  62. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/pipeline/utils.py +0 -0
  63. {small_fish_gui-2.1.4 → small_fish_gui-2.1.5}/src/small_fish_gui/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: small_fish_gui
3
- Version: 2.1.4
3
+ Version: 2.1.5
4
4
  Summary: Small Fish is a python application for the analysis of smFish images. It provides a ready to use graphical interface to combine famous python packages for cell analysis without any need for coding.
5
5
  Project-URL: Homepage, https://github.com/SmallFishGUI/small_fish_gui
6
6
  Project-URL: Wiki, https://github.com/SmallFishGUI/small_fish_gui/wiki
@@ -0,0 +1,374 @@
1
+ version 2.0.2error : `newbyteorder` was removed from the ndarray class in NumPy 2.0. Use `arr.view(arr.dtype.newbyteorder(order))` instead.traceback :
2
+ Traceback (most recent call last):
3
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 55, in <module>
4
+ nucleus_label, cytoplasm_label, user_parameters = segment_cells(
5
+ ^^^^^^^^^^^^^^
6
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 51, in segment_cells
7
+ nucleus_label, cytoplasm_label, user_parameters = launch_segmentation(
8
+ ^^^^^^^^^^^^^^^^^^^^
9
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/segmentation.py", line 47, in launch_segmentation
10
+ new_parameters = ask_input_parameters(user_parameters, ask_for_segmentation= True) #The image is open and stored inside user_parameters
11
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
12
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/_preprocess.py", line 385, in ask_input_parameters
13
+ image_input_values = input_image_prompt(
14
+ ^^^^^^^^^^^^^^^^^^^
15
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/gui/prompts.py", line 96, in input_image_prompt
16
+ image = open_image(im_path)
17
+ ^^^^^^^^^^^^^^^^^^^
18
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/interface/image.py", line 15, in open_image
19
+ else : im = read_image(full_path)
20
+ ^^^^^^^^^^^^^^^^^^^^^
21
+ File "/home/floric/my_projects/big-fish/bigfish/stack/io.py", line 51, in read_image
22
+ image = tifffile.imread(path)
23
+ ^^^^^^^^^^^^^^^^^^^^^
24
+ File "/home/floric/python_env/small_fish_3.12/lib/python3.12/site-packages/tifffile/tifffile.py", line 1064, in imread
25
+ return tif.asarray(
26
+ ^^^^^^^^^^^^
27
+ File "/home/floric/python_env/small_fish_3.12/lib/python3.12/site-packages/tifffile/tifffile.py", line 4195, in asarray
28
+ result = self.filehandle.read_array(
29
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
30
+ File "/home/floric/python_env/small_fish_3.12/lib/python3.12/site-packages/tifffile/tifffile.py", line 13922, in read_array
31
+ result = result.newbyteorder()
32
+ ^^^^^^^^^^^^^^^^^^^
33
+ AttributeError: `newbyteorder` was removed from the ndarray class in NumPy 2.0. Use `arr.view(arr.dtype.newbyteorder(order))` instead.
34
+ version 2.0.2error : small_fish_gui.gui.prompts.segmentation_prompt() got multiple values for keyword argument 'image'traceback :
35
+ Traceback (most recent call last):
36
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 55, in <module>
37
+ nucleus_label, cytoplasm_label, user_parameters = segment_cells(
38
+ ^^^^^^^^^^^^^^
39
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 51, in segment_cells
40
+ nucleus_label, cytoplasm_label, user_parameters = launch_segmentation(
41
+ ^^^^^^^^^^^^^^^^^^^^
42
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/segmentation.py", line 67, in launch_segmentation
43
+ event, values = segmentation_prompt(
44
+ ^^^^^^^^^^^^^^^^^^^^
45
+ TypeError: small_fish_gui.gui.prompts.segmentation_prompt() got multiple values for keyword argument 'image'
46
+ version 2.0.2error : 'anisotropy'traceback :
47
+ Traceback (most recent call last):
48
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 55, in <module>
49
+ nucleus_label, cytoplasm_label, user_parameters = segment_cells(
50
+ ^^^^^^^^^^^^^^
51
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 51, in segment_cells
52
+ nucleus_label, cytoplasm_label, user_parameters = launch_segmentation(
53
+ ^^^^^^^^^^^^^^^^^^^^
54
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/segmentation.py", line 166, in launch_segmentation
55
+ if not isinstance(values["anisotropy"], (float,int)) :
56
+ ~~~~~~^^^^^^^^^^^^^^
57
+ KeyError: 'anisotropy'
58
+ version 2.0.2error : name 'filename' is not definedtraceback :
59
+ Traceback (most recent call last):
60
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 55, in <module>
61
+ nucleus_label, cytoplasm_label, user_parameters = segment_cells(
62
+ ^^^^^^^^^^^^^^
63
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 51, in segment_cells
64
+ nucleus_label, cytoplasm_label, user_parameters = launch_segmentation(
65
+ ^^^^^^^^^^^^^^^^^^^^
66
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/segmentation.py", line 241, in launch_segmentation
67
+ if type(path) != type(None) and filename != '':
68
+ ^^^^^^^^
69
+ NameError: name 'filename' is not defined
70
+ version 2.0.2error : 'filename'traceback :
71
+ Traceback (most recent call last):
72
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 55, in <module>
73
+ nucleus_label, cytoplasm_label, user_parameters = segment_cells(
74
+ ^^^^^^^^^^^^^^
75
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 51, in segment_cells
76
+ nucleus_label, cytoplasm_label, user_parameters = launch_segmentation(
77
+ ^^^^^^^^^^^^^^^^^^^^
78
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/segmentation.py", line 242, in launch_segmentation
79
+ if type(path) != type(None) and user_parameters["filename"] != '':
80
+ ~~~~~~~~~~~~~~~^^^^^^^^^^^^
81
+ KeyError: 'filename'
82
+ version 2.0.2error : name 'cytoplasm_model_name' is not definedtraceback :
83
+ Traceback (most recent call last):
84
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 55, in <module>
85
+ nucleus_label, cytoplasm_label, user_parameters = segment_cells(
86
+ ^^^^^^^^^^^^^^
87
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 51, in segment_cells
88
+ nucleus_label, cytoplasm_label, user_parameters = launch_segmentation(
89
+ ^^^^^^^^^^^^^^^^^^^^
90
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/segmentation.py", line 253, in launch_segmentation
91
+ cytoplasm_model_name= cytoplasm_model_name,
92
+ ^^^^^^^^^^^^^^^^^^^^
93
+ NameError: name 'cytoplasm_model_name' is not defined
94
+ version 2.0.2error : 'nucleus_segmentation_3D'traceback :
95
+ Traceback (most recent call last):
96
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 55, in <module>
97
+ nucleus_label, cytoplasm_label, user_parameters = segment_cells(
98
+ ^^^^^^^^^^^^^^
99
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 51, in segment_cells
100
+ nucleus_label, cytoplasm_label, user_parameters = launch_segmentation(
101
+ ^^^^^^^^^^^^^^^^^^^^
102
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/segmentation.py", line 261, in launch_segmentation
103
+ nucleus_3D_segmentation=user_parameters["nucleus_segmentation_3D"],
104
+ ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
105
+ KeyError: 'nucleus_segmentation_3D'
106
+ version 2.0.2error : name 'show_segmentation' is not definedtraceback :
107
+ Traceback (most recent call last):
108
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 55, in <module>
109
+ nucleus_label, cytoplasm_label, user_parameters = segment_cells(
110
+ ^^^^^^^^^^^^^^
111
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 51, in segment_cells
112
+ nucleus_label, cytoplasm_label, user_parameters = launch_segmentation(
113
+ ^^^^^^^^^^^^^^^^^^^^
114
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/segmentation.py", line 325, in launch_segmentation
115
+ if show_segmentation :
116
+ ^^^^^^^^^^^^^^^^^
117
+ NameError: name 'show_segmentation' is not defined. Did you mean: 'plot_segmentation'?
118
+ version 2.0.2error : name 'is_3D_stack' is not definedtraceback :
119
+ Traceback (most recent call last):
120
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 55, in <module>
121
+ nucleus_label, cytoplasm_label, user_parameters = segment_cells(
122
+ ^^^^^^^^^^^^^^
123
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 51, in segment_cells
124
+ nucleus_label, cytoplasm_label, user_parameters = launch_segmentation(
125
+ ^^^^^^^^^^^^^^^^^^^^
126
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/segmentation.py", line 89, in launch_segmentation
127
+ values, relaunch = _check_integrity_segmentation_parameters(values, user_parameters, available_channels=available_channels, available_slices=available_slices)
128
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
129
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/segmentation.py", line 368, in _check_integrity_segmentation_parameters
130
+ if is_3D_stack :
131
+ ^^^^^^^^^^^
132
+ NameError: name 'is_3D_stack' is not defined
133
+ version 2.0.2error : name 'nucleus_image' is not definedtraceback :
134
+ Traceback (most recent call last):
135
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 55, in <module>
136
+ nucleus_label, cytoplasm_label, user_parameters = segment_cells(
137
+ ^^^^^^^^^^^^^^
138
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 51, in segment_cells
139
+ nucleus_label, cytoplasm_label, user_parameters = launch_segmentation(
140
+ ^^^^^^^^^^^^^^^^^^^^
141
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/segmentation.py", line 139, in launch_segmentation
142
+ nuc_image=image[nucleus_channel] if type(nucleus_image) == type(None) else nucleus_image,
143
+ ^^^^^^^^^^^^^
144
+ NameError: name 'nucleus_image' is not defined. Did you mean: 'nucleus_label'?
145
+ version 2.0.2error : name 'nucleus_image' is not definedtraceback :
146
+ Traceback (most recent call last):
147
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 55, in <module>
148
+ nucleus_label, cytoplasm_label, user_parameters = segment_cells(
149
+ ^^^^^^^^^^^^^^
150
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 51, in segment_cells
151
+ nucleus_label, cytoplasm_label, user_parameters = launch_segmentation(
152
+ ^^^^^^^^^^^^^^^^^^^^
153
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/segmentation.py", line 139, in launch_segmentation
154
+ nuc_image=image[nucleus_channel] if type(nucleus_image) == type(None) else nucleus_image,
155
+ ^^^^^^^^^^^^^
156
+ NameError: name 'nucleus_image' is not defined. Did you mean: 'nucleus_label'?
157
+ version 2.0.2error : name 'nucleus_channel' is not definedtraceback :
158
+ Traceback (most recent call last):
159
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 55, in <module>
160
+ nucleus_label, cytoplasm_label, user_parameters = segment_cells(
161
+ ^^^^^^^^^^^^^^
162
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 51, in segment_cells
163
+ nucleus_label, cytoplasm_label, user_parameters = launch_segmentation(
164
+ ^^^^^^^^^^^^^^^^^^^^
165
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/segmentation.py", line 139, in launch_segmentation
166
+ nuc_image=image[nucleus_channel] if type(user_parameters["other_nucleus_image"]) == type(None) else user_parameters["other_nucleus_image"],
167
+ ^^^^^^^^^^^^^^^
168
+ NameError: name 'nucleus_channel' is not defined. Did you mean: 'nucleus_label'?
169
+ version 2.0.2error : 'str' object has no attribute 'ndim'traceback :
170
+ Traceback (most recent call last):
171
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 55, in <module>
172
+ nucleus_label, cytoplasm_label, user_parameters = segment_cells(
173
+ ^^^^^^^^^^^^^^
174
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 51, in segment_cells
175
+ nucleus_label, cytoplasm_label, user_parameters = launch_segmentation(
176
+ ^^^^^^^^^^^^^^^^^^^^
177
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/segmentation.py", line 117, in launch_segmentation
178
+ cytoplasm_label, nucleus_label = cell_segmentation(
179
+ ^^^^^^^^^^^^^^^^^^
180
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/segmentation.py", line 232, in cell_segmentation
181
+ if nuc.ndim >= 3 and not nucleus_3D_segmentation:
182
+ ^^^^^^^^
183
+ AttributeError: 'str' object has no attribute 'ndim'
184
+ version 2.0.2error : name 'result' is not definedtraceback :
185
+ Traceback (most recent call last):
186
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 45, in <module>
187
+ new_result_df, new_cell_result_df, acquisition_id, user_parameters = add_detection(
188
+ ^^^^^^^^^^^^^^
189
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 101, in add_detection
190
+ user_parameters, frame_result, spots, clusters, spots_cluster_id = launch_detection(
191
+ ^^^^^^^^^^^^^^^^^
192
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/detection.py", line 626, in launch_detection
193
+ spots, threshold = interactive_detection(
194
+ ^^^^^^^^^^^^^^^^^^^^^^
195
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/gui/napari_visualiser.py", line 262, in interactive_detection
196
+ background_remover = _interactive_background_removal(image, voxel_size, **kwargs)
197
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
198
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/gui/napari_visualiser.py", line 344, in _interactive_background_removal
199
+ background_remover = BackgroundRemover(
200
+ ^^^^^^^^^^^^^^^^^^
201
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/gui/_napari_widgets.py", line 792, in __init__
202
+ "contrast_limits" : [result.min(), result.max()],
203
+ ^^^^^^
204
+ NameError: name 'result' is not defined
205
+ version 2.0.2error : 'Column' object is not iterabletraceback :
206
+ Traceback (most recent call last):
207
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 80, in <module>
208
+ global_coloc_df, cell_coloc_df, acquisition_id = compute_colocalisation(
209
+ ^^^^^^^^^^^^^^^^^^^^^^^
210
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 300, in compute_colocalisation
211
+ colocalisation_distance, voxel_size, spots1_key, spots2_key = initiate_colocalisation(result_dataframe)
212
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
213
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/_colocalisation.py", line 178, in initiate_colocalisation
214
+ colocalisation_distance, voxel_size, spots1_key, spots2_key, values = coloc_prompt(
215
+ ^^^^^^^^^^^^^
216
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/gui/prompts.py", line 322, in coloc_prompt
217
+ for row in element_dict[f"options_spots{spot_id}_memory"] :
218
+ TypeError: 'Column' object is not iterable
219
+ version 2.0.2error : name 'do_only_nuc' is not definedtraceback :
220
+ Traceback (most recent call last):
221
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 55, in <module>
222
+ nucleus_label, cytoplasm_label, user_parameters = segment_cells(
223
+ ^^^^^^^^^^^^^^
224
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 51, in segment_cells
225
+ nucleus_label, cytoplasm_label, user_parameters = launch_segmentation(
226
+ ^^^^^^^^^^^^^^^^^^^^
227
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/segmentation.py", line 174, in launch_segmentation
228
+ if not do_only_nuc :
229
+ ^^^^^^^^^^^
230
+ NameError: name 'do_only_nuc' is not defined
231
+ version 2.0.2error : 'Column' object is not iterabletraceback :
232
+ Traceback (most recent call last):
233
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 80, in <module>
234
+ global_coloc_df, cell_coloc_df, acquisition_id = compute_colocalisation(
235
+ ^^^^^^^^^^^^^^^^^^^^^^^
236
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 300, in compute_colocalisation
237
+ colocalisation_distance, voxel_size, spots1_key, spots2_key = initiate_colocalisation(result_dataframe)
238
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
239
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/_colocalisation.py", line 178, in initiate_colocalisation
240
+ colocalisation_distance, voxel_size, spots1_key, spots2_key, values = coloc_prompt(
241
+ ^^^^^^^^^^^^^
242
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/gui/prompts.py", line 322, in coloc_prompt
243
+ for row in element_dict[f"options_spots{spot_id}_memory"] :
244
+ TypeError: 'Column' object is not iterable
245
+ version 2.0.2error : Text.update() got an unexpected keyword argument 'disabled'traceback :
246
+ Traceback (most recent call last):
247
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 80, in <module>
248
+ global_coloc_df, cell_coloc_df, acquisition_id = compute_colocalisation(
249
+ ^^^^^^^^^^^^^^^^^^^^^^^
250
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 300, in compute_colocalisation
251
+ colocalisation_distance, voxel_size, spots1_key, spots2_key = initiate_colocalisation(result_dataframe)
252
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
253
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/_colocalisation.py", line 178, in initiate_colocalisation
254
+ colocalisation_distance, voxel_size, spots1_key, spots2_key, values = coloc_prompt(
255
+ ^^^^^^^^^^^^^
256
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/gui/prompts.py", line 325, in coloc_prompt
257
+ for elmnt in row : elmnt.update(disabled= is_memory)
258
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
259
+ TypeError: Text.update() got an unexpected keyword argument 'disabled'
260
+ version 2.0.2error : 'NoneType' object has no attribute 'get'traceback :
261
+ Traceback (most recent call last):
262
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 80, in <module>
263
+ global_coloc_df, cell_coloc_df, acquisition_id = compute_colocalisation(
264
+ ^^^^^^^^^^^^^^^^^^^^^^^
265
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 300, in compute_colocalisation
266
+ colocalisation_distance, voxel_size, spots1_key, spots2_key = initiate_colocalisation(result_dataframe)
267
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
268
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/_colocalisation.py", line 178, in initiate_colocalisation
269
+ colocalisation_distance, voxel_size, spots1_key, spots2_key, values = coloc_prompt(
270
+ ^^^^^^^^^^^^^
271
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/gui/prompts.py", line 303, in coloc_prompt
272
+ layout, element_dict = colocalization_layout(spot_list, **default_values)
273
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
274
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/gui/layout.py", line 477, in colocalization_layout
275
+ sg.Input(size=20, key= f"spots{spot_id}_browse", default_text=default_values.get(f"spots{spot_id}_browse"), disabled=element_dict[f"radio_spots{spot_id}_memory"].get()),
276
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
277
+ File "/home/floric/python_env/small_fish_3.12/lib/python3.12/site-packages/FreeSimpleGUI/elements/radio.py", line 248, in get
278
+ return self.TKIntVar.get() == self.EncodedRadioValue
279
+ ^^^^^^^^^^^^^^^^^
280
+ AttributeError: 'NoneType' object has no attribute 'get'
281
+ version 2.0.2error : 'NoneType' object has no attribute 'get'traceback :
282
+ Traceback (most recent call last):
283
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 80, in <module>
284
+ global_coloc_df, cell_coloc_df, acquisition_id = compute_colocalisation(
285
+ ^^^^^^^^^^^^^^^^^^^^^^^
286
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 300, in compute_colocalisation
287
+ colocalisation_distance, voxel_size, spots1_key, spots2_key = initiate_colocalisation(result_dataframe)
288
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
289
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/_colocalisation.py", line 178, in initiate_colocalisation
290
+ colocalisation_distance, voxel_size, spots1_key, spots2_key, values = coloc_prompt(
291
+ ^^^^^^^^^^^^^
292
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/gui/prompts.py", line 303, in coloc_prompt
293
+ layout, element_dict = colocalization_layout(spot_list, **default_values)
294
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
295
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/gui/layout.py", line 478, in colocalization_layout
296
+ print(element_dict[f"radio_spots{spot_id}_memory"].get())
297
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
298
+ File "/home/floric/python_env/small_fish_3.12/lib/python3.12/site-packages/FreeSimpleGUI/elements/radio.py", line 248, in get
299
+ return self.TKIntVar.get() == self.EncodedRadioValue
300
+ ^^^^^^^^^^^^^^^^^
301
+ AttributeError: 'NoneType' object has no attribute 'get'
302
+ version 2.0.2error : dict.setdefault() takes no keyword argumentstraceback :
303
+ Traceback (most recent call last):
304
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 80, in <module>
305
+ global_coloc_df, cell_coloc_df, acquisition_id = compute_colocalisation(
306
+ ^^^^^^^^^^^^^^^^^^^^^^^
307
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 300, in compute_colocalisation
308
+ colocalisation_distance, voxel_size, spots1_key, spots2_key = initiate_colocalisation(result_dataframe)
309
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
310
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/_colocalisation.py", line 178, in initiate_colocalisation
311
+ colocalisation_distance, voxel_size, spots1_key, spots2_key, values = coloc_prompt(
312
+ ^^^^^^^^^^^^^
313
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/gui/prompts.py", line 303, in coloc_prompt
314
+ layout, element_dict = colocalization_layout(spot_list, **default_values)
315
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
316
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/gui/layout.py", line 478, in colocalization_layout
317
+ sg.FileBrowse(key=f"spots{spot_id}_browsebutton", initial_folder=default_values.setdefault(f"spots{spot_id}_browsebutton", default_values["working_directory"], disabled=can_use_memory and not default_values.get(f"radio_spots{spot_id}_load"))),
318
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
319
+ TypeError: dict.setdefault() takes no keyword arguments
320
+ version 2.1.1error : not enough values to unpack (expected 3, got 2)traceback :
321
+ Traceback (most recent call last):
322
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 45, in <module>
323
+ new_result_df, new_cell_result_df, acquisition_id, user_parameters = add_detection(
324
+ ^^^^^^^^^^^^^^
325
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 114, in add_detection
326
+ raise(error)
327
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 101, in add_detection
328
+ user_parameters, frame_result, spots, clusters, spots_cluster_id, image = launch_detection(
329
+ ^^^^^^^^^^^^^^^^^
330
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/detection.py", line 626, in launch_detection
331
+ spots, image, updated_parameters = interactive_detection(
332
+ ^^^^^^^^^^^^^^^^^^^^^^
333
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/gui/napari_visualiser.py", line 291, in interactive_detection
334
+ dense_region_deconvolver = _interactive_spot_decomposition(
335
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
336
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/gui/napari_visualiser.py", line 350, in _interactive_spot_decomposition
337
+ dense_regions_deconvolver = DenseRegionDeconvolver(
338
+ ^^^^^^^^^^^^^^^^^^^^^^^
339
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/gui/_napari_widgets.py", line 817, in __init__
340
+ self.update_dense_regions()
341
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/gui/_napari_widgets.py", line 834, in update_dense_regions
342
+ z,y,x = coordinates.T
343
+ ^^^^^
344
+ ValueError: not enough values to unpack (expected 3, got 2)
345
+ version 2.1.1error : cannot access local variable 'cell_label_layer' where it is not associated with a valuetraceback :
346
+ Traceback (most recent call last):
347
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 45, in <module>
348
+ new_result_df, new_cell_result_df, acquisition_id, user_parameters = add_detection(
349
+ ^^^^^^^^^^^^^^
350
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 101, in add_detection
351
+ user_parameters, frame_result, spots, clusters, spots_cluster_id, image = launch_detection(
352
+ ^^^^^^^^^^^^^^^^^
353
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/detection.py", line 663, in launch_detection
354
+ spots, clusters, new_cluster_radius, new_min_spot_number, nucleus_label, cell_label = correct_spots(
355
+ ^^^^^^^^^^^^^^
356
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/gui/napari_visualiser.py", line 160, in correct_spots
357
+ new_cell_label = cell_label_layer.data
358
+ ^^^^^^^^^^^^^^^^
359
+ UnboundLocalError: cannot access local variable 'cell_label_layer' where it is not associated with a value
360
+ version 2.1.1error : cannot access local variable 'new_nucleus_label' where it is not associated with a valuetraceback :
361
+ Traceback (most recent call last):
362
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/main_menu.py", line 45, in <module>
363
+ new_result_df, new_cell_result_df, acquisition_id, user_parameters = add_detection(
364
+ ^^^^^^^^^^^^^^
365
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/actions.py", line 101, in add_detection
366
+ user_parameters, frame_result, spots, clusters, spots_cluster_id, image = launch_detection(
367
+ ^^^^^^^^^^^^^^^^^
368
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/pipeline/detection.py", line 663, in launch_detection
369
+ spots, clusters, new_cluster_radius, new_min_spot_number, nucleus_label, cell_label = correct_spots(
370
+ ^^^^^^^^^^^^^^
371
+ File "/home/floric/my_projects/small_fish_gui/src/small_fish_gui/gui/napari_visualiser.py", line 175, in correct_spots
372
+ return new_spots, new_clusters, new_cluster_radius, new_min_spot_number, new_nucleus_label, new_cell_label
373
+ ^^^^^^^^^^^^^^^^^
374
+ UnboundLocalError: cannot access local variable 'new_nucleus_label' where it is not associated with a value
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "small_fish_gui"
7
- version = "2.1.4"
7
+ version = "2.1.5"
8
8
  authors = [
9
9
  { name="Slimani Floric", email="floric.slimani@live.fr" },
10
10
  ]
@@ -0,0 +1,7 @@
1
+ {
2
+ "folders": [
3
+ {
4
+ "path": "."
5
+ }
6
+ ]
7
+ }
@@ -37,8 +37,8 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
37
37
  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
38
38
  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
39
39
  """
40
- __version__ = "2.1.4"
41
- __wiki__ = "https://github.com/2Echoes/small_fish_gui/wiki"
40
+ __version__ = "2.1.5"
41
+ __wiki__ = "https://github.com/SmallFishGUI/small_fish_gui/wiki"
42
42
 
43
43
  import os, platform
44
44
  system_type = platform.system()
@@ -0,0 +1,65 @@
1
+ List of keys for batch 'values' dict instance :
2
+
3
+ Batch_folder
4
+ 0
5
+ image_path
6
+ 3D stack
7
+ multichannel
8
+ Dense regions deconvolution
9
+ do_cluster_computation
10
+ Segmentation
11
+ Napari correction
12
+ x
13
+ y
14
+ z
15
+ c
16
+ t
17
+ cyto_model_name
18
+ cytoplasm_channel
19
+ cytoplasm_diameter
20
+ nucleus_model_name
21
+ nucleus channel
22
+ nucleus_diameter
23
+ segment_only_nuclei
24
+ show_segmentation
25
+ saving path
26
+ filename
27
+ threshold
28
+ threshold penalty
29
+ channel to compute
30
+ voxel_size_z
31
+ voxel_size_y
32
+ voxel_size_x
33
+ spot_size_z
34
+ spot_size_y
35
+ spot_size_x
36
+ log_kernel_size_z
37
+ log_kernel_size_y
38
+ log_kernel_size_x
39
+ minimum_distance_z
40
+ minimum_distance_y
41
+ minimum_distance_x
42
+ nucleus channel signal
43
+ alpha
44
+ beta
45
+ gamma
46
+ deconvolution_kernel_z
47
+ deconvolution_kernel_y
48
+ deconvolution_kernel_x
49
+ cluster size
50
+ min number of spots
51
+ show_interactive_threshold_selector
52
+ spots_extraction_folder
53
+ spots_filename
54
+ do_spots_csv
55
+ do_spots_excel
56
+ do_spots_feather
57
+ output_folder
58
+ batch_name
59
+ save segmentation
60
+ save detection
61
+ extract spots
62
+ csv
63
+ xlsx
64
+ feather
65
+ 2
@@ -19,6 +19,7 @@ from ..utils import compute_anisotropy_coef
19
19
  def correct_spots(
20
20
  image,
21
21
  spots,
22
+ segment_only_nuclei,
22
23
  voxel_size= (1,1,1),
23
24
  clusters= None,
24
25
  spot_cluster_id= None,
@@ -26,7 +27,7 @@ def correct_spots(
26
27
  min_spot_number=0,
27
28
  cell_label= None,
28
29
  nucleus_label= None,
29
- other_images =[]
30
+ other_images =[],
30
31
  ):
31
32
  """
32
33
  Open Napari viewer for user to visualize and corrects spots, clusters.
@@ -98,12 +99,32 @@ def correct_spots(
98
99
  feature_defaults= {"spot_number" : min_spot_number, "cluster_id" : -2, "end" : True} # napari features default will not work with np.nan passing -2 instead.
99
100
  )
100
101
 
101
- if type(cell_label) != type(None) and not np.array_equal(nucleus_label, cell_label) :
102
- cell_label_layer = Viewer.add_labels(cell_label, scale=scale, opacity= 0.2, blending= 'additive')
103
- if type(nucleus_label) != type(None) :
102
+ if type(nucleus_label) != type(None) :
104
103
  nucleus_label_layer = Viewer.add_labels(nucleus_label, scale=scale, opacity= 0.2, blending= 'additive')
104
+ nucleus_label_layer.preserve_labels = True
105
+ labels_layer_list = [nucleus_label_layer]
105
106
 
107
+ if type(cell_label) != type(None) and not segment_only_nuclei :
108
+ cell_label_layer = Viewer.add_labels(cell_label, scale=scale, opacity= 0.2, blending= 'additive')
109
+ cell_label_layer.preserve_labels = True
110
+ labels_layer_list += [cell_label_layer]
111
+
106
112
  #Adding widget
113
+ if type(nucleus_label) != type(None) :
114
+ label_reseter = SegmentationReseter(labels_layer_list)
115
+ label_eraser = CellLabelEraser(labels_layer_list)
116
+ label_picker = FreeLabelPicker(labels_layer_list)
117
+ label_reseter = SegmentationReseter(labels_layer_list)
118
+ changes_applier = ChangesPropagater(labels_layer_list)
119
+
120
+ buttons_container = widgets.Container(widgets=[label_picker.widget, label_reseter.widget], labels=False, layout='horizontal')
121
+ changes_applier = widgets.Container(widgets=[changes_applier.widget], labels=False, layout='horizontal')
122
+ seg_tools_container = widgets.Container(
123
+ widgets = [buttons_container, changes_applier, label_eraser.widget],
124
+ labels=False,
125
+ )
126
+ Viewer.window.add_dock_widget(seg_tools_container, name='Segmentation', area='left')
127
+
107
128
  if type(clusters) != type(None) :
108
129
  initialize_all_cluster_wizards(
109
130
  single_layer=single_layer,
@@ -131,7 +152,8 @@ def correct_spots(
131
152
  widgets = [updater_container, buttons_container],
132
153
  labels=False,
133
154
  )
134
- Viewer.window.add_dock_widget(tools_container, name='SmallFish', area='left')
155
+
156
+ Viewer.window.add_dock_widget(tools_container, name='Cluster', area='left', tabify=True)
135
157
 
136
158
  Viewer.show(block=False)
137
159
  napari.run()
@@ -158,8 +180,10 @@ def correct_spots(
158
180
  new_min_spot_number = None
159
181
 
160
182
  #Preparing updated segmentation masks
161
- if type(cell_label) != type(None) and not np.array_equal(nucleus_label, cell_label) :
183
+ if type(cell_label) != type(None) and not segment_only_nuclei :
162
184
  new_cell_label = cell_label_layer.data
185
+ elif type(nucleus_label) != type(None) and segment_only_nuclei :
186
+ new_cell_label = nucleus_label_layer.data
163
187
  else :
164
188
  new_cell_label = cell_label
165
189
  if type(nucleus_label) != type(None) :
@@ -1,5 +1,5 @@
1
1
  {
2
- "working_directory": "/media/SSD_floricslimani",
2
+ "working_directory": "/home/floric/Documents/fish_images",
3
3
  "do_background_removal": false,
4
4
  "background_channel": 0,
5
5
  "multichannel_stack": true,
@@ -32,7 +32,7 @@
32
32
  "do_dense_regions_deconvolution": false,
33
33
  "do_cluster": false,
34
34
  "show_napari_corrector": true,
35
- "interactive_threshold_selector": false,
35
+ "interactive_threshold_selector": true,
36
36
  "alpha": 0.5,
37
37
  "beta": 1.0,
38
38
  "gamma": 3.0,
@@ -41,7 +41,7 @@
41
41
  "coloc_range": 400,
42
42
  "do_csv": false,
43
43
  "do_excel": false,
44
- "spot_extraction_folder": "/home/floric",
44
+ "spot_extraction_folder": "/home/floric/my_projects/small_fish_gui",
45
45
  "voxel_size": [
46
46
  1,
47
47
  2,
@@ -662,18 +662,19 @@ def launch_detection(
662
662
  spots_cluster_id = None
663
663
 
664
664
  if user_parameters['show_napari_corrector'] :
665
-
665
+
666
666
  spots, clusters, new_cluster_radius, new_min_spot_number, nucleus_label, cell_label = correct_spots(
667
667
  image,
668
668
  spots,
669
- user_parameters['voxel_size'],
669
+ voxel_size=user_parameters['voxel_size'],
670
670
  clusters=clusters,
671
671
  spot_cluster_id = spots_cluster_id,
672
672
  cluster_size= user_parameters.get('cluster_size'),
673
673
  min_spot_number= user_parameters.setdefault('min_number_of_spots', 0),
674
674
  cell_label=cell_label,
675
675
  nucleus_label=nucleus_label,
676
- other_images=other_image
676
+ other_images=other_image,
677
+ segment_only_nuclei=user_parameters['segment_only_nuclei'],
677
678
  )
678
679
 
679
680
  if type(new_cluster_radius) != type(None) :