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.
- {spacr-0.2.5/spacr.egg-info → spacr-0.2.8}/PKG-INFO +11 -4
- {spacr-0.2.5 → spacr-0.2.8}/setup.py +11 -24
- {spacr-0.2.5 → spacr-0.2.8}/spacr/__init__.py +1 -11
- {spacr-0.2.5 → spacr-0.2.8}/spacr/core.py +226 -287
- {spacr-0.2.5 → spacr-0.2.8}/spacr/deep_spacr.py +248 -269
- {spacr-0.2.5 → spacr-0.2.8}/spacr/gui.py +41 -19
- {spacr-0.2.5 → spacr-0.2.8}/spacr/gui_core.py +404 -151
- {spacr-0.2.5 → spacr-0.2.8}/spacr/gui_elements.py +778 -179
- {spacr-0.2.5 → spacr-0.2.8}/spacr/gui_utils.py +163 -106
- {spacr-0.2.5 → spacr-0.2.8}/spacr/io.py +116 -45
- {spacr-0.2.5 → spacr-0.2.8}/spacr/measure.py +1 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/plot.py +51 -5
- {spacr-0.2.5 → spacr-0.2.8}/spacr/sequencing.py +477 -587
- {spacr-0.2.5 → spacr-0.2.8}/spacr/settings.py +211 -66
- {spacr-0.2.5 → spacr-0.2.8}/spacr/utils.py +34 -14
- {spacr-0.2.5 → spacr-0.2.8/spacr.egg-info}/PKG-INFO +11 -4
- {spacr-0.2.5 → spacr-0.2.8}/spacr.egg-info/SOURCES.txt +0 -2
- {spacr-0.2.5 → spacr-0.2.8}/spacr.egg-info/requires.txt +10 -3
- spacr-0.2.5/spacr/chris.py +0 -50
- spacr-0.2.5/spacr/graph_learning.py +0 -340
- {spacr-0.2.5 → spacr-0.2.8}/LICENSE +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/MANIFEST.in +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/README.rst +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/setup.cfg +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/__main__.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/app_annotate.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/app_classify.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/app_make_masks.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/app_mask.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/app_measure.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/app_sequencing.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/app_umap.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/logger.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/OFL.txt +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/OpenSans-Italic-VariableFont_wdth,wght.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/OpenSans-VariableFont_wdth,wght.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/README.txt +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-Bold.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-BoldItalic.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-ExtraBold.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-ExtraBoldItalic.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-Italic.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-Light.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-LightItalic.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-Medium.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-MediumItalic.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-Regular.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-SemiBold.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans-SemiBoldItalic.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Bold.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-BoldItalic.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-ExtraBold.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-ExtraBoldItalic.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Italic.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Light.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-LightItalic.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Medium.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-MediumItalic.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Regular.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-SemiBold.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_Condensed-SemiBoldItalic.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Bold.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-BoldItalic.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-ExtraBold.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-ExtraBoldItalic.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Italic.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Light.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-LightItalic.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Medium.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-MediumItalic.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Regular.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-SemiBold.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-SemiBoldItalic.ttf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/abort.png +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/annotate.png +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/cellpose_all.png +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/cellpose_masks.png +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/classify.png +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/default.png +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/download.png +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/logo.pdf +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/logo_spacr.png +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/logo_spacr_1.png +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/make_masks.png +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/map_barcodes.png +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/mask.png +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/measure.png +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/ml_analyze.png +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/recruitment.png +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/regression.png +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/run.png +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/sequencing.png +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/settings.png +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/spacr_logo_rotation.gif +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/train_cellpose.png +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/icons/umap.png +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/models/cp/toxo_plaque_cyto_e25000_X1120_Y1120.CP_model +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/models/cp/toxo_plaque_cyto_e25000_X1120_Y1120.CP_model_settings.csv +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/resources/models/cp/toxo_pv_lumen.CP_model +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/sim.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/sim_app.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/timelapse.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr/version.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr.egg-info/dependency_links.txt +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr.egg-info/entry_points.txt +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/spacr.egg-info/top_level.txt +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/tests/test_annotate_app.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/tests/test_core.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/tests/test_gui_classify_app.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/tests/test_gui_mask_app.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/tests/test_gui_measure_app.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/tests/test_gui_sim_app.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/tests/test_gui_utils.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/tests/test_io.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/tests/test_mask_app.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/tests/test_measure.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/tests/test_plot.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/tests/test_sim.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/tests/test_timelapse.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/tests/test_train.py +0 -0
- {spacr-0.2.5 → spacr-0.2.8}/tests/test_umap.py +0 -0
- {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.
|
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.
|
13
|
-
Requires-Dist: torchvision<1.0,>=0.
|
14
|
-
Requires-Dist: torch-geometric<3.0,>=2.5
|
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.
|
19
|
-
'torchvision>=0.
|
20
|
-
'torch-geometric>=2.5
|
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.
|
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')
|