spacr 0.2.5__tar.gz → 0.2.8__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.
Files changed (122) hide show
  1. {spacr-0.2.5/spacr.egg-info → spacr-0.2.8}/PKG-INFO +11 -4
  2. {spacr-0.2.5 → spacr-0.2.8}/setup.py +11 -24
  3. {spacr-0.2.5 → spacr-0.2.8}/spacr/__init__.py +1 -11
  4. {spacr-0.2.5 → spacr-0.2.8}/spacr/core.py +226 -287
  5. {spacr-0.2.5 → spacr-0.2.8}/spacr/deep_spacr.py +248 -269
  6. {spacr-0.2.5 → spacr-0.2.8}/spacr/gui.py +41 -19
  7. {spacr-0.2.5 → spacr-0.2.8}/spacr/gui_core.py +404 -151
  8. {spacr-0.2.5 → spacr-0.2.8}/spacr/gui_elements.py +778 -179
  9. {spacr-0.2.5 → spacr-0.2.8}/spacr/gui_utils.py +163 -106
  10. {spacr-0.2.5 → spacr-0.2.8}/spacr/io.py +116 -45
  11. {spacr-0.2.5 → spacr-0.2.8}/spacr/measure.py +1 -0
  12. {spacr-0.2.5 → spacr-0.2.8}/spacr/plot.py +51 -5
  13. {spacr-0.2.5 → spacr-0.2.8}/spacr/sequencing.py +477 -587
  14. {spacr-0.2.5 → spacr-0.2.8}/spacr/settings.py +211 -66
  15. {spacr-0.2.5 → spacr-0.2.8}/spacr/utils.py +34 -14
  16. {spacr-0.2.5 → spacr-0.2.8/spacr.egg-info}/PKG-INFO +11 -4
  17. {spacr-0.2.5 → spacr-0.2.8}/spacr.egg-info/SOURCES.txt +0 -2
  18. {spacr-0.2.5 → spacr-0.2.8}/spacr.egg-info/requires.txt +10 -3
  19. spacr-0.2.5/spacr/chris.py +0 -50
  20. spacr-0.2.5/spacr/graph_learning.py +0 -340
  21. {spacr-0.2.5 → spacr-0.2.8}/LICENSE +0 -0
  22. {spacr-0.2.5 → spacr-0.2.8}/MANIFEST.in +0 -0
  23. {spacr-0.2.5 → spacr-0.2.8}/README.rst +0 -0
  24. {spacr-0.2.5 → spacr-0.2.8}/setup.cfg +0 -0
  25. {spacr-0.2.5 → spacr-0.2.8}/spacr/__main__.py +0 -0
  26. {spacr-0.2.5 → spacr-0.2.8}/spacr/app_annotate.py +0 -0
  27. {spacr-0.2.5 → spacr-0.2.8}/spacr/app_classify.py +0 -0
  28. {spacr-0.2.5 → spacr-0.2.8}/spacr/app_make_masks.py +0 -0
  29. {spacr-0.2.5 → spacr-0.2.8}/spacr/app_mask.py +0 -0
  30. {spacr-0.2.5 → spacr-0.2.8}/spacr/app_measure.py +0 -0
  31. {spacr-0.2.5 → spacr-0.2.8}/spacr/app_sequencing.py +0 -0
  32. {spacr-0.2.5 → spacr-0.2.8}/spacr/app_umap.py +0 -0
  33. {spacr-0.2.5 → spacr-0.2.8}/spacr/logger.py +0 -0
  34. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/OFL.txt +0 -0
  35. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/OpenSans-Italic-VariableFont_wdth,wght.ttf +0 -0
  36. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/OpenSans-VariableFont_wdth,wght.ttf +0 -0
  37. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/README.txt +0 -0
  38. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-Bold.ttf +0 -0
  39. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-BoldItalic.ttf +0 -0
  40. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-ExtraBold.ttf +0 -0
  41. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-ExtraBoldItalic.ttf +0 -0
  42. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-Italic.ttf +0 -0
  43. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-Light.ttf +0 -0
  44. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-LightItalic.ttf +0 -0
  45. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-Medium.ttf +0 -0
  46. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-MediumItalic.ttf +0 -0
  47. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-Regular.ttf +0 -0
  48. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-SemiBold.ttf +0 -0
  49. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-SemiBoldItalic.ttf +0 -0
  50. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Bold.ttf +0 -0
  51. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-BoldItalic.ttf +0 -0
  52. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-ExtraBold.ttf +0 -0
  53. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-ExtraBoldItalic.ttf +0 -0
  54. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Italic.ttf +0 -0
  55. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Light.ttf +0 -0
  56. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-LightItalic.ttf +0 -0
  57. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Medium.ttf +0 -0
  58. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-MediumItalic.ttf +0 -0
  59. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Regular.ttf +0 -0
  60. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-SemiBold.ttf +0 -0
  61. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-SemiBoldItalic.ttf +0 -0
  62. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Bold.ttf +0 -0
  63. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-BoldItalic.ttf +0 -0
  64. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-ExtraBold.ttf +0 -0
  65. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-ExtraBoldItalic.ttf +0 -0
  66. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Italic.ttf +0 -0
  67. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Light.ttf +0 -0
  68. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-LightItalic.ttf +0 -0
  69. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Medium.ttf +0 -0
  70. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-MediumItalic.ttf +0 -0
  71. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Regular.ttf +0 -0
  72. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-SemiBold.ttf +0 -0
  73. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-SemiBoldItalic.ttf +0 -0
  74. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/abort.png +0 -0
  75. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/annotate.png +0 -0
  76. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/cellpose_all.png +0 -0
  77. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/cellpose_masks.png +0 -0
  78. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/classify.png +0 -0
  79. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/default.png +0 -0
  80. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/download.png +0 -0
  81. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/logo.pdf +0 -0
  82. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/logo_spacr.png +0 -0
  83. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/logo_spacr_1.png +0 -0
  84. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/make_masks.png +0 -0
  85. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/map_barcodes.png +0 -0
  86. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/mask.png +0 -0
  87. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/measure.png +0 -0
  88. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/ml_analyze.png +0 -0
  89. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/recruitment.png +0 -0
  90. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/regression.png +0 -0
  91. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/run.png +0 -0
  92. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/sequencing.png +0 -0
  93. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/settings.png +0 -0
  94. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/spacr_logo_rotation.gif +0 -0
  95. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/train_cellpose.png +0 -0
  96. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/umap.png +0 -0
  97. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/models/cp/toxo_plaque_cyto_e25000_X1120_Y1120.CP_model +0 -0
  98. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/models/cp/toxo_plaque_cyto_e25000_X1120_Y1120.CP_model_settings.csv +0 -0
  99. {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/models/cp/toxo_pv_lumen.CP_model +0 -0
  100. {spacr-0.2.5 → spacr-0.2.8}/spacr/sim.py +0 -0
  101. {spacr-0.2.5 → spacr-0.2.8}/spacr/sim_app.py +0 -0
  102. {spacr-0.2.5 → spacr-0.2.8}/spacr/timelapse.py +0 -0
  103. {spacr-0.2.5 → spacr-0.2.8}/spacr/version.py +0 -0
  104. {spacr-0.2.5 → spacr-0.2.8}/spacr.egg-info/dependency_links.txt +0 -0
  105. {spacr-0.2.5 → spacr-0.2.8}/spacr.egg-info/entry_points.txt +0 -0
  106. {spacr-0.2.5 → spacr-0.2.8}/spacr.egg-info/top_level.txt +0 -0
  107. {spacr-0.2.5 → spacr-0.2.8}/tests/test_annotate_app.py +0 -0
  108. {spacr-0.2.5 → spacr-0.2.8}/tests/test_core.py +0 -0
  109. {spacr-0.2.5 → spacr-0.2.8}/tests/test_gui_classify_app.py +0 -0
  110. {spacr-0.2.5 → spacr-0.2.8}/tests/test_gui_mask_app.py +0 -0
  111. {spacr-0.2.5 → spacr-0.2.8}/tests/test_gui_measure_app.py +0 -0
  112. {spacr-0.2.5 → spacr-0.2.8}/tests/test_gui_sim_app.py +0 -0
  113. {spacr-0.2.5 → spacr-0.2.8}/tests/test_gui_utils.py +0 -0
  114. {spacr-0.2.5 → spacr-0.2.8}/tests/test_io.py +0 -0
  115. {spacr-0.2.5 → spacr-0.2.8}/tests/test_mask_app.py +0 -0
  116. {spacr-0.2.5 → spacr-0.2.8}/tests/test_measure.py +0 -0
  117. {spacr-0.2.5 → spacr-0.2.8}/tests/test_plot.py +0 -0
  118. {spacr-0.2.5 → spacr-0.2.8}/tests/test_sim.py +0 -0
  119. {spacr-0.2.5 → spacr-0.2.8}/tests/test_timelapse.py +0 -0
  120. {spacr-0.2.5 → spacr-0.2.8}/tests/test_train.py +0 -0
  121. {spacr-0.2.5 → spacr-0.2.8}/tests/test_umap.py +0 -0
  122. {spacr-0.2.5 → spacr-0.2.8}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: spacr
3
- Version: 0.2.5
3
+ Version: 0.2.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
@@ -9,10 +9,12 @@ Classifier: Programming Language :: Python :: 3
9
9
  Classifier: License :: OSI Approved :: MIT License
10
10
  Classifier: Operating System :: OS Independent
11
11
  License-File: LICENSE
12
- Requires-Dist: torch<3.0,>=2.2.1
13
- Requires-Dist: torchvision<1.0,>=0.17.1
14
- Requires-Dist: torch-geometric<3.0,>=2.5.1
12
+ Requires-Dist: torch<3.0,>=2.0
13
+ Requires-Dist: torchvision<1.0,>=0.1
14
+ Requires-Dist: torch-geometric<3.0,>=2.5
15
15
  Requires-Dist: numpy<2.0,>=1.26.4
16
+ Requires-Dist: bottleneck<2.0,>=1.3.6
17
+ Requires-Dist: numexpr<3.0,>=2.8.4
16
18
  Requires-Dist: pandas<3.0,>=2.2.1
17
19
  Requires-Dist: statsmodels<1.0,>=0.14.1
18
20
  Requires-Dist: scikit-image<1.0,>=0.22.0
@@ -43,6 +45,11 @@ Requires-Dist: psutil<6.0,>=5.9.8
43
45
  Requires-Dist: gputil<2.0,>=1.4.0
44
46
  Requires-Dist: gpustat<2.0,>=1.1.1
45
47
  Requires-Dist: pyautogui<1.0,>=0.9.54
48
+ Requires-Dist: tables<4.0,>=3.8.0
49
+ Requires-Dist: rapidfuzz<4.0,>=3.9
50
+ Requires-Dist: keyring<16.0,>=15.1
51
+ Requires-Dist: screeninfo<1.0,>=0.8.1
52
+ Requires-Dist: ipykernel
46
53
  Requires-Dist: huggingface-hub<0.25,>=0.24.0
47
54
  Provides-Extra: dev
48
55
  Requires-Dist: pytest<3.11,>=3.9; extra == "dev"
@@ -1,24 +1,17 @@
1
1
  from setuptools import setup, find_packages
2
2
  import subprocess
3
3
 
4
- # Function to determine the CUDA version
5
- def get_cuda_version():
6
- try:
7
- output = subprocess.check_output(['nvcc', '--version'], stderr=subprocess.STDOUT).decode('utf-8')
8
- if 'release' in output:
9
- return output.split('release ')[1].split(',')[0].replace('.', '')
10
- except (subprocess.CalledProcessError, FileNotFoundError):
11
- return None
12
-
13
4
  # Ensure you have read the README.rst content into a variable, e.g., `long_description`
14
5
  with open("README.rst", "r", encoding="utf-8") as fh:
15
6
  long_description = fh.read()
16
7
 
17
8
  dependencies = [
18
- 'torch>=2.2.1,<3.0',
19
- 'torchvision>=0.17.1,<1.0',
20
- 'torch-geometric>=2.5.1,<3.0',
9
+ 'torch>=2.0,<3.0',
10
+ 'torchvision>=0.1,<1.0',
11
+ 'torch-geometric>=2.5,<3.0',
21
12
  'numpy>=1.26.4,<2.0',
13
+ 'bottleneck>=1.3.6,<2.0',
14
+ 'numexpr>=2.8.4,<3.0',
22
15
  'pandas>=2.2.1,<3.0',
23
16
  'statsmodels>=0.14.1,<1.0',
24
17
  'scikit-image>=0.22.0,<1.0',
@@ -49,12 +42,17 @@ dependencies = [
49
42
  'gputil>=1.4.0, <2.0',
50
43
  'gpustat>=1.1.1,<2.0',
51
44
  'pyautogui>=0.9.54,<1.0',
45
+ 'tables>=3.8.0,<4.0',
46
+ 'rapidfuzz>=3.9, <4.0',
47
+ 'keyring>=15.1, <16.0',
48
+ 'screeninfo>=0.8.1,<1.0',
49
+ 'ipykernel',
52
50
  'huggingface-hub>=0.24.0,<0.25'
53
51
  ]
54
52
 
55
53
  setup(
56
54
  name="spacr",
57
- version="0.2.5",
55
+ version="0.2.8",
58
56
  author="Einar Birnir Olafsson",
59
57
  author_email="olafsson@med.umich.com",
60
58
  description="Spatial phenotype analysis of crisp screens (SpaCr)",
@@ -87,17 +85,6 @@ setup(
87
85
  ]
88
86
  )
89
87
 
90
- cuda_version = get_cuda_version()
91
-
92
- if cuda_version:
93
- dgl = f'dgl-cu{cuda_version}==0.9.1'
94
- else:
95
- dgl = 'dgl==0.9.1' # Fallback to CPU version if no CUDA is detected
96
- try:
97
- subprocess.run(['pip', 'install', dgl], check=True)
98
- except subprocess.CalledProcessError:
99
- subprocess.run(['pip', 'install', 'dgl'], check=True)
100
-
101
88
  deps = ['pyqtgraph>=0.13.7,<0.14',
102
89
  'pyqt6>=6.7.1,<6.8',
103
90
  'pyqt6.sip',
@@ -17,7 +17,6 @@ from . import gui_utils
17
17
  from . import gui_elements
18
18
  from . import gui_core
19
19
  from . import gui
20
- from . import gui
21
20
  from . import app_make_masks
22
21
  from . import app_mask
23
22
  from . import app_measure
@@ -35,7 +34,7 @@ __all__ = [
35
34
  "plot",
36
35
  "measure",
37
36
  "sim",
38
- "sequencing"
37
+ "sequencing",
39
38
  "timelapse",
40
39
  "deep_spacr",
41
40
  "app_annotate",
@@ -43,7 +42,6 @@ __all__ = [
43
42
  "gui_elements",
44
43
  "gui_core",
45
44
  "gui",
46
- "gui",
47
45
  "app_make_masks",
48
46
  "app_mask",
49
47
  "app_measure",
@@ -53,13 +51,5 @@ __all__ = [
53
51
  "logger"
54
52
  ]
55
53
 
56
- # Check for CUDA GPU availability
57
- if torch.cuda.is_available():
58
- from . import graph_learning
59
- __all__.append("graph_learning")
60
- logging.info("CUDA GPU detected. Graph learning module loaded.")
61
- else:
62
- logging.info("No CUDA GPU detected. Graph learning module not loaded.")
63
-
64
54
  logging.basicConfig(filename='spacr.log', level=logging.INFO,
65
55
  format='%(asctime)s:%(levelname)s:%(message)s')