spacr 0.2.68__py3-none-any.whl → 0.3.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.
Files changed (77) hide show
  1. spacr/__init__.py +2 -1
  2. spacr/core.py +107 -12
  3. spacr/gui.py +3 -2
  4. spacr/gui_core.py +160 -109
  5. spacr/gui_elements.py +190 -18
  6. spacr/gui_utils.py +4 -1
  7. spacr/io.py +1 -1
  8. spacr/measure.py +4 -4
  9. spacr/mediar.py +366 -0
  10. spacr/plot.py +4 -1
  11. spacr/resources/MEDIAR/.git +1 -0
  12. spacr/resources/MEDIAR/.gitignore +18 -0
  13. spacr/resources/MEDIAR/LICENSE +21 -0
  14. spacr/resources/MEDIAR/README.md +189 -0
  15. spacr/resources/MEDIAR/SetupDict.py +39 -0
  16. spacr/resources/MEDIAR/config/baseline.json +60 -0
  17. spacr/resources/MEDIAR/config/mediar_example.json +72 -0
  18. spacr/resources/MEDIAR/config/pred/pred_mediar.json +17 -0
  19. spacr/resources/MEDIAR/config/step1_pretraining/phase1.json +55 -0
  20. spacr/resources/MEDIAR/config/step1_pretraining/phase2.json +58 -0
  21. spacr/resources/MEDIAR/config/step2_finetuning/finetuning1.json +66 -0
  22. spacr/resources/MEDIAR/config/step2_finetuning/finetuning2.json +66 -0
  23. spacr/resources/MEDIAR/config/step3_prediction/base_prediction.json +16 -0
  24. spacr/resources/MEDIAR/config/step3_prediction/ensemble_tta.json +23 -0
  25. spacr/resources/MEDIAR/core/BasePredictor.py +120 -0
  26. spacr/resources/MEDIAR/core/BaseTrainer.py +240 -0
  27. spacr/resources/MEDIAR/core/Baseline/Predictor.py +59 -0
  28. spacr/resources/MEDIAR/core/Baseline/Trainer.py +113 -0
  29. spacr/resources/MEDIAR/core/Baseline/__init__.py +2 -0
  30. spacr/resources/MEDIAR/core/Baseline/utils.py +80 -0
  31. spacr/resources/MEDIAR/core/MEDIAR/EnsemblePredictor.py +105 -0
  32. spacr/resources/MEDIAR/core/MEDIAR/Predictor.py +234 -0
  33. spacr/resources/MEDIAR/core/MEDIAR/Trainer.py +172 -0
  34. spacr/resources/MEDIAR/core/MEDIAR/__init__.py +3 -0
  35. spacr/resources/MEDIAR/core/MEDIAR/utils.py +429 -0
  36. spacr/resources/MEDIAR/core/__init__.py +2 -0
  37. spacr/resources/MEDIAR/core/utils.py +40 -0
  38. spacr/resources/MEDIAR/evaluate.py +71 -0
  39. spacr/resources/MEDIAR/generate_mapping.py +121 -0
  40. spacr/resources/MEDIAR/image/examples/img1.tiff +0 -0
  41. spacr/resources/MEDIAR/image/examples/img2.tif +0 -0
  42. spacr/resources/MEDIAR/image/failure_cases.png +0 -0
  43. spacr/resources/MEDIAR/image/mediar_framework.png +0 -0
  44. spacr/resources/MEDIAR/image/mediar_model.PNG +0 -0
  45. spacr/resources/MEDIAR/image/mediar_results.png +0 -0
  46. spacr/resources/MEDIAR/main.py +125 -0
  47. spacr/resources/MEDIAR/predict.py +70 -0
  48. spacr/resources/MEDIAR/requirements.txt +14 -0
  49. spacr/resources/MEDIAR/train_tools/__init__.py +3 -0
  50. spacr/resources/MEDIAR/train_tools/data_utils/__init__.py +1 -0
  51. spacr/resources/MEDIAR/train_tools/data_utils/custom/CellAware.py +88 -0
  52. spacr/resources/MEDIAR/train_tools/data_utils/custom/LoadImage.py +161 -0
  53. spacr/resources/MEDIAR/train_tools/data_utils/custom/NormalizeImage.py +77 -0
  54. spacr/resources/MEDIAR/train_tools/data_utils/custom/__init__.py +3 -0
  55. spacr/resources/MEDIAR/train_tools/data_utils/custom/modalities.pkl +0 -0
  56. spacr/resources/MEDIAR/train_tools/data_utils/datasetter.py +208 -0
  57. spacr/resources/MEDIAR/train_tools/data_utils/transforms.py +148 -0
  58. spacr/resources/MEDIAR/train_tools/data_utils/utils.py +84 -0
  59. spacr/resources/MEDIAR/train_tools/measures.py +200 -0
  60. spacr/resources/MEDIAR/train_tools/models/MEDIARFormer.py +102 -0
  61. spacr/resources/MEDIAR/train_tools/models/__init__.py +1 -0
  62. spacr/resources/MEDIAR/train_tools/utils.py +70 -0
  63. spacr/resources/MEDIAR_weights/.DS_Store +0 -0
  64. spacr/resources/icons/.DS_Store +0 -0
  65. spacr/resources/icons/plaque.png +0 -0
  66. spacr/resources/images/plate1_E01_T0001F001L01A01Z01C02.tif +0 -0
  67. spacr/resources/images/plate1_E01_T0001F001L01A02Z01C01.tif +0 -0
  68. spacr/resources/images/plate1_E01_T0001F001L01A03Z01C03.tif +0 -0
  69. spacr/sequencing.py +234 -422
  70. spacr/settings.py +16 -10
  71. spacr/utils.py +14 -11
  72. {spacr-0.2.68.dist-info → spacr-0.3.0.dist-info}/METADATA +10 -2
  73. {spacr-0.2.68.dist-info → spacr-0.3.0.dist-info}/RECORD +77 -18
  74. {spacr-0.2.68.dist-info → spacr-0.3.0.dist-info}/LICENSE +0 -0
  75. {spacr-0.2.68.dist-info → spacr-0.3.0.dist-info}/WHEEL +0 -0
  76. {spacr-0.2.68.dist-info → spacr-0.3.0.dist-info}/entry_points.txt +0 -0
  77. {spacr-0.2.68.dist-info → spacr-0.3.0.dist-info}/top_level.txt +0 -0
spacr/settings.py CHANGED
@@ -34,6 +34,7 @@ def set_default_settings_preprocess_generate_masks(src, settings={}):
34
34
  if 'src' not in settings:
35
35
  settings['src'] = 'path'
36
36
 
37
+ settings.setdefault('segmentation_mode', 'cellpose')
37
38
  settings.setdefault('preprocess', True)
38
39
  settings.setdefault('masks', True)
39
40
  settings.setdefault('save', True)
@@ -580,7 +581,7 @@ expected_types = {
580
581
  "timelapse": bool,
581
582
  "timelapse_displacement": int,
582
583
  "timelapse_memory": int,
583
- "timelapse_frame_limits": list, # This can be a list of lists
584
+ "timelapse_frame_limits": (list, type(None)), # This can be a list of lists
584
585
  "timelapse_remove_transient": bool,
585
586
  "timelapse_mode": str,
586
587
  "timelapse_objects": list,
@@ -829,10 +830,11 @@ expected_types = {
829
830
  "custom_model_path":str,
830
831
  "generate_training_dataset":bool,
831
832
  'preload_batches':int,
833
+ "segmentation_mode":str,
832
834
  "train_DL_model":bool,
833
835
  }
834
836
 
835
- categories = {"General": ["src", "metadata_type", "custom_regex", "experiment", "channels", "magnification", "channel_dims", "apply_model_to_dataset", "generate_training_dataset", "train_DL_model"],
837
+ categories = {"General": ["src", "metadata_type", "custom_regex", "experiment", "channels", "magnification", "channel_dims", "apply_model_to_dataset", "generate_training_dataset", "train_DL_model", "segmentation_mode"],
836
838
  "Cell": ["cell_intensity_range", "cell_size_range", "cell_chann_dim", "cell_channel", "cell_background", "cell_Signal_to_noise", "cell_CP_prob", "cell_FT", "remove_background_cell", "cell_min_size", "cell_mask_dim", "cytoplasm", "cytoplasm_min_size", "include_uninfected", "merge_edge_pathogen_cells", "adjust_cells"],
837
839
  "Nucleus": ["nucleus_intensity_range", "nucleus_size_range", "nucleus_chann_dim", "nucleus_channel", "nucleus_background", "nucleus_Signal_to_noise", "nucleus_CP_prob", "nucleus_FT", "remove_background_nucleus", "nucleus_min_size", "nucleus_mask_dim", "nucleus_loc"],
838
840
  "Pathogen": ["pathogen_intensity_range", "pathogen_size_range", "pathogen_chann_dim", "pathogen_channel", "pathogen_background", "pathogen_Signal_to_noise", "pathogen_CP_prob", "pathogen_FT", "pathogen_model", "remove_background_pathogen", "pathogen_min_size", "pathogen_mask_dim"],
@@ -883,6 +885,8 @@ def check_settings(vars_dict, expected_types, q=None):
883
885
  settings[key] = parsed_value
884
886
  else:
885
887
  raise ValueError("Invalid format: Mixed list and list of lists")
888
+ #elif parsed_value == None:
889
+ # settings[key] = None
886
890
  else:
887
891
  raise ValueError("Invalid format for list or list of lists")
888
892
  elif expected_type == list:
@@ -1201,7 +1205,7 @@ descriptions = {
1201
1205
  def set_annotate_default_settings(settings):
1202
1206
  settings.setdefault('src', 'path')
1203
1207
  settings.setdefault('image_type', 'cell_png')
1204
- settings.setdefault('channels', "'r','g','b'")
1208
+ settings.setdefault('channels', "r,g,b")
1205
1209
  settings.setdefault('img_size', 200)
1206
1210
  settings.setdefault('annotation_column', 'test')
1207
1211
  settings.setdefault('normalize', 'False')
@@ -1212,13 +1216,15 @@ def set_annotate_default_settings(settings):
1212
1216
 
1213
1217
  def set_default_generate_barecode_mapping(settings={}):
1214
1218
  settings.setdefault('src', 'path')
1219
+ settings.setdefault('target_sequence', 'TGCTGTTTCCAGCATAGCTCTTAAAC')
1220
+ settings.setdefault('offset_start', -8)
1221
+ settings.setdefault('expected_end', 89)
1222
+ settings.setdefault('column_csv', '/home/carruthers/Documents/column_barcodes.csv')
1223
+ settings.setdefault('grna_csv', '/home/carruthers/Documents/grna_barcodes.csv')
1224
+ settings.setdefault('row_csv', '/home/carruthers/Documents/row_barcodes.csv')
1225
+ settings.setdefault('save_h5', True)
1226
+ settings.setdefault('comp_type', 'zlib')
1227
+ settings.setdefault('comp_level', 5)
1215
1228
  settings.setdefault('chunk_size', 100000)
1216
-
1217
- settings.setdefault('barcode_mapping', {'row': ['/home/carruthers/Documents/row_barcodes.csv',(80, 88), True],
1218
- 'grna': ['/home/carruthers/Documents/grna_barcodes.csv',(34, 55), True],
1219
- 'column': ['/home/carruthers/Documents/column_barcodes.csv',(0, 7), False]})
1220
-
1221
1229
  settings.setdefault('n_jobs', None)
1222
- settings.setdefault('compression', 'zlib')
1223
- settings.setdefault('complevel', 5)
1224
1230
  return settings
spacr/utils.py CHANGED
@@ -123,7 +123,8 @@ def print_progress(files_processed, files_to_process, n_jobs, time_ls=None, batc
123
123
  average_time_img = average_time / batch_size
124
124
  time_info = f'Time/batch: {average_time:.3f}sec, Time/image: {average_time_img:.3f}sec, Time_left: {time_left:.3f} min.'
125
125
  else:
126
- print(f'Progress: {files_processed}/{files_to_process}, operation_type: {operation_type} {time_info}')
126
+ time_info = None
127
+ print(f'Progress: {files_processed}/{files_to_process}, operation_type: {operation_type}, {time_info}')
127
128
 
128
129
  def reset_mp():
129
130
  current_method = get_start_method()
@@ -1209,16 +1210,16 @@ def _calculate_recruitment(df, channel):
1209
1210
  for chan in channels:
1210
1211
  df[f'{object_type}_slope_channel_{chan}'] = 1
1211
1212
 
1212
- for chan in channels:
1213
- df[f'nucleus_coordinates_{chan}'] = df[[f'nucleus_channel_{chan}_centroid_weighted_local-0', f'nucleus_channel_{chan}_centroid_weighted_local-1']].values.tolist()
1214
- df[f'pathogen_coordinates_{chan}'] = df[[f'pathogen_channel_{chan}_centroid_weighted_local-0', f'pathogen_channel_{chan}_centroid_weighted_local-1']].values.tolist()
1215
- df[f'cell_coordinates_{chan}'] = df[[f'cell_channel_{chan}_centroid_weighted_local-0', f'cell_channel_{chan}_centroid_weighted_local-1']].values.tolist()
1216
- df[f'cytoplasm_coordinates_{chan}'] = df[[f'cytoplasm_channel_{chan}_centroid_weighted_local-0', f'cytoplasm_channel_{chan}_centroid_weighted_local-1']].values.tolist()
1217
-
1218
- df[f'pathogen_cell_distance_channel_{chan}'] = df.apply(lambda row: np.sqrt((row[f'pathogen_coordinates_{chan}'][0] - row[f'cell_coordinates_{chan}'][0])**2 +
1219
- (row[f'pathogen_coordinates_{chan}'][1] - row[f'cell_coordinates_{chan}'][1])**2), axis=1)
1220
- df[f'nucleus_cell_distance_channel_{chan}'] = df.apply(lambda row: np.sqrt((row[f'nucleus_coordinates_{chan}'][0] - row[f'cell_coordinates_{chan}'][0])**2 +
1221
- (row[f'nucleus_coordinates_{chan}'][1] - row[f'cell_coordinates_{chan}'][1])**2), axis=1)
1213
+ #for chan in channels:
1214
+ # df[f'nucleus_coordinates_{chan}'] = df[[f'nucleus_channel_{chan}_centroid_weighted_local-0', f'nucleus_channel_{chan}_centroid_weighted_local-1']].values.tolist()
1215
+ # df[f'pathogen_coordinates_{chan}'] = df[[f'pathogen_channel_{chan}_centroid_weighted_local-0', f'pathogen_channel_{chan}_centroid_weighted_local-1']].values.tolist()
1216
+ # df[f'cell_coordinates_{chan}'] = df[[f'cell_channel_{chan}_centroid_weighted_local-0', f'cell_channel_{chan}_centroid_weighted_local-1']].values.tolist()
1217
+ # df[f'cytoplasm_coordinates_{chan}'] = df[[f'cytoplasm_channel_{chan}_centroid_weighted_local-0', f'cytoplasm_channel_{chan}_centroid_weighted_local-1']].values.tolist()
1218
+ #
1219
+ # df[f'pathogen_cell_distance_channel_{chan}'] = df.apply(lambda row: np.sqrt((row[f'pathogen_coordinates_{chan}'][0] - row[f'cell_coordinates_{chan}'][0])**2 +
1220
+ # (row[f'pathogen_coordinates_{chan}'][1] - row[f'cell_coordinates_{chan}'][1])**2), axis=1)
1221
+ # df[f'nucleus_cell_distance_channel_{chan}'] = df.apply(lambda row: np.sqrt((row[f'nucleus_coordinates_{chan}'][0] - row[f'cell_coordinates_{chan}'][0])**2 +
1222
+ # (row[f'nucleus_coordinates_{chan}'][1] - row[f'cell_coordinates_{chan}'][1])**2), axis=1)
1222
1223
  return df
1223
1224
 
1224
1225
  def _group_by_well(df):
@@ -4443,3 +4444,5 @@ def get_cuda_version():
4443
4444
  return output.split('release ')[1].split(',')[0].replace('.', '')
4444
4445
  except (subprocess.CalledProcessError, FileNotFoundError):
4445
4446
  return None
4447
+
4448
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: spacr
3
- Version: 0.2.68
3
+ Version: 0.3.0
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
@@ -47,9 +47,17 @@ Requires-Dist: gpustat<2.0,>=1.1.1
47
47
  Requires-Dist: pyautogui<1.0,>=0.9.54
48
48
  Requires-Dist: tables<4.0,>=3.8.0
49
49
  Requires-Dist: rapidfuzz<4.0,>=3.9
50
- Requires-Dist: importlib-metadata<4.0,>=3.6
51
50
  Requires-Dist: keyring<16.0,>=15.1
52
51
  Requires-Dist: screeninfo<1.0,>=0.8.1
52
+ Requires-Dist: ipykernel
53
+ Requires-Dist: gdown
54
+ Requires-Dist: fastremap>=1.14.1
55
+ Requires-Dist: monai>=1.3.0
56
+ Requires-Dist: pytz>=2023.3.post1
57
+ Requires-Dist: segmentation-models-pytorch>=0.3.3
58
+ Requires-Dist: tifffile>=2023.4.12
59
+ Requires-Dist: tqdm>=4.65.0
60
+ Requires-Dist: wandb>=0.16.2
53
61
  Requires-Dist: huggingface-hub<0.25,>=0.24.0
54
62
  Provides-Extra: dev
55
63
  Requires-Dist: pytest<3.11,>=3.9; extra == "dev"
@@ -1,4 +1,4 @@
1
- spacr/__init__.py,sha256=8NZIlJOY2OzRCFjXvqusFL7BfyEJwNqB2lL8QNB-Kgo,1141
1
+ spacr/__init__.py,sha256=bKVlCCJatRBMqjfxSXds2D_Swjf30T6agvAQ0Usz80o,1176
2
2
  spacr/__main__.py,sha256=bkAJJD2kjIqOP-u1kLvct9jQQCeUXzlEjdgitwi1Lm8,75
3
3
  spacr/app_annotate.py,sha256=nEIL7Fle9CDKGo3sucG_03DgjUQt5W1M1IHBIpVBr08,2171
4
4
  spacr/app_classify.py,sha256=urTP_wlZ58hSyM5a19slYlBxN0PdC-9-ga0hvq8CGWc,165
@@ -8,24 +8,78 @@ spacr/app_measure.py,sha256=_K7APYIeOKpV6e_LcqabBjvEi7mfq9Fch8175x1x0k8,162
8
8
  spacr/app_sequencing.py,sha256=DjG26jy4cpddnV8WOOAIiExtOe9MleVMY4MFa5uTo5w,157
9
9
  spacr/app_umap.py,sha256=ZWAmf_OsIKbYvolYuWPMYhdlVe-n2CADoJulAizMiEo,153
10
10
  spacr/chris.py,sha256=YlBjSgeZaY8HPy6jkrT_ISAnCMAKVfvCxF0I9eAZLFM,2418
11
- spacr/core.py,sha256=IDme9j7eeC_49KGaNk_xPOKtpxdcXKMhYtoo3xhjQMM,146502
11
+ spacr/core.py,sha256=gOr5P58s4ubzDfO0Ar3Zwce0bo-E8qxdN37Ian82RGw,150744
12
12
  spacr/deep_spacr.py,sha256=a2YewgkQvLV-95NYJAutnojvJmX4S8z_wv6Tb-XIgUI,34484
13
13
  spacr/graph_learning.py,sha256=1tR-ZxvXE3dBz1Saw7BeVFcrsUFu9OlUZeZVifih9eo,13070
14
- spacr/gui.py,sha256=RMg0bgbUpO6JwaWuNVMwuVZ18j4WlER3nW0Eaa0YZ30,7883
15
- spacr/gui_core.py,sha256=KAZmk1LHqI2WcB2-QO9De6mHAiDRQMU21nu5948UcF4,38745
16
- spacr/gui_elements.py,sha256=7YLyIeK5JFqzevzEruvfQOrfDGOS9ZgD8ZE-dxywp3g,122706
17
- spacr/gui_utils.py,sha256=pq_bmZ527S1j2s6McvqMhHNI05hJycBhHM8GY_jH9Ng,30597
18
- spacr/io.py,sha256=ZtVNbEom8X8p_KfsuWw0glGwLg6S0CfwwevDPGdfiSc,117342
14
+ spacr/gui.py,sha256=zUkIyAuOwwoMDoExxtI-QHRfOhE1R2rulXJDNxwSLGc,7947
15
+ spacr/gui_core.py,sha256=ZUIqvK7x6NzgrmuTRbvwCTTSpU3yWUaId6MZjXv16us,40128
16
+ spacr/gui_elements.py,sha256=OA514FUVRKAcdu9CFVOt7UEzn1vztakQ-rDyKqV0b9A,129771
17
+ spacr/gui_utils.py,sha256=DCI--DNoYDWY1q0Aohd0XwFqjdPM3K5kCgRKiJGTnfc,30697
18
+ spacr/io.py,sha256=o2Sxan6_HylbYNUjNdgeQ4iEpcXRwlgV1r59J2HG0xQ,117292
19
19
  spacr/logger.py,sha256=7Zqr3TuuOQLWT32gYr2q1qvv7x0a2JhLANmZcnBXAW8,670
20
- spacr/measure.py,sha256=4rmzH_a5Y0s1qALVi6YRut3xpnkJXs5vzeTPCEf3QS8,54871
21
- spacr/plot.py,sha256=xVnbML7WpAEzdJdrLeYRk6aPinZSiV2dLAeu4mh7n0k,73963
22
- spacr/sequencing.py,sha256=y7EB8226B0b0gnGXt6jqBaFVATrM1Y89v3rtHb8XR_k,75746
23
- spacr/settings.py,sha256=tDvTBWANeuI6YC_fH5vK2HOOuRgQXIkzyNKDmt1vL4c,67745
20
+ spacr/measure.py,sha256=ooMOP2OE0BHUNqIkg0ltwV2FiO6hZDIcRC6A0YmGcws,54875
21
+ spacr/mediar.py,sha256=KEkrO0dlAbOr2tN4c8-vDncTy3IWNzUAwWYiPRofFqU,14864
22
+ spacr/plot.py,sha256=9Ty2cMJpICXPCEE4inGTb1FvlUZkVgqB7lqJaggmjZE,73975
23
+ spacr/sequencing.py,sha256=92KmjFa8Ptwmpf-GtyH3-uX6djFOYR5lJjMBHeciqhs,66921
24
+ spacr/settings.py,sha256=PfIPLyMyBAfOodtdgNT8QzbysNDxTnsONXdI-fKtIDQ,68038
24
25
  spacr/sim.py,sha256=FveaVgBi3eypO2oVB5Dx-v0CC1Ny7UPfXkJiiRRodAk,71212
25
26
  spacr/sim_app.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
27
  spacr/timelapse.py,sha256=KMYCgHzf9LTZe-lWl5mvH2EjbKRE6OhpwdY13wEumGc,39504
27
- spacr/utils.py,sha256=R8PA8MyldBKQOvITo9f4oVFcKOMKv5gaD9T86T_LrEA,189120
28
+ spacr/utils.py,sha256=D13hYJsVuq1ZMWYGyvtEskU_W2P8ddsI9zX9pTtMAFA,189159
28
29
  spacr/version.py,sha256=axH5tnGwtgSnJHb5IDhiu4Zjk5GhLyAEDRe-rnaoFOA,409
30
+ spacr/resources/MEDIAR/.git,sha256=nHbNNUgehWnXyS2LbJZitX4kbpd1urzYgE0WZYvdMfc,53
31
+ spacr/resources/MEDIAR/.gitignore,sha256=Ff1q9Nme14JUd-4Q3jZ65aeQ5X4uttptssVDgBVHYo8,152
32
+ spacr/resources/MEDIAR/LICENSE,sha256=yEj_TRDLUfDpHDNM0StALXIt6mLqSgaV2hcCwa6_TcY,1065
33
+ spacr/resources/MEDIAR/README.md,sha256=TlL2XhmmNhYTtaBlMCnlJRW-K7qOVeqH1ABLabZAe2k,11877
34
+ spacr/resources/MEDIAR/SetupDict.py,sha256=oHyOrGgKTRYbTjqlLWv1HXWAQ39urXih9AI56h4vcFk,869
35
+ spacr/resources/MEDIAR/evaluate.py,sha256=7exc1Du1RXGelme7wAodcqPd6VIe_nFdOoPT2w09O-4,2181
36
+ spacr/resources/MEDIAR/generate_mapping.py,sha256=6FqWgAegWExUF2DFc_vOQzH1c7g9-efhNDpq2t7lGh8,3688
37
+ spacr/resources/MEDIAR/main.py,sha256=8KKelA75anJbvpCGXQbAO5OipHE-hx-q04_OB2Z90NQ,3573
38
+ spacr/resources/MEDIAR/predict.py,sha256=V2GUdy3LM595gCoAjBOk22-QitaKRKRqJX3Hgdc4FEU,2141
39
+ spacr/resources/MEDIAR/requirements.txt,sha256=7fapaH6LrDiKsdkjkl8oQ8oR2u49-n-OChMWa5wg7fY,225
40
+ spacr/resources/MEDIAR/config/baseline.json,sha256=moqZ8Bf0rf1hcoJswp9EvE1IrqSfO4lzJGkj3-emIqc,1603
41
+ spacr/resources/MEDIAR/config/mediar_example.json,sha256=B6mFpDgCpOJpN4Foj1hC_X4zCRyWXra3XsZ0DBqvGnQ,2114
42
+ spacr/resources/MEDIAR/config/pred/pred_mediar.json,sha256=oE4YmuPFfH6_rK9PFBRX18aIPalZfni3NYGfRtOhTIU,385
43
+ spacr/resources/MEDIAR/config/step1_pretraining/phase1.json,sha256=UuIkrGMZZmfMYpreh41BH9Yq3fBhBxoWAyeOR53oGsU,1520
44
+ spacr/resources/MEDIAR/config/step1_pretraining/phase2.json,sha256=CIoi54TOI74laouA222-iIBrRGTrZ3pg8HQolpDquxo,1640
45
+ spacr/resources/MEDIAR/config/step2_finetuning/finetuning1.json,sha256=073AeKRJLv-O7gyET0_SAxnFkwZ-Rcc4zNoql3f1p7c,1923
46
+ spacr/resources/MEDIAR/config/step2_finetuning/finetuning2.json,sha256=SfNAH5Kt3Xet23JN0CKp7Lnm8mKNpOYrdmQZ0BBM5Rs,1936
47
+ spacr/resources/MEDIAR/config/step3_prediction/base_prediction.json,sha256=qCinHOIatRvgqhNF-Ucx6YwIj9lRVWj0p_O9z5OY6j8,478
48
+ spacr/resources/MEDIAR/config/step3_prediction/ensemble_tta.json,sha256=7NmBQTgyGBw1XFB4uWEGebj8CAoh1FklJbJPuhQwQQg,803
49
+ spacr/resources/MEDIAR/core/BasePredictor.py,sha256=lvjAnHK7WXoaqnWI-1juf3_XU_v-ePo8Rme6qJc7Uq4,3664
50
+ spacr/resources/MEDIAR/core/BaseTrainer.py,sha256=E-fayADu9A5Vd80NyZY49xFl2lPgLsoh4Nd3HkDjp5U,7428
51
+ spacr/resources/MEDIAR/core/__init__.py,sha256=pR63haYRlkWrc9btVLSLVhk6nc94vmqreAs5H8I9LOw,46
52
+ spacr/resources/MEDIAR/core/utils.py,sha256=h4z0Mdl08p3ftOwfAqtMVJ9-c6qBVna_9w9s0L25YBM,948
53
+ spacr/resources/MEDIAR/core/Baseline/Predictor.py,sha256=mDHSG2jSJyLWr_j2gSzADjfmb0Ol76GI30HfpV0XR3U,1535
54
+ spacr/resources/MEDIAR/core/Baseline/Trainer.py,sha256=OzkFeSF0sRn1Wej253I4h99f7v9wD3tKv88YYXLAtd4,3451
55
+ spacr/resources/MEDIAR/core/Baseline/__init__.py,sha256=WinVVW50c_UhZDcUkX4RESjy8eSQOjMiU-KynfSGP_I,48
56
+ spacr/resources/MEDIAR/core/Baseline/utils.py,sha256=V2e4a00ZdYFlHFaorLTI1CgX8gt_KFSfrpm_XikygiA,2370
57
+ spacr/resources/MEDIAR/core/MEDIAR/EnsemblePredictor.py,sha256=5BSz3mwe9B26aTQiNhqwDI2VxAOxnvNsjAhYlFMuBDw,3416
58
+ spacr/resources/MEDIAR/core/MEDIAR/Predictor.py,sha256=FfA012HXmvrMnYJBsovCdgbrWL5-Ca-PwZN1mIsNfik,6763
59
+ spacr/resources/MEDIAR/core/MEDIAR/Trainer.py,sha256=7OueMwovWxSb8UY033X--KJnk55Mh5EQu6LGdUl8_OU,5745
60
+ spacr/resources/MEDIAR/core/MEDIAR/__init__.py,sha256=yFkZq29jm8Sf-Bf_h1KAiMaUxU47uBeOMU27m92fjh8,81
61
+ spacr/resources/MEDIAR/core/MEDIAR/utils.py,sha256=1rcVONsnnPvIEkPW1mu5mCt1YQJqXPtAyEWtxAQIvpE,14641
62
+ spacr/resources/MEDIAR/image/failure_cases.png,sha256=y9mmqGJ5Q5FNpHCekio_UZdrxGLraRXn2yZLLm__rNI,2390420
63
+ spacr/resources/MEDIAR/image/mediar_framework.png,sha256=wucJ9Qyoi4Yi_A-D0HyCpEw8-bjFHS7AAeyzfQL7Iks,1048242
64
+ spacr/resources/MEDIAR/image/mediar_model.PNG,sha256=JQuxGxfGcBY07-JRBGhtDA0FcKnENV_7HVy3uAq3_rE,348059
65
+ spacr/resources/MEDIAR/image/mediar_results.png,sha256=LffVaF8WQ9yq8hkmGQBvTklzy3KlopsrtZ4NKzB0oLk,3213351
66
+ spacr/resources/MEDIAR/image/examples/img1.tiff,sha256=GNl9ngl5ZVEz0Dvy1RoEQipSCcavAQx_I1LwUOuQM3o,921872
67
+ spacr/resources/MEDIAR/image/examples/img2.tif,sha256=YAk6yYRVOu6Gg8X4BUo_LaSfMZraH-uAN8gF6Cs0ivs,8414906
68
+ spacr/resources/MEDIAR/train_tools/__init__.py,sha256=XXnPlgCbF3GEfnwIbUB2MniUl2Ve6QOf7jhEuiqbiis,71
69
+ spacr/resources/MEDIAR/train_tools/measures.py,sha256=LOJmJzLVO4XsJX4XHuppuXknN5HncarDV5url39GRzA,5770
70
+ spacr/resources/MEDIAR/train_tools/utils.py,sha256=7ISUS0Uw-dU83XD-WFzNTOPBX4SwSoF0iWNGMcGmTZM,1911
71
+ spacr/resources/MEDIAR/train_tools/data_utils/__init__.py,sha256=QVo7-uqgr0vdP4s8nZ47LKDqxabnzbO0MKt8E1sR8as,26
72
+ spacr/resources/MEDIAR/train_tools/data_utils/datasetter.py,sha256=uiPhC46gQMbeYhpTehX4Qm0_dUQJ6NXaVCg3a19HGpA,6323
73
+ spacr/resources/MEDIAR/train_tools/data_utils/transforms.py,sha256=vNZQB_qPh-Jeovb1FhnbCUFl6HoV6px7QHa4ZC8RO-Q,5147
74
+ spacr/resources/MEDIAR/train_tools/data_utils/utils.py,sha256=yJo2BSLr9ARwTkuJwIoSJrZXPE4E3DlPRAT97hQzYwY,2556
75
+ spacr/resources/MEDIAR/train_tools/data_utils/custom/CellAware.py,sha256=bG100wH2okxnnEQh0ZRR3GM8n99azB2z5iu7aINXjm0,2865
76
+ spacr/resources/MEDIAR/train_tools/data_utils/custom/LoadImage.py,sha256=wK69UHjCzq2L2_Ny5m9I5H6DGYRF8yCfmhCA39DOCW4,5431
77
+ spacr/resources/MEDIAR/train_tools/data_utils/custom/NormalizeImage.py,sha256=7DfWVusYRRuEyA8eXujNyGJz0dubx7b7uhgEzzrh3-4,2152
78
+ spacr/resources/MEDIAR/train_tools/data_utils/custom/__init__.py,sha256=SalCNvPyiy0rqLpjdoXPXGoWlKf-8K9vtDQ70HXOXe0,80
79
+ spacr/resources/MEDIAR/train_tools/data_utils/custom/modalities.pkl,sha256=C1D7NkUZ5er7Kdeyhhwjo0IGUvCsVfKPBzcwfaORd8Q,3762
80
+ spacr/resources/MEDIAR/train_tools/models/MEDIARFormer.py,sha256=UN8BYjraTNNdZUAGjl3yF566ERHAHQvj3GAQ6OETUOI,3615
81
+ spacr/resources/MEDIAR/train_tools/models/__init__.py,sha256=CkY6rZxr-c9XxXNpQbYUYvHXDpf9E6rUmY1bQ47aEP8,28
82
+ spacr/resources/MEDIAR_weights/.DS_Store,sha256=1lFlJ5EFymdzGAUAaI30vcaaLHt3F1LwpG7xILf9jsM,6148
29
83
  spacr/resources/font/open_sans/OFL.txt,sha256=bGMoWBRrE2RcdzDiuYiB8A9OVFlJ0sA2imWwce2DAdo,4484
30
84
  "spacr/resources/font/open_sans/OpenSans-Italic-VariableFont_wdth,wght.ttf",sha256=QSoWv9h46CRX_fdlqFM3O2d3-PF3R1srnb4zUezcLm0,580280
31
85
  "spacr/resources/font/open_sans/OpenSans-VariableFont_wdth,wght.ttf",sha256=E3RLvAefD0kuT7OxShXSQrjZYA-qzUI9WM35N_6nzms,529700
@@ -66,6 +120,7 @@ spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-MediumItalic.ttf,sh
66
120
  spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Regular.ttf,sha256=skg4DCl15zL9ZD4MAL9fOt4WjonKYBUOMj46ItSAe5Q,130848
67
121
  spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-SemiBold.ttf,sha256=uCiR97jg6sUHtGKVPNtJEg1zZG5Y9ArQ-raqBGjaeGg,130856
68
122
  spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-SemiBoldItalic.ttf,sha256=a5-0oOIrtJltQRa64uFKCdtcjzPvEJ71f_cYavG2i3E,137132
123
+ spacr/resources/icons/.DS_Store,sha256=1lFlJ5EFymdzGAUAaI30vcaaLHt3F1LwpG7xILf9jsM,6148
69
124
  spacr/resources/icons/abort.png,sha256=avtIRT7aCJsdZ1WnY_rZStm6cCji5bYPLnlptdcTNcM,6583
70
125
  spacr/resources/icons/annotate.png,sha256=GFgh7DiUMwPG_-xE6W1qU8V_qzSwBi1xKenfoaQxeFA,15495
71
126
  spacr/resources/icons/cellpose_all.png,sha256=HVWOIOBF8p3-On-2UahwMyQXp7awsoC5yWExU1ahDag,20271
@@ -81,6 +136,7 @@ spacr/resources/icons/map_barcodes.png,sha256=ED6yCopk3hP7tICSvT8U_qA1bOOb0WHqmx
81
136
  spacr/resources/icons/mask.png,sha256=DcBes-3UJ7XjRfj_P4RttRp680ZKZeH9a-DSk7bIF5U,37658
82
137
  spacr/resources/icons/measure.png,sha256=Gd-dlN-3Z8D_XngJnChNme8D63KEJMFs_cBv7wT2vOY,40938
83
138
  spacr/resources/icons/ml_analyze.png,sha256=Wc9a_LpG2XffiMfXxn0yUmGP40IXzlAV7bHXQf7m_2o,15754
139
+ spacr/resources/icons/plaque.png,sha256=NWt7C8thV0iQ1YuRvW_NfUJSFG6XK_iGpoW0R9Xfsyc,45033
84
140
  spacr/resources/icons/recruitment.png,sha256=dlVh2ebV_f3rhRFBiL0hDtlUeBSIeg0d4vny8A8IAdo,25067
85
141
  spacr/resources/icons/regression.png,sha256=WIrKY4fSojBOCDkHno4Qb-KH7jcHh6G67dOKzczaU1I,42267
86
142
  spacr/resources/icons/run.png,sha256=ICzyAvsRBCXNAbdn5N3PxCxxVyqxkfC4zOI5Zc8vbxQ,8974
@@ -89,12 +145,15 @@ spacr/resources/icons/settings.png,sha256=y5Ow5BxJDDsrqom0VNbOMDGGUs6odxbSMDy6y4
89
145
  spacr/resources/icons/spacr_logo_rotation.gif,sha256=bgIx1Hx41Ob90SY-q3PBa3CSxtVRnF9XX-ApUSr0wvY,1502560
90
146
  spacr/resources/icons/train_cellpose.png,sha256=_PZ_R_B6azuUACmscScAkugmgLZvCPKQFGIAsszqNLk,3858
91
147
  spacr/resources/icons/umap.png,sha256=dOLF3DeLYy9k0nkUybiZMe1wzHQwLJFRmgccppw-8bI,27457
148
+ spacr/resources/images/plate1_E01_T0001F001L01A01Z01C02.tif,sha256=Tl0ZUfZ_AYAbu0up_nO0tPRtF1BxXhWQ3T3pURBCCRo,7958528
149
+ spacr/resources/images/plate1_E01_T0001F001L01A02Z01C01.tif,sha256=m8N-V71rA1TT4dFlENNg8s0Q0YEXXs8slIn7yObmZJQ,7958528
150
+ spacr/resources/images/plate1_E01_T0001F001L01A03Z01C03.tif,sha256=Pbhk7xn-KUP6RSIhJsxQcrHFImBm3GEpLkzx7WOc-5M,7958528
92
151
  spacr/resources/models/cp/toxo_plaque_cyto_e25000_X1120_Y1120.CP_model,sha256=z8BbHWZPRnE9D_BHO0fBREE85c1vkltDs-incs2ytXQ,26566572
93
152
  spacr/resources/models/cp/toxo_plaque_cyto_e25000_X1120_Y1120.CP_model_settings.csv,sha256=fBAGuL_B8ERVdVizO3BHozTDSbZUh1yFzsYK3wkQN68,420
94
153
  spacr/resources/models/cp/toxo_pv_lumen.CP_model,sha256=2y_CindYhmTvVwBH39SNILF3rI3x9SsRn6qrMxHy3l0,26562451
95
- spacr-0.2.68.dist-info/LICENSE,sha256=SR-2MeGc6SCM1UORJYyarSWY_A-JaOMFDj7ReSs9tRM,1083
96
- spacr-0.2.68.dist-info/METADATA,sha256=4LBYVSDjugrE-XkXdwP-A9U4QH7QOXMKcBhiv1QGnWM,5408
97
- spacr-0.2.68.dist-info/WHEEL,sha256=HiCZjzuy6Dw0hdX5R3LCFPDmFS4BWl8H-8W39XfmgX4,91
98
- spacr-0.2.68.dist-info/entry_points.txt,sha256=BMC0ql9aNNpv8lUZ8sgDLQMsqaVnX5L535gEhKUP5ho,296
99
- spacr-0.2.68.dist-info/top_level.txt,sha256=GJPU8FgwRXGzKeut6JopsSRY2R8T3i9lDgya42tLInY,6
100
- spacr-0.2.68.dist-info/RECORD,,
154
+ spacr-0.3.0.dist-info/LICENSE,sha256=SR-2MeGc6SCM1UORJYyarSWY_A-JaOMFDj7ReSs9tRM,1083
155
+ spacr-0.3.0.dist-info/METADATA,sha256=gPhwJrEAVxewekQKy4X9qiLlDr3Q4JvwXnq941vcpew,5646
156
+ spacr-0.3.0.dist-info/WHEEL,sha256=HiCZjzuy6Dw0hdX5R3LCFPDmFS4BWl8H-8W39XfmgX4,91
157
+ spacr-0.3.0.dist-info/entry_points.txt,sha256=BMC0ql9aNNpv8lUZ8sgDLQMsqaVnX5L535gEhKUP5ho,296
158
+ spacr-0.3.0.dist-info/top_level.txt,sha256=GJPU8FgwRXGzKeut6JopsSRY2R8T3i9lDgya42tLInY,6
159
+ spacr-0.3.0.dist-info/RECORD,,
File without changes