spacr 0.0.82__py3-none-any.whl → 0.1.1__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/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.