small-fish-gui 2.1.0__tar.gz → 2.1.1__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.
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/PKG-INFO +5 -1
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/README.md +4 -0
- small_fish_gui-2.1.1/error_log.txt +374 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/pyproject.toml +1 -1
- small_fish_gui-2.1.1/small_fish_gui.code-workspace +7 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/__init__.py +1 -1
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/batch/prompt.py +1 -1
- small_fish_gui-2.1.1/src/small_fish_gui/batch/values.txt +65 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/gui/_napari_widgets.py +18 -6
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/gui/layout.py +2 -2
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/gui/napari_visualiser.py +39 -16
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/interface/settings.json +3 -3
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/pipeline/detection.py +1 -1
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/pipeline/segmentation.py +1 -1
- small_fish_gui-2.1.1/src/small_fish_gui/pipeline/testing.ipynb +3636 -0
- small_fish_gui-2.1.1/src/small_fish_gui/small_fish_gui.code-workspace +7 -0
- small_fish_gui-2.1.0/error_log.txt +0 -931
- small_fish_gui-2.1.0/src/small_fish_gui/interface/testing.ipynb +0 -4354
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/LICENSE +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/illustrations/DetectionVitrine_filtre.png +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/illustrations/DetectionVitrine_signal.png +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/illustrations/FocciVitrine.png +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/illustrations/FocciVitrine_no_spots.png +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/illustrations/Segmentation2D.png +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/illustrations/Segmentation2D_with_labels.png +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/logo.png +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/requirements.txt +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/screenshot/general_help_screenshot.png +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/screenshot/mapping_help_screenshot.png +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/screenshot/segmentation_help_screenshot.png +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/__main__.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/batch/__init__.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/batch/input.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/batch/integrity.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/batch/output.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/batch/pipeline.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/batch/test.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/batch/update.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/batch/utils.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/gui/__init__.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/gui/animation.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/gui/prompts.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/gui/testing.ipynb +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/gui/theme.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/gui/tooltips.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/hints.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/interface/__init__.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/interface/default_settings.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/interface/image.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/interface/inoutput.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/interface/testing.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/interface/user_settings.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/main_menu.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/pipeline/__init__.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/pipeline/_bigfish_wrapers.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/pipeline/_colocalisation.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/pipeline/_custom_errors.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/pipeline/_preprocess.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/pipeline/actions.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/pipeline/spots.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/pipeline/test.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/src/small_fish_gui/pipeline/utils.py +0 -0
- {small_fish_gui-2.1.0 → small_fish_gui-2.1.1}/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.
|
|
3
|
+
Version: 2.1.1
|
|
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
|
|
@@ -128,3 +128,7 @@ python -m small_fish_gui
|
|
|
128
128
|
```
|
|
129
129
|
|
|
130
130
|
You are all set! Try it yourself or check the [get started](https://github.com/2Echoes/small_fish_gui/wiki/Get-started) section in the wiki.
|
|
131
|
+
|
|
132
|
+
## Developement
|
|
133
|
+
Bugs to fix :
|
|
134
|
+
* Use of load button during co-localization quantification yields wrongs results
|
|
@@ -93,3 +93,7 @@ python -m small_fish_gui
|
|
|
93
93
|
```
|
|
94
94
|
|
|
95
95
|
You are all set! Try it yourself or check the [get started](https://github.com/2Echoes/small_fish_gui/wiki/Get-started) section in the wiki.
|
|
96
|
+
|
|
97
|
+
## Developement
|
|
98
|
+
Bugs to fix :
|
|
99
|
+
* Use of load button during co-localization quantification yields wrongs results
|
|
@@ -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
|
|
@@ -37,7 +37,7 @@ 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.
|
|
40
|
+
__version__ = "2.1.1"
|
|
41
41
|
__wiki__ = "https://github.com/2Echoes/small_fish_gui/wiki"
|
|
42
42
|
|
|
43
43
|
import os, platform
|
|
@@ -104,7 +104,7 @@ def batch_promp(
|
|
|
104
104
|
preset["reordered_shape"] = None
|
|
105
105
|
preset.setdefault("filename", "")
|
|
106
106
|
#Segmentation tab
|
|
107
|
-
preset.setdefault("other_nucleus_image",
|
|
107
|
+
preset.setdefault("other_nucleus_image", "")
|
|
108
108
|
preset.setdefault("cytoplasm_channel", default.detection_channel)
|
|
109
109
|
preset.setdefault("cytoplasm_segmentation_3D", default.do_3D_segmentation)
|
|
110
110
|
preset.setdefault("nucleus_segmentation_3D", default.do_3D_segmentation)
|
|
@@ -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
|
|
@@ -256,6 +256,7 @@ class ClusterMerger(ClusterWidget) :
|
|
|
256
256
|
|
|
257
257
|
#Dropping selected clusters
|
|
258
258
|
self.cluster_layer.data = np.delete(self.cluster_layer.data, selected_clusters, axis=0)
|
|
259
|
+
self.cluster_layer.features = self.cluster_layer.features.drop(selected_clusters, axis=0)
|
|
259
260
|
|
|
260
261
|
#Updating spots
|
|
261
262
|
belonging_spots = self.single_layer.features.loc[self.single_layer.features['cluster_id'].isin(selected_cluster_ids)].index
|
|
@@ -813,6 +814,7 @@ class DenseRegionDeconvolver(NapariWidget) :
|
|
|
813
814
|
self.spot_radius = spot_radius
|
|
814
815
|
self.kernel_size = kernel_size
|
|
815
816
|
self.voxel_size = voxel_size
|
|
817
|
+
self.dim = len(voxel_size)
|
|
816
818
|
self.update_dense_regions()
|
|
817
819
|
super().__init__()
|
|
818
820
|
|
|
@@ -830,13 +832,23 @@ class DenseRegionDeconvolver(NapariWidget) :
|
|
|
830
832
|
for label, region in enumerate(dense_regions) :
|
|
831
833
|
reg_im = region.image
|
|
832
834
|
coordinates = np.argwhere(reg_im)
|
|
833
|
-
z,y,x = coordinates.T
|
|
834
|
-
min_z,min_y,min_x,*_ = region.bbox
|
|
835
|
-
z += min_z
|
|
836
|
-
y += min_y
|
|
837
|
-
x += min_x
|
|
838
835
|
|
|
839
|
-
|
|
836
|
+
if self.dim == 2 :
|
|
837
|
+
y,x = coordinates.T
|
|
838
|
+
min_y,min_x,*_ = region.bbox
|
|
839
|
+
y += min_y
|
|
840
|
+
x += min_x
|
|
841
|
+
|
|
842
|
+
mask[y,x] = label + 1
|
|
843
|
+
|
|
844
|
+
else :
|
|
845
|
+
z,y,x = coordinates.T
|
|
846
|
+
min_z,min_y,min_x,*_ = region.bbox
|
|
847
|
+
z += min_z
|
|
848
|
+
y += min_y
|
|
849
|
+
x += min_x
|
|
850
|
+
|
|
851
|
+
mask[z,y,x] = label + 1
|
|
840
852
|
|
|
841
853
|
self.dense_regions = mask
|
|
842
854
|
|
|
@@ -428,11 +428,12 @@ def _detection_layout(
|
|
|
428
428
|
|
|
429
429
|
if (do_segmentation and is_multichannel) or (is_multichannel and segmentation_done):
|
|
430
430
|
layout += [[sg.Text("nucleus channel signal "), sg.InputText(default_text=default_dict.setdefault('nucleus_channel',default.nucleus_channel), key= "nucleus channel signal", size= 5, tooltip= "Channel from which signal will be measured for nucleus features, \nallowing you to measure signal from a different channel than the one used for segmentation.")]]
|
|
431
|
+
layout += bool_layout(['Interactive threshold selector'],keys = ['show_interactive_threshold_selector'], preset=[default.interactive_threshold_selector])
|
|
431
432
|
|
|
432
433
|
#Deconvolution
|
|
433
434
|
if do_dense_region_deconvolution :
|
|
434
435
|
default_dense_regions_deconvolution = [default_dict.setdefault('alpha',default.alpha), default_dict.setdefault('beta',default.beta)]
|
|
435
|
-
layout += parameters_layout(['alpha', 'beta',], default_values= default_dense_regions_deconvolution, header= '
|
|
436
|
+
layout += parameters_layout(['alpha', 'beta',], default_values= default_dense_regions_deconvolution, header= 'Dense regions deconvolution')
|
|
436
437
|
layout += parameters_layout(['gamma'], unit= 'px', default_values= [default_dict.setdefault('gamma',default.gamma)])
|
|
437
438
|
layout += tuple_layout(opt= {"deconvolution_kernel" : True}, unit= {"deconvolution_kernel" : 'px'}, default_dict=default_dict, deconvolution_kernel = tuple_shape)
|
|
438
439
|
|
|
@@ -441,7 +442,6 @@ def _detection_layout(
|
|
|
441
442
|
layout += parameters_layout(['Cluster radius'],keys=['cluster_size'], unit="radius(nm)", default_values=[default_dict.setdefault('cluster_size',default.cluster_size)])
|
|
442
443
|
layout += parameters_layout(['Min nb spots per cluster'],keys=['min_number_of_spots'], default_values=[default_dict.setdefault('min_number_of_spots', default.min_spot)])
|
|
443
444
|
|
|
444
|
-
layout += bool_layout(['Interactive threshold selector'],keys = ['show_interactive_threshold_selector'], preset=[default.interactive_threshold_selector])
|
|
445
445
|
layout += path_layout(
|
|
446
446
|
keys=['spots_extraction_folder'],
|
|
447
447
|
look_for_dir=True,
|