small-fish-gui 1.7.1__py3-none-any.whl → 1.8.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. small_fish_gui/__init__.py +1 -1
  2. small_fish_gui/batch/integrity.py +3 -3
  3. small_fish_gui/batch/pipeline.py +14 -6
  4. small_fish_gui/batch/prompt.py +14 -14
  5. small_fish_gui/batch/update.py +2 -2
  6. small_fish_gui/batch/utils.py +8 -8
  7. small_fish_gui/batch/values.txt +2 -2
  8. small_fish_gui/gui/help_module.py +4 -4
  9. small_fish_gui/gui/layout.py +24 -20
  10. small_fish_gui/gui/prompts.py +99 -51
  11. small_fish_gui/hints.py +54 -0
  12. small_fish_gui/interface/__init__.py +1 -1
  13. small_fish_gui/interface/image.py +2 -2
  14. small_fish_gui/interface/{output.py → inoutput.py} +39 -0
  15. small_fish_gui/interface/testing.py +10 -6
  16. small_fish_gui/pipeline/__init__.py +4 -4
  17. small_fish_gui/pipeline/_colocalisation.py +19 -14
  18. small_fish_gui/pipeline/_preprocess.py +98 -50
  19. small_fish_gui/pipeline/actions.py +142 -38
  20. small_fish_gui/pipeline/detection.py +54 -106
  21. small_fish_gui/pipeline/main.py +28 -35
  22. small_fish_gui/pipeline/{_segmentation.py → segmentation.py} +32 -14
  23. small_fish_gui/pipeline/spots.py +4 -1
  24. {small_fish_gui-1.7.1.dist-info → small_fish_gui-1.8.1.dist-info}/METADATA +1 -2
  25. small_fish_gui-1.8.1.dist-info/RECORD +50 -0
  26. {small_fish_gui-1.7.1.dist-info → small_fish_gui-1.8.1.dist-info}/WHEEL +1 -1
  27. small_fish_gui/batch/output.py +0 -0
  28. small_fish_gui/batch/values.py +0 -3
  29. small_fish_gui/docs/conf.py +0 -1
  30. small_fish_gui/interface/parameters.py +0 -2
  31. small_fish_gui-1.7.1.dist-info/RECORD +0 -53
  32. /small_fish_gui/gui/{general_help_screenshot.png → screenshot/general_help_screenshot.png} +0 -0
  33. /small_fish_gui/gui/{mapping_help_screenshot.png → screenshot/mapping_help_screenshot.png} +0 -0
  34. /small_fish_gui/gui/{segmentation_help_screenshot.png → screenshot/segmentation_help_screenshot.png} +0 -0
  35. {small_fish_gui-1.7.1.dist-info → small_fish_gui-1.8.1.dist-info}/licenses/LICENSE +0 -0
@@ -4,11 +4,14 @@ Contains cellpose wrappers to segmentate images.
4
4
 
5
5
  from cellpose.core import use_gpu
6
6
  from skimage.measure import label
7
+ from ..hints import pipeline_parameters
7
8
  from ..gui.layout import _segmentation_layout
8
9
  from ..gui import prompt, prompt_with_help, ask_cancel_segmentation
9
10
  from ..interface import open_image
10
11
  from ..gui.napari import show_segmentation as napari_show_segmentation
11
12
  from .utils import from_label_get_centeroidscoords
13
+ from ._preprocess import ask_input_parameters
14
+ from ._preprocess import map_channels, reorder_shape, reorder_image_stack
12
15
  from matplotlib.colors import ListedColormap
13
16
 
14
17
  import matplotlib as mpl
@@ -21,7 +24,7 @@ import PySimpleGUI as sg
21
24
  import matplotlib.pyplot as plt
22
25
  import os
23
26
 
24
- def launch_segmentation(image: np.ndarray, user_parameters: dict) :
27
+ def launch_segmentation(user_parameters: pipeline_parameters, nucleus_label, cytoplasm_label) :
25
28
  """
26
29
  Ask user for necessary parameters and perform cell segmentation (cytoplasm + nucleus) with cellpose.
27
30
 
@@ -32,24 +35,39 @@ def launch_segmentation(image: np.ndarray, user_parameters: dict) :
32
35
 
33
36
  Returns
34
37
  -------
35
- cytoplasm_label, nucleus_label
38
+ cytoplasm_label, nucleus_label, user_parameters
36
39
  """
37
40
 
41
+ segmentation_parameters = user_parameters.copy()
42
+
43
+ #Ask for image parameters
44
+ new_parameters = ask_input_parameters(ask_for_segmentation= True) #The image is open and stored inside user_parameters
45
+ if type(new_parameters) == type(None) : #if user clicks 'Cancel'
46
+ return nucleus_label , cytoplasm_label, user_parameters
47
+ else :
48
+ segmentation_parameters.update(new_parameters)
49
+
50
+ map_ = map_channels(segmentation_parameters)
51
+ if type(map_) == type(None) : #User clicks Cancel
52
+ return nucleus_label, cytoplasm_label, user_parameters
53
+ segmentation_parameters['reordered_shape'] = reorder_shape(segmentation_parameters['shape'], map_)
54
+ image = reorder_image_stack(map_, segmentation_parameters['image'])
55
+
38
56
  while True : # Loop if show_segmentation
39
57
  #Default parameters
40
- cyto_model_name = user_parameters.setdefault('cyto_model_name', 'cyto3')
41
- cyto_size = user_parameters.setdefault('cytoplasm diameter', 180)
42
- cytoplasm_channel = user_parameters.setdefault('cytoplasm channel', 0)
43
- nucleus_model_name = user_parameters.setdefault('nucleus_model_name', 'nuclei')
44
- nucleus_size = user_parameters.setdefault('nucleus diameter', 130)
45
- nucleus_channel = user_parameters.setdefault('nucleus channel', 0)
46
- other_nucleus_image = user_parameters.setdefault('other_nucleus_image',None)
58
+ cyto_model_name = segmentation_parameters.setdefault('cyto_model_name', 'cyto3')
59
+ cyto_size = segmentation_parameters.setdefault('cytoplasm diameter', 180)
60
+ cytoplasm_channel = segmentation_parameters.setdefault('cytoplasm channel', 0)
61
+ nucleus_model_name = segmentation_parameters.setdefault('nucleus_model_name', 'nuclei')
62
+ nucleus_size = segmentation_parameters.setdefault('nucleus diameter', 130)
63
+ nucleus_channel = segmentation_parameters.setdefault('nucleus channel', 0)
64
+ other_nucleus_image = segmentation_parameters.setdefault('other_nucleus_image',None)
47
65
  path = os.getcwd()
48
- show_segmentation = user_parameters.setdefault('show segmentation', False)
49
- segment_only_nuclei = user_parameters.setdefault('Segment only nuclei', False)
50
- filename = user_parameters['filename']
66
+ show_segmentation = segmentation_parameters.setdefault('show segmentation', False)
67
+ segment_only_nuclei = segmentation_parameters.setdefault('Segment only nuclei', False)
68
+ filename = segmentation_parameters['filename']
51
69
  available_channels = list(range(image.shape[0]))
52
- multichannel = user_parameters.get('multichannel')
70
+ multichannel = segmentation_parameters.get('is_multichannel')
53
71
 
54
72
 
55
73
  #Ask user for parameters
@@ -260,7 +278,7 @@ def launch_segmentation(image: np.ndarray, user_parameters: dict) :
260
278
 
261
279
 
262
280
  user_parameters.update(values)
263
- return cytoplasm_label, nucleus_label, user_parameters
281
+ return nucleus_label, cytoplasm_label, user_parameters
264
282
 
265
283
  def cell_segmentation(
266
284
  image, cyto_model_name,
@@ -5,7 +5,7 @@ Sub-module to handle individual spot extraction.
5
5
 
6
6
  import numpy as np
7
7
  import pandas as pd
8
- from ..interface.output import write_results
8
+ from ..interface.inoutput import write_results
9
9
 
10
10
  def launch_spots_extraction(
11
11
  acquisition_id,
@@ -42,6 +42,9 @@ def compute_Spots(
42
42
  cell_label = None,
43
43
  ) :
44
44
 
45
+ if len(spots) == 0 :
46
+ return pd.DataFrame()
47
+
45
48
  index = list(zip(*spots))
46
49
  index = tuple(index)
47
50
  spot_intensities_list = list(image[index])
@@ -1,11 +1,10 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: small_fish_gui
3
- Version: 1.7.1
3
+ Version: 1.8.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/2Echoes/small_fish
6
6
  Project-URL: Issues, https://github.com/2Echoes/small_fish/issues
7
7
  Author-email: Slimani Floric <floric.slimani@live.com>
8
- License-File: LICENSE
9
8
  Classifier: License :: OSI Approved :: BSD License
10
9
  Classifier: Operating System :: OS Independent
11
10
  Classifier: Programming Language :: Python :: 3
@@ -0,0 +1,50 @@
1
+ small_fish_gui/.readthedocs.yaml,sha256=r2T0e_In8X8l0_ZwgPvuoWQ9c0PE9bSpFzV2W6EzW3g,409
2
+ small_fish_gui/LICENSE,sha256=-iFy8VGBYs5VsHglKpk4D-hxqQ2jMJaqmfq_ulIzDks,1303
3
+ small_fish_gui/README.md,sha256=4RpEXKZW5vH6sUWeZb88yr1TLLPi20PqOk7KdA9O9Hk,4234
4
+ small_fish_gui/Segmentation example.jpg,sha256=opfiSbjmfF6z8kBs08sg_FNR2Om0AcMPU5sSwSLHdoQ,215038
5
+ small_fish_gui/__init__.py,sha256=biAaT2rtp7S5QW4_IUAfG4ey2uKsf3c8m7gqNFezrj4,1941
6
+ small_fish_gui/__main__.py,sha256=jjFNnf-l4jCJI16epq2KOaKmgtUAe9lSNdPj5fpxrDk,1143
7
+ small_fish_gui/hints.py,sha256=_AhC-Th36ELxinjMyGtjIqJfZkISPr1YwhQ9ifD9Kj4,1926
8
+ small_fish_gui/napari_detection_example.png,sha256=l5EZlrbXemLiGqb5inSVsD6Kko1Opz528-go-fBfrw8,977350
9
+ small_fish_gui/requirements.txt,sha256=9OMfUAnLdHevq6w_fVoDmVmkSMJeFofkOK_86_fu9C0,321
10
+ small_fish_gui/utils.py,sha256=LM6QW2ono_LIRv7JXIIq7ZxxbDXqBtZ5uR9gjKJfwM8,1903
11
+ small_fish_gui/.github/workflows/python-publish.yml,sha256=5Ltnuhw9TevhzndlBmdUgYMnS73xEAxSyd1u8DHdn5s,1084
12
+ small_fish_gui/batch/__init__.py,sha256=ku2_Yate-UG89Q0BmE2B9kFV4kOz-u9Lf2lj6VsdFXs,127
13
+ small_fish_gui/batch/input.py,sha256=mqnP8LBhyNbtlcqjVlUiVeuHw4YxOX3GgzJbq03isKE,1477
14
+ small_fish_gui/batch/integrity.py,sha256=jIJH0c_M_7gSET32iKWEznHIad0OwPNvJurA9rivTJ0,4851
15
+ small_fish_gui/batch/pipeline.py,sha256=ZFb1cGinm-4WLy1vpvPBFA_MvUXQ4UvXkYA74en670c,9065
16
+ small_fish_gui/batch/prompt.py,sha256=Ob6Cml3IJTInMJ_9kSwLOKzwna7igbk91D2eaA7I1bo,18849
17
+ small_fish_gui/batch/test.py,sha256=q04a1YstnDsxy2Bi5563BfcOU-O3VPE9c5WSJjvFjMg,211
18
+ small_fish_gui/batch/update.py,sha256=AFG2oW5zfbNPJbb1jqbkMexPB8NoR4ZoftqpO3cAsok,5042
19
+ small_fish_gui/batch/utils.py,sha256=JGRgaPcNQ5V2Hr8ObtmmMKqm3fB237Iym6aBawWY8Oo,1782
20
+ small_fish_gui/batch/values.txt,sha256=eS19O1pdj0HYfwGUlWIpkvfNZQFxA3F4BDR8qahXh28,999
21
+ small_fish_gui/gui/__init__.py,sha256=xQ_BfYcnQmKZtx_0leO4OmbkLNLv49ZPqEu_UXMgmDc,867
22
+ small_fish_gui/gui/_napari_widgets.py,sha256=8IMppaPZU37ANdZwTZOhwqCEly0hokzYL7UIVIixGns,3022
23
+ small_fish_gui/gui/animation.py,sha256=rnNP5FPp06Hu-R33c4AVTCknALBbxT2YlsKFCXHAp9k,981
24
+ small_fish_gui/gui/help_module.py,sha256=XvGCNIcEGRG8ESJ55poCPhBM60Bl4w_ZxoVp-Ev6lTo,9612
25
+ small_fish_gui/gui/layout.py,sha256=cA8ddzwbxVqTl5-VOoKvYKP0Fki17x2dczidSdW3ayA,14186
26
+ small_fish_gui/gui/napari.py,sha256=XiahTyq7QEQAuF6EK3-e--3-A8yBPVn0oaVZZyJo0qo,8607
27
+ small_fish_gui/gui/prompts.py,sha256=1CVXatzS4edDI0bLSSBKaEEJSWaNQPtL__1AzbPYLdQ,15391
28
+ small_fish_gui/gui/screenshot/general_help_screenshot.png,sha256=X4E6Td5f04K-pBUPDaBJRAE3D5b8fuEdiAUKhkIDr-0,54210
29
+ small_fish_gui/gui/screenshot/mapping_help_screenshot.png,sha256=HcuRh5TYciUogUasza5vZ_QSshaiHsskQK23mh9vQS8,34735
30
+ small_fish_gui/gui/screenshot/segmentation_help_screenshot.png,sha256=rbSgIydT0gZtfMh1qk4mdMbEIyCaakvHmxa2eOrLwO0,118944
31
+ small_fish_gui/interface/__init__.py,sha256=_yCOvJjrMGVeGx9Lkyqp7t3fAztt67w2ZKLPj8_kfYc,277
32
+ small_fish_gui/interface/image.py,sha256=VBSfIVcR50aJxxbD_ILflPX4esW9lXPArfHpVQynzCc,1100
33
+ small_fish_gui/interface/inoutput.py,sha256=d_ICDoTcR0iaDBeJnM29Mc_M1td_AUAk1Fd-iTTyyGI,3119
34
+ small_fish_gui/interface/testing.py,sha256=MMWNzAUE_Le3fqt2HY9rLXHQKv5c8ujON2PTooNnyLw,397
35
+ small_fish_gui/pipeline/__init__.py,sha256=Oww6dcuvnktl5jFKLriz8ZXObKo9MkneE739A8C1reY,739
36
+ small_fish_gui/pipeline/_colocalisation.py,sha256=wI2mM5SLWJdSXsyJAj12CVuX_gMU7D25A0OsB_8tx2A,19232
37
+ small_fish_gui/pipeline/_custom_errors.py,sha256=tQ-AUhgzIFpK30AZiQQrtHCHyGVRDdAoIjzL0Fk-1pA,43
38
+ small_fish_gui/pipeline/_preprocess.py,sha256=IrkQp_YCVFPrwElCEn-alpVChfLbR_0KAdb0WV2BfKI,15089
39
+ small_fish_gui/pipeline/_signaltonoise.py,sha256=7A9t7xu7zghI6cr201Ldm-LjJ5NOuP56VSeJ8KIzcUo,8497
40
+ small_fish_gui/pipeline/actions.py,sha256=u4yPvMnGnL78LuIg5lnSPmPSk-erRq9frE28qQTQUPI,15480
41
+ small_fish_gui/pipeline/detection.py,sha256=vgHy-xZvAKxJaaZa7xcc9oRKpJdso7NvL3psrUwcW3s,33225
42
+ small_fish_gui/pipeline/main.py,sha256=ujqwwJp0nj3PWJNXlA7aWJsC-mcGANSMmw1SE4EYX84,4695
43
+ small_fish_gui/pipeline/segmentation.py,sha256=dmQ9afugX7wMVSVwpJ15EZ-KEH7fbeddV56zE30Sxc4,19900
44
+ small_fish_gui/pipeline/spots.py,sha256=mam9w9qi8MGmMirOcWFGIaz4nsxntPyZhetV7uSga80,1965
45
+ small_fish_gui/pipeline/test.py,sha256=w4ZMGDmUDXxVgWTlZ2TKw19W8q5gcE9gLMKe0SWnRrw,2827
46
+ small_fish_gui/pipeline/utils.py,sha256=run6qtqCAe_mFnE3o1CnmF1xBBmK3ydgc8-jOV9P-_w,448
47
+ small_fish_gui-1.8.1.dist-info/METADATA,sha256=SwVT6szwgOjdHth8Czp1G-PkeC7xELGZJZWG0jUmAgA,2545
48
+ small_fish_gui-1.8.1.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
49
+ small_fish_gui-1.8.1.dist-info/licenses/LICENSE,sha256=-iFy8VGBYs5VsHglKpk4D-hxqQ2jMJaqmfq_ulIzDks,1303
50
+ small_fish_gui-1.8.1.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.25.0
2
+ Generator: hatchling 1.26.3
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
File without changes
@@ -1,3 +0,0 @@
1
- a = {'Batch_folder': '', 0: [], 'image path': '', '3D stack': False, 'multichannel': False, 'Dense regions deconvolution': False, 'Cluster computation': False, 'Segmentation': False, 'Napari correction': False, 'x': '0', 'y': '0', 'z': '0', 'c': '0', 't': '0', 'cyto_model_name': 'cyto3', 'cytoplasm channel': '0', 'cytoplasm diameter': '30', 'nucleus_model_name': 'nuclei', 'nucleus channel': '0', 'nucleus diameter': '30', 'Segment only nuclei': False, 'show segmentation': False, 'saving path': '', 'filename': 'cell_segmentation.png', 'threshold': '', 'threshold penalty': '1', 'channel to compute': '', 'voxel_size_z': 'z', 'voxel_size_y': 'y', 'voxel_size_x': 'x', 'spot_size_z': 'z', 'spot_size_y': 'y', 'spot_size_x': 'x', 'log_kernel_size_z': 'z', 'log_kernel_size_y': 'y', 'log_kernel_size_x': 'x', 'minimum_distance_z': 'z', 'minimum_distance_y': 'y', 'minimum_distance_x': 'x', 'nucleus channel signal': '(0,)', 'alpha': '0.5', 'beta': '1', 'gamma': '5', 'deconvolution_kernel_z': 'z', 'deconvolution_kernel_y': 'y', 'deconvolution_kernel_x': 'x', 'cluster size': '400', 'min number of spots': '5', 'Interactive threshold selector': False, 'spots_extraction_folder': '', 'spots_filename': 'spots_extraction', 'do_spots_csv': False, 'do_spots_excel': False, 'do_spots_feather': False, 'output_folder': '', 'batch_name': '', 'save segmentation': False, 'save detection': False, 'extract spots': False, 'csv': False, 'xlsx': False, 'feather': True, 2: 'Output'}
2
- for k in a.keys() :
3
- print(k, ' : ', type(k))
@@ -1 +0,0 @@
1
- #init conf file
@@ -1,2 +0,0 @@
1
- def ask_user_parameters() :
2
- pass
@@ -1,53 +0,0 @@
1
- small_fish_gui/.readthedocs.yaml,sha256=r2T0e_In8X8l0_ZwgPvuoWQ9c0PE9bSpFzV2W6EzW3g,409
2
- small_fish_gui/LICENSE,sha256=-iFy8VGBYs5VsHglKpk4D-hxqQ2jMJaqmfq_ulIzDks,1303
3
- small_fish_gui/README.md,sha256=4RpEXKZW5vH6sUWeZb88yr1TLLPi20PqOk7KdA9O9Hk,4234
4
- small_fish_gui/Segmentation example.jpg,sha256=opfiSbjmfF6z8kBs08sg_FNR2Om0AcMPU5sSwSLHdoQ,215038
5
- small_fish_gui/__init__.py,sha256=a5xjNERakIQns7eLzivIHcpSK_YbhUvicolmTosN_ic,1941
6
- small_fish_gui/__main__.py,sha256=jjFNnf-l4jCJI16epq2KOaKmgtUAe9lSNdPj5fpxrDk,1143
7
- small_fish_gui/napari_detection_example.png,sha256=l5EZlrbXemLiGqb5inSVsD6Kko1Opz528-go-fBfrw8,977350
8
- small_fish_gui/requirements.txt,sha256=9OMfUAnLdHevq6w_fVoDmVmkSMJeFofkOK_86_fu9C0,321
9
- small_fish_gui/utils.py,sha256=LM6QW2ono_LIRv7JXIIq7ZxxbDXqBtZ5uR9gjKJfwM8,1903
10
- small_fish_gui/.github/workflows/python-publish.yml,sha256=5Ltnuhw9TevhzndlBmdUgYMnS73xEAxSyd1u8DHdn5s,1084
11
- small_fish_gui/batch/__init__.py,sha256=ku2_Yate-UG89Q0BmE2B9kFV4kOz-u9Lf2lj6VsdFXs,127
12
- small_fish_gui/batch/input.py,sha256=mqnP8LBhyNbtlcqjVlUiVeuHw4YxOX3GgzJbq03isKE,1477
13
- small_fish_gui/batch/integrity.py,sha256=yzVWBwm4Mxftd1sDziQwKc7d3ALdgWOhkqQrU5-p430,4849
14
- small_fish_gui/batch/output.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- small_fish_gui/batch/pipeline.py,sha256=uZCwkoiSnTHWAf7C4XPNXg4ldIjbpRiULpzZWq7R1i0,8798
16
- small_fish_gui/batch/prompt.py,sha256=ZfOyWjmG2AZeB_wwbmqchEp6JM1duXM4GXj12r_eDZk,18788
17
- small_fish_gui/batch/test.py,sha256=q04a1YstnDsxy2Bi5563BfcOU-O3VPE9c5WSJjvFjMg,211
18
- small_fish_gui/batch/update.py,sha256=hR4kZ7tP2tvn1tmDa4oJb2e7-SUqN1Lf8JR6OCIOMS8,5037
19
- small_fish_gui/batch/utils.py,sha256=HgfPwfhqWXOGtCny_nTdGs8csWB1BQp7-hYgrNVLB70,1774
20
- small_fish_gui/batch/values.py,sha256=C1hRlCpTIDsg89DMKIIW5NUxeK876ODRUuJ2D-mJv6o,1519
21
- small_fish_gui/batch/values.txt,sha256=PVxzIaaF6DGFRx_CMaStXZI6OrbjNub1-jR3pklXVjc,991
22
- small_fish_gui/docs/conf.py,sha256=6YU8UEpTenKGMiz7H4aG42Of72_n4uLadDfHJvziqRk,16
23
- small_fish_gui/gui/__init__.py,sha256=xQ_BfYcnQmKZtx_0leO4OmbkLNLv49ZPqEu_UXMgmDc,867
24
- small_fish_gui/gui/_napari_widgets.py,sha256=8IMppaPZU37ANdZwTZOhwqCEly0hokzYL7UIVIixGns,3022
25
- small_fish_gui/gui/animation.py,sha256=rnNP5FPp06Hu-R33c4AVTCknALBbxT2YlsKFCXHAp9k,981
26
- small_fish_gui/gui/general_help_screenshot.png,sha256=X4E6Td5f04K-pBUPDaBJRAE3D5b8fuEdiAUKhkIDr-0,54210
27
- small_fish_gui/gui/help_module.py,sha256=PmgkkDs7bZ2-po83A_PK9uldQcHjehYmqre21nYb6DQ,9600
28
- small_fish_gui/gui/layout.py,sha256=oB8Kg6s0rCA8yB4WM8JQY8BpjoPiBqTGb6YoOKDqEA8,13855
29
- small_fish_gui/gui/mapping_help_screenshot.png,sha256=HcuRh5TYciUogUasza5vZ_QSshaiHsskQK23mh9vQS8,34735
30
- small_fish_gui/gui/napari.py,sha256=XiahTyq7QEQAuF6EK3-e--3-A8yBPVn0oaVZZyJo0qo,8607
31
- small_fish_gui/gui/prompts.py,sha256=CONXMmSa0a-l93fyXAPz7h1skql0BEZtLzWJMVepPQ0,13660
32
- small_fish_gui/gui/segmentation_help_screenshot.png,sha256=rbSgIydT0gZtfMh1qk4mdMbEIyCaakvHmxa2eOrLwO0,118944
33
- small_fish_gui/interface/__init__.py,sha256=PB86R4Y9kV80aGZ-vP0ZW2KeaCwGbBbCtFCmbN2yl28,275
34
- small_fish_gui/interface/image.py,sha256=X1L7S5svxUwdoDcI3QM1PbN-c4Nz5w30hixq3IgqSn8,1130
35
- small_fish_gui/interface/output.py,sha256=eMz9QXBf6LIWuNGvd6Z3Yswuz-Jg9pezUN3OJSb_MIg,2090
36
- small_fish_gui/interface/parameters.py,sha256=lUugD-4W2TZyJF3TH1q70TlktEYhhPtcPCrvxm5Dk50,36
37
- small_fish_gui/interface/testing.py,sha256=MY5-GcPOUHagcrwR8A7QOjAmjZIDVC8Wz3NibLe3KQw,321
38
- small_fish_gui/pipeline/__init__.py,sha256=_Ey20GG8fJtqZvixbXNNYX6wTWMnCUArmARPqsNEhuQ,743
39
- small_fish_gui/pipeline/_colocalisation.py,sha256=vVHDOvAfqaRFUuX-8HBtDLVrXgoSeUOxa19hmm7lllo,18978
40
- small_fish_gui/pipeline/_custom_errors.py,sha256=tQ-AUhgzIFpK30AZiQQrtHCHyGVRDdAoIjzL0Fk-1pA,43
41
- small_fish_gui/pipeline/_preprocess.py,sha256=ddocTXwc0vYq2VGUbWYaN9eUiHPyfiCuBpYQ2p6rQ8g,13084
42
- small_fish_gui/pipeline/_segmentation.py,sha256=bB7U_EhebFAssyZcGimnz706aNLbajVMOUj6nbVflwA,18854
43
- small_fish_gui/pipeline/_signaltonoise.py,sha256=7A9t7xu7zghI6cr201Ldm-LjJ5NOuP56VSeJ8KIzcUo,8497
44
- small_fish_gui/pipeline/actions.py,sha256=JqcEYtVf3rr-YB_C8SF9U0dpoBktjUhm_Ko0FxZbxy4,11636
45
- small_fish_gui/pipeline/detection.py,sha256=ORs3OR7MYIz4l1GX3Ayjzpxp2poRnTHhoicJdF7XL_E,34976
46
- small_fish_gui/pipeline/main.py,sha256=0DrN9dXZJTqLOD0tZaHTVFE1oolzLPU1w5LNgWC3iuU,5072
47
- small_fish_gui/pipeline/spots.py,sha256=yHvqf1eD25UltELpzcouYXhLkxiXI_mOL1ANSzXK5pw,1907
48
- small_fish_gui/pipeline/test.py,sha256=w4ZMGDmUDXxVgWTlZ2TKw19W8q5gcE9gLMKe0SWnRrw,2827
49
- small_fish_gui/pipeline/utils.py,sha256=run6qtqCAe_mFnE3o1CnmF1xBBmK3ydgc8-jOV9P-_w,448
50
- small_fish_gui-1.7.1.dist-info/METADATA,sha256=6RAZQN04nvJvaJkLSx3Hquu7YVuozCna6Qg60fmSb4w,2567
51
- small_fish_gui-1.7.1.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
52
- small_fish_gui-1.7.1.dist-info/licenses/LICENSE,sha256=-iFy8VGBYs5VsHglKpk4D-hxqQ2jMJaqmfq_ulIzDks,1303
53
- small_fish_gui-1.7.1.dist-info/RECORD,,