cellects 0.1.2__py3-none-any.whl → 0.2.6__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.
- cellects/__main__.py +65 -25
- cellects/config/all_vars_dict.py +18 -17
- cellects/core/cellects_threads.py +1034 -396
- cellects/core/motion_analysis.py +1664 -2010
- cellects/core/one_image_analysis.py +1082 -1061
- cellects/core/program_organizer.py +1687 -1316
- cellects/core/script_based_run.py +80 -76
- cellects/gui/advanced_parameters.py +390 -330
- cellects/gui/cellects.py +102 -91
- cellects/gui/custom_widgets.py +16 -33
- cellects/gui/first_window.py +226 -104
- cellects/gui/if_several_folders_window.py +117 -68
- cellects/gui/image_analysis_window.py +866 -454
- cellects/gui/required_output.py +104 -57
- cellects/gui/ui_strings.py +840 -0
- cellects/gui/video_analysis_window.py +333 -155
- cellects/image_analysis/cell_leaving_detection.py +64 -4
- cellects/image_analysis/image_segmentation.py +451 -22
- cellects/image_analysis/morphological_operations.py +2166 -1635
- cellects/image_analysis/network_functions.py +616 -253
- cellects/image_analysis/one_image_analysis_threads.py +94 -153
- cellects/image_analysis/oscillations_functions.py +131 -0
- cellects/image_analysis/progressively_add_distant_shapes.py +2 -3
- cellects/image_analysis/shape_descriptors.py +517 -466
- cellects/utils/formulas.py +169 -6
- cellects/utils/load_display_save.py +362 -109
- cellects/utils/utilitarian.py +86 -9
- cellects-0.2.6.dist-info/LICENSE +675 -0
- cellects-0.2.6.dist-info/METADATA +829 -0
- cellects-0.2.6.dist-info/RECORD +44 -0
- cellects/core/one_video_per_blob.py +0 -540
- cellects/image_analysis/cluster_flux_study.py +0 -102
- cellects-0.1.2.dist-info/LICENSE.odt +0 -0
- cellects-0.1.2.dist-info/METADATA +0 -132
- cellects-0.1.2.dist-info/RECORD +0 -44
- {cellects-0.1.2.dist-info → cellects-0.2.6.dist-info}/WHEEL +0 -0
- {cellects-0.1.2.dist-info → cellects-0.2.6.dist-info}/entry_points.txt +0 -0
- {cellects-0.1.2.dist-info → cellects-0.2.6.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,840 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
|
|
3
|
+
########################################
|
|
4
|
+
######### First Window #########
|
|
5
|
+
########################################
|
|
6
|
+
|
|
7
|
+
FW = dict()
|
|
8
|
+
FW["Image_list_or_videos"] = {}
|
|
9
|
+
FW["Image_list_or_videos"]["label"] = "Image list or videos"
|
|
10
|
+
# START_TIP
|
|
11
|
+
FW["Image_list_or_videos"]["tips"] = \
|
|
12
|
+
f"""The *Image list or video* option indicates whether the data have been stored as an image stack (i.e.
|
|
13
|
+
a set of files where each file contains a single image) or as a video. Images must be named
|
|
14
|
+
alphanumerically so the program can read them in the right order.
|
|
15
|
+
"""
|
|
16
|
+
# END_TIP
|
|
17
|
+
|
|
18
|
+
FW["Image_prefix_and_extension"] = {}
|
|
19
|
+
FW["Image_prefix_and_extension"]["label"] = "Image prefix and extension"
|
|
20
|
+
# START_TIP
|
|
21
|
+
FW["Image_prefix_and_extension"]["tips"] = \
|
|
22
|
+
f"""The *Images prefix* and *Images extension* fields allow Cellects to consider relevant data. For
|
|
23
|
+
example, setting 'exp_' as image prefix and '.jpg' as image extension will cause Cellects to only
|
|
24
|
+
consider JPG files whose name starts with 'exp_'. Remaining labels should indicate the order in
|
|
25
|
+
which images were taken.
|
|
26
|
+
NB:
|
|
27
|
+
- Image prefix is optional
|
|
28
|
+
- If every .jpg files start with IMG_ but other .jpg files exist, use the prefix to exclude
|
|
29
|
+
irrelevant files.
|
|
30
|
+
- Supported formats: bmp, dib, exr, exr, hdr, jp2, jpe, jpeg, jpg, pbm, pfm, pgm, pic, png, pnm,
|
|
31
|
+
ppm, ras, sr, tif, tiff, webp, cr2, cr3, nef, arw, sr2, raf, prf, rw2, pef, dng, 3fr, iiq.
|
|
32
|
+
"""
|
|
33
|
+
# END_TIP
|
|
34
|
+
|
|
35
|
+
FW["Folder"] = {}
|
|
36
|
+
FW["Folder"]["label"] = "Folder"
|
|
37
|
+
# START_TIP
|
|
38
|
+
FW["Folder"]["tips"] = \
|
|
39
|
+
f"""The *Folder* field must specify the directory path to the folder(s) for Cellects to be able to run
|
|
40
|
+
the analysis. The user can copy/paste this path into the field or navigate to the folder using the
|
|
41
|
+
*Browse* push button. For batch analysis, provide a path leading directly to the parent folder
|
|
42
|
+
containing all subfolders.
|
|
43
|
+
"""
|
|
44
|
+
# END_TIP
|
|
45
|
+
|
|
46
|
+
FW["Arena_number_per_folder"] = {}
|
|
47
|
+
FW["Arena_number_per_folder"]["label"] = "Arena number per folder"
|
|
48
|
+
# START_TIP
|
|
49
|
+
FW["Arena_number_per_folder"]["tips"] = \
|
|
50
|
+
f"""The *Arena number per folder* specifies how many arenas are present in the images. Cellects will
|
|
51
|
+
process and analyze each arena separately.
|
|
52
|
+
NB:
|
|
53
|
+
- For batch processing, assign different arena counts for each subfolder (see Fig. 11: the several
|
|
54
|
+
folder window).
|
|
55
|
+
"""
|
|
56
|
+
# END_TIP
|
|
57
|
+
|
|
58
|
+
FW["Browse"] = {}
|
|
59
|
+
FW["Browse"]["label"] = "Browse"
|
|
60
|
+
# START_TIP
|
|
61
|
+
FW["Browse"]["tips"] = \
|
|
62
|
+
f"""Clicking the *Browse* button opens a dialog to select a folder for analysis.
|
|
63
|
+
"""
|
|
64
|
+
# END_TIP
|
|
65
|
+
|
|
66
|
+
FW["Required_outputs"] = {}
|
|
67
|
+
FW["Required_outputs"]["label"] = "Required outputs"
|
|
68
|
+
# START_TIP
|
|
69
|
+
FW["Required_outputs"]["tips"] = \
|
|
70
|
+
f"""Clicking the *Required outputs* button opens the window allowing to choose what descriptors Cellects
|
|
71
|
+
will compute on the selected data. Find details about this window in the advanced documentation.
|
|
72
|
+
"""
|
|
73
|
+
# END_TIP
|
|
74
|
+
|
|
75
|
+
FW["Advanced_parameters"] = {}
|
|
76
|
+
FW["Advanced_parameters"]["label"] = "Advanced parameters"
|
|
77
|
+
# START_TIP
|
|
78
|
+
FW["Advanced_parameters"]["tips"] = \
|
|
79
|
+
f"""Clicking the *Advanced parameters* button opens the window containing all secondary parameters of
|
|
80
|
+
the software. Find details about this window in the advanced documentation.
|
|
81
|
+
"""
|
|
82
|
+
# END_TIP
|
|
83
|
+
|
|
84
|
+
FW["Run_all_directly"] = {}
|
|
85
|
+
FW["Run_all_directly"]["label"] = "Run all directly"
|
|
86
|
+
# START_TIP
|
|
87
|
+
FW["Run_all_directly"]["tips"] = \
|
|
88
|
+
f"""This option appears when image analysis has already been performed for the current folder. It is a
|
|
89
|
+
shortcut to bypass the image analysis step and proceed directly to video tracking refinement.
|
|
90
|
+
"""
|
|
91
|
+
# END_TIP
|
|
92
|
+
|
|
93
|
+
FW["Next"] = {}
|
|
94
|
+
FW["Next"]["label"] = "Next"
|
|
95
|
+
# START_TIP
|
|
96
|
+
FW["Next"]["tips"] = \
|
|
97
|
+
f"""Click the *Next* button to go to the image analysis window (Fig. 2), or to the window showing the
|
|
98
|
+
list of folders (Fig. 11) if applicable.
|
|
99
|
+
"""
|
|
100
|
+
# END_TIP
|
|
101
|
+
|
|
102
|
+
#######################################
|
|
103
|
+
######### ImageAnalysisWindow #########
|
|
104
|
+
#######################################
|
|
105
|
+
|
|
106
|
+
IAW = dict()
|
|
107
|
+
IAW["Image_number"] = {}
|
|
108
|
+
IAW["Image_number"]["label"] = "Image number"
|
|
109
|
+
# START_TIP
|
|
110
|
+
IAW["Image_number"]["tips"] = \
|
|
111
|
+
f"""Selects the image number to analyze. This number should only be changed when specimen(s) are
|
|
112
|
+
invisible on the first image (e.g., in the case of appearing colonies of bacteria), never otherwise.
|
|
113
|
+
When the specimen(s) are invisible, read more advanced images until some material can be detected.
|
|
114
|
+
NB:
|
|
115
|
+
- When the data is stored as images, this image number comes from alphanumerical sorting of original
|
|
116
|
+
image labels.
|
|
117
|
+
"""
|
|
118
|
+
# END_TIP
|
|
119
|
+
|
|
120
|
+
IAW["several_blob_per_arena"] = {}
|
|
121
|
+
IAW["several_blob_per_arena"]["label"] = "One specimen per arena"
|
|
122
|
+
# START_TIP
|
|
123
|
+
IAW["several_blob_per_arena"]["tips"] = \
|
|
124
|
+
f"""Select this option if there is only one specimen (e.g., a cell or connected colony) per arena. If
|
|
125
|
+
multiple specimens exist (or will be present) in an arena, unselect this option.
|
|
126
|
+
NB:
|
|
127
|
+
- This option is selected by default.
|
|
128
|
+
"""
|
|
129
|
+
# END_TIP
|
|
130
|
+
|
|
131
|
+
IAW["Scale_with"] = {}
|
|
132
|
+
IAW["Scale_with"]["label"] = "Scale with"
|
|
133
|
+
# START_TIP
|
|
134
|
+
IAW["Scale_with"]["tips"] = \
|
|
135
|
+
f"""Specify how to compute true pixel size (in mm). Cellects can determine this scale using:
|
|
136
|
+
- Image width (horizontal dimension)
|
|
137
|
+
- Specimen width on first image (usable when specimens share consistent width)
|
|
138
|
+
NB:
|
|
139
|
+
- Advanced parameters allow disabling scaling and outputting in pixels.
|
|
140
|
+
- Using specimen width reduces initial detection efficiency. We recommend using image width unless
|
|
141
|
+
specimen dimensions are known with higher accuracy than imaging equipment.
|
|
142
|
+
- Pixel size is stored in a file named `software_settings.csv`.
|
|
143
|
+
"""
|
|
144
|
+
# END_TIP
|
|
145
|
+
|
|
146
|
+
IAW["Scale_size"] = {}
|
|
147
|
+
IAW["Scale_size"]["label"] = "Scale size"
|
|
148
|
+
# START_TIP
|
|
149
|
+
IAW["Scale_size"]["tips"] = \
|
|
150
|
+
f"""The *Scale size* is the actual length (in mm) corresponding to scaling reference.
|
|
151
|
+
NB:
|
|
152
|
+
- This value enables conversion from pixel coordinates to physical dimensions.
|
|
153
|
+
"""
|
|
154
|
+
# END_TIP
|
|
155
|
+
|
|
156
|
+
IAW["Select_and_draw"] = {}
|
|
157
|
+
IAW["Select_and_draw"]["label"] = "Select and draw"
|
|
158
|
+
# START_TIP
|
|
159
|
+
IAW["Select_and_draw"]["tips"] = \
|
|
160
|
+
f"""*Select and draw* allows the user to inform Cellects about specimen (*Cell*) and background (*Back*)
|
|
161
|
+
areas in images. To use, click *Cell* or *Back* button (button color changes), then:
|
|
162
|
+
- Click and drag mouse on image to mark corresponding area
|
|
163
|
+
- Numbered drawings appear below buttons for reference
|
|
164
|
+
- (if needed) Click numbered drawing to remove selection.
|
|
165
|
+
NB:
|
|
166
|
+
- By default, this tool only works for the first folder when analyzing multiple folders. Advanced
|
|
167
|
+
parameters include an option to use these same masks in multiple folders.
|
|
168
|
+
- To apply saved masks (e.g., background or specimen initiation regions) across selected folders,
|
|
169
|
+
enable *Keep Cell and Back drawing for all folders* in *Advanced parameters*.
|
|
170
|
+
"""
|
|
171
|
+
# END_TIP
|
|
172
|
+
|
|
173
|
+
IAW["Draw_buttons"] = {}
|
|
174
|
+
IAW["Draw_buttons"]["label"] = "Draw buttons"
|
|
175
|
+
# START_TIP
|
|
176
|
+
IAW["Draw_buttons"]["tips"] = \
|
|
177
|
+
f"""Click the *Cell* or *Back* button and draw a corresponding area on the image by clicking and holding
|
|
178
|
+
mouse on the image.
|
|
179
|
+
"""
|
|
180
|
+
# END_TIP
|
|
181
|
+
|
|
182
|
+
IAW["Advanced_mode"] = {}
|
|
183
|
+
IAW["Advanced_mode"]["label"] = "Advanced mode"
|
|
184
|
+
# START_TIP
|
|
185
|
+
IAW["Advanced_mode"]["tips"] = \
|
|
186
|
+
f"""The *Advanced mode* enables fine tuning of image analysis parameters for:
|
|
187
|
+
- Custom color space combinations (e.g., HSV, HLS)
|
|
188
|
+
- Applying filters before segmentation
|
|
189
|
+
- Combining segmentations using logical operators
|
|
190
|
+
- Accessing rolling window and Kmeans algorithms
|
|
191
|
+
NB:
|
|
192
|
+
- Useful for reusing validated parameter sets or testing alternative methods.
|
|
193
|
+
"""
|
|
194
|
+
# END_TIP
|
|
195
|
+
|
|
196
|
+
IAW["Color_combination"] = {}
|
|
197
|
+
IAW["Color_combination"]["label"] = "Color combination"
|
|
198
|
+
# START_TIP
|
|
199
|
+
IAW["Color_combination"]["tips"] = \
|
|
200
|
+
f"""Color spaces are transformations of the original BGR (Blue Green Red) image Instead of defining an
|
|
201
|
+
image by 3 colors, they transform it into 3 different visual properties
|
|
202
|
+
- hsv: hue (color), saturation, value (lightness)
|
|
203
|
+
- hls: hue (color), lightness, saturation
|
|
204
|
+
- lab: Lightness, Red/Green, Blue/Yellow
|
|
205
|
+
- luv and yuv: l and y are Lightness, u and v are related to colors
|
|
206
|
+
"""
|
|
207
|
+
# END_TIP
|
|
208
|
+
|
|
209
|
+
IAW["Logical_operator"] = {}
|
|
210
|
+
IAW["Logical_operator"]["label"] = "Logical operator"
|
|
211
|
+
# START_TIP
|
|
212
|
+
IAW["Logical_operator"]["tips"] = \
|
|
213
|
+
f"""The *Logical operator* defines how to combine results from distinct segmentations (e.g., merging the
|
|
214
|
+
segmentation resulting from a specific color space transformation and filtering with a different
|
|
215
|
+
one). Supported operators: AND, OR, XOR.
|
|
216
|
+
"""
|
|
217
|
+
# END_TIP
|
|
218
|
+
|
|
219
|
+
IAW["Filter"] = {}
|
|
220
|
+
IAW["Filter"]["label"] = "Filter"
|
|
221
|
+
# START_TIP
|
|
222
|
+
IAW["Filter"]["tips"] = \
|
|
223
|
+
f"""Apply a filter to preprocess images before segmentation.
|
|
224
|
+
NB:
|
|
225
|
+
- Filtering can improve segmentation accuracy by emphasizing relevant image features.
|
|
226
|
+
"""
|
|
227
|
+
# END_TIP
|
|
228
|
+
|
|
229
|
+
IAW["Rolling_window_segmentation"] = {}
|
|
230
|
+
IAW["Rolling_window_segmentation"]["label"] = "Rolling window segmentation"
|
|
231
|
+
# START_TIP
|
|
232
|
+
IAW["Rolling_window_segmentation"]["tips"] = \
|
|
233
|
+
f"""Segments image regions using a rolling window approach to detect local intensity valleys. The method
|
|
234
|
+
applies Otsu's thresholding locally on each window.
|
|
235
|
+
"""
|
|
236
|
+
# END_TIP
|
|
237
|
+
|
|
238
|
+
IAW["Kmeans"] = {}
|
|
239
|
+
IAW["Kmeans"]["label"] = "Kmeans"
|
|
240
|
+
# START_TIP
|
|
241
|
+
IAW["Kmeans"]["tips"] = \
|
|
242
|
+
f"""The *Kmeans* algorithm clusters pixels into a specified number of categories (2
|
|
243
|
+
-5) to identify specimen regions within the image.
|
|
244
|
+
"""
|
|
245
|
+
# END_TIP
|
|
246
|
+
|
|
247
|
+
IAW["Generate_analysis_options"] = {}
|
|
248
|
+
IAW["Generate_analysis_options"]["label"] = "Generate analysis options"
|
|
249
|
+
# START_TIP
|
|
250
|
+
IAW["Generate_analysis_options"]["tips"] = \
|
|
251
|
+
f"""Cellects proposes algorithms to automatically determine optimal specimen detection parameters on the
|
|
252
|
+
first or last image:
|
|
253
|
+
- **Basic** → provides suggestions in minutes. Alternatively, the user can switch to *Advanced mode*
|
|
254
|
+
to review or modify more specific settings.
|
|
255
|
+
NB:
|
|
256
|
+
- Selecting *Basic* (or *Apply current config*) will trigger an orange working message during
|
|
257
|
+
processing.
|
|
258
|
+
"""
|
|
259
|
+
# END_TIP
|
|
260
|
+
|
|
261
|
+
IAW["Select_option_to_read"] = {}
|
|
262
|
+
IAW["Select_option_to_read"]["label"] = "Select option to read"
|
|
263
|
+
# START_TIP
|
|
264
|
+
IAW["Select_option_to_read"]["tips"] = \
|
|
265
|
+
f"""Choose the option producing optimal segmentation results. This menu appears after generating
|
|
266
|
+
analysis options, allowing direct quality assessment. For example, if Option 1 shows correct
|
|
267
|
+
detection (e.g., 6 spots in 6 arenas), click *Yes*. Otherwise, improve analysis via:
|
|
268
|
+
- Adjusting arena/spot shapes or sizes
|
|
269
|
+
- Using *Select and draw* to annotate specimens/background
|
|
270
|
+
- Manual configuration in advanced mode → Test changes with *Apply current config*
|
|
271
|
+
NB:
|
|
272
|
+
- Confirm when magenta/pink contours match expected positions and counts.
|
|
273
|
+
"""
|
|
274
|
+
# END_TIP
|
|
275
|
+
|
|
276
|
+
IAW["Arena_shape"] = {}
|
|
277
|
+
IAW["Arena_shape"]["label"] = "Arena shape"
|
|
278
|
+
# START_TIP
|
|
279
|
+
IAW["Arena_shape"]["tips"] = \
|
|
280
|
+
f"""Specifies whether the specimen(s) can move in a circular or rectangular arena.
|
|
281
|
+
"""
|
|
282
|
+
# END_TIP
|
|
283
|
+
|
|
284
|
+
IAW["Spot_shape"] = {}
|
|
285
|
+
IAW["Spot_shape"]["label"] = "Set spot shape"
|
|
286
|
+
# START_TIP
|
|
287
|
+
IAW["Spot_shape"]["tips"] = \
|
|
288
|
+
f"""Defines the expected shape of specimens within arenas.
|
|
289
|
+
"""
|
|
290
|
+
# END_TIP
|
|
291
|
+
|
|
292
|
+
IAW["Spot_size"] = {}
|
|
293
|
+
IAW["Spot_size"]["label"] = "Set spot size"
|
|
294
|
+
# START_TIP
|
|
295
|
+
IAW["Spot_size"]["tips"] = \
|
|
296
|
+
f"""Initial horizontal size of the specimen(s) (in mm). If similar across all specimens, this can also
|
|
297
|
+
be used as a scale.
|
|
298
|
+
"""
|
|
299
|
+
# END_TIP
|
|
300
|
+
|
|
301
|
+
IAW["Video_delimitation"] = {}
|
|
302
|
+
IAW["Video_delimitation"]["label"] = "Video delimitation"
|
|
303
|
+
# START_TIP
|
|
304
|
+
IAW["Video_delimitation"]["tips"] = \
|
|
305
|
+
f"""After confirming initial detection, automatic video delimitation results appear in blue. Click
|
|
306
|
+
*Yes* if accurate or *No* for:
|
|
307
|
+
- A slower, higher precision algorithm.
|
|
308
|
+
- Manual delineation option.
|
|
309
|
+
"""
|
|
310
|
+
# END_TIP
|
|
311
|
+
|
|
312
|
+
IAW["Last_image_question"] = {}
|
|
313
|
+
IAW["Last_image_question"]["label"] = "Last image question"
|
|
314
|
+
# START_TIP
|
|
315
|
+
IAW["Last_image_question"]["tips"] = \
|
|
316
|
+
f"""If parameters might fail on later images, test them first on the final frame:
|
|
317
|
+
- *Yes* → validates with last image before tracking.
|
|
318
|
+
- *No* → proceeds directly to video analysis.
|
|
319
|
+
"""
|
|
320
|
+
# END_TIP
|
|
321
|
+
|
|
322
|
+
IAW["Start_differs_from_arena"] = {}
|
|
323
|
+
IAW["Start_differs_from_arena"]["label"] = "Check if the medium at starting position differs from the rest of the arena"
|
|
324
|
+
# START_TIP
|
|
325
|
+
IAW["Start_differs_from_arena"]["tips"] = \
|
|
326
|
+
f"""Enable if the substrate differs between initial position and arena growth area (e.g., nutritive gel
|
|
327
|
+
vs. agar). Disable for homogeneous substrates.
|
|
328
|
+
"""
|
|
329
|
+
# END_TIP
|
|
330
|
+
|
|
331
|
+
IAW["Save_image_analysis"] = {}
|
|
332
|
+
IAW["Save_image_analysis"]["label"] = "Save image analysis"
|
|
333
|
+
# START_TIP
|
|
334
|
+
IAW["Save_image_analysis"]["tips"] = \
|
|
335
|
+
f"""Complete the analysis of the current image. Clicking this button analyzes only one image. To analyze
|
|
336
|
+
video(s), click *Next*.
|
|
337
|
+
NB:
|
|
338
|
+
- When analyzing a single specimen per arena, keeps the largest connected component.
|
|
339
|
+
- Saves all selected descriptors in .csv format for the current image and generates a validation
|
|
340
|
+
image to assess segmentation accuracy.
|
|
341
|
+
"""
|
|
342
|
+
# END_TIP
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
#################################################
|
|
346
|
+
######### Video analysis Window #########
|
|
347
|
+
#################################################
|
|
348
|
+
|
|
349
|
+
VAW = dict()
|
|
350
|
+
VAW["Arena_to_analyze"] = {}
|
|
351
|
+
VAW["Arena_to_analyze"]["label"] = "Arena to analyze"
|
|
352
|
+
# START_TIP
|
|
353
|
+
VAW["Arena_to_analyze"]["tips"] = \
|
|
354
|
+
f"""This arena number selects a specific arena in the current folder. The user can choose an arena,
|
|
355
|
+
click *Detection* to load and analyze it, then *Read* results.
|
|
356
|
+
NB:
|
|
357
|
+
- Cellects automatically names the arena by their position (left to right, top to bottom).
|
|
358
|
+
- For single arena setups, use 1.
|
|
359
|
+
- *Post processing* triggers *Detection*, which in turn triggers *Load One arena*.
|
|
360
|
+
- Videos can be saved (as .npy files) for later analysis using the Advanced parameter *Keep
|
|
361
|
+
unaltered videos*.
|
|
362
|
+
"""
|
|
363
|
+
# END_TIP
|
|
364
|
+
|
|
365
|
+
VAW["Maximal_growth_factor"] = {}
|
|
366
|
+
VAW["Maximal_growth_factor"]["label"] = "Maximal growth factor"
|
|
367
|
+
# START_TIP
|
|
368
|
+
VAW["Maximal_growth_factor"]["tips"] = \
|
|
369
|
+
f"""This is the maximum allowable proportion of image area that may be covered by specimen movement
|
|
370
|
+
between frames. Adjust accordingly:
|
|
371
|
+
- Increase if specimen size is underestimated.
|
|
372
|
+
- Decrease if specimen size is overestimated.
|
|
373
|
+
NB:
|
|
374
|
+
- Precisely, this defines an upper bound on relative coverage changes between sequential images.
|
|
375
|
+
"""
|
|
376
|
+
# END_TIP
|
|
377
|
+
|
|
378
|
+
VAW["Temporal_smoothing"] = {}
|
|
379
|
+
VAW["Temporal_smoothing"]["label"] = "Temporal smoothing"
|
|
380
|
+
# START_TIP
|
|
381
|
+
VAW["Temporal_smoothing"]["tips"] = \
|
|
382
|
+
f"""Applies temporal smoothing to reduce noise and highlight long
|
|
383
|
+
-term trends by averaging pixel intensity changes. Use when analyzing slope
|
|
384
|
+
-based segmentation results.
|
|
385
|
+
NB:
|
|
386
|
+
- This uses a moving window algorithm on pixel intensity curves over time.
|
|
387
|
+
- Excessive iterations produce constant values, preventing accurate detection.
|
|
388
|
+
"""
|
|
389
|
+
# END_TIP
|
|
390
|
+
|
|
391
|
+
VAW["Segmentation_method"] = {}
|
|
392
|
+
VAW["Segmentation_method"]["label"] = "Segmentation method"
|
|
393
|
+
# START_TIP
|
|
394
|
+
VAW["Segmentation_method"]["tips"] = \
|
|
395
|
+
f"""Cellects includes five video tracking options:
|
|
396
|
+
- **Frame option**: Applies the image analysis algorithm frame by frame, without temporal dynamics.
|
|
397
|
+
- **Threshold option**: Compares pixel intensity with the average intensity of the whole image at
|
|
398
|
+
each time step.
|
|
399
|
+
- **Slope option**: Compares pixel intensity slopes with an automatically defined threshold.
|
|
400
|
+
- **T and S option**: logical AND of threshold and slope options.
|
|
401
|
+
- **T or S option**: logical OR of threshold and slope options.
|
|
402
|
+
NB:
|
|
403
|
+
- Selecting the *Compute all options* before dunning *Detection* allows method comparison. Once
|
|
404
|
+
analysis completes. Once the analysis completed, select one option and click *Read*.
|
|
405
|
+
- Computing only one option is faster and requires less memory.
|
|
406
|
+
- When *Heterogeneous background* or *Grid segmentation* has been selected in the image analysis
|
|
407
|
+
window, only the *Frame* option remains available.
|
|
408
|
+
"""
|
|
409
|
+
# END_TIP
|
|
410
|
+
|
|
411
|
+
VAW["Load_one_arena"] = {}
|
|
412
|
+
VAW["Load_one_arena"]["label"] = "Load one arena"
|
|
413
|
+
# START_TIP
|
|
414
|
+
VAW["Load_one_arena"]["tips"] = \
|
|
415
|
+
f"""Clicking this button loads the arena associated with *Arena to analyze*. The center of the window
|
|
416
|
+
displays the first frame of that arena's video. Click *Read* to review the full video.
|
|
417
|
+
"""
|
|
418
|
+
# END_TIP
|
|
419
|
+
|
|
420
|
+
VAW["Detection"] = {}
|
|
421
|
+
VAW["Detection"]["label"] = "Detection"
|
|
422
|
+
# START_TIP
|
|
423
|
+
VAW["Detection"]["tips"] = \
|
|
424
|
+
f"""*Detection* applies a (or all) segmentation methods to one arena. Once finished, click *Read* to
|
|
425
|
+
view the detection result. If correct, answer *Done* to proceed with tuning parameters for post
|
|
426
|
+
processing.
|
|
427
|
+
"""
|
|
428
|
+
# END_TIP
|
|
429
|
+
|
|
430
|
+
VAW["Read"] = {}
|
|
431
|
+
VAW["Read"]["label"] = "Read"
|
|
432
|
+
# START_TIP
|
|
433
|
+
VAW["Read"]["tips"] = \
|
|
434
|
+
f"""Clicking *Read* starts the video display corresponding to the current state of the analysis.
|
|
435
|
+
"""
|
|
436
|
+
# END_TIP
|
|
437
|
+
|
|
438
|
+
VAW["Fading_detection"] = {}
|
|
439
|
+
VAW["Fading_detection"]["label"] = "Fading detection"
|
|
440
|
+
# START_TIP
|
|
441
|
+
VAW["Fading_detection"]["tips"] = \
|
|
442
|
+
f"""*Fading detection* monitors when specimens leave previously occupied areas, useful for moving
|
|
443
|
+
organisms rather than static growth. Uncheck this option if not needed. Set a value between minus
|
|
444
|
+
one and one to control sensitivity:
|
|
445
|
+
- Near minus one: Minimal false removal of specimen traces.
|
|
446
|
+
- Near one: High risk of over
|
|
447
|
+
-removal from all areas.
|
|
448
|
+
"""
|
|
449
|
+
# END_TIP
|
|
450
|
+
|
|
451
|
+
VAW["Post_processing"] = {}
|
|
452
|
+
VAW["Post_processing"]["label"] = "Post processing"
|
|
453
|
+
# START_TIP
|
|
454
|
+
VAW["Post_processing"]["tips"] = \
|
|
455
|
+
f"""*Post processing* applies detection algorithms with additional enhancements:
|
|
456
|
+
- Binary operations: opening, closing, logical ops.
|
|
457
|
+
- Fading detection* tracking: when specimen(s) may leave areas (optional).
|
|
458
|
+
- *Correct errors around initial shape*: when the contour of the initial position of the specimen is
|
|
459
|
+
hard to detect (optional).
|
|
460
|
+
- *Connect distant shapes*: when the specimen's heterogeneity create wrong disconnections in the
|
|
461
|
+
video detection (optional).
|
|
462
|
+
- *Prevent fast growth near periphery*: when arena's border (typically petri dishes) may be wrongly
|
|
463
|
+
detected as specimen (optional).
|
|
464
|
+
NB:
|
|
465
|
+
- Once Post processing works, the user can click “*Done*” to *Step 2: Tune fading and advanced
|
|
466
|
+
parameters to improve Post processing*, and then *Run All* arenas.
|
|
467
|
+
"""
|
|
468
|
+
# END_TIP
|
|
469
|
+
|
|
470
|
+
VAW["Save_one_result"] = {}
|
|
471
|
+
VAW["Save_one_result"]["label"] = "Save one result"
|
|
472
|
+
# START_TIP
|
|
473
|
+
VAW["Save_one_result"]["tips"] = \
|
|
474
|
+
f"""Complete the current video analysis by clicking this button for single arena processing. Saving
|
|
475
|
+
includes:
|
|
476
|
+
- Calculating all selected descriptors (.csv) per frame.
|
|
477
|
+
- Generating validation videos for detection verification.
|
|
478
|
+
- Storing configuration parameters for reproducibility.
|
|
479
|
+
NB:
|
|
480
|
+
- This action will overwrite results and validation data for the current arena.
|
|
481
|
+
"""
|
|
482
|
+
# END_TIP
|
|
483
|
+
|
|
484
|
+
VAW["Run_All"] = {}
|
|
485
|
+
VAW["Run_All"]["label"] = "Run All"
|
|
486
|
+
# START_TIP
|
|
487
|
+
VAW["Run_All"]["tips"] = \
|
|
488
|
+
f"""Apply validated parameters to all arenas by clicking *Run All*. This action:
|
|
489
|
+
- Generates full
|
|
490
|
+
-resolution video outputs (storage
|
|
491
|
+
-intensive)
|
|
492
|
+
- Processes videos sequentially with real time visualization
|
|
493
|
+
- Calculates selected descriptors for each frame
|
|
494
|
+
- Produces validation content at multiple intervals
|
|
495
|
+
- Preserves current configuration settings
|
|
496
|
+
"""
|
|
497
|
+
# END_TIP
|
|
498
|
+
|
|
499
|
+
VAW["Save_all_choices"] = {}
|
|
500
|
+
VAW["Save_all_choices"]["label"] = "Save all choices"
|
|
501
|
+
# START_TIP
|
|
502
|
+
VAW["Save_all_choices"]["tips"] = \
|
|
503
|
+
f"""Clicking *Save all choices* writes/updates configuration files to preserve analysis parameters for
|
|
504
|
+
future replication.
|
|
505
|
+
"""
|
|
506
|
+
# END_TIP
|
|
507
|
+
|
|
508
|
+
#################################################
|
|
509
|
+
######## Multiple folders Window ########
|
|
510
|
+
#################################################
|
|
511
|
+
|
|
512
|
+
MF = dict()
|
|
513
|
+
MF["Check_to_select_all_folders"] = {}
|
|
514
|
+
MF["Check_to_select_all_folders"]["label"] = "Check to select all folders"
|
|
515
|
+
# START_TIP
|
|
516
|
+
MF["Check_to_select_all_folders"]["tips"] = \
|
|
517
|
+
f"""Select this option to run the analysis on all folders containing images matching the *Image prefix*
|
|
518
|
+
and *Images extension*. Otherwise, use Ctrl/Cmd to select specific folders for analysis.
|
|
519
|
+
NB:
|
|
520
|
+
- This setting affects only the *Run All* functionality.
|
|
521
|
+
- To apply saved masks (e.g., background or specimen initiation regions) across selected folders,
|
|
522
|
+
enable *Keep Cell and Back drawing for all folders* in *Advanced parameters*.
|
|
523
|
+
"""
|
|
524
|
+
# END_TIP
|
|
525
|
+
|
|
526
|
+
#################################################
|
|
527
|
+
######## Required Output Window ########
|
|
528
|
+
#################################################
|
|
529
|
+
|
|
530
|
+
RO = dict()
|
|
531
|
+
RO["coord_specimen"] = {}
|
|
532
|
+
RO["coord_specimen"]["label"] = "Pixels covered by the specimen(s)"
|
|
533
|
+
# START_TIP
|
|
534
|
+
RO["coord_specimen"]["tips"] = \
|
|
535
|
+
f"""Save a .npy file containing coordinates (t, y, x) of specimen pixel presence as detected by current
|
|
536
|
+
parameters.
|
|
537
|
+
NB:
|
|
538
|
+
- These files may consume significant memory depending on the total frame count.
|
|
539
|
+
"""
|
|
540
|
+
# END_TIP
|
|
541
|
+
|
|
542
|
+
RO["Graph"] = {}
|
|
543
|
+
RO["Graph"]["label"] = "Graph of the specimen(s) (or network)"
|
|
544
|
+
# START_TIP
|
|
545
|
+
RO["Graph"]["tips"] = \
|
|
546
|
+
f"""Compute a geometrical graph describing the specimen based on current detection parameters. Cellects
|
|
547
|
+
generates this graph using the skeleton of the largest connected component per frame. If network
|
|
548
|
+
detection is enabled, it will be computed on the detected network instead. The output includes:
|
|
549
|
+
- A .csv file for vertices with coordinates (t, y, x), IDs, tip status, part of the specimen's
|
|
550
|
+
initial position, connection status with other vertices.
|
|
551
|
+
- A .csv file for edges with IDs, vertex pairs, lengths, average width, and intensity.
|
|
552
|
+
NB:
|
|
553
|
+
- These files may consume significant memory depending on the total frame count.
|
|
554
|
+
- Network and graph detection together are relevant only for organisms with a distinct internal
|
|
555
|
+
network (e.g., *Physarum polycephalum*).
|
|
556
|
+
"""
|
|
557
|
+
# END_TIP
|
|
558
|
+
|
|
559
|
+
RO["coord_oscillating"] = {}
|
|
560
|
+
RO["coord_oscillating"]["label"] = "Oscillating areas in the specimen(s)"
|
|
561
|
+
# START_TIP
|
|
562
|
+
RO["coord_oscillating"]["tips"] = \
|
|
563
|
+
f"""Compute and save (as .npy files) coordinates (t, y, x) of oscillating areas in the specimen(s). Two
|
|
564
|
+
files are generated: one for thickening regions and one for slimming regions.
|
|
565
|
+
"""
|
|
566
|
+
# END_TIP
|
|
567
|
+
|
|
568
|
+
RO["coord_network"] = {}
|
|
569
|
+
RO["coord_network"]["label"] = "Network in the specimen(s)"
|
|
570
|
+
# START_TIP
|
|
571
|
+
RO["coord_network"]["tips"] = \
|
|
572
|
+
f"""Detect and save (as .npy file) coordinates (t, y, x) of a distinct network within the specimen(s).
|
|
573
|
+
specimen(s).
|
|
574
|
+
"""
|
|
575
|
+
# END_TIP
|
|
576
|
+
|
|
577
|
+
####################################################
|
|
578
|
+
######## Advanced Parameters Window ########
|
|
579
|
+
####################################################
|
|
580
|
+
|
|
581
|
+
AP = dict()
|
|
582
|
+
AP["Crop_images"] = {}
|
|
583
|
+
AP["Crop_images"]["label"] = "Automatically crop images"
|
|
584
|
+
# START_TIP
|
|
585
|
+
AP["Crop_images"]["tips"] = \
|
|
586
|
+
f"""Uses initial image detection to crop all images and improve arena/last image detection.
|
|
587
|
+
NB:
|
|
588
|
+
- Unselect this option if analysis fails or crashes during image analysis.
|
|
589
|
+
"""
|
|
590
|
+
# END_TIP
|
|
591
|
+
|
|
592
|
+
AP["Subtract_background"] = {}
|
|
593
|
+
AP["Subtract_background"]["label"] = "Subtract background"
|
|
594
|
+
# START_TIP
|
|
595
|
+
AP["Subtract_background"]["tips"] = \
|
|
596
|
+
f"""Takes the first image and subtracts it from subsequent images. This can improve or degrade detection
|
|
597
|
+
depending on dataset characteristics.
|
|
598
|
+
"""
|
|
599
|
+
# END_TIP
|
|
600
|
+
|
|
601
|
+
AP["Keep_drawings"] = {}
|
|
602
|
+
AP["Keep_drawings"]["label"] = "Keep Cell and Back drawings for all folders"
|
|
603
|
+
# START_TIP
|
|
604
|
+
AP["Keep_drawings"]["tips"] = \
|
|
605
|
+
f"""During initial image analysis, if the user drew cell/back regions to assist detection, this option
|
|
606
|
+
saves and uses these annotations across all folders. In summary:
|
|
607
|
+
- **Checked** → retain annotations for all folders
|
|
608
|
+
- **Unchecked** → apply only to current folder
|
|
609
|
+
"""
|
|
610
|
+
# END_TIP
|
|
611
|
+
|
|
612
|
+
AP["Correct_errors_around_initial"] = {}
|
|
613
|
+
AP["Correct_errors_around_initial"]["label"] = "Correct errors around initial specimen's position"
|
|
614
|
+
# START_TIP
|
|
615
|
+
AP["Correct_errors_around_initial"]["tips"] = \
|
|
616
|
+
f"""Applies an algorithm to correct detection errors near the initial specimen position due to color
|
|
617
|
+
variations (e.g., from nutrient patches). Technical workflow:
|
|
618
|
+
- Identifies potential gaps around initial position
|
|
619
|
+
- Monitors local growth velocity
|
|
620
|
+
- Fills gaps using growth patterns from adjacent pixels
|
|
621
|
+
NB:
|
|
622
|
+
- ⚠️ Not recommended if the substrate has the same transparency everywhere (i.e. no difference
|
|
623
|
+
between starting and growth regions).
|
|
624
|
+
"""
|
|
625
|
+
# END_TIP
|
|
626
|
+
|
|
627
|
+
AP["Prevent_fast_growth_near_periphery"] = {}
|
|
628
|
+
AP["Prevent_fast_growth_near_periphery"]["label"] = "Prevent fast growth near periphery"
|
|
629
|
+
# START_TIP
|
|
630
|
+
AP["Prevent_fast_growth_near_periphery"]["tips"] = \
|
|
631
|
+
f"""During video analysis, prevents false specimen detection at arena borders by filtering rapid
|
|
632
|
+
periphery growth.
|
|
633
|
+
- **Checked** → Exclude fast
|
|
634
|
+
-moving detections near boundaries
|
|
635
|
+
- **Unchecked** → Use standard detection criteria
|
|
636
|
+
"""
|
|
637
|
+
# END_TIP
|
|
638
|
+
|
|
639
|
+
AP["Connect_distant_shapes"] = {}
|
|
640
|
+
AP["Connect_distant_shapes"]["label"] = "Connect distant shapes"
|
|
641
|
+
# START_TIP
|
|
642
|
+
AP["Connect_distant_shapes"]["tips"] = \
|
|
643
|
+
f"""Algorithm for connecting disjoint specimen regions in cases where there should be only one connected
|
|
644
|
+
specimen per arena. This is useful when the specimen's heterogeneity create wrong disconnections
|
|
645
|
+
and the detection is smaller than the true specimen. Technical implementation:
|
|
646
|
+
- Identifies disconnected subregions
|
|
647
|
+
- Analyzes local growth dynamics
|
|
648
|
+
- Recreates connections using spatially consistent growth patterns
|
|
649
|
+
NB:
|
|
650
|
+
- Increases analysis time substantially.
|
|
651
|
+
"""
|
|
652
|
+
# END_TIP
|
|
653
|
+
|
|
654
|
+
AP["Specimens_have_same_direction"] = {}
|
|
655
|
+
AP["Specimens_have_same_direction"]["label"] = "All specimens have the same direction"
|
|
656
|
+
# START_TIP
|
|
657
|
+
AP["Specimens_have_same_direction"]["tips"] = \
|
|
658
|
+
f"""Select to optimize arena detection for specimens moving move in the same direction.
|
|
659
|
+
- **Checked** → Uses motion pattern analysis for arena localization.
|
|
660
|
+
- **Unchecked** → Employs standard centroid
|
|
661
|
+
-based algorithm.
|
|
662
|
+
"""
|
|
663
|
+
# END_TIP
|
|
664
|
+
|
|
665
|
+
AP["Appearance_size_threshold"] = {}
|
|
666
|
+
AP["Appearance_size_threshold"]["label"] = "Appearance size threshold (automatic if checked)"
|
|
667
|
+
# START_TIP
|
|
668
|
+
AP["Appearance_size_threshold"]["tips"] = \
|
|
669
|
+
f"""Minimum pixel count threshold for identifying specimen emergence (e.g., bacterial colony formation).
|
|
670
|
+
- **Checked** → Automatic threshold calculation.
|
|
671
|
+
- **Unchecked** → Manual user
|
|
672
|
+
-defined threshold.
|
|
673
|
+
"""
|
|
674
|
+
# END_TIP
|
|
675
|
+
|
|
676
|
+
AP["Appearance_detection_method"] = {}
|
|
677
|
+
AP["Appearance_detection_method"]["label"] = "Appearance detection method"
|
|
678
|
+
# START_TIP
|
|
679
|
+
AP["Appearance_detection_method"]["tips"] = \
|
|
680
|
+
f"""Selection criteria for initial specimen detection:
|
|
681
|
+
- Largest: Based on component size metric.
|
|
682
|
+
- Most central: Based on arena center proximity.
|
|
683
|
+
NB:
|
|
684
|
+
- Applicable only to progressively emerging specimens.
|
|
685
|
+
"""
|
|
686
|
+
# END_TIP
|
|
687
|
+
|
|
688
|
+
AP["Mesh_side_length"] = {}
|
|
689
|
+
AP["Mesh_side_length"]["label"] = "Mesh side length"
|
|
690
|
+
# START_TIP
|
|
691
|
+
AP["Mesh_side_length"]["tips"] = \
|
|
692
|
+
f"""Pixel dimension for analysis window size.
|
|
693
|
+
NB:
|
|
694
|
+
- Must not exceed minimum image dimension
|
|
695
|
+
"""
|
|
696
|
+
# END_TIP
|
|
697
|
+
|
|
698
|
+
AP["Mesh_step_length"] = {}
|
|
699
|
+
AP["Mesh_step_length"]["label"] = "Mesh step"
|
|
700
|
+
# START_TIP
|
|
701
|
+
AP["Mesh_step_length"]["tips"] = \
|
|
702
|
+
f"""The size of the step (in pixels) between consecutive rolling window positions.
|
|
703
|
+
NB:
|
|
704
|
+
- Must not exceed the mesh side length to ensure full coverage of the image.
|
|
705
|
+
"""
|
|
706
|
+
# END_TIP
|
|
707
|
+
|
|
708
|
+
AP["Mesh_minimal_intensity_variation"] = {}
|
|
709
|
+
AP["Mesh_minimal_intensity_variation"]["label"] = "Mesh minimal intensity variation"
|
|
710
|
+
# START_TIP
|
|
711
|
+
AP["Mesh_minimal_intensity_variation"]["tips"] = \
|
|
712
|
+
f"""The minimal variation in intensity to consider that a given window does contain the specimen(s).
|
|
713
|
+
NB:
|
|
714
|
+
- This threshold is an intensity value ranging from 0 to 255 (generally small).
|
|
715
|
+
- Correspond to the level of noise in the background.
|
|
716
|
+
"""
|
|
717
|
+
# END_TIP
|
|
718
|
+
|
|
719
|
+
AP["Expected_oscillation_period"] = {}
|
|
720
|
+
AP["Expected_oscillation_period"]["label"] = "Expected oscillation period"
|
|
721
|
+
# START_TIP
|
|
722
|
+
AP["Expected_oscillation_period"]["tips"] = \
|
|
723
|
+
f"""The period (in minutes) of biological oscillations to detect within the specimen(s). Computation is
|
|
724
|
+
based on luminosity variations.
|
|
725
|
+
"""
|
|
726
|
+
# END_TIP
|
|
727
|
+
|
|
728
|
+
AP["Minimal_oscillating_cluster_size"] = {}
|
|
729
|
+
AP["Minimal_oscillating_cluster_size"]["label"] = "Minimal oscillating cluster size"
|
|
730
|
+
# START_TIP
|
|
731
|
+
AP["Minimal_oscillating_cluster_size"]["tips"] = \
|
|
732
|
+
f"""When looking for oscillatory patterns, Cellects detects connected components that are thickening or
|
|
733
|
+
slimming synchronously in the specimen(s). This parameter thresholds the minimal size of these
|
|
734
|
+
groups of connected pixels. This threshold is useful to filter out small noisy oscillations.
|
|
735
|
+
"""
|
|
736
|
+
# END_TIP
|
|
737
|
+
|
|
738
|
+
AP["Spatio_temporal_scaling"] = {}
|
|
739
|
+
AP["Spatio_temporal_scaling"]["label"] = "Spatio-temporal scaling"
|
|
740
|
+
# START_TIP
|
|
741
|
+
AP["Spatio_temporal_scaling"]["tips"] = \
|
|
742
|
+
f"""Defines the spatiotemporal scale of the dataset:
|
|
743
|
+
- Time between images or frames (minutes).
|
|
744
|
+
- An option to convert areas/distances from pixels to mm/mm².
|
|
745
|
+
"""
|
|
746
|
+
# END_TIP
|
|
747
|
+
|
|
748
|
+
AP["Parallel_analysis"] = {}
|
|
749
|
+
AP["Parallel_analysis"]["label"] = "Run analysis in parallel"
|
|
750
|
+
# START_TIP
|
|
751
|
+
AP["Parallel_analysis"]["tips"] = \
|
|
752
|
+
f"""Allow the use of more than one core of the computer processor.
|
|
753
|
+
- **Checked** → Uses multiple CPU cores to analyze arenas in parallel (faster).
|
|
754
|
+
- **Unchecked** → Single core analysis.
|
|
755
|
+
"""
|
|
756
|
+
# END_TIP
|
|
757
|
+
|
|
758
|
+
AP["Proc_max_core_nb"] = {}
|
|
759
|
+
AP["Proc_max_core_nb"]["label"] = "Proc max core number"
|
|
760
|
+
# START_TIP
|
|
761
|
+
AP["Proc_max_core_nb"]["tips"] = \
|
|
762
|
+
f"""Maximum number of logical CPU cores to use during analysis. The default value is set to the total
|
|
763
|
+
number of available CPU cores minus one.
|
|
764
|
+
"""
|
|
765
|
+
# END_TIP
|
|
766
|
+
|
|
767
|
+
AP["Minimal_RAM_let_free"] = {}
|
|
768
|
+
AP["Minimal_RAM_let_free"]["label"] = "Minimal RAM let free"
|
|
769
|
+
# START_TIP
|
|
770
|
+
AP["Minimal_RAM_let_free"]["tips"] = \
|
|
771
|
+
f"""Amount of RAM that should be left available for other programs. Setting to `0` gives Cellects all
|
|
772
|
+
memory, but increases crash risk if other apps are open.
|
|
773
|
+
"""
|
|
774
|
+
# END_TIP
|
|
775
|
+
|
|
776
|
+
AP["Lose_accuracy_to_save_RAM"] = {}
|
|
777
|
+
AP["Lose_accuracy_to_save_RAM"]["label"] = "Lose accuracy to save RAM"
|
|
778
|
+
# START_TIP
|
|
779
|
+
AP["Lose_accuracy_to_save_RAM"]["tips"] = \
|
|
780
|
+
f"""For low memory systems:
|
|
781
|
+
- Converts video from `np.float64` to `uint8`
|
|
782
|
+
- Saves RAM at the cost of a slight precision loss
|
|
783
|
+
"""
|
|
784
|
+
# END_TIP
|
|
785
|
+
|
|
786
|
+
AP["Video_fps"] = {}
|
|
787
|
+
AP["Video_fps"]["label"] = "Video fps"
|
|
788
|
+
# START_TIP
|
|
789
|
+
AP["Video_fps"]["tips"] = \
|
|
790
|
+
f"""Frames per second of validation videos.
|
|
791
|
+
"""
|
|
792
|
+
# END_TIP
|
|
793
|
+
|
|
794
|
+
AP["Keep_unaltered_videos"] = {}
|
|
795
|
+
AP["Keep_unaltered_videos"]["label"] = 'Keep unaltered videos'
|
|
796
|
+
# START_TIP
|
|
797
|
+
AP["Keep_unaltered_videos"]["tips"] = \
|
|
798
|
+
f"""Keeps unaltered `.npy` videos in hard drive.
|
|
799
|
+
- **Checked** → Rerunning the same analysis will be faster.
|
|
800
|
+
- **Unchecked** → These videos will be written and removed each run of the same analysis.
|
|
801
|
+
NB:
|
|
802
|
+
- Large files: it is recommended to remove them once analysis is entirely finalized.
|
|
803
|
+
"""
|
|
804
|
+
# END_TIP
|
|
805
|
+
|
|
806
|
+
AP["Save_processed_videos"] = {}
|
|
807
|
+
AP["Save_processed_videos"]["label"] = 'Save processed videos'
|
|
808
|
+
# START_TIP
|
|
809
|
+
AP["Save_processed_videos"]["tips"] = \
|
|
810
|
+
f"""Saves lightweight processed validation videos (recommended over unaltered videos). These videos
|
|
811
|
+
assess analysis accuracy and can be read in standard video players.
|
|
812
|
+
"""
|
|
813
|
+
# END_TIP
|
|
814
|
+
|
|
815
|
+
AP["Csc_for_video_analysis"] = {}
|
|
816
|
+
AP["Csc_for_video_analysis"]["label"] = 'Color space combination for video analysis'
|
|
817
|
+
# START_TIP
|
|
818
|
+
AP["Csc_for_video_analysis"]["tips"] = \
|
|
819
|
+
f"""Advanced option: Changes the way RGB processing directly in video tracking. Useful for testing new
|
|
820
|
+
color spaces without (re)running image analysis.
|
|
821
|
+
"""
|
|
822
|
+
# END_TIP
|
|
823
|
+
|
|
824
|
+
AP["Night_mode"] = {}
|
|
825
|
+
AP["Night_mode"]["label"] = 'Night mode'
|
|
826
|
+
# START_TIP
|
|
827
|
+
AP["Night_mode"]["tips"] = \
|
|
828
|
+
f"""Switches the application background between light and dark themes.
|
|
829
|
+
"""
|
|
830
|
+
# END_TIP
|
|
831
|
+
|
|
832
|
+
AP["Reset_all_settings"] = {}
|
|
833
|
+
AP["Reset_all_settings"]["label"] = 'Reset all settings'
|
|
834
|
+
# START_TIP
|
|
835
|
+
AP["Reset_all_settings"]["tips"] = \
|
|
836
|
+
f"""Useful when the software freezes with no apparent reason. To reset all settings, it removes the
|
|
837
|
+
config file in the current folder as well as the config file in the software folder. Then, it
|
|
838
|
+
retrieves and saves the default parameters.
|
|
839
|
+
"""
|
|
840
|
+
# END_TIP
|