spacr 0.2.4__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 (125) hide show
  1. {spacr-0.2.4/spacr.egg-info → spacr-0.2.8}/PKG-INFO +15 -4
  2. {spacr-0.2.4 → spacr-0.2.8}/setup.py +16 -25
  3. {spacr-0.2.4 → spacr-0.2.8}/spacr/__init__.py +1 -11
  4. {spacr-0.2.4 → spacr-0.2.8}/spacr/core.py +277 -349
  5. {spacr-0.2.4 → spacr-0.2.8}/spacr/deep_spacr.py +248 -269
  6. {spacr-0.2.4 → spacr-0.2.8}/spacr/gui.py +58 -54
  7. spacr-0.2.8/spacr/gui_core.py +949 -0
  8. {spacr-0.2.4 → spacr-0.2.8}/spacr/gui_elements.py +1002 -153
  9. spacr-0.2.8/spacr/gui_utils.py +697 -0
  10. {spacr-0.2.4 → spacr-0.2.8}/spacr/io.py +158 -91
  11. {spacr-0.2.4 → spacr-0.2.8}/spacr/measure.py +199 -151
  12. {spacr-0.2.4 → spacr-0.2.8}/spacr/plot.py +159 -47
  13. spacr-0.2.8/spacr/resources/font/open_sans/OFL.txt +93 -0
  14. spacr-0.2.8/spacr/resources/font/open_sans/OpenSans-Italic-VariableFont_wdth,wght.ttf +0 -0
  15. spacr-0.2.8/spacr/resources/font/open_sans/OpenSans-VariableFont_wdth,wght.ttf +0 -0
  16. spacr-0.2.8/spacr/resources/font/open_sans/README.txt +100 -0
  17. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans-Bold.ttf +0 -0
  18. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans-BoldItalic.ttf +0 -0
  19. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans-ExtraBold.ttf +0 -0
  20. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans-ExtraBoldItalic.ttf +0 -0
  21. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans-Italic.ttf +0 -0
  22. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans-Light.ttf +0 -0
  23. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans-LightItalic.ttf +0 -0
  24. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans-Medium.ttf +0 -0
  25. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans-MediumItalic.ttf +0 -0
  26. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans-Regular.ttf +0 -0
  27. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans-SemiBold.ttf +0 -0
  28. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans-SemiBoldItalic.ttf +0 -0
  29. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_Condensed-Bold.ttf +0 -0
  30. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_Condensed-BoldItalic.ttf +0 -0
  31. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_Condensed-ExtraBold.ttf +0 -0
  32. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_Condensed-ExtraBoldItalic.ttf +0 -0
  33. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_Condensed-Italic.ttf +0 -0
  34. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_Condensed-Light.ttf +0 -0
  35. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_Condensed-LightItalic.ttf +0 -0
  36. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_Condensed-Medium.ttf +0 -0
  37. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_Condensed-MediumItalic.ttf +0 -0
  38. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_Condensed-Regular.ttf +0 -0
  39. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_Condensed-SemiBold.ttf +0 -0
  40. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_Condensed-SemiBoldItalic.ttf +0 -0
  41. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Bold.ttf +0 -0
  42. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-BoldItalic.ttf +0 -0
  43. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-ExtraBold.ttf +0 -0
  44. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-ExtraBoldItalic.ttf +0 -0
  45. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Italic.ttf +0 -0
  46. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Light.ttf +0 -0
  47. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-LightItalic.ttf +0 -0
  48. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Medium.ttf +0 -0
  49. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-MediumItalic.ttf +0 -0
  50. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Regular.ttf +0 -0
  51. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-SemiBold.ttf +0 -0
  52. spacr-0.2.8/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-SemiBoldItalic.ttf +0 -0
  53. spacr-0.2.8/spacr/resources/icons/logo.pdf +2786 -6
  54. spacr-0.2.8/spacr/resources/icons/logo_spacr.png +0 -0
  55. {spacr-0.2.4 → spacr-0.2.8}/spacr/sequencing.py +477 -587
  56. {spacr-0.2.4 → spacr-0.2.8}/spacr/settings.py +217 -144
  57. {spacr-0.2.4 → spacr-0.2.8}/spacr/utils.py +46 -46
  58. {spacr-0.2.4 → spacr-0.2.8/spacr.egg-info}/PKG-INFO +15 -4
  59. spacr-0.2.8/spacr.egg-info/SOURCES.txt +118 -0
  60. {spacr-0.2.4 → spacr-0.2.8}/spacr.egg-info/requires.txt +14 -3
  61. spacr-0.2.4/spacr/chris.py +0 -50
  62. spacr-0.2.4/spacr/graph_learning.py +0 -340
  63. spacr-0.2.4/spacr/gui_core.py +0 -795
  64. spacr-0.2.4/spacr/gui_utils.py +0 -352
  65. spacr-0.2.4/spacr.egg-info/SOURCES.txt +0 -78
  66. {spacr-0.2.4 → spacr-0.2.8}/LICENSE +0 -0
  67. {spacr-0.2.4 → spacr-0.2.8}/MANIFEST.in +0 -0
  68. {spacr-0.2.4 → spacr-0.2.8}/README.rst +0 -0
  69. {spacr-0.2.4 → spacr-0.2.8}/setup.cfg +0 -0
  70. {spacr-0.2.4 → spacr-0.2.8}/spacr/__main__.py +0 -0
  71. {spacr-0.2.4 → spacr-0.2.8}/spacr/app_annotate.py +0 -0
  72. {spacr-0.2.4 → spacr-0.2.8}/spacr/app_classify.py +0 -0
  73. {spacr-0.2.4 → spacr-0.2.8}/spacr/app_make_masks.py +0 -0
  74. {spacr-0.2.4 → spacr-0.2.8}/spacr/app_mask.py +0 -0
  75. {spacr-0.2.4 → spacr-0.2.8}/spacr/app_measure.py +0 -0
  76. {spacr-0.2.4 → spacr-0.2.8}/spacr/app_sequencing.py +0 -0
  77. {spacr-0.2.4 → spacr-0.2.8}/spacr/app_umap.py +0 -0
  78. {spacr-0.2.4 → spacr-0.2.8}/spacr/logger.py +0 -0
  79. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/icons/abort.png +0 -0
  80. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/icons/annotate.png +0 -0
  81. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/icons/cellpose_all.png +0 -0
  82. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/icons/cellpose_masks.png +0 -0
  83. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/icons/classify.png +0 -0
  84. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/icons/default.png +0 -0
  85. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/icons/download.png +0 -0
  86. /spacr-0.2.4/spacr/resources/icons/logo_spacr.png → /spacr-0.2.8/spacr/resources/icons/logo_spacr_1.png +0 -0
  87. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/icons/make_masks.png +0 -0
  88. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/icons/map_barcodes.png +0 -0
  89. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/icons/mask.png +0 -0
  90. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/icons/measure.png +0 -0
  91. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/icons/ml_analyze.png +0 -0
  92. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/icons/recruitment.png +0 -0
  93. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/icons/regression.png +0 -0
  94. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/icons/run.png +0 -0
  95. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/icons/sequencing.png +0 -0
  96. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/icons/settings.png +0 -0
  97. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/icons/spacr_logo_rotation.gif +0 -0
  98. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/icons/train_cellpose.png +0 -0
  99. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/icons/umap.png +0 -0
  100. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/models/cp/toxo_plaque_cyto_e25000_X1120_Y1120.CP_model +0 -0
  101. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/models/cp/toxo_plaque_cyto_e25000_X1120_Y1120.CP_model_settings.csv +0 -0
  102. {spacr-0.2.4 → spacr-0.2.8}/spacr/resources/models/cp/toxo_pv_lumen.CP_model +0 -0
  103. {spacr-0.2.4 → spacr-0.2.8}/spacr/sim.py +0 -0
  104. {spacr-0.2.4 → spacr-0.2.8}/spacr/sim_app.py +0 -0
  105. {spacr-0.2.4 → spacr-0.2.8}/spacr/timelapse.py +0 -0
  106. {spacr-0.2.4 → spacr-0.2.8}/spacr/version.py +0 -0
  107. {spacr-0.2.4 → spacr-0.2.8}/spacr.egg-info/dependency_links.txt +0 -0
  108. {spacr-0.2.4 → spacr-0.2.8}/spacr.egg-info/entry_points.txt +0 -0
  109. {spacr-0.2.4 → spacr-0.2.8}/spacr.egg-info/top_level.txt +0 -0
  110. {spacr-0.2.4 → spacr-0.2.8}/tests/test_annotate_app.py +0 -0
  111. {spacr-0.2.4 → spacr-0.2.8}/tests/test_core.py +0 -0
  112. {spacr-0.2.4 → spacr-0.2.8}/tests/test_gui_classify_app.py +0 -0
  113. {spacr-0.2.4 → spacr-0.2.8}/tests/test_gui_mask_app.py +0 -0
  114. {spacr-0.2.4 → spacr-0.2.8}/tests/test_gui_measure_app.py +0 -0
  115. {spacr-0.2.4 → spacr-0.2.8}/tests/test_gui_sim_app.py +0 -0
  116. {spacr-0.2.4 → spacr-0.2.8}/tests/test_gui_utils.py +0 -0
  117. {spacr-0.2.4 → spacr-0.2.8}/tests/test_io.py +0 -0
  118. {spacr-0.2.4 → spacr-0.2.8}/tests/test_mask_app.py +0 -0
  119. {spacr-0.2.4 → spacr-0.2.8}/tests/test_measure.py +0 -0
  120. {spacr-0.2.4 → spacr-0.2.8}/tests/test_plot.py +0 -0
  121. {spacr-0.2.4 → spacr-0.2.8}/tests/test_sim.py +0 -0
  122. {spacr-0.2.4 → spacr-0.2.8}/tests/test_timelapse.py +0 -0
  123. {spacr-0.2.4 → spacr-0.2.8}/tests/test_train.py +0 -0
  124. {spacr-0.2.4 → spacr-0.2.8}/tests/test_umap.py +0 -0
  125. {spacr-0.2.4 → 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.4
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
@@ -39,6 +41,15 @@ Requires-Dist: ttf_opensans>=2020.10.30
39
41
  Requires-Dist: customtkinter<6.0,>=5.2.2
40
42
  Requires-Dist: biopython<2.0,>=1.80
41
43
  Requires-Dist: lxml<6.0,>=5.1.0
44
+ Requires-Dist: psutil<6.0,>=5.9.8
45
+ Requires-Dist: gputil<2.0,>=1.4.0
46
+ Requires-Dist: gpustat<2.0,>=1.1.1
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
42
53
  Requires-Dist: huggingface-hub<0.25,>=0.24.0
43
54
  Provides-Extra: dev
44
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',
@@ -45,12 +38,21 @@ dependencies = [
45
38
  'customtkinter>=5.2.2,<6.0',
46
39
  'biopython>=1.80,<2.0',
47
40
  'lxml>=5.1.0,<6.0',
41
+ 'psutil>=5.9.8, <6.0',
42
+ 'gputil>=1.4.0, <2.0',
43
+ 'gpustat>=1.1.1,<2.0',
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',
48
50
  'huggingface-hub>=0.24.0,<0.25'
49
51
  ]
50
52
 
51
53
  setup(
52
54
  name="spacr",
53
- version="0.2.4",
55
+ version="0.2.8",
54
56
  author="Einar Birnir Olafsson",
55
57
  author_email="olafsson@med.umich.com",
56
58
  description="Spatial phenotype analysis of crisp screens (SpaCr)",
@@ -58,7 +60,7 @@ setup(
58
60
  url="https://github.com/EinarOlafsson/spacr",
59
61
  packages=find_packages(exclude=["tests.*", "tests"]),
60
62
  include_package_data=True,
61
- package_data={'spacr': ['resources/models/cp/*', 'resources/icons/*'],},
63
+ package_data={'spacr': ['resources/models/cp/*', 'resources/icons/*', 'resources/font/**/*'],},
62
64
  install_requires=dependencies,
63
65
  entry_points={
64
66
  'console_scripts': [
@@ -83,17 +85,6 @@ setup(
83
85
  ]
84
86
  )
85
87
 
86
- cuda_version = get_cuda_version()
87
-
88
- if cuda_version:
89
- dgl = f'dgl-cu{cuda_version}==0.9.1'
90
- else:
91
- dgl = 'dgl==0.9.1' # Fallback to CPU version if no CUDA is detected
92
- try:
93
- subprocess.run(['pip', 'install', dgl], check=True)
94
- except subprocess.CalledProcessError:
95
- subprocess.run(['pip', 'install', 'dgl'], check=True)
96
-
97
88
  deps = ['pyqtgraph>=0.13.7,<0.14',
98
89
  'pyqt6>=6.7.1,<6.8',
99
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')