spacr 0.1.0__py3-none-any.whl → 0.1.6__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_wrappers.py ADDED
@@ -0,0 +1,137 @@
1
+ import traceback, matplotlib, spacr
2
+ import matplotlib.pyplot as plt
3
+ matplotlib.use('Agg')
4
+
5
+ fig_queue = None
6
+
7
+ def my_show():
8
+ """
9
+ Replacement for plt.show() that queues figures instead of displaying them.
10
+ """
11
+ fig = plt.gcf()
12
+ fig_queue.put(fig)
13
+ plt.close(fig)
14
+
15
+ def measure_crop_wrapper(settings, q, fig_queue):
16
+ """
17
+ Wraps the measure_crop function to integrate with GUI processes.
18
+
19
+ Parameters:
20
+ - settings: dict, The settings for the measure_crop function.
21
+ - q: multiprocessing.Queue, Queue for logging messages to the GUI.
22
+ - fig_queue: multiprocessing.Queue, Queue for sending figures to the GUI.
23
+ """
24
+
25
+ # Temporarily override plt.show
26
+ original_show = plt.show
27
+ plt.show = my_show
28
+
29
+ try:
30
+ print('start')
31
+ spacr.measure.measure_crop(settings=settings)
32
+ except Exception as e:
33
+ errorMessage = f"Error during processing: {e}"
34
+ q.put(errorMessage)
35
+ traceback.print_exc()
36
+ finally:
37
+ plt.show = original_show
38
+
39
+ def preprocess_generate_masks_wrapper(settings, q, fig_queue):
40
+ """
41
+ Wraps the measure_crop function to integrate with GUI processes.
42
+
43
+ Parameters:
44
+ - settings: dict, The settings for the measure_crop function.
45
+ - q: multiprocessing.Queue, Queue for logging messages to the GUI.
46
+ - fig_queue: multiprocessing.Queue, Queue for sending figures to the GUI.
47
+ """
48
+
49
+ # Temporarily override plt.show
50
+ original_show = plt.show
51
+ plt.show = my_show
52
+
53
+ try:
54
+ spacr.core.preprocess_generate_masks(src=settings['src'], settings=settings)
55
+ except Exception as e:
56
+ errorMessage = f"Error during processing: {e}"
57
+ q.put(errorMessage)
58
+ traceback.print_exc()
59
+ finally:
60
+ plt.show = original_show
61
+
62
+ def sequencing_wrapper(settings, q, fig_queue):
63
+
64
+ # Temporarily override plt.show
65
+ original_show = plt.show
66
+ plt.show = my_show
67
+
68
+ try:
69
+ spacr.sequencing.analyze_reads(settings=settings)
70
+ except Exception as e:
71
+ errorMessage = f"Error during processing: {e}"
72
+ q.put(errorMessage)
73
+ traceback.print_exc()
74
+ finally:
75
+ plt.show = original_show
76
+
77
+ def umap_wrapper(settings, q, fig_queue):
78
+
79
+ # Temporarily override plt.show
80
+ original_show = plt.show
81
+ plt.show = my_show
82
+
83
+ try:
84
+ spacr.core.generate_image_umap(settings=settings)
85
+ except Exception as e:
86
+ errorMessage = f"Error during processing: {e}"
87
+ q.put(errorMessage)
88
+ traceback.print_exc()
89
+ finally:
90
+ plt.show = original_show
91
+
92
+ def train_test_model_wrapper(settings, q, fig_queue):
93
+ """
94
+ Wraps the measure_crop function to integrate with GUI processes.
95
+
96
+ Parameters:
97
+ - settings: dict, The settings for the measure_crop function.
98
+ - q: multiprocessing.Queue, Queue for logging messages to the GUI.
99
+ - fig_queue: multiprocessing.Queue, Queue for sending figures to the GUI.
100
+ """
101
+
102
+ # Temporarily override plt.show
103
+ original_show = plt.show
104
+ plt.show = my_show
105
+
106
+ try:
107
+ spacr.core.train_test_model(settings['src'], settings=settings)
108
+ except Exception as e:
109
+ errorMessage = f"Error during processing: {e}"
110
+ q.put(errorMessage) # Send the error message to the GUI via the queue
111
+ traceback.print_exc()
112
+ finally:
113
+ plt.show = original_show # Restore the original plt.show function
114
+
115
+
116
+ def run_multiple_simulations_wrapper(settings, q, fig_queue):
117
+ """
118
+ Wraps the run_multiple_simulations function to integrate with GUI processes.
119
+
120
+ Parameters:
121
+ - settings: dict, The settings for the run_multiple_simulations function.
122
+ - q: multiprocessing.Queue, Queue for logging messages to the GUI.
123
+ - fig_queue: multiprocessing.Queue, Queue for sending figures to the GUI.
124
+ """
125
+
126
+ # Temporarily override plt.show
127
+ original_show = plt.show
128
+ plt.show = my_show
129
+
130
+ try:
131
+ spacr.sim.run_multiple_simulations(settings=settings)
132
+ except Exception as e:
133
+ errorMessage = f"Error during processing: {e}"
134
+ q.put(errorMessage) # Send the error message to the GUI via the queue
135
+ traceback.print_exc()
136
+ finally:
137
+ plt.show = original_show # Restore the original plt.show function