spacr 0.1.1__py3-none-any.whl → 0.1.7__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/__init__.py +18 -12
- spacr/annotate_app.py +258 -99
- spacr/annotate_app_v2.py +163 -4
- spacr/app_annotate.py +541 -0
- spacr/app_classify.py +8 -0
- spacr/app_make_masks.py +925 -0
- spacr/app_make_masks_v2.py +686 -0
- spacr/app_mask.py +8 -0
- spacr/app_measure.py +8 -0
- spacr/app_sequencing.py +8 -0
- spacr/app_umap.py +8 -0
- spacr/classify_app.py +201 -0
- spacr/core.py +30 -28
- spacr/deep_spacr.py +9 -7
- spacr/gui.py +50 -31
- spacr/gui_annotate.py +145 -0
- spacr/gui_classify_app.py +20 -6
- spacr/gui_core.py +608 -0
- spacr/gui_elements.py +324 -0
- spacr/gui_make_masks_app.py +927 -0
- spacr/gui_make_masks_app_v2.py +688 -0
- spacr/gui_mask_app.py +8 -4
- spacr/gui_measure_app.py +15 -5
- spacr/gui_run.py +58 -0
- spacr/gui_utils.py +80 -1026
- spacr/gui_wrappers.py +149 -0
- spacr/make_masks_app.py +929 -0
- spacr/make_masks_app_v2.py +688 -0
- spacr/mask_app.py +239 -915
- spacr/measure.py +35 -15
- spacr/measure_app.py +246 -0
- spacr/plot.py +53 -1
- spacr/sequencing.py +1 -17
- spacr/settings.py +502 -9
- spacr/sim_app.py +0 -0
- spacr/utils.py +73 -11
- {spacr-0.1.1.dist-info → spacr-0.1.7.dist-info}/METADATA +13 -22
- spacr-0.1.7.dist-info/RECORD +60 -0
- spacr-0.1.7.dist-info/entry_points.txt +8 -0
- spacr-0.1.1.dist-info/RECORD +0 -40
- spacr-0.1.1.dist-info/entry_points.txt +0 -9
- {spacr-0.1.1.dist-info → spacr-0.1.7.dist-info}/LICENSE +0 -0
- {spacr-0.1.1.dist-info → spacr-0.1.7.dist-info}/WHEEL +0 -0
- {spacr-0.1.1.dist-info → spacr-0.1.7.dist-info}/top_level.txt +0 -0
spacr/utils.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import sys, os, re, sqlite3, torch, torchvision, random, string, shutil, cv2, tarfile, glob
|
1
|
+
import sys, os, re, sqlite3, torch, torchvision, random, string, shutil, cv2, tarfile, glob, psutil, platform, signal
|
2
2
|
|
3
3
|
import numpy as np
|
4
4
|
from cellpose import models as cp_models
|
@@ -72,6 +72,64 @@ from sklearn.cluster import KMeans
|
|
72
72
|
from scipy import stats
|
73
73
|
|
74
74
|
from .logger import log_function_call
|
75
|
+
from multiprocessing import set_start_method, get_start_method
|
76
|
+
|
77
|
+
import tkinter as tk
|
78
|
+
from tkinter import ttk
|
79
|
+
import tkinter.font as tkFont
|
80
|
+
|
81
|
+
def reset_mp():
|
82
|
+
current_method = get_start_method()
|
83
|
+
system = platform.system()
|
84
|
+
|
85
|
+
if system == 'Windows':
|
86
|
+
if current_method != 'spawn':
|
87
|
+
set_start_method('spawn', force=True)
|
88
|
+
elif system in ('Linux', 'Darwin'): # Darwin is macOS
|
89
|
+
if current_method != 'fork':
|
90
|
+
set_start_method('fork', force=True)
|
91
|
+
|
92
|
+
def is_multiprocessing_process(process):
|
93
|
+
""" Check if the process is a multiprocessing process. """
|
94
|
+
try:
|
95
|
+
for cmd in process.cmdline():
|
96
|
+
if 'multiprocessing' in cmd:
|
97
|
+
return True
|
98
|
+
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
|
99
|
+
pass
|
100
|
+
return False
|
101
|
+
|
102
|
+
def close_file_descriptors():
|
103
|
+
""" Close file descriptors and shared memory objects. """
|
104
|
+
import resource
|
105
|
+
|
106
|
+
soft, hard = resource.getrlimit(resource.RLIMIT_NOFILE)
|
107
|
+
for fd in range(3, soft):
|
108
|
+
try:
|
109
|
+
os.close(fd)
|
110
|
+
except OSError:
|
111
|
+
pass
|
112
|
+
|
113
|
+
def close_multiprocessing_processes():
|
114
|
+
""" Close all multiprocessing processes. """
|
115
|
+
current_pid = os.getpid()
|
116
|
+
for proc in psutil.process_iter(['pid', 'cmdline']):
|
117
|
+
try:
|
118
|
+
# Skip the current process
|
119
|
+
if proc.info['pid'] == current_pid:
|
120
|
+
continue
|
121
|
+
|
122
|
+
# Check if the process is a multiprocessing process
|
123
|
+
if is_multiprocessing_process(proc):
|
124
|
+
proc.terminate()
|
125
|
+
proc.wait(timeout=5) # Wait up to 5 seconds for the process to terminate
|
126
|
+
print(f"Terminated process {proc.info['pid']}")
|
127
|
+
|
128
|
+
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess) as e:
|
129
|
+
print(f"Failed to terminate process {proc.info['pid']}: {e}")
|
130
|
+
|
131
|
+
# Close file descriptors
|
132
|
+
close_file_descriptors()
|
75
133
|
|
76
134
|
def check_mask_folder(src,mask_fldr):
|
77
135
|
|
@@ -92,19 +150,14 @@ def check_mask_folder(src,mask_fldr):
|
|
92
150
|
|
93
151
|
def smooth_hull_lines(cluster_data):
|
94
152
|
hull = ConvexHull(cluster_data)
|
95
|
-
|
96
153
|
# Extract vertices of the hull
|
97
154
|
vertices = hull.points[hull.vertices]
|
98
|
-
|
99
155
|
# Close the loop
|
100
156
|
vertices = np.vstack([vertices, vertices[0, :]])
|
101
|
-
|
102
157
|
# Parameterize the vertices
|
103
158
|
tck, u = splprep(vertices.T, u=None, s=0.0)
|
104
|
-
|
105
159
|
# Evaluate spline at new parameter values
|
106
160
|
new_points = splev(np.linspace(0, 1, 100), tck)
|
107
|
-
|
108
161
|
return new_points[0], new_points[1]
|
109
162
|
|
110
163
|
def _gen_rgb_image(image, channels):
|
@@ -419,7 +472,7 @@ def is_list_of_lists(var):
|
|
419
472
|
return True
|
420
473
|
return False
|
421
474
|
|
422
|
-
def normalize_to_dtype(array, p1=2, p2=98, percentile_list=None):
|
475
|
+
def normalize_to_dtype(array, p1=2, p2=98, percentile_list=None, new_dtype=None):
|
423
476
|
"""
|
424
477
|
Normalize each image in the stack to its own percentiles.
|
425
478
|
|
@@ -438,7 +491,16 @@ def normalize_to_dtype(array, p1=2, p2=98, percentile_list=None):
|
|
438
491
|
The normalized stack with the same shape as the input stack.
|
439
492
|
"""
|
440
493
|
|
441
|
-
|
494
|
+
if new_dtype is None:
|
495
|
+
out_range = (0, np.iinfo(array.dtype).max)
|
496
|
+
elif new_dtype in [np.uint8, np.uint16]:
|
497
|
+
out_range = (0, np.iinfo(new_dtype).max)
|
498
|
+
elif new_dtype in ['uint8', 'uint16']:
|
499
|
+
new_dtype = np.uint8 if new_dtype == 'uint8' else np.uint16
|
500
|
+
out_range = (0, np.iinfo(new_dtype).max)
|
501
|
+
else:
|
502
|
+
out_range = (0, np.iinfo(array.dtype).max)
|
503
|
+
|
442
504
|
nimg = array.shape[2]
|
443
505
|
new_stack = np.empty_like(array, dtype=array.dtype)
|
444
506
|
|
@@ -3997,7 +4059,7 @@ def _merge_cells_based_on_parasite_overlap(parasite_mask, cell_mask, nuclei_mask
|
|
3997
4059
|
|
3998
4060
|
# Relabel the merged cell mask
|
3999
4061
|
relabeled_cell_mask, _ = label(cell_mask, return_num=True)
|
4000
|
-
return relabeled_cell_mask
|
4062
|
+
return relabeled_cell_mask.astype(np.uint16)
|
4001
4063
|
|
4002
4064
|
def adjust_cell_masks(parasite_folder, cell_folder, nuclei_folder, overlap_threshold=5, perimeter_threshold=30):
|
4003
4065
|
|
@@ -4037,7 +4099,7 @@ def adjust_cell_masks(parasite_folder, cell_folder, nuclei_folder, overlap_thres
|
|
4037
4099
|
merged_cell_mask = _merge_cells_based_on_parasite_overlap(parasite_mask, cell_mask, nuclei_mask, overlap_threshold, perimeter_threshold)
|
4038
4100
|
|
4039
4101
|
# Force 16 bit
|
4040
|
-
|
4102
|
+
#merged_cell_mask = merged_cell_mask.astype(np.uint16)
|
4041
4103
|
|
4042
4104
|
# Overwrite the original cell mask file with the merged result
|
4043
4105
|
np.save(cell_path, merged_cell_mask)
|
@@ -4329,4 +4391,4 @@ def correct_masks(src):
|
|
4329
4391
|
|
4330
4392
|
cell_path = os.path.join(src,'norm_channel_stack', 'cell_mask_stack')
|
4331
4393
|
convert_and_relabel_masks(cell_path)
|
4332
|
-
_load_and_concatenate_arrays(src, [0,1,2,3], 1, 0, 2)
|
4394
|
+
_load_and_concatenate_arrays(src, [0,1,2,3], 1, 0, 2)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: spacr
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.7
|
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,7 +9,6 @@ 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: dgl ==0.9.1
|
13
12
|
Requires-Dist: torch <3.0,>=2.2.1
|
14
13
|
Requires-Dist: torchvision <1.0,>=0.17.1
|
15
14
|
Requires-Dist: torch-geometric <3.0,>=2.5.1
|
@@ -40,8 +39,9 @@ Requires-Dist: ttf-opensans >=2020.10.30
|
|
40
39
|
Requires-Dist: customtkinter <6.0,>=5.2.2
|
41
40
|
Requires-Dist: biopython <2.0,>=1.80
|
42
41
|
Requires-Dist: lxml <6.0,>=5.1.0
|
42
|
+
Requires-Dist: huggingface-hub <0.25,>=0.24.0
|
43
43
|
Provides-Extra: dev
|
44
|
-
Requires-Dist: pytest
|
44
|
+
Requires-Dist: pytest <3.11,>=3.9 ; extra == 'dev'
|
45
45
|
Provides-Extra: full
|
46
46
|
Requires-Dist: opencv-python ; extra == 'full'
|
47
47
|
Provides-Extra: headless
|
@@ -63,7 +63,7 @@ Requires-Dist: opencv-python-headless ; extra == 'headless'
|
|
63
63
|
SpaCr
|
64
64
|
=====
|
65
65
|
|
66
|
-
Spatial phenotype analysis of CRISPR-Cas9 screens (SpaCr). The spatial organization of organelles and proteins within cells constitutes a key level of functional regulation. In the context of infectious disease, the spatial relationships between host cell structures and intracellular pathogens are critical to
|
66
|
+
Spatial phenotype analysis of CRISPR-Cas9 screens (SpaCr). The spatial organization of organelles and proteins within cells constitutes a key level of functional regulation. In the context of infectious disease, the spatial relationships between host cell structures and intracellular pathogens are critical to understanding host clearance mechanisms and how pathogens evade them. SpaCr is a Python-based software package for generating single-cell image data for deep-learning sub-cellular/cellular phenotypic classification from pooled genetic CRISPR-Cas9 screens. SpaCr provides a flexible toolset to extract single-cell images and measurements from high-content cell painting experiments, train deep-learning models to classify cellular/subcellular phenotypes, simulate, and analyze pooled CRISPR-Cas9 imaging screens.
|
67
67
|
|
68
68
|
Features
|
69
69
|
--------
|
@@ -72,9 +72,9 @@ Features
|
|
72
72
|
|
73
73
|
- **Object Measurements:** Measurements for each object including scikit-image-regionprops, intensity percentiles, shannon-entropy, pearsons and manders correlations, homogeneity, and radial distribution. Measurements are saved to a SQL database in object-level tables.
|
74
74
|
|
75
|
-
- **Crop Images:**
|
75
|
+
- **Crop Images:** Save objects (cells, nuclei, pathogen, cytoplasm) as images. Object image paths are saved in a SQL database.
|
76
76
|
|
77
|
-
- **Train CNNs or Transformers:** Train Torch
|
77
|
+
- **Train CNNs or Transformers:** Train Torch models to classify single object images.
|
78
78
|
|
79
79
|
- **Manual Annotation:** Supports manual annotation of single-cell images and segmentation to refine training datasets for training CNNs/Transformers or cellpose, respectively.
|
80
80
|
|
@@ -91,29 +91,20 @@ Features
|
|
91
91
|
Installation
|
92
92
|
------------
|
93
93
|
|
94
|
-
|
94
|
+
If using Windows, switch to Linux—it's free, open-source, and better.
|
95
95
|
|
96
|
-
|
97
|
-
~~~~~~
|
96
|
+
Before installing SpaCr on OSX ensure OpenMP is installed::
|
98
97
|
|
99
|
-
|
98
|
+
brew install libomp
|
100
99
|
|
101
|
-
(Tkinter is included with the standard Python installation on macOS
|
102
|
-
|
103
|
-
On Linux:
|
104
|
-
|
105
|
-
::
|
100
|
+
SpaCr GUI requires Tkinter. On Linux, ensure Tkinter is installed. (Tkinter is included with the standard Python installation on macOS and Windows)::
|
106
101
|
|
107
102
|
sudo apt-get install python3-tk
|
108
103
|
|
109
|
-
Install
|
110
|
-
|
111
|
-
::
|
104
|
+
Install SpaCr with pip::
|
112
105
|
|
113
106
|
pip install spacr
|
114
107
|
|
115
|
-
Run
|
116
|
-
|
117
|
-
::
|
108
|
+
Run SpaCr GUI::
|
118
109
|
|
119
|
-
|
110
|
+
spacr
|
@@ -0,0 +1,60 @@
|
|
1
|
+
spacr/__init__.py,sha256=8uhfJ_RcnX4OmvflNRcts4zxnyfML6xiyIeFGZeMpXg,1416
|
2
|
+
spacr/__main__.py,sha256=bkAJJD2kjIqOP-u1kLvct9jQQCeUXzlEjdgitwi1Lm8,75
|
3
|
+
spacr/alpha.py,sha256=Y95sLEfpK2OSYKRn3M8eUOU33JJeXfV8zhrC4KnwSTY,35244
|
4
|
+
spacr/annotate_app.py,sha256=imQ7ZEXDyM6ce1dxZ1xUS1-KequuF_NCI4xCaPLjvco,29275
|
5
|
+
spacr/annotate_app_v2.py,sha256=imQ7ZEXDyM6ce1dxZ1xUS1-KequuF_NCI4xCaPLjvco,29275
|
6
|
+
spacr/app_annotate.py,sha256=iBAD_qo5_3cQGAmQbtVYXuJd2n8cBH_bfCtqmWcB67s,23610
|
7
|
+
spacr/app_classify.py,sha256=urTP_wlZ58hSyM5a19slYlBxN0PdC-9-ga0hvq8CGWc,165
|
8
|
+
spacr/app_make_masks.py,sha256=0N8Wfby3HaVX4m9tOyBy7OQolamYG9lVwmnlzkK4uaE,44993
|
9
|
+
spacr/app_make_masks_v2.py,sha256=OkNeskNbgep8wQa4ES3jpJjZLfn4yIkGwQOd9r0spfA,30497
|
10
|
+
spacr/app_mask.py,sha256=l-dBY8ftzCMdDe6-pXc2Nh_u-idNL9G7UOARiLJBtds,153
|
11
|
+
spacr/app_measure.py,sha256=_K7APYIeOKpV6e_LcqabBjvEi7mfq9Fch8175x1x0k8,162
|
12
|
+
spacr/app_sequencing.py,sha256=DjG26jy4cpddnV8WOOAIiExtOe9MleVMY4MFa5uTo5w,157
|
13
|
+
spacr/app_umap.py,sha256=ZWAmf_OsIKbYvolYuWPMYhdlVe-n2CADoJulAizMiEo,153
|
14
|
+
spacr/chris.py,sha256=YlBjSgeZaY8HPy6jkrT_ISAnCMAKVfvCxF0I9eAZLFM,2418
|
15
|
+
spacr/classify_app.py,sha256=Zi15ryc1ocYitRF4kyxlC27XxGyzfSPdvj2d6ZrSh7E,8446
|
16
|
+
spacr/cli.py,sha256=507jfOOEV8BoL4eeUcblvH-iiDHdBrEVJLu1ghAAPSc,1800
|
17
|
+
spacr/core.py,sha256=jNlDk-0vb0fpteNT3bsNpfLRLAuwsx7SPlcajT1eCuw,160139
|
18
|
+
spacr/deep_spacr.py,sha256=bIa_txVJBy9zrKyqX0tpNQw0nNCUo77pSSUJiYy1egE,36994
|
19
|
+
spacr/foldseek.py,sha256=YIP1d4Ci6CeA9jSyiv-HTDbNmAmcSM9Y_DaOs7wYzLY,33546
|
20
|
+
spacr/get_alfafold_structures.py,sha256=ehx_MQgb12k3hFecP6cYVlm5TLO8iWjgevy8ESyS3cw,3544
|
21
|
+
spacr/graph_learning.py,sha256=1tR-ZxvXE3dBz1Saw7BeVFcrsUFu9OlUZeZVifih9eo,13070
|
22
|
+
spacr/gui.py,sha256=kvQ0X9nyZz_BWsOyJSNSv7gEG1ZuTqjz4EH78e0uul4,7783
|
23
|
+
spacr/gui_2.py,sha256=ZAI5quQYbhQJ40vK0NCqU_UMSPLkpfeQpomBWUSM0fc,6946
|
24
|
+
spacr/gui_annotate.py,sha256=ugBksLGOHdtOLlEuRyyc59TrkYKu3rDf8JxEgiBSVao,6536
|
25
|
+
spacr/gui_classify_app.py,sha256=Zi15ryc1ocYitRF4kyxlC27XxGyzfSPdvj2d6ZrSh7E,8446
|
26
|
+
spacr/gui_core.py,sha256=qycN0XSe4PcdvvXSagss66SY51RzxT-trv1Z-7mBoig,28452
|
27
|
+
spacr/gui_elements.py,sha256=u3T6Ssx6HC_S4NDaNlDeEGNWaheFoGDRnL8Uyn0hvJ4,15203
|
28
|
+
spacr/gui_make_masks_app.py,sha256=tl4M4Q2WQgrrwjRBJVevxJxpNowqzPhWkdCOm2UfRbw,45053
|
29
|
+
spacr/gui_make_masks_app_v2.py,sha256=X3izTBXdCZDlkVe-fbG-jmCQtcAbmK0OIivjyWaLhug,30576
|
30
|
+
spacr/gui_mask_app.py,sha256=mhTl_XzXLFl8Tx3WYEMpdYB_qw9u5JJa0EdkvlcIzAE,10706
|
31
|
+
spacr/gui_measure_app.py,sha256=_C1-XFL5HSquUEEbM_NcxdvHx-socPFCx85MBG4d6xo,10598
|
32
|
+
spacr/gui_run.py,sha256=0x85MJqFtREuWuNeIRLB8hFeibKGszfN14POQQWzPDQ,1998
|
33
|
+
spacr/gui_sim_app.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
34
|
+
spacr/gui_utils.py,sha256=tl19y0EXFNT73I_AnDFafe7UQga9FL7EQ46o_XCFHFI,5821
|
35
|
+
spacr/gui_wrappers.py,sha256=-E1SFOmtp7_nfg9QzajI7GJcAcaMug92Pjw7pS1YzjY,4656
|
36
|
+
spacr/io.py,sha256=IoERqSwoxJrInYl-E0WfwFOEDZXFdJofk5DmpbyLGWM,112077
|
37
|
+
spacr/logger.py,sha256=7Zqr3TuuOQLWT32gYr2q1qvv7x0a2JhLANmZcnBXAW8,670
|
38
|
+
spacr/make_masks_app.py,sha256=iGaTwhowoe2JMOSOf8bJwQZTooRhLQx7KO0ewnAmqDY,45138
|
39
|
+
spacr/make_masks_app_v2.py,sha256=X3izTBXdCZDlkVe-fbG-jmCQtcAbmK0OIivjyWaLhug,30576
|
40
|
+
spacr/mask_app.py,sha256=mhTl_XzXLFl8Tx3WYEMpdYB_qw9u5JJa0EdkvlcIzAE,10706
|
41
|
+
spacr/measure.py,sha256=CL8bI3ujtQxsRuQJUVSXmThQFPzQvTEDK38DSELpSQo,55746
|
42
|
+
spacr/measure_app.py,sha256=_C1-XFL5HSquUEEbM_NcxdvHx-socPFCx85MBG4d6xo,10598
|
43
|
+
spacr/old_code.py,sha256=jw67DAGoLBd7mWofVzRJSEmCI1Qrff26zIo65SEkV00,13817
|
44
|
+
spacr/plot.py,sha256=DYJEoK1kz2ih6ZGvKiA3xTqeIeKQNhuQKwgrscopFxA,69101
|
45
|
+
spacr/sequencing.py,sha256=fHZRnoMSxmhMdadkei3lUeBdckqFyptWdQyWsDW3aaU,83304
|
46
|
+
spacr/settings.py,sha256=WVM24OZconm3toadtjvBPZjFMn1m4SzHlXQsC52HfUU,47464
|
47
|
+
spacr/sim.py,sha256=FveaVgBi3eypO2oVB5Dx-v0CC1Ny7UPfXkJiiRRodAk,71212
|
48
|
+
spacr/sim_app.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
49
|
+
spacr/timelapse.py,sha256=KMYCgHzf9LTZe-lWl5mvH2EjbKRE6OhpwdY13wEumGc,39504
|
50
|
+
spacr/utils.py,sha256=149Bbha9OXAKyDwABgHz5h4O7Gqy6aeFLA1pMSq311s,186966
|
51
|
+
spacr/version.py,sha256=axH5tnGwtgSnJHb5IDhiu4Zjk5GhLyAEDRe-rnaoFOA,409
|
52
|
+
spacr/models/cp/toxo_plaque_cyto_e25000_X1120_Y1120.CP_model,sha256=z8BbHWZPRnE9D_BHO0fBREE85c1vkltDs-incs2ytXQ,26566572
|
53
|
+
spacr/models/cp/toxo_plaque_cyto_e25000_X1120_Y1120.CP_model_settings.csv,sha256=fBAGuL_B8ERVdVizO3BHozTDSbZUh1yFzsYK3wkQN68,420
|
54
|
+
spacr/models/cp/toxo_pv_lumen.CP_model,sha256=2y_CindYhmTvVwBH39SNILF3rI3x9SsRn6qrMxHy3l0,26562451
|
55
|
+
spacr-0.1.7.dist-info/LICENSE,sha256=SR-2MeGc6SCM1UORJYyarSWY_A-JaOMFDj7ReSs9tRM,1083
|
56
|
+
spacr-0.1.7.dist-info/METADATA,sha256=XEIxRB33Cob2TjCbNvNhJCBiNacpow3AkEl-Wj02wM4,5049
|
57
|
+
spacr-0.1.7.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
58
|
+
spacr-0.1.7.dist-info/entry_points.txt,sha256=BMC0ql9aNNpv8lUZ8sgDLQMsqaVnX5L535gEhKUP5ho,296
|
59
|
+
spacr-0.1.7.dist-info/top_level.txt,sha256=GJPU8FgwRXGzKeut6JopsSRY2R8T3i9lDgya42tLInY,6
|
60
|
+
spacr-0.1.7.dist-info/RECORD,,
|
@@ -0,0 +1,8 @@
|
|
1
|
+
[console_scripts]
|
2
|
+
annotate = spacr.app_annotate:gui_annotate
|
3
|
+
classify = spacr.app_classify:start_classify_app
|
4
|
+
make_masks = spacr.app_make_masks:gui_make_masks
|
5
|
+
mask = spacr.app_mask:start_mask_app
|
6
|
+
measure = spacr.app_measure:start_measure_app
|
7
|
+
sim = spacr.app_sim:gui_sim
|
8
|
+
spacr = spacr.gui:gui_app
|
spacr-0.1.1.dist-info/RECORD
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
spacr/__init__.py,sha256=rnb_oYH6HmC1KvJmc7ymrdtHvmMW5t7bn8tJa03cxcA,1286
|
2
|
-
spacr/__main__.py,sha256=bkAJJD2kjIqOP-u1kLvct9jQQCeUXzlEjdgitwi1Lm8,75
|
3
|
-
spacr/alpha.py,sha256=Y95sLEfpK2OSYKRn3M8eUOU33JJeXfV8zhrC4KnwSTY,35244
|
4
|
-
spacr/annotate_app.py,sha256=2X_xnXFN_w19RG99awsTPLzQfQZyQdwbaT-lcRxyV-w,20670
|
5
|
-
spacr/annotate_app_v2.py,sha256=kvikj_QbN4EHdyYwB0kjEepEuq2uVwfAF-VJ531qO3Q,22647
|
6
|
-
spacr/chris.py,sha256=YlBjSgeZaY8HPy6jkrT_ISAnCMAKVfvCxF0I9eAZLFM,2418
|
7
|
-
spacr/cli.py,sha256=507jfOOEV8BoL4eeUcblvH-iiDHdBrEVJLu1ghAAPSc,1800
|
8
|
-
spacr/core.py,sha256=m9fsk-qDPow4AzOYpTIsd4jT7PF_L_4y5xillR5eRdk,160253
|
9
|
-
spacr/deep_spacr.py,sha256=N0o7ILD2p1FTfU4DFxnpjs00xjLhwib-ev0XGqA6muU,37035
|
10
|
-
spacr/foldseek.py,sha256=YIP1d4Ci6CeA9jSyiv-HTDbNmAmcSM9Y_DaOs7wYzLY,33546
|
11
|
-
spacr/get_alfafold_structures.py,sha256=ehx_MQgb12k3hFecP6cYVlm5TLO8iWjgevy8ESyS3cw,3544
|
12
|
-
spacr/graph_learning.py,sha256=1tR-ZxvXE3dBz1Saw7BeVFcrsUFu9OlUZeZVifih9eo,13070
|
13
|
-
spacr/gui.py,sha256=ugBksLGOHdtOLlEuRyyc59TrkYKu3rDf8JxEgiBSVao,6536
|
14
|
-
spacr/gui_2.py,sha256=ZAI5quQYbhQJ40vK0NCqU_UMSPLkpfeQpomBWUSM0fc,6946
|
15
|
-
spacr/gui_classify_app.py,sha256=W_epjHsM3P9JfYDWFre694r9suXR_oEtBLvs6WAE_po,7860
|
16
|
-
spacr/gui_mask_app.py,sha256=Lmz1_PLUSuYYLWp36xnYSkKXqEn2bgaHIpW0uOeq4gQ,10403
|
17
|
-
spacr/gui_measure_app.py,sha256=kB-BL0_6vGo5MWND7e2OdLTz4MPa77K9tPYu3eDwBnk,10079
|
18
|
-
spacr/gui_sim_app.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
|
-
spacr/gui_utils.py,sha256=FFFpDzlNyolv1iQtawwD_acctvUpMsFsbVMCrdwyuCM,53167
|
20
|
-
spacr/io.py,sha256=IoERqSwoxJrInYl-E0WfwFOEDZXFdJofk5DmpbyLGWM,112077
|
21
|
-
spacr/logger.py,sha256=7Zqr3TuuOQLWT32gYr2q1qvv7x0a2JhLANmZcnBXAW8,670
|
22
|
-
spacr/mask_app.py,sha256=jlKmj_evveIkkyH3PYEcAshcLXN0DOPWB1oc4hAwq9E,44201
|
23
|
-
spacr/measure.py,sha256=0FRsHF5ftar4JZ0B_6Nq-NlyP5t6aiO0IrskyikIBEE,55000
|
24
|
-
spacr/old_code.py,sha256=jw67DAGoLBd7mWofVzRJSEmCI1Qrff26zIo65SEkV00,13817
|
25
|
-
spacr/plot.py,sha256=lrwU51OTWfby1wx73XGyjYmTjLVia7WOmGH5LZZ-4jM,67145
|
26
|
-
spacr/sequencing.py,sha256=U_TBJGNfOBfokGegUe950W_KPfm51VOgpfibXoZ8RMQ,83974
|
27
|
-
spacr/settings.py,sha256=Tr2fo2I75FGfmEVQOONOpGwqXMzFCrYMz4NAxav3ckg,21183
|
28
|
-
spacr/sim.py,sha256=FveaVgBi3eypO2oVB5Dx-v0CC1Ny7UPfXkJiiRRodAk,71212
|
29
|
-
spacr/timelapse.py,sha256=KMYCgHzf9LTZe-lWl5mvH2EjbKRE6OhpwdY13wEumGc,39504
|
30
|
-
spacr/utils.py,sha256=O7dpCF3bU95d2v0UuPFeJtzXYrkh0r-6aLxaqkKkFwY,184619
|
31
|
-
spacr/version.py,sha256=axH5tnGwtgSnJHb5IDhiu4Zjk5GhLyAEDRe-rnaoFOA,409
|
32
|
-
spacr/models/cp/toxo_plaque_cyto_e25000_X1120_Y1120.CP_model,sha256=z8BbHWZPRnE9D_BHO0fBREE85c1vkltDs-incs2ytXQ,26566572
|
33
|
-
spacr/models/cp/toxo_plaque_cyto_e25000_X1120_Y1120.CP_model_settings.csv,sha256=fBAGuL_B8ERVdVizO3BHozTDSbZUh1yFzsYK3wkQN68,420
|
34
|
-
spacr/models/cp/toxo_pv_lumen.CP_model,sha256=2y_CindYhmTvVwBH39SNILF3rI3x9SsRn6qrMxHy3l0,26562451
|
35
|
-
spacr-0.1.1.dist-info/LICENSE,sha256=SR-2MeGc6SCM1UORJYyarSWY_A-JaOMFDj7ReSs9tRM,1083
|
36
|
-
spacr-0.1.1.dist-info/METADATA,sha256=f4CaWxwjyeC2yAEeYl-3J50QgVGZqTY9dBX9r66LyTM,5157
|
37
|
-
spacr-0.1.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
38
|
-
spacr-0.1.1.dist-info/entry_points.txt,sha256=xncHsqD9MI5wj0_p4mgZlrB8dHm_g_qF0Ggo1c78LqY,315
|
39
|
-
spacr-0.1.1.dist-info/top_level.txt,sha256=GJPU8FgwRXGzKeut6JopsSRY2R8T3i9lDgya42tLInY,6
|
40
|
-
spacr-0.1.1.dist-info/RECORD,,
|
@@ -1,9 +0,0 @@
|
|
1
|
-
[console_scripts]
|
2
|
-
annotate = spacr.annotate_app:gui_annotation
|
3
|
-
classify = spacr.gui_classify_app:gui_classify
|
4
|
-
gui = spacr.gui:gui_app
|
5
|
-
gui2 = spacr.gui_2:gui_app
|
6
|
-
make_masks = spacr.mask_app:gui_make_masks
|
7
|
-
mask = spacr.gui_mask_app:gui_mask
|
8
|
-
measure = spacr.gui_measure_app:gui_measure
|
9
|
-
sim = spacr.gui_sim_app:gui_sim
|
File without changes
|
File without changes
|
File without changes
|