small-fish-gui 1.0.3__tar.gz → 1.1.0__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-1.0.3 → small_fish_gui-1.1.0}/PKG-INFO +2 -1
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/pyproject.toml +2 -1
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/README.md +9 -1
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/gui/help_module.py +1 -1
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/pipeline/detection.py +47 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/LICENSE +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/README.md +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/.github/workflows/python-publish.yml +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/LICENSE +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/__init__.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/__main__.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/gui/__init__.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/gui/animation.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/gui/general_help_screenshot.png +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/gui/layout.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/gui/mapping_help_screenshot.png +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/gui/prompts.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/gui/segmentation_help_screenshot.png +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/gui/test.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/interface/__init__.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/interface/image.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/interface/output.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/interface/parameters.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/interface/testing.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/pipeline/_colocalisation.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/pipeline/_custom_errors.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/pipeline/_detection_visualisation.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/pipeline/_preprocess.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/pipeline/_segmentation.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/pipeline/_signaltonoise.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/pipeline/actions.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/pipeline/main.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/pipeline/test.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/requirements.txt +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/start.py +0 -0
- {small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: small_fish_gui
|
|
3
|
-
Version: 1.0
|
|
3
|
+
Version: 1.1.0
|
|
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/2Echoes/small_fish
|
|
6
6
|
Project-URL: Issues, https://github.com/2Echoes/small_fish/issues
|
|
@@ -10,6 +10,7 @@ Classifier: License :: OSI Approved :: BSD License
|
|
|
10
10
|
Classifier: Operating System :: OS Independent
|
|
11
11
|
Classifier: Programming Language :: Python :: 3
|
|
12
12
|
Requires-Python: >=3.8
|
|
13
|
+
Requires-Dist: big-fish==0.6.2
|
|
13
14
|
Requires-Dist: cellpose==3.0.7
|
|
14
15
|
Requires-Dist: czifile==2019.7.2
|
|
15
16
|
Requires-Dist: imageio==2.34.0
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "small_fish_gui"
|
|
7
|
-
version = "1.0
|
|
7
|
+
version = "1.1.0"
|
|
8
8
|
authors = [
|
|
9
9
|
{ name="Slimani Floric", email="floric.slimani@live.com" },
|
|
10
10
|
]
|
|
@@ -17,6 +17,7 @@ classifiers = [
|
|
|
17
17
|
"Operating System :: OS Independent",
|
|
18
18
|
]
|
|
19
19
|
dependencies = [
|
|
20
|
+
"big-fish==0.6.2",
|
|
20
21
|
"cellpose==3.0.7",
|
|
21
22
|
"czifile==2019.7.2",
|
|
22
23
|
"imageio==2.34.0",
|
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
# Small Fish
|
|
2
2
|
**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.
|
|
3
3
|
|
|
4
|
-
Cell segmentation is peformed using *cellpose* (published work) : https://github.com/MouseLand/cellpose
|
|
4
|
+
Cell segmentation (**2D**) is peformed using *cellpose* (published work) : https://github.com/MouseLand/cellpose; compatible with your own cellpose models.
|
|
5
5
|
|
|
6
6
|
Spot detection is performed via *big-fish* (published work) : https://github.com/fish-quant/big-fish
|
|
7
7
|
|
|
8
8
|
Time stacks are not yet supported.
|
|
9
9
|
|
|
10
|
+
## What can you do with small fish ?
|
|
11
|
+
|
|
12
|
+
- Single molecule quantification (including a lot of spatial features)
|
|
13
|
+
- Foci/Transcription site quantification
|
|
14
|
+
- Nuclear signal quantification
|
|
15
|
+
- Signal to noise analysis
|
|
16
|
+
- multichannel colocalisation
|
|
17
|
+
|
|
10
18
|
## Installation
|
|
11
19
|
|
|
12
20
|
It is higly recommanded to create a specific [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html) or [virtual](https://docs.python.org/3.6/library/venv.html) environnement to install small fish.
|
|
@@ -227,7 +227,7 @@ def _mapping_help() :
|
|
|
227
227
|
This window present the shape of your image : example (1080,1080,4)
|
|
228
228
|
1080x1080 are the xy dimension (pixel resolution); and 4 is the number of channel. Another example a 3D multichannel
|
|
229
229
|
stack could be (18,4,1080,1080)...
|
|
230
|
-
The machine understand the order of the information such as (1080,1080,4) positions are (0,1,2).
|
|
230
|
+
The machine understand the order of the information such as (1080,1080,4) positions are (0,1,2). It starts from zero!
|
|
231
231
|
The mapping purpose is to link the position to the type of informations, in this case we want :
|
|
232
232
|
|
|
233
233
|
x : 1
|
|
@@ -374,6 +374,38 @@ def launch_post_detection(image, spots, image_input_values: dict,) :
|
|
|
374
374
|
|
|
375
375
|
return spots, fov_res
|
|
376
376
|
|
|
377
|
+
def _compute_cell_snr(image: np.ndarray, bbox, spots, voxel_size, spot_size) :
|
|
378
|
+
|
|
379
|
+
min_y, min_x, max_y, max_x = bbox
|
|
380
|
+
image= image[min_y: max_y, min_x: max_x]
|
|
381
|
+
|
|
382
|
+
if len(spots) == 0 :
|
|
383
|
+
res = {
|
|
384
|
+
'snr_mean' : np.NaN,
|
|
385
|
+
'snr_median' : np.NaN,
|
|
386
|
+
'snr_std' : np.NaN,
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
return res
|
|
390
|
+
|
|
391
|
+
if len(spots[0]) == 3 :
|
|
392
|
+
Z,Y,X = zip(*spots)
|
|
393
|
+
spots = np.array(
|
|
394
|
+
list(zip(Y,X)),
|
|
395
|
+
dtype= int
|
|
396
|
+
)
|
|
397
|
+
voxel_size = voxel_size[1:]
|
|
398
|
+
spot_size = spot_size[1:]
|
|
399
|
+
|
|
400
|
+
snr_dict = compute_snr_spots(
|
|
401
|
+
image= image,
|
|
402
|
+
spots= spots,
|
|
403
|
+
spot_radius= spot_size,
|
|
404
|
+
voxel_size=voxel_size
|
|
405
|
+
)
|
|
406
|
+
|
|
407
|
+
return snr_dict
|
|
408
|
+
|
|
377
409
|
@add_default_loading
|
|
378
410
|
def launch_cell_extraction(acquisition_id, spots, clusters, image, nucleus_signal, cell_label, nucleus_label, user_parameters) :
|
|
379
411
|
|
|
@@ -414,6 +446,7 @@ def launch_cell_extraction(acquisition_id, spots, clusters, image, nucleus_signa
|
|
|
414
446
|
|
|
415
447
|
#Nucleus features : area is computed in bigfish
|
|
416
448
|
features_names += ['nucleus_mean_signal', 'nucleus_median_signal', 'nucleus_max_signal', 'nucleus_min_signal']
|
|
449
|
+
features_names += ['snr_mean', 'snr_median', 'snr_std']
|
|
417
450
|
|
|
418
451
|
result_frame = pd.DataFrame()
|
|
419
452
|
|
|
@@ -450,8 +483,22 @@ def launch_cell_extraction(acquisition_id, spots, clusters, image, nucleus_signa
|
|
|
450
483
|
compute_topography=True
|
|
451
484
|
)
|
|
452
485
|
|
|
486
|
+
#Signal to noise
|
|
487
|
+
snr_dict = _compute_cell_snr(
|
|
488
|
+
image,
|
|
489
|
+
cell_bbox,
|
|
490
|
+
spots=rna_coords,
|
|
491
|
+
voxel_size=voxel_size,
|
|
492
|
+
spot_size=user_parameters['spot_size']
|
|
493
|
+
)
|
|
494
|
+
|
|
495
|
+
snr_mean = snr_dict['snr_mean']
|
|
496
|
+
snr_median = snr_dict['snr_median']
|
|
497
|
+
snr_std = snr_dict['snr_std']
|
|
498
|
+
|
|
453
499
|
features = list(features)
|
|
454
500
|
features += [np.mean(nuc_signal), np.median(nuc_signal), np.max(nuc_signal), np.min(nuc_signal)]
|
|
501
|
+
features += [snr_mean, snr_median, snr_std]
|
|
455
502
|
|
|
456
503
|
features = [acquisition_id, cell_id, cell_bbox] + features
|
|
457
504
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/gui/general_help_screenshot.png
RENAMED
|
File without changes
|
|
File without changes
|
{small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/gui/mapping_help_screenshot.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{small_fish_gui-1.0.3 → small_fish_gui-1.1.0}/src/small_fish_gui/pipeline/_colocalisation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|