spacr 0.1.6__py3-none-any.whl → 0.1.8__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.
spacr/utils.py CHANGED
@@ -74,9 +74,18 @@ from scipy import stats
74
74
  from .logger import log_function_call
75
75
  from multiprocessing import set_start_method, get_start_method
76
76
 
77
- import tkinter as tk
78
- from tkinter import ttk
79
- import tkinter.font as tkFont
77
+ import torch
78
+ import torchvision.transforms as transforms
79
+ from torchvision.models import resnet50
80
+ from PIL import Image
81
+ import numpy as np
82
+ import umap
83
+ import pandas as pd
84
+ from sklearn.ensemble import RandomForestClassifier
85
+ from sklearn.preprocessing import StandardScaler
86
+ from scipy.stats import f_oneway, kruskal
87
+ from sklearn.cluster import KMeans
88
+ from scipy import stats
80
89
 
81
90
  def reset_mp():
82
91
  current_method = get_start_method()
@@ -472,7 +481,7 @@ def is_list_of_lists(var):
472
481
  return True
473
482
  return False
474
483
 
475
- def normalize_to_dtype(array, p1=2, p2=98, percentile_list=None):
484
+ def normalize_to_dtype(array, p1=2, p2=98, percentile_list=None, new_dtype=None):
476
485
  """
477
486
  Normalize each image in the stack to its own percentiles.
478
487
 
@@ -491,7 +500,16 @@ def normalize_to_dtype(array, p1=2, p2=98, percentile_list=None):
491
500
  The normalized stack with the same shape as the input stack.
492
501
  """
493
502
 
494
- out_range = (0, np.iinfo(array.dtype).max)
503
+ if new_dtype is None:
504
+ out_range = (0, np.iinfo(array.dtype).max)
505
+ elif new_dtype in [np.uint8, np.uint16]:
506
+ out_range = (0, np.iinfo(new_dtype).max)
507
+ elif new_dtype in ['uint8', 'uint16']:
508
+ new_dtype = np.uint8 if new_dtype == 'uint8' else np.uint16
509
+ out_range = (0, np.iinfo(new_dtype).max)
510
+ else:
511
+ out_range = (0, np.iinfo(array.dtype).max)
512
+
495
513
  nimg = array.shape[2]
496
514
  new_stack = np.empty_like(array, dtype=array.dtype)
497
515
 
@@ -3844,18 +3862,6 @@ def search_reduction_and_clustering(numeric_data, n_neighbors, min_dist, metric,
3844
3862
  if verbose:
3845
3863
  print(f'Embedding shape: {embedding.shape}')
3846
3864
  return embedding, labels
3847
- import torch
3848
- import torchvision.transforms as transforms
3849
- from torchvision.models import resnet50
3850
- from PIL import Image
3851
- import numpy as np
3852
- import umap
3853
- import pandas as pd
3854
- from sklearn.ensemble import RandomForestClassifier
3855
- from sklearn.preprocessing import StandardScaler
3856
- from scipy.stats import f_oneway, kruskal
3857
- from sklearn.cluster import KMeans
3858
- from scipy import stats
3859
3865
 
3860
3866
  def load_image(image_path):
3861
3867
  """Load and preprocess an image."""
@@ -4050,7 +4056,7 @@ def _merge_cells_based_on_parasite_overlap(parasite_mask, cell_mask, nuclei_mask
4050
4056
 
4051
4057
  # Relabel the merged cell mask
4052
4058
  relabeled_cell_mask, _ = label(cell_mask, return_num=True)
4053
- return relabeled_cell_mask
4059
+ return relabeled_cell_mask.astype(np.uint16)
4054
4060
 
4055
4061
  def adjust_cell_masks(parasite_folder, cell_folder, nuclei_folder, overlap_threshold=5, perimeter_threshold=30):
4056
4062
 
@@ -4090,7 +4096,7 @@ def adjust_cell_masks(parasite_folder, cell_folder, nuclei_folder, overlap_thres
4090
4096
  merged_cell_mask = _merge_cells_based_on_parasite_overlap(parasite_mask, cell_mask, nuclei_mask, overlap_threshold, perimeter_threshold)
4091
4097
 
4092
4098
  # Force 16 bit
4093
- mamerged_cell_masksk = merged_cell_mask.astype(np.uint16)
4099
+ #merged_cell_mask = merged_cell_mask.astype(np.uint16)
4094
4100
 
4095
4101
  # Overwrite the original cell mask file with the merged result
4096
4102
  np.save(cell_path, merged_cell_mask)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: spacr
3
- Version: 0.1.6
3
+ Version: 0.1.8
4
4
  Summary: Spatial phenotype analysis of crisp screens (SpaCr)
5
5
  Home-page: https://github.com/EinarOlafsson/spacr
6
6
  Author: Einar Birnir Olafsson
@@ -1,11 +1,11 @@
1
- spacr/__init__.py,sha256=264p0eJQFhj0zOrpcdxd4JUvofl9-dlzy-DwOyyO_kI,1442
1
+ spacr/__init__.py,sha256=8uhfJ_RcnX4OmvflNRcts4zxnyfML6xiyIeFGZeMpXg,1416
2
2
  spacr/__main__.py,sha256=bkAJJD2kjIqOP-u1kLvct9jQQCeUXzlEjdgitwi1Lm8,75
3
3
  spacr/alpha.py,sha256=Y95sLEfpK2OSYKRn3M8eUOU33JJeXfV8zhrC4KnwSTY,35244
4
4
  spacr/annotate_app.py,sha256=imQ7ZEXDyM6ce1dxZ1xUS1-KequuF_NCI4xCaPLjvco,29275
5
5
  spacr/annotate_app_v2.py,sha256=imQ7ZEXDyM6ce1dxZ1xUS1-KequuF_NCI4xCaPLjvco,29275
6
- spacr/app_annotate.py,sha256=QKWQ0GGiKu5ik14OB4Z3YIqIJYpmsNJlqpnfnQPowAM,23563
6
+ spacr/app_annotate.py,sha256=FhyDBsLdo6etOSvz6et2AhhJn67SwdeYUVDzBJzdw1E,2274
7
7
  spacr/app_classify.py,sha256=urTP_wlZ58hSyM5a19slYlBxN0PdC-9-ga0hvq8CGWc,165
8
- spacr/app_make_masks.py,sha256=0N8Wfby3HaVX4m9tOyBy7OQolamYG9lVwmnlzkK4uaE,44993
8
+ spacr/app_make_masks.py,sha256=qV3L_2TilGZBAUyBrzaWAayei_tf3XvJdUUDyzEI6hA,1834
9
9
  spacr/app_make_masks_v2.py,sha256=OkNeskNbgep8wQa4ES3jpJjZLfn4yIkGwQOd9r0spfA,30497
10
10
  spacr/app_mask.py,sha256=l-dBY8ftzCMdDe6-pXc2Nh_u-idNL9G7UOARiLJBtds,153
11
11
  spacr/app_measure.py,sha256=_K7APYIeOKpV6e_LcqabBjvEi7mfq9Fch8175x1x0k8,162
@@ -14,47 +14,47 @@ spacr/app_umap.py,sha256=ZWAmf_OsIKbYvolYuWPMYhdlVe-n2CADoJulAizMiEo,153
14
14
  spacr/chris.py,sha256=YlBjSgeZaY8HPy6jkrT_ISAnCMAKVfvCxF0I9eAZLFM,2418
15
15
  spacr/classify_app.py,sha256=Zi15ryc1ocYitRF4kyxlC27XxGyzfSPdvj2d6ZrSh7E,8446
16
16
  spacr/cli.py,sha256=507jfOOEV8BoL4eeUcblvH-iiDHdBrEVJLu1ghAAPSc,1800
17
- spacr/core.py,sha256=S44olGF8qveg6uBCRDuCP4FZ5dXXVwSfeImolTpQIAs,160372
18
- spacr/deep_spacr.py,sha256=rvqOoY9dadcTcKiABf61Nb8HEMVp1NouFmtAE2ee1T4,37056
17
+ spacr/core.py,sha256=bm1cApGVTE218Ds3FqqWD5TsF5FF8kclHwPlvdOolzc,160216
18
+ spacr/deep_spacr.py,sha256=ASBsN4JpHp_3S-91JUsB34IWTjTGPYI7jKV2qZnUR5M,37005
19
19
  spacr/foldseek.py,sha256=YIP1d4Ci6CeA9jSyiv-HTDbNmAmcSM9Y_DaOs7wYzLY,33546
20
20
  spacr/get_alfafold_structures.py,sha256=ehx_MQgb12k3hFecP6cYVlm5TLO8iWjgevy8ESyS3cw,3544
21
21
  spacr/graph_learning.py,sha256=1tR-ZxvXE3dBz1Saw7BeVFcrsUFu9OlUZeZVifih9eo,13070
22
- spacr/gui.py,sha256=kvQ0X9nyZz_BWsOyJSNSv7gEG1ZuTqjz4EH78e0uul4,7783
22
+ spacr/gui.py,sha256=OPIMDVVYyAKO3zJIrWkP_YIc9-SwQsVR2S7ynXu1wkQ,8901
23
23
  spacr/gui_2.py,sha256=ZAI5quQYbhQJ40vK0NCqU_UMSPLkpfeQpomBWUSM0fc,6946
24
24
  spacr/gui_annotate.py,sha256=ugBksLGOHdtOLlEuRyyc59TrkYKu3rDf8JxEgiBSVao,6536
25
25
  spacr/gui_classify_app.py,sha256=Zi15ryc1ocYitRF4kyxlC27XxGyzfSPdvj2d6ZrSh7E,8446
26
- spacr/gui_core.py,sha256=itgdS6bokEi2ouRMTKjB6T3TnMyUaAPHNTscAEsq4jE,28401
27
- spacr/gui_elements.py,sha256=IX1Wsh4V1vk3R6ot0CYKgoDgybbd5IcuAGjmst-EpBc,15008
26
+ spacr/gui_core.py,sha256=PmElJrKHtEGYKpGTGgryxxvUvOHMh-wUmhvuHnyI13w,31833
27
+ spacr/gui_elements.py,sha256=b0GJCHyrgJFeqB_IdjkXqMbXeC1reiLyiQ6-MTf_UuQ,73305
28
28
  spacr/gui_make_masks_app.py,sha256=tl4M4Q2WQgrrwjRBJVevxJxpNowqzPhWkdCOm2UfRbw,45053
29
29
  spacr/gui_make_masks_app_v2.py,sha256=X3izTBXdCZDlkVe-fbG-jmCQtcAbmK0OIivjyWaLhug,30576
30
30
  spacr/gui_mask_app.py,sha256=mhTl_XzXLFl8Tx3WYEMpdYB_qw9u5JJa0EdkvlcIzAE,10706
31
31
  spacr/gui_measure_app.py,sha256=_C1-XFL5HSquUEEbM_NcxdvHx-socPFCx85MBG4d6xo,10598
32
32
  spacr/gui_run.py,sha256=0x85MJqFtREuWuNeIRLB8hFeibKGszfN14POQQWzPDQ,1998
33
33
  spacr/gui_sim_app.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
- spacr/gui_utils.py,sha256=sDPmdXonIiCkXm2NBH_Tghf05_2PPV-ltWY8YCgzOzA,5441
35
- spacr/gui_wrappers.py,sha256=OBSArqRrM0neEOz44Z_YVceISLqY6WverrVm60GCgqo,4248
34
+ spacr/gui_utils.py,sha256=W0blyZ6JTCBzlkZwXqJpg_uUv41vvqbKvJGCigCeWG8,13890
35
+ spacr/gui_wrappers.py,sha256=-E1SFOmtp7_nfg9QzajI7GJcAcaMug92Pjw7pS1YzjY,4656
36
36
  spacr/io.py,sha256=IoERqSwoxJrInYl-E0WfwFOEDZXFdJofk5DmpbyLGWM,112077
37
37
  spacr/logger.py,sha256=7Zqr3TuuOQLWT32gYr2q1qvv7x0a2JhLANmZcnBXAW8,670
38
38
  spacr/make_masks_app.py,sha256=iGaTwhowoe2JMOSOf8bJwQZTooRhLQx7KO0ewnAmqDY,45138
39
39
  spacr/make_masks_app_v2.py,sha256=X3izTBXdCZDlkVe-fbG-jmCQtcAbmK0OIivjyWaLhug,30576
40
40
  spacr/mask_app.py,sha256=mhTl_XzXLFl8Tx3WYEMpdYB_qw9u5JJa0EdkvlcIzAE,10706
41
- spacr/measure.py,sha256=r5nxxULUyka2L5IVdnmEmnMywChY3a4DWGse3ygIh4Q,56000
41
+ spacr/measure.py,sha256=e36NR8raCkvKHZXvTJgPDwObsmsegvc1dAiCqD3oljk,55751
42
42
  spacr/measure_app.py,sha256=_C1-XFL5HSquUEEbM_NcxdvHx-socPFCx85MBG4d6xo,10598
43
43
  spacr/old_code.py,sha256=jw67DAGoLBd7mWofVzRJSEmCI1Qrff26zIo65SEkV00,13817
44
- spacr/plot.py,sha256=lrwU51OTWfby1wx73XGyjYmTjLVia7WOmGH5LZZ-4jM,67145
44
+ spacr/plot.py,sha256=DYJEoK1kz2ih6ZGvKiA3xTqeIeKQNhuQKwgrscopFxA,69101
45
45
  spacr/sequencing.py,sha256=fHZRnoMSxmhMdadkei3lUeBdckqFyptWdQyWsDW3aaU,83304
46
- spacr/settings.py,sha256=Yp4VlkmZLuklSbAf3kiIm7iNTWpy2tJuhLNmLUqvFeM,45668
46
+ spacr/settings.py,sha256=CQ93Mb-GjB72yPKcK43jnf22--YRN5kaMYlXwpiRLSc,65699
47
47
  spacr/sim.py,sha256=FveaVgBi3eypO2oVB5Dx-v0CC1Ny7UPfXkJiiRRodAk,71212
48
48
  spacr/sim_app.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
49
  spacr/timelapse.py,sha256=KMYCgHzf9LTZe-lWl5mvH2EjbKRE6OhpwdY13wEumGc,39504
50
- spacr/utils.py,sha256=fxPw9rfikFI0Fha0dLu4h7iCZ2KehwFVJ09ZsiaZhpI,186589
50
+ spacr/utils.py,sha256=OQ8sSBH6VWx2xP_vh4ILJT71B46DFFhsq-Y6WxYdGhI,186891
51
51
  spacr/version.py,sha256=axH5tnGwtgSnJHb5IDhiu4Zjk5GhLyAEDRe-rnaoFOA,409
52
52
  spacr/models/cp/toxo_plaque_cyto_e25000_X1120_Y1120.CP_model,sha256=z8BbHWZPRnE9D_BHO0fBREE85c1vkltDs-incs2ytXQ,26566572
53
53
  spacr/models/cp/toxo_plaque_cyto_e25000_X1120_Y1120.CP_model_settings.csv,sha256=fBAGuL_B8ERVdVizO3BHozTDSbZUh1yFzsYK3wkQN68,420
54
54
  spacr/models/cp/toxo_pv_lumen.CP_model,sha256=2y_CindYhmTvVwBH39SNILF3rI3x9SsRn6qrMxHy3l0,26562451
55
- spacr-0.1.6.dist-info/LICENSE,sha256=SR-2MeGc6SCM1UORJYyarSWY_A-JaOMFDj7ReSs9tRM,1083
56
- spacr-0.1.6.dist-info/METADATA,sha256=_Hdz8cTwSC8JIm9le55MysNsudET_JT0gbUjsVRpN44,5049
57
- spacr-0.1.6.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
58
- spacr-0.1.6.dist-info/entry_points.txt,sha256=BMC0ql9aNNpv8lUZ8sgDLQMsqaVnX5L535gEhKUP5ho,296
59
- spacr-0.1.6.dist-info/top_level.txt,sha256=GJPU8FgwRXGzKeut6JopsSRY2R8T3i9lDgya42tLInY,6
60
- spacr-0.1.6.dist-info/RECORD,,
55
+ spacr-0.1.8.dist-info/LICENSE,sha256=SR-2MeGc6SCM1UORJYyarSWY_A-JaOMFDj7ReSs9tRM,1083
56
+ spacr-0.1.8.dist-info/METADATA,sha256=iOXiNEHaMwhMdS3GpncKdaFEE3xgdoDeK-ndW5eZYdk,5049
57
+ spacr-0.1.8.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
58
+ spacr-0.1.8.dist-info/entry_points.txt,sha256=BMC0ql9aNNpv8lUZ8sgDLQMsqaVnX5L535gEhKUP5ho,296
59
+ spacr-0.1.8.dist-info/top_level.txt,sha256=GJPU8FgwRXGzKeut6JopsSRY2R8T3i9lDgya42tLInY,6
60
+ spacr-0.1.8.dist-info/RECORD,,
File without changes
File without changes