spacr 0.0.82__py3-none-any.whl → 0.1.0__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 +4 -0
- spacr/annotate_app.py +4 -0
- spacr/annotate_app_v2.py +511 -0
- spacr/core.py +254 -172
- spacr/deep_spacr.py +137 -50
- spacr/graph_learning.py +28 -8
- spacr/io.py +227 -144
- spacr/measure.py +2 -1
- 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 +23 -0
- spacr/plot.py +102 -6
- spacr/sequencing.py +140 -91
- spacr/settings.py +477 -0
- spacr/timelapse.py +0 -3
- spacr/utils.py +312 -275
- {spacr-0.0.82.dist-info → spacr-0.1.0.dist-info}/METADATA +1 -1
- spacr-0.1.0.dist-info/RECORD +40 -0
- spacr-0.0.82.dist-info/RECORD +0 -36
- {spacr-0.0.82.dist-info → spacr-0.1.0.dist-info}/LICENSE +0 -0
- {spacr-0.0.82.dist-info → spacr-0.1.0.dist-info}/WHEEL +0 -0
- {spacr-0.0.82.dist-info → spacr-0.1.0.dist-info}/entry_points.txt +0 -0
- {spacr-0.0.82.dist-info → spacr-0.1.0.dist-info}/top_level.txt +0 -0
spacr/settings.py
ADDED
@@ -0,0 +1,477 @@
|
|
1
|
+
import os
|
2
|
+
|
3
|
+
def set_default_plot_merge_settings():
|
4
|
+
settings = {}
|
5
|
+
settings.setdefault('include_noninfected', True)
|
6
|
+
settings.setdefault('include_multiinfected', True)
|
7
|
+
settings.setdefault('include_multinucleated', True)
|
8
|
+
settings.setdefault('remove_background', False)
|
9
|
+
settings.setdefault('filter_min_max', None)
|
10
|
+
settings.setdefault('channel_dims', [0,1,2,3])
|
11
|
+
settings.setdefault('backgrounds', [100,100,100,100])
|
12
|
+
settings.setdefault('cell_mask_dim', 4)
|
13
|
+
settings.setdefault('nucleus_mask_dim', 5)
|
14
|
+
settings.setdefault('pathogen_mask_dim', 6)
|
15
|
+
settings.setdefault('outline_thickness', 3)
|
16
|
+
settings.setdefault('outline_color', 'gbr')
|
17
|
+
settings.setdefault('overlay_chans', [1,2,3])
|
18
|
+
settings.setdefault('overlay', True)
|
19
|
+
settings.setdefault('normalization_percentiles', [2,98])
|
20
|
+
settings.setdefault('normalize', True)
|
21
|
+
settings.setdefault('print_object_number', True)
|
22
|
+
settings.setdefault('nr', 1)
|
23
|
+
settings.setdefault('figuresize', 50)
|
24
|
+
settings.setdefault('cmap', 'inferno')
|
25
|
+
settings.setdefault('verbose', True)
|
26
|
+
return settings
|
27
|
+
|
28
|
+
def set_default_settings_preprocess_generate_masks(src, settings={}):
|
29
|
+
# Main settings
|
30
|
+
settings['src'] = src
|
31
|
+
settings.setdefault('preprocess', True)
|
32
|
+
settings.setdefault('masks', True)
|
33
|
+
settings.setdefault('save', True)
|
34
|
+
settings.setdefault('batch_size', 50)
|
35
|
+
settings.setdefault('test_mode', False)
|
36
|
+
settings.setdefault('test_images', 10)
|
37
|
+
settings.setdefault('magnification', 20)
|
38
|
+
settings.setdefault('custom_regex', None)
|
39
|
+
settings.setdefault('metadata_type', 'cellvoyager')
|
40
|
+
settings.setdefault('workers', os.cpu_count()-4)
|
41
|
+
settings.setdefault('randomize', True)
|
42
|
+
settings.setdefault('verbose', True)
|
43
|
+
settings.setdefault('remove_background_cell', False)
|
44
|
+
settings.setdefault('remove_background_nucleus', False)
|
45
|
+
settings.setdefault('remove_background_pathogen', False)
|
46
|
+
|
47
|
+
# Channel settings
|
48
|
+
settings.setdefault('cell_channel', None)
|
49
|
+
settings.setdefault('nucleus_channel', None)
|
50
|
+
settings.setdefault('pathogen_channel', None)
|
51
|
+
settings.setdefault('channels', [0,1,2,3])
|
52
|
+
settings.setdefault('pathogen_background', 100)
|
53
|
+
settings.setdefault('pathogen_Signal_to_noise', 10)
|
54
|
+
settings.setdefault('pathogen_CP_prob', 0)
|
55
|
+
settings.setdefault('cell_background', 100)
|
56
|
+
settings.setdefault('cell_Signal_to_noise', 10)
|
57
|
+
settings.setdefault('cell_CP_prob', 0)
|
58
|
+
settings.setdefault('nucleus_background', 100)
|
59
|
+
settings.setdefault('nucleus_Signal_to_noise', 10)
|
60
|
+
settings.setdefault('nucleus_CP_prob', 0)
|
61
|
+
settings.setdefault('nucleus_FT', 100)
|
62
|
+
settings.setdefault('cell_FT', 100)
|
63
|
+
settings.setdefault('pathogen_FT', 100)
|
64
|
+
|
65
|
+
# Plot settings
|
66
|
+
settings.setdefault('plot', False)
|
67
|
+
settings.setdefault('figuresize', 50)
|
68
|
+
settings.setdefault('cmap', 'inferno')
|
69
|
+
settings.setdefault('normalize', True)
|
70
|
+
settings.setdefault('normalize_plots', True)
|
71
|
+
settings.setdefault('examples_to_plot', 1)
|
72
|
+
|
73
|
+
# Analasys settings
|
74
|
+
settings.setdefault('pathogen_model', None)
|
75
|
+
settings.setdefault('merge_pathogens', False)
|
76
|
+
settings.setdefault('filter', False)
|
77
|
+
settings.setdefault('lower_percentile', 2)
|
78
|
+
|
79
|
+
# Timelapse settings
|
80
|
+
settings.setdefault('timelapse', False)
|
81
|
+
settings.setdefault('fps', 2)
|
82
|
+
settings.setdefault('timelapse_displacement', None)
|
83
|
+
settings.setdefault('timelapse_memory', 3)
|
84
|
+
settings.setdefault('timelapse_frame_limits', None)
|
85
|
+
settings.setdefault('timelapse_remove_transient', False)
|
86
|
+
settings.setdefault('timelapse_mode', 'trackpy')
|
87
|
+
settings.setdefault('timelapse_objects', 'cells')
|
88
|
+
|
89
|
+
# Misc settings
|
90
|
+
settings.setdefault('all_to_mip', False)
|
91
|
+
settings.setdefault('pick_slice', False)
|
92
|
+
settings.setdefault('skip_mode', '01')
|
93
|
+
settings.setdefault('upscale', False)
|
94
|
+
settings.setdefault('upscale_factor', 2.0)
|
95
|
+
settings.setdefault('adjust_cells', False)
|
96
|
+
return settings
|
97
|
+
|
98
|
+
def set_default_settings_preprocess_img_data(settings):
|
99
|
+
|
100
|
+
metadata_type = settings.setdefault('metadata_type', 'cellvoyager')
|
101
|
+
custom_regex = settings.setdefault('custom_regex', None)
|
102
|
+
nr = settings.setdefault('nr', 1)
|
103
|
+
plot = settings.setdefault('plot', True)
|
104
|
+
batch_size = settings.setdefault('batch_size', 50)
|
105
|
+
timelapse = settings.setdefault('timelapse', False)
|
106
|
+
lower_percentile = settings.setdefault('lower_percentile', 2)
|
107
|
+
randomize = settings.setdefault('randomize', True)
|
108
|
+
all_to_mip = settings.setdefault('all_to_mip', False)
|
109
|
+
pick_slice = settings.setdefault('pick_slice', False)
|
110
|
+
skip_mode = settings.setdefault('skip_mode', False)
|
111
|
+
|
112
|
+
cmap = settings.setdefault('cmap', 'inferno')
|
113
|
+
figuresize = settings.setdefault('figuresize', 50)
|
114
|
+
normalize = settings.setdefault('normalize', True)
|
115
|
+
save_dtype = settings.setdefault('save_dtype', 'uint16')
|
116
|
+
|
117
|
+
test_mode = settings.setdefault('test_mode', False)
|
118
|
+
test_images = settings.setdefault('test_images', 10)
|
119
|
+
random_test = settings.setdefault('random_test', True)
|
120
|
+
|
121
|
+
return settings, metadata_type, custom_regex, nr, plot, batch_size, timelapse, lower_percentile, randomize, all_to_mip, pick_slice, skip_mode, cmap, figuresize, normalize, save_dtype, test_mode, test_images, random_test
|
122
|
+
|
123
|
+
def _get_object_settings(object_type, settings):
|
124
|
+
|
125
|
+
from .utils import _get_diam
|
126
|
+
object_settings = {}
|
127
|
+
|
128
|
+
object_settings['diameter'] = _get_diam(settings['magnification'], obj=object_type)
|
129
|
+
object_settings['minimum_size'] = (object_settings['diameter']**2)/4
|
130
|
+
object_settings['maximum_size'] = (object_settings['diameter']**2)*10
|
131
|
+
object_settings['merge'] = False
|
132
|
+
object_settings['resample'] = True
|
133
|
+
object_settings['remove_border_objects'] = False
|
134
|
+
object_settings['model_name'] = 'cyto'
|
135
|
+
|
136
|
+
if object_type == 'cell':
|
137
|
+
if settings['nucleus_channel'] is None:
|
138
|
+
object_settings['model_name'] = 'cyto'
|
139
|
+
else:
|
140
|
+
object_settings['model_name'] = 'cyto2'
|
141
|
+
object_settings['filter_size'] = False
|
142
|
+
object_settings['filter_intensity'] = False
|
143
|
+
object_settings['restore_type'] = settings.get('cell_restore_type', None)
|
144
|
+
|
145
|
+
elif object_type == 'nucleus':
|
146
|
+
object_settings['model_name'] = 'nuclei'
|
147
|
+
object_settings['filter_size'] = False
|
148
|
+
object_settings['filter_intensity'] = False
|
149
|
+
object_settings['restore_type'] = settings.get('nucleus_restore_type', None)
|
150
|
+
|
151
|
+
elif object_type == 'pathogen':
|
152
|
+
object_settings['model_name'] = 'cyto'
|
153
|
+
object_settings['filter_size'] = False
|
154
|
+
object_settings['filter_intensity'] = False
|
155
|
+
object_settings['resample'] = False
|
156
|
+
object_settings['restore_type'] = settings.get('pathogen_restore_type', None)
|
157
|
+
object_settings['merge'] = settings['merge_pathogens']
|
158
|
+
|
159
|
+
else:
|
160
|
+
print(f'Object type: {object_type} not supported. Supported object types are : cell, nucleus and pathogen')
|
161
|
+
|
162
|
+
if settings['verbose']:
|
163
|
+
print(object_settings)
|
164
|
+
|
165
|
+
return object_settings
|
166
|
+
|
167
|
+
def get_umap_image_settings(settings={}):
|
168
|
+
settings.setdefault('src', 'path')
|
169
|
+
settings.setdefault('row_limit', 1000)
|
170
|
+
settings.setdefault('tables', ['cell', 'cytoplasm', 'nucleus', 'pathogen'])
|
171
|
+
settings.setdefault('visualize', 'cell')
|
172
|
+
settings.setdefault('image_nr', 16)
|
173
|
+
settings.setdefault('dot_size', 50)
|
174
|
+
settings.setdefault('n_neighbors', 1000)
|
175
|
+
settings.setdefault('min_dist', 0.1)
|
176
|
+
settings.setdefault('metric', 'euclidean')
|
177
|
+
settings.setdefault('eps', 0.5)
|
178
|
+
settings.setdefault('min_samples', 1000)
|
179
|
+
settings.setdefault('filter_by', 'channel_0')
|
180
|
+
settings.setdefault('img_zoom', 0.5)
|
181
|
+
settings.setdefault('plot_by_cluster', True)
|
182
|
+
settings.setdefault('plot_cluster_grids', True)
|
183
|
+
settings.setdefault('remove_cluster_noise', True)
|
184
|
+
settings.setdefault('remove_highly_correlated', True)
|
185
|
+
settings.setdefault('log_data', False)
|
186
|
+
settings.setdefault('figuresize', 60)
|
187
|
+
settings.setdefault('black_background', True)
|
188
|
+
settings.setdefault('remove_image_canvas', False)
|
189
|
+
settings.setdefault('plot_outlines', True)
|
190
|
+
settings.setdefault('plot_points', True)
|
191
|
+
settings.setdefault('smooth_lines', True)
|
192
|
+
settings.setdefault('clustering', 'dbscan')
|
193
|
+
settings.setdefault('exclude', None)
|
194
|
+
settings.setdefault('col_to_compare', 'col')
|
195
|
+
settings.setdefault('pos', 'c1')
|
196
|
+
settings.setdefault('neg', 'c2')
|
197
|
+
settings.setdefault('embedding_by_controls', False)
|
198
|
+
settings.setdefault('plot_images', True)
|
199
|
+
settings.setdefault('reduction_method','umap')
|
200
|
+
settings.setdefault('save_figure', False)
|
201
|
+
settings.setdefault('n_jobs', -1)
|
202
|
+
settings.setdefault('color_by', None)
|
203
|
+
settings.setdefault('neg', 'c1')
|
204
|
+
settings.setdefault('pos', 'c2')
|
205
|
+
settings.setdefault('mix', 'c3')
|
206
|
+
settings.setdefault('mix', 'c3')
|
207
|
+
settings.setdefault('exclude_conditions', None)
|
208
|
+
settings.setdefault('analyze_clusters', False)
|
209
|
+
settings.setdefault('resnet_features', False)
|
210
|
+
settings.setdefault('verbose',True)
|
211
|
+
return settings
|
212
|
+
|
213
|
+
def get_measure_crop_settings(settings):
|
214
|
+
|
215
|
+
# Test mode
|
216
|
+
settings.setdefault('test_mode', False)
|
217
|
+
settings.setdefault('test_nr', 10)
|
218
|
+
|
219
|
+
#measurement settings
|
220
|
+
settings.setdefault('save_measurements',True)
|
221
|
+
settings.setdefault('radial_dist', True)
|
222
|
+
settings.setdefault('calculate_correlation', True)
|
223
|
+
settings.setdefault('manders_thresholds', [15,85,95])
|
224
|
+
settings.setdefault('homogeneity', True)
|
225
|
+
settings.setdefault('homogeneity_distances', [8,16,32])
|
226
|
+
|
227
|
+
# Cropping settings
|
228
|
+
settings.setdefault('save_arrays', False)
|
229
|
+
settings.setdefault('save_png',True)
|
230
|
+
settings.setdefault('use_bounding_box',False)
|
231
|
+
settings.setdefault('png_size',[224,224])
|
232
|
+
settings.setdefault('png_dims',[0,1,2])
|
233
|
+
settings.setdefault('normalize',False)
|
234
|
+
settings.setdefault('normalize_by','png')
|
235
|
+
settings.setdefault('crop_mode',['cell'])
|
236
|
+
settings.setdefault('dialate_pngs', False)
|
237
|
+
settings.setdefault('dialate_png_ratios', [0.2])
|
238
|
+
|
239
|
+
# Timelapsed settings
|
240
|
+
settings.setdefault('timelapse', False)
|
241
|
+
settings.setdefault('timelapse_objects', 'cell')
|
242
|
+
|
243
|
+
# Operational settings
|
244
|
+
settings.setdefault('plot',False)
|
245
|
+
settings.setdefault('plot_filtration',False)
|
246
|
+
settings.setdefault('representative_images', False)
|
247
|
+
settings.setdefault('max_workers', os.cpu_count()-2)
|
248
|
+
|
249
|
+
# Object settings
|
250
|
+
settings.setdefault('cell_mask_dim',None)
|
251
|
+
settings.setdefault('nucleus_mask_dim',None)
|
252
|
+
settings.setdefault('pathogen_mask_dim',None)
|
253
|
+
settings.setdefault('cytoplasm',False)
|
254
|
+
settings.setdefault('include_uninfected',True)
|
255
|
+
settings.setdefault('cell_min_size',0)
|
256
|
+
settings.setdefault('nucleus_min_size',0)
|
257
|
+
settings.setdefault('pathogen_min_size',0)
|
258
|
+
settings.setdefault('cytoplasm_min_size',0)
|
259
|
+
settings.setdefault('merge_edge_pathogen_cells', True)
|
260
|
+
|
261
|
+
# Miscellaneous settings
|
262
|
+
settings.setdefault('experiment', 'exp')
|
263
|
+
settings.setdefault('cells', 'HeLa')
|
264
|
+
settings.setdefault('cell_loc', None)
|
265
|
+
settings.setdefault('pathogens', ['ME49Dku80WT', 'ME49Dku80dgra8:GRA8', 'ME49Dku80dgra8', 'ME49Dku80TKO'])
|
266
|
+
settings.setdefault('pathogen_loc', [['c1', 'c2', 'c3', 'c4', 'c5', 'c6'], ['c7', 'c8', 'c9', 'c10', 'c11', 'c12'], ['c13', 'c14', 'c15', 'c16', 'c17', 'c18'], ['c19', 'c20', 'c21', 'c22', 'c23', 'c24']])
|
267
|
+
settings.setdefault('treatments', ['BR1', 'BR2', 'BR3'])
|
268
|
+
settings.setdefault('treatment_loc', [['c1', 'c2', 'c7', 'c8', 'c13', 'c14', 'c19', 'c20'], ['c3', 'c4', 'c9', 'c10', 'c15', 'c16', 'c21', 'c22'], ['c5', 'c6', 'c11', 'c12', 'c17', 'c18', 'c23', 'c24']])
|
269
|
+
settings.setdefault('channel_of_interest', 2)
|
270
|
+
settings.setdefault('compartments', ['pathogen', 'cytoplasm'])
|
271
|
+
settings.setdefault('measurement', 'mean_intensity')
|
272
|
+
settings.setdefault('nr_imgs', 32)
|
273
|
+
settings.setdefault('um_per_pixel', 0.1)
|
274
|
+
|
275
|
+
if settings['test_mode']:
|
276
|
+
settings['plot'] = True
|
277
|
+
settings['plot_filtration'] = True
|
278
|
+
test_imgs = settings['test_nr']
|
279
|
+
print(f'Test mode enabled with {test_imgs} images, plotting set to True')
|
280
|
+
|
281
|
+
return settings
|
282
|
+
|
283
|
+
def set_default_analyze_screen(settings):
|
284
|
+
settings.setdefault('model_type','xgboost')
|
285
|
+
settings.setdefault('heatmap_feature','predictions')
|
286
|
+
settings.setdefault('grouping','mean')
|
287
|
+
settings.setdefault('min_max','allq')
|
288
|
+
settings.setdefault('cmap','viridis')
|
289
|
+
settings.setdefault('channel_of_interest',3)
|
290
|
+
settings.setdefault('minimum_cell_count',25)
|
291
|
+
settings.setdefault('n_estimators',100)
|
292
|
+
settings.setdefault('test_size',0.2)
|
293
|
+
settings.setdefault('location_column','col')
|
294
|
+
settings.setdefault('positive_control','c2')
|
295
|
+
settings.setdefault('negative_control','c1')
|
296
|
+
settings.setdefault('exclude',None)
|
297
|
+
settings.setdefault('n_repeats',10)
|
298
|
+
settings.setdefault('top_features',30)
|
299
|
+
settings.setdefault('remove_low_variance_features',True)
|
300
|
+
settings.setdefault('remove_highly_correlated_features',True)
|
301
|
+
settings.setdefault('n_jobs',-1)
|
302
|
+
settings.setdefault('verbose',True)
|
303
|
+
return settings
|
304
|
+
|
305
|
+
def set_default_train_test_model(settings):
|
306
|
+
cores = os.cpu_count()-2
|
307
|
+
settings.setdefault('train',True)
|
308
|
+
settings.setdefault('test',False)
|
309
|
+
settings.setdefault('classes',['nc','pc'])
|
310
|
+
settings.setdefault('model_type','maxvit_t')
|
311
|
+
settings.setdefault('optimizer_type','adamw')
|
312
|
+
settings.setdefault('schedule','reduce_lr_on_plateau') #reduce_lr_on_plateau, step_lr
|
313
|
+
settings.setdefault('loss_type','focal_loss') # binary_cross_entropy_with_logits
|
314
|
+
settings.setdefault('normalize',True)
|
315
|
+
settings.setdefault('image_size',224)
|
316
|
+
settings.setdefault('batch_size',64)
|
317
|
+
settings.setdefault('epochs',100)
|
318
|
+
settings.setdefault('val_split',0.1)
|
319
|
+
settings.setdefault('train_mode','erm')
|
320
|
+
settings.setdefault('learning_rate',0.001)
|
321
|
+
settings.setdefault('weight_decay',0.00001)
|
322
|
+
settings.setdefault('dropout_rate',0.1)
|
323
|
+
settings.setdefault('init_weights',True)
|
324
|
+
settings.setdefault('amsgrad',True)
|
325
|
+
settings.setdefault('use_checkpoint',True)
|
326
|
+
settings.setdefault('gradient_accumulation',True)
|
327
|
+
settings.setdefault('gradient_accumulation_steps',4)
|
328
|
+
settings.setdefault('intermedeate_save',True)
|
329
|
+
settings.setdefault('pin_memory',True)
|
330
|
+
settings.setdefault('num_workers',cores)
|
331
|
+
settings.setdefault('channels',['r','g','b'])
|
332
|
+
settings.setdefault('augment',False)
|
333
|
+
settings.setdefault('verbose',False)
|
334
|
+
return settings
|
335
|
+
|
336
|
+
def get_analyze_recruitment_default_settings(settings):
|
337
|
+
settings.setdefault('target','protein')
|
338
|
+
settings.setdefault('cell_types',['HeLa'])
|
339
|
+
settings.setdefault('cell_plate_metadata',None)
|
340
|
+
settings.setdefault('pathogen_types',['pathogen_1', 'pathogen_2'])
|
341
|
+
settings.setdefault('pathogen_plate_metadata',[['c1', 'c2', 'c3'],['c4','c5', 'c6']])
|
342
|
+
settings.setdefault('treatments',['cm', 'lovastatin'])
|
343
|
+
settings.setdefault('treatment_plate_metadata',[['r1', 'r2','r3'], ['r4', 'r5','r6']])
|
344
|
+
settings.setdefault('metadata_types',['col', 'col', 'row'])
|
345
|
+
settings.setdefault('channel_dims',[0,1,2,3])
|
346
|
+
settings.setdefault('cell_chann_dim',3)
|
347
|
+
settings.setdefault('cell_mask_dim',4)
|
348
|
+
settings.setdefault('nucleus_chann_dim',0)
|
349
|
+
settings.setdefault('nucleus_mask_dim',5)
|
350
|
+
settings.setdefault('pathogen_chann_dim',2)
|
351
|
+
settings.setdefault('pathogen_mask_dim',6)
|
352
|
+
settings.setdefault('channel_of_interest',2)
|
353
|
+
settings.setdefault('plot',True)
|
354
|
+
settings.setdefault('plot_nr',10)
|
355
|
+
settings.setdefault('plot_control',True)
|
356
|
+
settings.setdefault('figuresize',20)
|
357
|
+
settings.setdefault('remove_background',False)
|
358
|
+
settings.setdefault('backgrounds',100)
|
359
|
+
settings.setdefault('include_noninfected',True)
|
360
|
+
settings.setdefault('include_multiinfected',True)
|
361
|
+
settings.setdefault('include_multinucleated',True)
|
362
|
+
settings.setdefault('cells_per_well',0)
|
363
|
+
settings.setdefault('pathogen_size_range',[0,100000])
|
364
|
+
settings.setdefault('nucleus_size_range',[0,100000])
|
365
|
+
settings.setdefault('cell_size_range',[0,100000])
|
366
|
+
settings.setdefault('pathogen_intensity_range',[0,100000])
|
367
|
+
settings.setdefault('nucleus_intensity_range',[0,100000])
|
368
|
+
settings.setdefault('cell_intensity_range',[0,100000])
|
369
|
+
settings.setdefault('target_intensity_min',0)
|
370
|
+
return settings
|
371
|
+
|
372
|
+
def get_analyze_reads_default_settings(settings):
|
373
|
+
settings.setdefault('upstream', 'CTTCTGGTAAATGGGGATGTCAAGTT')
|
374
|
+
settings.setdefault('downstream', 'GTTTAAGAGCTATGCTGGAAACAGCAG') #This is the reverce compliment of the column primer starting from the end #TGCTGTTTAAGAGCTATGCTGGAAACAGCA
|
375
|
+
settings.setdefault('barecode_length_1', 8)
|
376
|
+
settings.setdefault('barecode_length_2', 7)
|
377
|
+
settings.setdefault('chunk_size', 1000000)
|
378
|
+
settings.setdefault('test', False)
|
379
|
+
return settings
|
380
|
+
|
381
|
+
def get_map_barcodes_default_settings(settings):
|
382
|
+
settings.setdefault('grna', '/home/carruthers/Documents/grna_barcodes.csv')
|
383
|
+
settings.setdefault('barcodes', '/home/carruthers/Documents/SCREEN_BARCODES.csv')
|
384
|
+
settings.setdefault('plate_dict', {'EO1': 'plate1', 'EO2': 'plate2', 'EO3': 'plate3', 'EO4': 'plate4', 'EO5': 'plate5', 'EO6': 'plate6', 'EO7': 'plate7', 'EO8': 'plate8'})
|
385
|
+
settings.setdefault('test', False)
|
386
|
+
settings.setdefault('verbose', True)
|
387
|
+
settings.setdefault('pc', 'TGGT1_220950_1')
|
388
|
+
settings.setdefault('pc_loc', 'c2')
|
389
|
+
settings.setdefault('nc', 'TGGT1_233460_4')
|
390
|
+
settings.setdefault('nc_loc', 'c1')
|
391
|
+
return settings
|
392
|
+
|
393
|
+
def get_train_cellpose_default_settings(settings):
|
394
|
+
settings.setdefault('model_name','new_model')
|
395
|
+
settings.setdefault('model_type','cyto')
|
396
|
+
settings.setdefault('Signal_to_noise',10)
|
397
|
+
settings.setdefault('background',200)
|
398
|
+
settings.setdefault('remove_background',False)
|
399
|
+
settings.setdefault('learning_rate',0.2)
|
400
|
+
settings.setdefault('weight_decay',1e-05)
|
401
|
+
settings.setdefault('batch_size',8)
|
402
|
+
settings.setdefault('n_epochs',10000)
|
403
|
+
settings.setdefault('from_scratch',False)
|
404
|
+
settings.setdefault('diameter',30)
|
405
|
+
settings.setdefault('resize',False)
|
406
|
+
settings.setdefault('width_height',[1000,1000])
|
407
|
+
settings.setdefault('verbose',True)
|
408
|
+
return settings
|
409
|
+
|
410
|
+
def get_perform_regression_default_settings(settings):
|
411
|
+
settings.setdefault('gene_weights_csv', '/nas_mnt/carruthers/Einar/mitoscreen/sequencing/combined_reads/EO1_combined/EO1_combined_combination_counts.csv')
|
412
|
+
settings.setdefault('dependent_variable','predictions')
|
413
|
+
settings.setdefault('transform',None)
|
414
|
+
settings.setdefault('agg_type','mean')
|
415
|
+
settings.setdefault('min_cell_count',25)
|
416
|
+
settings.setdefault('regression_type','ols')
|
417
|
+
settings.setdefault('remove_row_column_effect',False)
|
418
|
+
settings.setdefault('alpha',1)
|
419
|
+
settings.setdefault('fraction_threshold',0.1)
|
420
|
+
settings.setdefault('nc','c1')
|
421
|
+
settings.setdefault('pc','c2')
|
422
|
+
settings.setdefault('other','c3')
|
423
|
+
settings.setdefault('plate','plate1')
|
424
|
+
settings.setdefault('class_1_threshold',None)
|
425
|
+
|
426
|
+
if settings['regression_type'] == 'quantile':
|
427
|
+
print(f"Using alpha as quantile for quantile regression, alpha: {settings['alpha']}")
|
428
|
+
settings['agg_type'] = None
|
429
|
+
print(f'agg_type set to None for quantile regression')
|
430
|
+
return settings
|
431
|
+
|
432
|
+
def get_check_cellpose_models_default_settings(settings):
|
433
|
+
settings.setdefault('batch_size', 10)
|
434
|
+
settings.setdefault('CP_prob', 0)
|
435
|
+
settings.setdefault('flow_threshold', 0.4)
|
436
|
+
settings.setdefault('save', True)
|
437
|
+
settings.setdefault('normalize', True)
|
438
|
+
settings.setdefault('channels', [0,0])
|
439
|
+
settings.setdefault('percentiles', None)
|
440
|
+
settings.setdefault('circular', False)
|
441
|
+
settings.setdefault('invert', False)
|
442
|
+
settings.setdefault('plot', True)
|
443
|
+
settings.setdefault('diameter', 40)
|
444
|
+
settings.setdefault('grayscale', True)
|
445
|
+
settings.setdefault('remove_background', False)
|
446
|
+
settings.setdefault('background', 100)
|
447
|
+
settings.setdefault('Signal_to_noise', 5)
|
448
|
+
settings.setdefault('verbose', False)
|
449
|
+
settings.setdefault('resize', False)
|
450
|
+
settings.setdefault('target_height', None)
|
451
|
+
settings.setdefault('target_width', None)
|
452
|
+
return settings
|
453
|
+
|
454
|
+
def get_identify_masks_finetune_default_settings(settings):
|
455
|
+
settings.setdefault('model_name', 'cyto')
|
456
|
+
settings.setdefault('custom_model', None)
|
457
|
+
settings.setdefault('channels', [0,0])
|
458
|
+
settings.setdefault('background', 100)
|
459
|
+
settings.setdefault('remove_background', False)
|
460
|
+
settings.setdefault('Signal_to_noise', 10)
|
461
|
+
settings.setdefault('CP_prob', 0)
|
462
|
+
settings.setdefault('diameter', 30)
|
463
|
+
settings.setdefault('batch_size', 50)
|
464
|
+
settings.setdefault('flow_threshold', 0.4)
|
465
|
+
settings.setdefault('save', False)
|
466
|
+
settings.setdefault('verbose', False)
|
467
|
+
settings.setdefault('normalize', True)
|
468
|
+
settings.setdefault('percentiles', None)
|
469
|
+
settings.setdefault('circular', False)
|
470
|
+
settings.setdefault('invert', False)
|
471
|
+
settings.setdefault('resize', False)
|
472
|
+
settings.setdefault('target_height', None)
|
473
|
+
settings.setdefault('target_width', None)
|
474
|
+
settings.setdefault('rescale', False)
|
475
|
+
settings.setdefault('resample', False)
|
476
|
+
settings.setdefault('grayscale', True)
|
477
|
+
return settings
|
spacr/timelapse.py
CHANGED
@@ -15,9 +15,6 @@ import matplotlib.pyplot as plt
|
|
15
15
|
|
16
16
|
from .logger import log_function_call
|
17
17
|
|
18
|
-
#from .plot import _visualize_and_save_timelapse_stack_with_tracks
|
19
|
-
#from .utils import _masks_to_masks_stack
|
20
|
-
|
21
18
|
def _npz_to_movie(arrays, filenames, save_path, fps=10):
|
22
19
|
"""
|
23
20
|
Convert a list of numpy arrays to a movie file.
|