spacr 0.2.1__py3-none-any.whl → 0.2.21__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/gui.py +2 -1
- spacr/gui_elements.py +2 -7
- spacr/resources/icons/abort.png +0 -0
- spacr/resources/icons/classify.png +0 -0
- spacr/resources/icons/make_masks.png +0 -0
- spacr/resources/icons/mask.png +0 -0
- spacr/resources/icons/measure.png +0 -0
- spacr/resources/icons/recruitment.png +0 -0
- spacr/resources/icons/regression.png +0 -0
- spacr/resources/icons/run.png +0 -0
- spacr/resources/icons/umap.png +0 -0
- {spacr-0.2.1.dist-info → spacr-0.2.21.dist-info}/METADATA +1 -1
- spacr-0.2.21.dist-info/RECORD +56 -0
- spacr/alpha.py +0 -807
- spacr/annotate_app.py +0 -670
- spacr/annotate_app_v2.py +0 -670
- spacr/app_make_masks_v2.py +0 -686
- spacr/classify_app.py +0 -201
- spacr/cli.py +0 -41
- spacr/foldseek.py +0 -779
- spacr/get_alfafold_structures.py +0 -72
- spacr/gui_2.py +0 -157
- spacr/gui_annotate.py +0 -145
- spacr/gui_classify_app.py +0 -201
- spacr/gui_make_masks_app.py +0 -927
- spacr/gui_make_masks_app_v2.py +0 -688
- spacr/gui_mask_app.py +0 -249
- spacr/gui_measure_app.py +0 -246
- spacr/gui_run.py +0 -58
- spacr/gui_sim_app.py +0 -0
- spacr/gui_wrappers.py +0 -149
- spacr/icons/abort.png +0 -0
- spacr/icons/abort.svg +0 -1
- spacr/icons/download.png +0 -0
- spacr/icons/download.svg +0 -1
- spacr/icons/download_for_offline_100dp_E8EAED_FILL0_wght100_GRAD-25_opsz48.png +0 -0
- spacr/icons/download_for_offline_100dp_E8EAED_FILL0_wght100_GRAD-25_opsz48.svg +0 -1
- spacr/icons/logo_spacr.png +0 -0
- spacr/icons/make_masks.png +0 -0
- spacr/icons/make_masks.svg +0 -1
- spacr/icons/map_barcodes.png +0 -0
- spacr/icons/map_barcodes.svg +0 -1
- spacr/icons/mask.png +0 -0
- spacr/icons/mask.svg +0 -1
- spacr/icons/measure.png +0 -0
- spacr/icons/measure.svg +0 -1
- spacr/icons/play_circle_100dp_E8EAED_FILL0_wght100_GRAD-25_opsz48.png +0 -0
- spacr/icons/play_circle_100dp_E8EAED_FILL0_wght100_GRAD-25_opsz48.svg +0 -1
- spacr/icons/run.png +0 -0
- spacr/icons/run.svg +0 -1
- spacr/icons/sequencing.png +0 -0
- spacr/icons/sequencing.svg +0 -1
- spacr/icons/settings.png +0 -0
- spacr/icons/settings.svg +0 -1
- spacr/icons/settings_100dp_E8EAED_FILL0_wght100_GRAD-25_opsz48.png +0 -0
- spacr/icons/settings_100dp_E8EAED_FILL0_wght100_GRAD-25_opsz48.svg +0 -1
- spacr/icons/stop_circle_100dp_E8EAED_FILL0_wght100_GRAD-25_opsz48.png +0 -0
- spacr/icons/stop_circle_100dp_E8EAED_FILL0_wght100_GRAD-25_opsz48.svg +0 -1
- spacr/icons/theater_comedy_100dp_E8EAED_FILL0_wght100_GRAD200_opsz48.png +0 -0
- spacr/icons/theater_comedy_100dp_E8EAED_FILL0_wght100_GRAD200_opsz48.svg +0 -1
- spacr/make_masks_app.py +0 -929
- spacr/make_masks_app_v2.py +0 -688
- spacr/mask_app.py +0 -249
- spacr/measure_app.py +0 -246
- spacr/models/cp/toxo_plaque_cyto_e25000_X1120_Y1120.CP_model +0 -0
- spacr/models/cp/toxo_plaque_cyto_e25000_X1120_Y1120.CP_model_settings.csv +0 -23
- spacr/models/cp/toxo_pv_lumen.CP_model +0 -0
- spacr/old_code.py +0 -358
- spacr/resources/icons/abort.svg +0 -1
- spacr/resources/icons/annotate.svg +0 -1
- spacr/resources/icons/classify.svg +0 -1
- spacr/resources/icons/download.svg +0 -1
- spacr/resources/icons/icon.psd +0 -0
- spacr/resources/icons/make_masks.svg +0 -1
- spacr/resources/icons/map_barcodes.svg +0 -1
- spacr/resources/icons/mask.svg +0 -1
- spacr/resources/icons/measure.svg +0 -1
- spacr/resources/icons/run.svg +0 -1
- spacr/resources/icons/run_2.png +0 -0
- spacr/resources/icons/run_2.svg +0 -1
- spacr/resources/icons/sequencing.svg +0 -1
- spacr/resources/icons/settings.svg +0 -1
- spacr/resources/icons/train_cellpose.svg +0 -1
- spacr/test_gui.py +0 -0
- spacr-0.2.1.dist-info/RECORD +0 -126
- /spacr/resources/icons/{cellpose.png → cellpose_all.png} +0 -0
- {spacr-0.2.1.dist-info → spacr-0.2.21.dist-info}/LICENSE +0 -0
- {spacr-0.2.1.dist-info → spacr-0.2.21.dist-info}/WHEEL +0 -0
- {spacr-0.2.1.dist-info → spacr-0.2.21.dist-info}/entry_points.txt +0 -0
- {spacr-0.2.1.dist-info → spacr-0.2.21.dist-info}/top_level.txt +0 -0
spacr/old_code.py
DELETED
@@ -1,358 +0,0 @@
|
|
1
|
-
def process_fig_queue_v1():
|
2
|
-
while not fig_queue.empty():
|
3
|
-
update_task = fig_queue.get()
|
4
|
-
try:
|
5
|
-
update_task()
|
6
|
-
except Exception as e:
|
7
|
-
print(f"Error processing fig_queue: {e}")
|
8
|
-
root.after(100, process_fig_queue)
|
9
|
-
|
10
|
-
def update_figure_in_gui_v1(fig):
|
11
|
-
|
12
|
-
|
13
|
-
def task():
|
14
|
-
global canvas, canvas_widget, fig_queue
|
15
|
-
disconnect_all_event_handlers(fig)
|
16
|
-
canvas.figure = fig
|
17
|
-
fig.set_size_inches(10, 10, forward=True)
|
18
|
-
for axis in fig.axes:
|
19
|
-
axis.set_visible(False)
|
20
|
-
canvas.draw()
|
21
|
-
canvas_widget.draw()
|
22
|
-
|
23
|
-
fig_queue.put(task)
|
24
|
-
|
25
|
-
def my_show_v1():
|
26
|
-
fig = plt.gcf()
|
27
|
-
update_figure_in_gui(fig)
|
28
|
-
|
29
|
-
def disconnect_all_event_handlers(fig):
|
30
|
-
canvas = fig.canvas
|
31
|
-
if canvas.callbacks.callbacks:
|
32
|
-
for event, callback_list in list(canvas.callbacks.callbacks.items()):
|
33
|
-
for cid in list(callback_list.keys()):
|
34
|
-
canvas.mpl_disconnect(cid)
|
35
|
-
return canvas
|
36
|
-
|
37
|
-
def resize_figure_to_canvas(fig, canvas):
|
38
|
-
canvas_width = canvas.winfo_width()
|
39
|
-
canvas_height = canvas.winfo_height()
|
40
|
-
|
41
|
-
# Convert pixels to inches for matplotlib
|
42
|
-
fig_width = canvas_width / fig.dpi
|
43
|
-
fig_height = canvas_height / fig.dpi
|
44
|
-
|
45
|
-
# Resizing the figure
|
46
|
-
fig.set_size_inches(fig_width, fig_height, forward=True)
|
47
|
-
|
48
|
-
# Optionally, hide axes
|
49
|
-
for ax in fig.axes:
|
50
|
-
ax.set_visible(False)
|
51
|
-
|
52
|
-
return fig
|
53
|
-
|
54
|
-
def process_fig_queue_v1():
|
55
|
-
global canvas
|
56
|
-
while not fig_queue.empty():
|
57
|
-
try:
|
58
|
-
fig = fig_queue.get_nowait()
|
59
|
-
canvas.figure = fig
|
60
|
-
canvas.draw()
|
61
|
-
except queue.Empty:
|
62
|
-
pass
|
63
|
-
except Exception as e:
|
64
|
-
print(f"Error processing fig_queue: {e}")
|
65
|
-
traceback.print_exc()
|
66
|
-
root.after(100, process_fig_queue)
|
67
|
-
|
68
|
-
def process_fig_queue():
|
69
|
-
while not fig_queue.empty():
|
70
|
-
try:
|
71
|
-
fig = fig_queue.get_nowait()
|
72
|
-
# Signal the main thread to update the GUI with the new figure
|
73
|
-
root.after_idle(update_canvas_with_figure, fig)
|
74
|
-
except queue.Empty:
|
75
|
-
pass
|
76
|
-
except Exception as e:
|
77
|
-
print(f"Error processing fig_queue: {e}")
|
78
|
-
traceback.print_exc()
|
79
|
-
# Reschedule itself to run again
|
80
|
-
root.after(100, process_fig_queue)
|
81
|
-
|
82
|
-
def update_canvas_with_figure(fig):
|
83
|
-
global canvas
|
84
|
-
# Resize the figure to fit the canvas
|
85
|
-
canvas_width = canvas.get_tk_widget().winfo_width()
|
86
|
-
canvas_height = canvas.get_tk_widget().winfo_height()
|
87
|
-
fig_width = canvas_width / fig.dpi
|
88
|
-
fig_height = canvas_height / fig.dpi
|
89
|
-
fig.set_size_inches(fig_width, fig_height, forward=True)
|
90
|
-
# Hide the axes if needed
|
91
|
-
for ax in fig.axes:
|
92
|
-
ax.set_visible(False)
|
93
|
-
# Update the canvas with the new figure
|
94
|
-
canvas.figure = fig
|
95
|
-
canvas.draw_idle() # Use draw_idle for efficiency and thread safety
|
96
|
-
|
97
|
-
def run_mask_gui(q):
|
98
|
-
global vars_dict
|
99
|
-
try:
|
100
|
-
settings = check_mask_gui_settings(vars_dict)
|
101
|
-
settings = add_mask_gui_defaults(settings)
|
102
|
-
preprocess_generate_masks_wrapper(settings['src'], settings=settings, advanced_settings={})
|
103
|
-
except Exception as e:
|
104
|
-
q.put(f"Error during processing: {e}\n")
|
105
|
-
|
106
|
-
#@log_function_call
|
107
|
-
def main_thread_update_function(root, q, fig_queue, canvas_widget, progress_label):
|
108
|
-
try:
|
109
|
-
while not q.empty():
|
110
|
-
message = q.get_nowait()
|
111
|
-
if message.startswith("Progress"):
|
112
|
-
progress_label.config(text=message)
|
113
|
-
elif message.startswith("Processing"):
|
114
|
-
progress_label.config(text=message)
|
115
|
-
elif message == "" or message == "\r":
|
116
|
-
pass
|
117
|
-
elif message.startswith("/"):
|
118
|
-
pass
|
119
|
-
elif message.startswith("\\"):
|
120
|
-
pass
|
121
|
-
elif message.startswith(""):
|
122
|
-
pass
|
123
|
-
else:
|
124
|
-
print(message)
|
125
|
-
except Exception as e:
|
126
|
-
print(f"Error updating GUI canvas: {e}")
|
127
|
-
#try:
|
128
|
-
# while not fig_queue.empty():
|
129
|
-
# fig = fig_queue.get_nowait()
|
130
|
-
# #if hasattr(canvas_widget, 'figure'):
|
131
|
-
# #clear_canvas(canvas_widget)
|
132
|
-
# canvas_widget.figure = fig
|
133
|
-
#except Exception as e:
|
134
|
-
# print(f"Error updating GUI figure: {e}")
|
135
|
-
finally:
|
136
|
-
root.after(100, lambda: main_thread_update_function(root, q, fig_queue, canvas_widget, progress_label))
|
137
|
-
|
138
|
-
class MPNN(MessagePassing):
|
139
|
-
def __init__(self, node_in_features, edge_in_features, out_features):
|
140
|
-
super(MPNN, self).__init__(aggr='mean') # 'mean' aggregation.
|
141
|
-
self.message_mlp = Sequential(
|
142
|
-
Linear(node_in_features + edge_in_features, 128),
|
143
|
-
ReLU(),
|
144
|
-
Linear(128, out_features)
|
145
|
-
)
|
146
|
-
self.update_mlp = Sequential(
|
147
|
-
Linear(out_features, out_features),
|
148
|
-
ReLU(),
|
149
|
-
Linear(out_features, out_features)
|
150
|
-
)
|
151
|
-
|
152
|
-
def forward(self, x, edge_index, edge_attr):
|
153
|
-
# x: Node features [N, node_in_features]
|
154
|
-
# edge_index: Graph connectivity [2, E]
|
155
|
-
# edge_attr: Edge attributes/features [E, edge_in_features]
|
156
|
-
return self.propagate(edge_index, x=x, edge_attr=edge_attr)
|
157
|
-
|
158
|
-
def message(self, x_j, edge_attr):
|
159
|
-
# x_j: Input features of neighbors [E, node_in_features]
|
160
|
-
# edge_attr: Edge attributes [E, edge_in_features]
|
161
|
-
tmp = torch.cat([x_j, edge_attr], dim=-1) # Concatenate node features with edge attributes
|
162
|
-
return self.message_mlp(tmp)
|
163
|
-
|
164
|
-
def update(self, aggr_out):
|
165
|
-
# aggr_out: Aggregated messages [N, out_features]
|
166
|
-
return self.update_mlp(aggr_out)
|
167
|
-
|
168
|
-
def weighted_mse_loss(output, target, score_threshold=0.8, high_score_weight=10):
|
169
|
-
# Assumes output and target are the predicted and true scores, respectively
|
170
|
-
weights = torch.ones_like(target)
|
171
|
-
high_score_mask = target >= score_threshold
|
172
|
-
weights[high_score_mask] = high_score_weight
|
173
|
-
return ((output - target) ** 2 * weights).mean()
|
174
|
-
|
175
|
-
def generate_single_graph(sequencing, scores):
|
176
|
-
# Load and preprocess sequencing data
|
177
|
-
gene_df = pd.read_csv(sequencing)
|
178
|
-
gene_df = gene_df.rename(columns={"prc": "well_id", "grna": "gene_id", "count": "read_count"})
|
179
|
-
total_reads_per_well = gene_df.groupby('well_id')['read_count'].sum().reset_index(name='total_reads')
|
180
|
-
gene_df = gene_df.merge(total_reads_per_well, on='well_id')
|
181
|
-
gene_df['well_read_fraction'] = gene_df['read_count']/gene_df['total_reads']
|
182
|
-
|
183
|
-
# Load and preprocess cell score data
|
184
|
-
cell_df = pd.read_csv(scores)
|
185
|
-
cell_df = cell_df[['prcfo', 'prc', 'pred']].rename(columns={'prcfo': 'cell_id', 'prc': 'well_id', 'pred': 'score'})
|
186
|
-
|
187
|
-
# Initialize mappings
|
188
|
-
gene_id_to_index = {gene: i for i, gene in enumerate(gene_df['gene_id'].unique())}
|
189
|
-
cell_id_to_index = {cell: i + len(gene_id_to_index) for i, cell in enumerate(cell_df['cell_id'].unique())}
|
190
|
-
|
191
|
-
# Initialize edge indices and attributes
|
192
|
-
edge_index = []
|
193
|
-
edge_attr = []
|
194
|
-
|
195
|
-
# Associate each cell with all genes in the same well
|
196
|
-
for well_id, group in gene_df.groupby('well_id'):
|
197
|
-
if well_id in cell_df['well_id'].values:
|
198
|
-
cell_indices = cell_df[cell_df['well_id'] == well_id]['cell_id'].map(cell_id_to_index).values
|
199
|
-
gene_indices = group['gene_id'].map(gene_id_to_index).values
|
200
|
-
fractions = group['well_read_fraction'].values
|
201
|
-
|
202
|
-
for cell_idx in cell_indices:
|
203
|
-
for gene_idx, fraction in zip(gene_indices, fractions):
|
204
|
-
edge_index.append([cell_idx, gene_idx])
|
205
|
-
edge_attr.append([fraction])
|
206
|
-
|
207
|
-
# Convert lists to PyTorch tensors
|
208
|
-
edge_index = torch.tensor(edge_index, dtype=torch.long).t().contiguous()
|
209
|
-
edge_attr = torch.tensor(edge_attr, dtype=torch.float)
|
210
|
-
cell_scores = torch.tensor(cell_df['score'].values, dtype=torch.float)
|
211
|
-
|
212
|
-
# One-hot encoding for genes, and zero features for cells (could be replaced with real features if available)
|
213
|
-
gene_features = torch.eye(len(gene_id_to_index))
|
214
|
-
cell_features = torch.zeros(len(cell_id_to_index), gene_features.size(1))
|
215
|
-
|
216
|
-
# Combine features
|
217
|
-
x = torch.cat([cell_features, gene_features], dim=0)
|
218
|
-
|
219
|
-
# Create the graph data object
|
220
|
-
data = Data(x=x, edge_index=edge_index, edge_attr=edge_attr, y=cell_scores)
|
221
|
-
|
222
|
-
return data, gene_id_to_index, len(gene_id_to_index)
|
223
|
-
|
224
|
-
# in _normalize_and_outline
|
225
|
-
outlines = []
|
226
|
-
|
227
|
-
overlayed_image = rgb_image.copy()
|
228
|
-
for i, mask_dim in enumerate(mask_dims):
|
229
|
-
mask = np.take(image, mask_dim, axis=2)
|
230
|
-
outline = np.zeros_like(mask)
|
231
|
-
# Find the contours of the objects in the mask
|
232
|
-
for j in np.unique(mask)[1:]:
|
233
|
-
contours = find_contours(mask == j, 0.5)
|
234
|
-
for contour in contours:
|
235
|
-
contour = contour.astype(int)
|
236
|
-
outline[contour[:, 0], contour[:, 1]] = j
|
237
|
-
# Make the outline thicker
|
238
|
-
outline = dilation(outline, square(outline_thickness))
|
239
|
-
outlines.append(outline)
|
240
|
-
# Overlay the outlines onto the RGB image
|
241
|
-
for j in np.unique(outline)[1:]:
|
242
|
-
overlayed_image[outline == j] = outline_colors[i % len(outline_colors)]
|
243
|
-
|
244
|
-
def _extract_filename_metadata(filenames, src, images_by_key, regular_expression, metadata_type='cellvoyager', pick_slice=False, skip_mode='01'):
|
245
|
-
for filename in filenames:
|
246
|
-
match = regular_expression.match(filename)
|
247
|
-
if match:
|
248
|
-
try:
|
249
|
-
try:
|
250
|
-
plate = match.group('plateID')
|
251
|
-
except:
|
252
|
-
plate = os.path.basename(src)
|
253
|
-
|
254
|
-
well = match.group('wellID')
|
255
|
-
field = match.group('fieldID')
|
256
|
-
channel = match.group('chanID')
|
257
|
-
mode = None
|
258
|
-
|
259
|
-
if well[0].isdigit():
|
260
|
-
well = str(_safe_int_convert(well))
|
261
|
-
if field[0].isdigit():
|
262
|
-
field = str(_safe_int_convert(field))
|
263
|
-
if channel[0].isdigit():
|
264
|
-
channel = str(_safe_int_convert(channel))
|
265
|
-
|
266
|
-
if metadata_type =='cq1':
|
267
|
-
orig_wellID = wellID
|
268
|
-
wellID = _convert_cq1_well_id(wellID)
|
269
|
-
clear_output(wait=True)
|
270
|
-
print(f'Converted Well ID: {orig_wellID} to {wellID}', end='\r', flush=True)
|
271
|
-
|
272
|
-
if pick_slice:
|
273
|
-
try:
|
274
|
-
mode = match.group('AID')
|
275
|
-
except IndexError:
|
276
|
-
sliceid = '00'
|
277
|
-
|
278
|
-
if mode == skip_mode:
|
279
|
-
continue
|
280
|
-
|
281
|
-
key = (plate, well, field, channel, mode)
|
282
|
-
with Image.open(os.path.join(src, filename)) as img:
|
283
|
-
images_by_key[key].append(np.array(img))
|
284
|
-
except IndexError:
|
285
|
-
print(f"Could not extract information from filename {filename} using provided regex")
|
286
|
-
else:
|
287
|
-
print(f"Filename {filename} did not match provided regex")
|
288
|
-
continue
|
289
|
-
|
290
|
-
return images_by_key
|
291
|
-
|
292
|
-
def compare_cellpose_masks_v1(src, verbose=False, save=False):
|
293
|
-
|
294
|
-
from .io import _read_mask
|
295
|
-
from .plot import visualize_masks, plot_comparison_results, visualize_cellpose_masks
|
296
|
-
from .utils import extract_boundaries, boundary_f1_score, compute_segmentation_ap, jaccard_index
|
297
|
-
|
298
|
-
import os
|
299
|
-
import numpy as np
|
300
|
-
from skimage.measure import label
|
301
|
-
|
302
|
-
# Collect all subdirectories in src
|
303
|
-
dirs = [os.path.join(src, d) for d in os.listdir(src) if os.path.isdir(os.path.join(src, d))]
|
304
|
-
|
305
|
-
dirs.sort() # Optional: sort directories if needed
|
306
|
-
|
307
|
-
# Get common files in all directories
|
308
|
-
common_files = set(os.listdir(dirs[0]))
|
309
|
-
for d in dirs[1:]:
|
310
|
-
common_files.intersection_update(os.listdir(d))
|
311
|
-
common_files = list(common_files)
|
312
|
-
|
313
|
-
results = []
|
314
|
-
conditions = [os.path.basename(d) for d in dirs]
|
315
|
-
|
316
|
-
for index, filename in enumerate(common_files):
|
317
|
-
print(f'Processing image {index+1}/{len(common_files)}', end='\r', flush=True)
|
318
|
-
paths = [os.path.join(d, filename) for d in dirs]
|
319
|
-
|
320
|
-
# Check if file exists in all directories
|
321
|
-
if not all(os.path.exists(path) for path in paths):
|
322
|
-
print(f'Skipping {filename} as it is not present in all directories.')
|
323
|
-
continue
|
324
|
-
|
325
|
-
masks = [_read_mask(path) for path in paths]
|
326
|
-
boundaries = [extract_boundaries(mask) for mask in masks]
|
327
|
-
|
328
|
-
if verbose:
|
329
|
-
visualize_cellpose_masks(masks, titles=conditions, comparison_title=f"Masks Comparison for {filename}", save=save, src=src)
|
330
|
-
|
331
|
-
# Initialize data structure for results
|
332
|
-
file_results = {'filename': filename}
|
333
|
-
|
334
|
-
# Compare each mask with each other
|
335
|
-
for i in range(len(masks)):
|
336
|
-
for j in range(i + 1, len(masks)):
|
337
|
-
condition_i = conditions[i]
|
338
|
-
condition_j = conditions[j]
|
339
|
-
mask_i = masks[i]
|
340
|
-
mask_j = masks[j]
|
341
|
-
|
342
|
-
# Compute metrics
|
343
|
-
boundary_f1 = boundary_f1_score(mask_i, mask_j)
|
344
|
-
jaccard = jaccard_index(mask_i, mask_j)
|
345
|
-
average_precision = compute_segmentation_ap(mask_i, mask_j)
|
346
|
-
|
347
|
-
# Store results
|
348
|
-
file_results[f'jaccard_{condition_i}_{condition_j}'] = jaccard
|
349
|
-
file_results[f'boundary_f1_{condition_i}_{condition_j}'] = boundary_f1
|
350
|
-
file_results[f'average_precision_{condition_i}_{condition_j}'] = average_precision
|
351
|
-
|
352
|
-
results.append(file_results)
|
353
|
-
|
354
|
-
fig = plot_comparison_results(results)
|
355
|
-
|
356
|
-
save_results_and_figure(src, fig, results)
|
357
|
-
|
358
|
-
return results, fig
|
spacr/resources/icons/abort.svg
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#e8eaed"><path d="M349.5-349.5h262v-262h-262v262ZM480.57-132q-72.94 0-135.93-27.52-62.99-27.53-110.39-74.85-47.4-47.33-74.82-110.1Q132-407.25 132-480.2q0-72.03 27.52-135.59 27.53-63.56 74.85-110.71 47.33-47.15 110.1-74.32Q407.25-828 480.2-828q72.03 0 135.59 27.39 63.57 27.39 110.72 74.35 47.14 46.96 74.31 110.39Q828-552.43 828-480.57q0 72.94-27.27 135.93-27.28 62.99-74.35 110.21-47.08 47.21-110.51 74.82Q552.43-132 480.57-132Zm-.14-22q135.07 0 230.32-95.18Q806-344.37 806-480.43q0-135.07-95-230.32Q616.01-806 480.07-806q-135.57 0-230.82 95Q154-616.01 154-480.07q0 135.57 95.18 230.82Q344.37-154 480.43-154ZM480-480Z"/></svg>
|
@@ -1 +0,0 @@
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#e8eaed"><path d="M463-132q-35.43 0-66.81-13.75Q364.82-159.5 345-187L164-430.5l9.5-9.5q4.5-5.5 11.65-7t15.35.5l141.5 66v-309.37q0-3.87 3.23-7t8-3.13q4.77 0 8.02 3.36t3.25 7.56v340.58L193-427l173.5 229q16.1 23.7 42.15 33.85Q434.69-154 463-154h153.5q45.03 0 77.27-31.65Q726-217.29 726-263.5V-402q0-29.4-19.62-48.95-19.63-19.55-47.88-19.55h-174v-22h174q36.38 0 62.94 26.4Q748-439.71 748-402v138.49q0 55.01-38.91 93.26Q670.19-132 616.5-132H463ZM233.4-620.5q-9.47-13.75-14.19-31.47-4.71-17.71-4.71-36.86 0-58.64 40.62-98.91Q295.74-828 353.15-828q57.4 0 98.37 40.5 40.98 40.5 40.98 99.13 0 19.07-5.21 36.63-5.22 17.56-13.73 31.24l-19.06-10.34q7.5-13.16 11.75-27.74 4.25-14.59 4.25-30.83 0-48.51-34.28-82.55T352.97-806q-48.97 0-82.72 33.95-33.75 33.96-33.75 83.27 0 15.82 3.75 30.3T252.5-631l-19.1 10.5Zm227.1 297Z"/></svg>
|
@@ -1 +0,0 @@
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#e8eaed"><path d="M480.35-367Q535-367 574-406.35q39-39.36 39-94Q613-555 573.65-594q-39.36-39-94-39Q425-633 386-593.65q-39 39.36-39 94Q347-445 386.35-406q39.36 39 94 39Zm-.76-24q-45.59 0-77.09-31.91t-31.5-77.5q0-45.59 31.91-77.09t77.5-31.5q45.59 0 77.09 31.91t31.5 77.5q0 45.59-31.91 77.09t-77.5 31.5Zm.55 139Q356.5-252 253-319.25 149.5-386.5 96-500q53.5-113.5 156.86-180.75Q356.21-748 479.86-748 603.5-748 707-680.75 810.5-613.5 864-500q-53.5 113.5-156.86 180.75Q603.79-252 480.14-252ZM480-500Zm-.17 226q116.47 0 212.89-60.91Q789.14-395.81 840-500q-50.86-104.19-147.11-165.09Q596.64-726 480.17-726t-212.89 60.91Q170.86-604.19 120-500q50.86 104.19 147.11 165.09Q363.36-274 479.83-274Z"/></svg>
|
@@ -1 +0,0 @@
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#e8eaed"><path d="M306-306h348v-22H306v22Zm173-132 124-123-16-16-97 97v-214h-22v214l-96-97-16 16 123 123Zm1.3 306q-72.21 0-135.43-27.52-63.22-27.53-110.62-74.85-47.4-47.33-74.82-110.26Q132-407.57 132-479.7q0-72.21 27.52-135.93 27.53-63.72 74.85-110.87 47.33-47.15 110.26-74.32Q407.57-828 479.7-828q72.21 0 135.94 27.39 63.72 27.39 110.87 74.35 47.14 46.96 74.31 110.39Q828-552.43 828-480.3q0 72.21-27.27 135.43-27.28 63.22-74.35 110.62-47.08 47.4-110.51 74.82Q552.43-132 480.3-132Zm-.37-22q135.57 0 230.82-95.18Q806-344.37 806-479.93q0-135.57-95.18-230.82Q615.63-806 480.07-806q-135.57 0-230.82 95.18Q154-615.63 154-480.07q0 135.57 95.18 230.82Q344.37-154 479.93-154Zm.07-326Z"/></svg>
|
spacr/resources/icons/icon.psd
DELETED
Binary file
|
@@ -1 +0,0 @@
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#e8eaed"><path d="M212-172v-66l541.92-543.42q3.08-3.08 8.08-4.83t9.25-1.75q4.3 0 9.28 1.75 4.97 1.75 7.47 4.75l33 33q3 3.5 5 7.97 2 4.48 2 9.28 0 4.25-1.75 9.25t-4.83 8.08L278-172h-66Zm22-22h35.5L716-641l-16.98-18.02L681-676 234-229.5v35.5Zm572.5-537.5-35-35 35 35Zm-107.48 72.48L681-676l35 35-16.98-18.02ZM574.5-172q64.87 0 119.18-29.25Q748-230.5 748-286.5q0-34.3-28.25-64.15Q691.5-380.5 635.5-397l-18 19q50.5 14 79.5 38.75t29 52.75q0 40.62-44.04 66.56Q637.91-194 574.5-194q-5.5 0-8.5 3.04-3 3.03-3 7.46 0 5.5 3 8.5t8.5 3Zm-320-241.5 16.5-18q-40.5-14-58.75-29.75T194-494.5q0-21.5 24.5-41t91.14-46.7q72.72-29.8 100.04-55.05Q437-662.5 437-694.5q0-39-36.75-66.25T306.5-788q-36 0-67.5 12.5T193.5-744q-2.5 4.5-2.25 8.75t3.75 6.75q2.5 2.5 7.24 2.12 4.75-.39 8.26-4.12 16.5-16.5 41.58-26t54.33-9.5q51.09 0 79.84 20.78T415-694.56q0 26.46-23.5 45.01Q368-631 300.5-602q-78 32-103.25 55.54T172-494.5q0 22.5 19.25 44t63.25 37Z"/></svg>
|
@@ -1 +0,0 @@
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#e8eaed"><path d="M103-221v-479h71v479h-71Zm103 0v-479h69v479h-69Zm103 0v-479h34v479h-34Zm103 0v-479h68v479h-68Zm103 0v-479h103v479H515Zm137 0v-479h34v479h-34Zm103 0v-479h103v479H755Z"/></svg>
|
spacr/resources/icons/mask.svg
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#e8eaed"><path d="M480-309q48.46 0 84.23-29T610-414H349q9 47 45.77 76T480-309ZM301-591h129q0-27-19.08-46-19.09-19-46.5-19Q337-656 319-637.09q-18 18.92-18 46.09Zm229-1h130q0-27-18.87-45.5-18.88-18.5-46-18.5-27.83 0-46.48 18.41Q530-619.17 530-592Zm-50.2 476q-66.8 0-125.64-25.39t-103.5-70Q206-256 181-315.04 156-374.09 156-442v-402h648v402.09q0 67.91-25.2 127.04-25.21 59.12-69.5 103.5Q665-167 605.8-141.5q-59.21 25.5-126 25.5Zm-.3-35q120.5 0 205-84.59Q769-320.17 769-442v-367H191v366.78Q191-320 274.5-235.5t205 84.5Zm.5-329Z"/></svg>
|
@@ -1 +0,0 @@
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#e8eaed"><path d="m90-271-28-22 171-275 119.14 140L512-684l85 127q-7.71 3.67-16.79 6.17-9.07 2.5-16.21 6.83l-51-75-152.11 250L239-510 90-271ZM872-63 728-206q-19 14-38.33 20-19.32 6-40.67 6-54.92 0-92.96-38.06-38.04-38.06-38.04-93t38.06-93.44q38.06-38.5 93-38.5t93.44 38.33Q781-366.33 781-311q0 23-7 43t-22 37.45L897-88l-25 25ZM648.86-215q40.08 0 68.61-28.1T746-310.86q0-40.08-28.4-68.61T649.1-408q-40.1 0-68.1 28.4-28 28.4-28 68.5t28.1 68.1q28.1 28 67.76 28ZM720-555q-11-3-20.6-3.45-9.59-.46-17.4-.55l188-299 29 22-179 281Z"/></svg>
|
spacr/resources/icons/run.svg
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#e8eaed"><path d="M372-295v-372l292 186-292 186Zm22-186Zm0 145 230-145-230-145v290Z"/></svg>
|
spacr/resources/icons/run_2.png
DELETED
Binary file
|
spacr/resources/icons/run_2.svg
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#e8eaed"><path d="m407-351 202-129-202-129v258Zm73.3 219q-72.21 0-135.43-27.52-63.22-27.53-110.62-74.85-47.4-47.33-74.82-110.26Q132-407.57 132-479.7q0-72.21 27.52-135.93 27.53-63.72 74.85-110.87 47.33-47.15 110.26-74.32Q407.57-828 479.7-828q72.21 0 135.94 27.39 63.72 27.39 110.87 74.35 47.14 46.96 74.31 110.39Q828-552.43 828-480.3q0 72.21-27.27 135.43-27.28 63.22-74.35 110.62-47.08 47.4-110.51 74.82Q552.43-132 480.3-132Zm-.37-22q135.57 0 230.82-95.18Q806-344.37 806-479.93q0-135.57-95.18-230.82Q615.63-806 480.07-806q-135.57 0-230.82 95.18Q154-615.63 154-480.07q0 135.57 95.18 230.82Q344.37-154 479.93-154Zm.07-326Z"/></svg>
|
@@ -1 +0,0 @@
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#e8eaed"><path d="M246-80v-20q0-141.45 56.5-215.72Q359-390 455-480q-97-90-153.5-164.28Q245-718.55 245-860v-21h34.66v21q0 17 1.08 33.5Q281.83-810 286-796h388.14q2.93-14 4.4-30.5Q680-843 680-860v-21h35v21q0 141.45-57 215.72Q601-570 506-480q95 89 152 163.78 57 74.77 57 216.22v20h-34.66v-20q0-17-1.58-33.5Q677.17-150 674-164H286.86q-3.93 14-4.9 30.5Q281-117 281-100v20h-35Zm99-565h269.18q18.82-25 33.32-54t23.5-62H290q7 34.65 21.25 62.86Q325.5-669.92 345-645Zm135 141q31.34-29.33 58.17-54.67Q565-584 588-610H371q22.75 26.33 50.25 51.67Q448.76-533 480-504ZM372-350h216q-23-26-49.83-51.33Q511.34-426.67 480-457q-31.34 30.33-58.17 55.67Q395-376 372-350Zm-81 151h380q-9-34.5-23.25-62.76Q633.5-290.03 614-315H346q-18.97 24.67-33.48 53.83Q298-232 291-199Z"/></svg>
|
@@ -1 +0,0 @@
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#e8eaed"><path d="m421.5-132-15-110.94Q383-249.5 355-265.5t-47.25-34l-101.25 46-59-105 90-66.5q-2.5-13.48-3.75-26.99-1.25-13.51-1.25-27.01 0-12 1.25-26t3.25-30l-89.5-68.5 59-102 101 44q21.5-17 47.5-32.5t50.5-22.5l16-111.5h118l15 112q26 9.5 49.25 23T649-661.5l106.5-44 58 102-94 70.54q3 14.96 4.5 27.96t1.5 24.75q0 10.75-1.75 23.84T719-426.42l93 67.92-59 105-104-47q-22.97 20.36-46.49 35.18Q579-250.5 554.5-244l-15 112h-118Zm17.74-22h80.79l15.69-111.5q29.86-8.07 54.11-21.69Q614.08-300.82 641-326l102.5 44 39.5-68.51L693-418q3.5-19 6-33.71t2.5-28.66q0-16.13-2.25-29.88T693-540l92-69-39.5-69-105 44q-19-20-49.75-39t-56.25-22.5L521.43-806H439l-11.5 110.07q-33 6.43-58.25 20.68T318-635l-102.5-43-40.5 69 90.5 65.5q-5 14-7 30.14t-2 33.83q0 17.03 1.75 31.78T264-418l-89 67 40.14 69 102.36-43q23.5 25.5 49.5 39.25T426.28-264l12.96 110Zm38.25-241q36.05 0 60.53-24.5Q562.5-444 562.5-480T538-540.5Q513.5-565 477.5-565T417-540.5Q392.5-516 392.5-480t24.5 60.5q24.5 24.5 60.49 24.5Zm3.01-85.5Z"/></svg>
|
@@ -1 +0,0 @@
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#e8eaed"><path d="M462.5-146v-184.5h22v81.5h330v22h-330v81h-22ZM146-227v-22h190.5v22H146Zm168.5-161.5V-469H146v-22h168.5v-81h22v183.5h-22Zm148-80.5v-22h352v22h-352ZM624-631v-183.5h22v81h168.5v22H646v80.5h-22Zm-478-80.5v-22h352v22H146Z"/></svg>
|
spacr/test_gui.py
DELETED
File without changes
|
spacr-0.2.1.dist-info/RECORD
DELETED
@@ -1,126 +0,0 @@
|
|
1
|
-
spacr/__init__.py,sha256=pJ7Mm7Kb1DhHIdLmNgMILFVWJ9QAG47pT0M6wtiXl8E,1465
|
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=xA39bsgvrQlY8P22cUC7sAaw4O57tgZawZtsANmY0ek,2302
|
7
|
-
spacr/app_classify.py,sha256=urTP_wlZ58hSyM5a19slYlBxN0PdC-9-ga0hvq8CGWc,165
|
8
|
-
spacr/app_make_masks.py,sha256=pqDhRpluiHZz-kPX2Zh_KbYe4TsU43qYBa_7f-rsjpw,1694
|
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=wL6E1MMNrRyvyileqsTOnQ3lhABnw_L6O-4UApZGL84,160216
|
18
|
-
spacr/deep_spacr.py,sha256=ASBsN4JpHp_3S-91JUsB34IWTjTGPYI7jKV2qZnUR5M,37005
|
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=etiarQYeELx_zPRWH8hdrhtD_aVnuamnvrCOtUBO0kI,8322
|
23
|
-
spacr/gui_2.py,sha256=OVRDbyHgoXCqGmTKt0C0ZQrJxTU4i-4eT2uYwk0w7CA,8322
|
24
|
-
spacr/gui_annotate.py,sha256=ugBksLGOHdtOLlEuRyyc59TrkYKu3rDf8JxEgiBSVao,6536
|
25
|
-
spacr/gui_classify_app.py,sha256=Zi15ryc1ocYitRF4kyxlC27XxGyzfSPdvj2d6ZrSh7E,8446
|
26
|
-
spacr/gui_core.py,sha256=ay1IMMjcJLk8GeaXdL5rzu8xkJmpy_5XzqNhET_4SaI,33199
|
27
|
-
spacr/gui_elements.py,sha256=FrqAudi-3SMg4kTjoyOob778hreSFUxoDdd5vHYht0Y,79748
|
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=CuGB7rN_VCGu5FP9ZeBTrIYBzqQlylX-uszVyYcF0VM,13899
|
35
|
-
spacr/gui_wrappers.py,sha256=-E1SFOmtp7_nfg9QzajI7GJcAcaMug92Pjw7pS1YzjY,4656
|
36
|
-
spacr/io.py,sha256=f7cVn48wNUEj6Teky4p3ojoivAdMUmPll2s0MzJkKD0,112068
|
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=RzcD8rsUaOZUYB-zcbaUZcJbrwT0IIW5G7qvb__SO-E,55616
|
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=2fAyGl8lzkkpB3MJJoywo0hCEg9CjziLWkXF0Miv3mM,65569
|
47
|
-
spacr/sim.py,sha256=FveaVgBi3eypO2oVB5Dx-v0CC1Ny7UPfXkJiiRRodAk,71212
|
48
|
-
spacr/sim_app.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
49
|
-
spacr/test_gui.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
50
|
-
spacr/timelapse.py,sha256=KMYCgHzf9LTZe-lWl5mvH2EjbKRE6OhpwdY13wEumGc,39504
|
51
|
-
spacr/utils.py,sha256=OQ8sSBH6VWx2xP_vh4ILJT71B46DFFhsq-Y6WxYdGhI,186891
|
52
|
-
spacr/version.py,sha256=axH5tnGwtgSnJHb5IDhiu4Zjk5GhLyAEDRe-rnaoFOA,409
|
53
|
-
spacr/icons/abort.png,sha256=3Bc1ZyPRDytlSd-i33WSoAVv3bw5lDFmraaB31pAc58,19368
|
54
|
-
spacr/icons/abort.svg,sha256=_eJh4Nro9y_2UWQsnHAi4FgSlTnxlikvIWMFX1ClFYg,725
|
55
|
-
spacr/icons/download.png,sha256=1nUoWRaTc4vIsK6gompdeqk0cIv2GdH-gCNHaEBX6Mc,20467
|
56
|
-
spacr/icons/download.svg,sha256=CHEknYbhCobpqkXLiZL8AOCCZla50DcY_DghU9xCYRw,783
|
57
|
-
spacr/icons/download_for_offline_100dp_E8EAED_FILL0_wght100_GRAD-25_opsz48.png,sha256=1nUoWRaTc4vIsK6gompdeqk0cIv2GdH-gCNHaEBX6Mc,20467
|
58
|
-
spacr/icons/download_for_offline_100dp_E8EAED_FILL0_wght100_GRAD-25_opsz48.svg,sha256=CHEknYbhCobpqkXLiZL8AOCCZla50DcY_DghU9xCYRw,783
|
59
|
-
spacr/icons/logo_spacr.png,sha256=g9y2ZmnV3hab8r1idDfytm8AaHbBiQdu_93Jd7YKzwA,610892
|
60
|
-
spacr/icons/make_masks.png,sha256=TU_kBHnEO7f_z1JvDmWjJEiRAMeyXZCqRcmzbgt83Is,16129
|
61
|
-
spacr/icons/make_masks.svg,sha256=uUAjnt3FJazbM9-iFptiV6iQkT3ziNgKfqXQ8RGYG9s,1355
|
62
|
-
spacr/icons/map_barcodes.png,sha256=ED6yCopk3hP7tICSvT8U_qA1bOOb0WHqmxVkmRxnbtE,7896
|
63
|
-
spacr/icons/map_barcodes.svg,sha256=9q3acYeZx9rjMmrNB_KJ4Bda6o63wtuZPxbSD97k1XA,290
|
64
|
-
spacr/icons/mask.png,sha256=0EHDSySyQJ22OKl77b2ezLNSuUC5WeIvLKP7uR14PlQ,14352
|
65
|
-
spacr/icons/mask.svg,sha256=HJu3T2BVjK8JV9aiJcP0Fey1K6niPY9Z43Y43pkRNbo,630
|
66
|
-
spacr/icons/measure.png,sha256=43yFE9WcUuhvgqZau_U5ZmoP5_Abz-bBXqoJ31Em4I0,20620
|
67
|
-
spacr/icons/measure.svg,sha256=xRb_SDKCwKVLI4OQioSsstTpcOLtvN9hiIHQk2VP-kc,630
|
68
|
-
spacr/icons/play_circle_100dp_E8EAED_FILL0_wght100_GRAD-25_opsz48.png,sha256=KoNhaSHukO4wDyivyYEgSbb5mGj-sAxmhKikLLtNpWs,20341
|
69
|
-
spacr/icons/play_circle_100dp_E8EAED_FILL0_wght100_GRAD-25_opsz48.svg,sha256=HJCoq_2QJ7OSE_VF_5QGLMN3m374U-LaR9f5DC8aCsw,726
|
70
|
-
spacr/icons/run.png,sha256=KoNhaSHukO4wDyivyYEgSbb5mGj-sAxmhKikLLtNpWs,20341
|
71
|
-
spacr/icons/run.svg,sha256=HJCoq_2QJ7OSE_VF_5QGLMN3m374U-LaR9f5DC8aCsw,726
|
72
|
-
spacr/icons/sequencing.png,sha256=P9E_Y76ZysWMKst3_hAw-_4F510XPW1l1TsDElVzt4o,17775
|
73
|
-
spacr/icons/sequencing.svg,sha256=fEdE8n7H4rdn818m7SZL24Fz9bKiROozFI1cCNDT_QI,853
|
74
|
-
spacr/icons/settings.png,sha256=y5Ow5BxJDDsrqom0VNbOMDGGUs6odxbSMDy6y4r_F0w,22269
|
75
|
-
spacr/icons/settings.svg,sha256=7H11s2jhauKZPw9lv_oF_lY_ug_HT4vGhLQ-cS-_Pbg,1087
|
76
|
-
spacr/icons/settings_100dp_E8EAED_FILL0_wght100_GRAD-25_opsz48.png,sha256=y5Ow5BxJDDsrqom0VNbOMDGGUs6odxbSMDy6y4r_F0w,22269
|
77
|
-
spacr/icons/settings_100dp_E8EAED_FILL0_wght100_GRAD-25_opsz48.svg,sha256=7H11s2jhauKZPw9lv_oF_lY_ug_HT4vGhLQ-cS-_Pbg,1087
|
78
|
-
spacr/icons/stop_circle_100dp_E8EAED_FILL0_wght100_GRAD-25_opsz48.png,sha256=3Bc1ZyPRDytlSd-i33WSoAVv3bw5lDFmraaB31pAc58,19368
|
79
|
-
spacr/icons/stop_circle_100dp_E8EAED_FILL0_wght100_GRAD-25_opsz48.svg,sha256=_eJh4Nro9y_2UWQsnHAi4FgSlTnxlikvIWMFX1ClFYg,725
|
80
|
-
spacr/icons/theater_comedy_100dp_E8EAED_FILL0_wght100_GRAD200_opsz48.png,sha256=TU_kBHnEO7f_z1JvDmWjJEiRAMeyXZCqRcmzbgt83Is,16129
|
81
|
-
spacr/icons/theater_comedy_100dp_E8EAED_FILL0_wght100_GRAD200_opsz48.svg,sha256=uUAjnt3FJazbM9-iFptiV6iQkT3ziNgKfqXQ8RGYG9s,1355
|
82
|
-
spacr/models/cp/toxo_plaque_cyto_e25000_X1120_Y1120.CP_model,sha256=z8BbHWZPRnE9D_BHO0fBREE85c1vkltDs-incs2ytXQ,26566572
|
83
|
-
spacr/models/cp/toxo_plaque_cyto_e25000_X1120_Y1120.CP_model_settings.csv,sha256=fBAGuL_B8ERVdVizO3BHozTDSbZUh1yFzsYK3wkQN68,420
|
84
|
-
spacr/models/cp/toxo_pv_lumen.CP_model,sha256=2y_CindYhmTvVwBH39SNILF3rI3x9SsRn6qrMxHy3l0,26562451
|
85
|
-
spacr/resources/icons/abort.png,sha256=3Bc1ZyPRDytlSd-i33WSoAVv3bw5lDFmraaB31pAc58,19368
|
86
|
-
spacr/resources/icons/abort.svg,sha256=_eJh4Nro9y_2UWQsnHAi4FgSlTnxlikvIWMFX1ClFYg,725
|
87
|
-
spacr/resources/icons/annotate.png,sha256=GFgh7DiUMwPG_-xE6W1qU8V_qzSwBi1xKenfoaQxeFA,15495
|
88
|
-
spacr/resources/icons/annotate.svg,sha256=1UazKLgDsgSNJQsCVET-rrCWh3qvOIIJ85rxkpUUy7w,914
|
89
|
-
spacr/resources/icons/cellpose.png,sha256=HVWOIOBF8p3-On-2UahwMyQXp7awsoC5yWExU1ahDag,20271
|
90
|
-
spacr/resources/icons/cellpose_masks.png,sha256=HVWOIOBF8p3-On-2UahwMyQXp7awsoC5yWExU1ahDag,20271
|
91
|
-
spacr/resources/icons/classify.png,sha256=w-TRmxv37xFviU2xMUcmXRJIMR3QgVm0DyyMb6f6GBg,19129
|
92
|
-
spacr/resources/icons/classify.svg,sha256=c1DKluvSTymHbMZmXFDow-h-eU7Fp7XsBYSBiuWZ_ME,790
|
93
|
-
spacr/resources/icons/default.png,sha256=KoNhaSHukO4wDyivyYEgSbb5mGj-sAxmhKikLLtNpWs,20341
|
94
|
-
spacr/resources/icons/download.png,sha256=1nUoWRaTc4vIsK6gompdeqk0cIv2GdH-gCNHaEBX6Mc,20467
|
95
|
-
spacr/resources/icons/download.svg,sha256=CHEknYbhCobpqkXLiZL8AOCCZla50DcY_DghU9xCYRw,783
|
96
|
-
spacr/resources/icons/icon.psd,sha256=2_ssRsjibi7mva40G_WPGp9J1XrIYOlf7OFt0AheH68,164400
|
97
|
-
spacr/resources/icons/logo_spacr.png,sha256=g9y2ZmnV3hab8r1idDfytm8AaHbBiQdu_93Jd7YKzwA,610892
|
98
|
-
spacr/resources/icons/make_masks.png,sha256=ZLAfqEPUZhh1yp9zNnfUpJYmCEaMZJ2hzHKac1_iaxY,17402
|
99
|
-
spacr/resources/icons/make_masks.svg,sha256=bDKKHFz-HLX6v-Tb8FJcRwfVWOx2oEeRBtQG7PNcWZM,1022
|
100
|
-
spacr/resources/icons/map_barcodes.png,sha256=ED6yCopk3hP7tICSvT8U_qA1bOOb0WHqmxVkmRxnbtE,7896
|
101
|
-
spacr/resources/icons/map_barcodes.svg,sha256=9q3acYeZx9rjMmrNB_KJ4Bda6o63wtuZPxbSD97k1XA,290
|
102
|
-
spacr/resources/icons/mask.png,sha256=0EHDSySyQJ22OKl77b2ezLNSuUC5WeIvLKP7uR14PlQ,14352
|
103
|
-
spacr/resources/icons/mask.svg,sha256=HJu3T2BVjK8JV9aiJcP0Fey1K6niPY9Z43Y43pkRNbo,630
|
104
|
-
spacr/resources/icons/measure.png,sha256=43yFE9WcUuhvgqZau_U5ZmoP5_Abz-bBXqoJ31Em4I0,20620
|
105
|
-
spacr/resources/icons/measure.svg,sha256=xRb_SDKCwKVLI4OQioSsstTpcOLtvN9hiIHQk2VP-kc,630
|
106
|
-
spacr/resources/icons/regression.png,sha256=_XWBGC7MDWoNlm90dPN_s4WGH_xxpC9m5R5Ua3ucXSg,14502
|
107
|
-
spacr/resources/icons/run.png,sha256=By3x4bXA1PMakkYfwlD8WcG5EauX0PsDD7_FRRIkwHA,8986
|
108
|
-
spacr/resources/icons/run.svg,sha256=lyb8y6V5AD86ncLz3iKIyHPdLiFt5Ch5PjwAQ7hrGAM,190
|
109
|
-
spacr/resources/icons/run_2.png,sha256=KoNhaSHukO4wDyivyYEgSbb5mGj-sAxmhKikLLtNpWs,20341
|
110
|
-
spacr/resources/icons/run_2.svg,sha256=HJCoq_2QJ7OSE_VF_5QGLMN3m374U-LaR9f5DC8aCsw,726
|
111
|
-
spacr/resources/icons/sequencing.png,sha256=P9E_Y76ZysWMKst3_hAw-_4F510XPW1l1TsDElVzt4o,17775
|
112
|
-
spacr/resources/icons/sequencing.svg,sha256=fEdE8n7H4rdn818m7SZL24Fz9bKiROozFI1cCNDT_QI,853
|
113
|
-
spacr/resources/icons/settings.png,sha256=y5Ow5BxJDDsrqom0VNbOMDGGUs6odxbSMDy6y4r_F0w,22269
|
114
|
-
spacr/resources/icons/settings.svg,sha256=7H11s2jhauKZPw9lv_oF_lY_ug_HT4vGhLQ-cS-_Pbg,1087
|
115
|
-
spacr/resources/icons/train_cellpose.png,sha256=GAkaWVLkOzaUvJXKIT-hMcI7EFr4Qd18MIPt8YZIIsU,5811
|
116
|
-
spacr/resources/icons/train_cellpose.svg,sha256=Qah2_o5NYdmlishzTeZqfy4mYbicKpu6mlrwzIyyQG0,341
|
117
|
-
spacr/resources/icons/umap.png,sha256=2XvfWSYvLg85YPuPf3C5o8wNo7_ncg5v_GBsKwzRfCw,11042
|
118
|
-
spacr/resources/models/cp/toxo_plaque_cyto_e25000_X1120_Y1120.CP_model,sha256=z8BbHWZPRnE9D_BHO0fBREE85c1vkltDs-incs2ytXQ,26566572
|
119
|
-
spacr/resources/models/cp/toxo_plaque_cyto_e25000_X1120_Y1120.CP_model_settings.csv,sha256=fBAGuL_B8ERVdVizO3BHozTDSbZUh1yFzsYK3wkQN68,420
|
120
|
-
spacr/resources/models/cp/toxo_pv_lumen.CP_model,sha256=2y_CindYhmTvVwBH39SNILF3rI3x9SsRn6qrMxHy3l0,26562451
|
121
|
-
spacr-0.2.1.dist-info/LICENSE,sha256=SR-2MeGc6SCM1UORJYyarSWY_A-JaOMFDj7ReSs9tRM,1083
|
122
|
-
spacr-0.2.1.dist-info/METADATA,sha256=uHHphakc2zggjMBQ5kILnzfXx4Ljmg-vvRfyeNLGuFs,5049
|
123
|
-
spacr-0.2.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
124
|
-
spacr-0.2.1.dist-info/entry_points.txt,sha256=BMC0ql9aNNpv8lUZ8sgDLQMsqaVnX5L535gEhKUP5ho,296
|
125
|
-
spacr-0.2.1.dist-info/top_level.txt,sha256=GJPU8FgwRXGzKeut6JopsSRY2R8T3i9lDgya42tLInY,6
|
126
|
-
spacr-0.2.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|