microeye 2.3.2__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 (190) hide show
  1. microEye/__init__.py +47 -0
  2. microEye/_version.py +2 -0
  3. microEye/analysis/__init__.py +1 -0
  4. microEye/analysis/checklist_dialog.py +143 -0
  5. microEye/analysis/cmosMaps.py +228 -0
  6. microEye/analysis/filters/__init__.py +9 -0
  7. microEye/analysis/filters/base.py +21 -0
  8. microEye/analysis/filters/spatial.py +338 -0
  9. microEye/analysis/filters/temporal.py +76 -0
  10. microEye/analysis/fitting/__init__.py +0 -0
  11. microEye/analysis/fitting/fit.py +680 -0
  12. microEye/analysis/fitting/nena.py +375 -0
  13. microEye/analysis/fitting/phasor_fit.py +90 -0
  14. microEye/analysis/fitting/processing.py +317 -0
  15. microEye/analysis/fitting/psf/__init__.py +6 -0
  16. microEye/analysis/fitting/psf/extract.py +1129 -0
  17. microEye/analysis/fitting/psf/rubost_mean.py +150 -0
  18. microEye/analysis/fitting/psf/spline.py +167 -0
  19. microEye/analysis/fitting/psf/stats/__init__.py +12 -0
  20. microEye/analysis/fitting/psf/stats/core.py +295 -0
  21. microEye/analysis/fitting/psf/stats/curve_fit.py +708 -0
  22. microEye/analysis/fitting/psf/stats/io.py +104 -0
  23. microEye/analysis/fitting/psf/stats/slope_fit.py +171 -0
  24. microEye/analysis/fitting/psf/temp.py +147 -0
  25. microEye/analysis/fitting/psf/test.py +47 -0
  26. microEye/analysis/fitting/pyfit3Dcspline/CPU/CPUfunctions.py +657 -0
  27. microEye/analysis/fitting/pyfit3Dcspline/CPU/CPUmleFit_LM.py +1336 -0
  28. microEye/analysis/fitting/pyfit3Dcspline/CPU/CPUsplineLib.py +270 -0
  29. microEye/analysis/fitting/pyfit3Dcspline/CPU/__init__.py +1 -0
  30. microEye/analysis/fitting/pyfit3Dcspline/GPU/GPUfunctions.py +609 -0
  31. microEye/analysis/fitting/pyfit3Dcspline/GPU/GPUmleFit_LM_EMCCD.py +1396 -0
  32. microEye/analysis/fitting/pyfit3Dcspline/GPU/GPUmleFit_LM_sCMOS.py +1426 -0
  33. microEye/analysis/fitting/pyfit3Dcspline/GPU/GPUsplineLib.py +231 -0
  34. microEye/analysis/fitting/pyfit3Dcspline/GPU/__init__.py +2 -0
  35. microEye/analysis/fitting/pyfit3Dcspline/__init__.py +10 -0
  36. microEye/analysis/fitting/pyfit3Dcspline/constants.py +27 -0
  37. microEye/analysis/fitting/pyfit3Dcspline/mainfunctions.py +903 -0
  38. microEye/analysis/fitting/results.py +917 -0
  39. microEye/analysis/fitting/results_stats.py +251 -0
  40. microEye/analysis/fitting/tardis.py +209 -0
  41. microEye/analysis/multi_viewer.py +568 -0
  42. microEye/analysis/processing/__init__.py +1 -0
  43. microEye/analysis/processing/frc.py +120 -0
  44. microEye/analysis/rendering/__init__.py +3 -0
  45. microEye/analysis/rendering/base.py +452 -0
  46. microEye/analysis/rendering/cloud.py +215 -0
  47. microEye/analysis/rendering/core.py +47 -0
  48. microEye/analysis/rendering/volumetric.py +198 -0
  49. microEye/analysis/tools/__init__.py +0 -0
  50. microEye/analysis/tools/kymograms.py +1079 -0
  51. microEye/analysis/tools/roi_selectors.py +556 -0
  52. microEye/analysis/utils/__init__.py +3 -0
  53. microEye/analysis/utils/coordinates.py +18 -0
  54. microEye/analysis/utils/images.py +68 -0
  55. microEye/analysis/utils/windows.py +19 -0
  56. microEye/analysis/viewer/__init__.py +3 -0
  57. microEye/analysis/viewer/image_options_widget.py +615 -0
  58. microEye/analysis/viewer/images.py +1225 -0
  59. microEye/analysis/viewer/layers_widget.py +415 -0
  60. microEye/analysis/viewer/localizations.py +1304 -0
  61. microEye/analysis/viewer/psf.py +1003 -0
  62. microEye/analysis/viewer/volume.py +456 -0
  63. microEye/hardware/__init__.py +3 -0
  64. microEye/hardware/cams/__init__.py +29 -0
  65. microEye/hardware/cams/camera_calibration.py +99 -0
  66. microEye/hardware/cams/camera_list.py +528 -0
  67. microEye/hardware/cams/camera_options.py +694 -0
  68. microEye/hardware/cams/camera_panel.py +941 -0
  69. microEye/hardware/cams/dummy/__init__.py +1 -0
  70. microEye/hardware/cams/dummy/dummy_panel.py +759 -0
  71. microEye/hardware/cams/jobs.py +497 -0
  72. microEye/hardware/cams/line_profiler.py +99 -0
  73. microEye/hardware/cams/linescan/IR_Cam.py +474 -0
  74. microEye/hardware/cams/linescan/__init__.py +1 -0
  75. microEye/hardware/cams/micam.py +524 -0
  76. microEye/hardware/cams/pco/__init__.py +58 -0
  77. microEye/hardware/cams/pco/enums.py +382 -0
  78. microEye/hardware/cams/pco/pco_cam.py +761 -0
  79. microEye/hardware/cams/pco/pco_panel.py +477 -0
  80. microEye/hardware/cams/shortcuts.py +312 -0
  81. microEye/hardware/cams/thorlabs/__init__.py +1 -0
  82. microEye/hardware/cams/thorlabs/thorlabs.py +1508 -0
  83. microEye/hardware/cams/thorlabs/thorlabs_panel.py +850 -0
  84. microEye/hardware/cams/ueye/__init__.py +1 -0
  85. microEye/hardware/cams/ueye/ueye_camera.py +1023 -0
  86. microEye/hardware/cams/ueye/ueye_panel.py +861 -0
  87. microEye/hardware/cams/vimba/__init__.py +1 -0
  88. microEye/hardware/cams/vimba/vimba_cam.py +1000 -0
  89. microEye/hardware/cams/vimba/vimba_panel.py +813 -0
  90. microEye/hardware/device.py +60 -0
  91. microEye/hardware/lasers/__init__.py +13 -0
  92. microEye/hardware/lasers/io_matchbox.py +791 -0
  93. microEye/hardware/lasers/io_params.py +85 -0
  94. microEye/hardware/lasers/io_single_laser.py +742 -0
  95. microEye/hardware/lasers/laser_relay.py +594 -0
  96. microEye/hardware/mieye/__init__.py +1 -0
  97. microEye/hardware/mieye/acquisition_manager.py +467 -0
  98. microEye/hardware/mieye/devices_manager.py +533 -0
  99. microEye/hardware/mieye/miEye.py +659 -0
  100. microEye/hardware/misc/__init__.py +0 -0
  101. microEye/hardware/misc/acquisition_view.py +71 -0
  102. microEye/hardware/misc/reglo.py +761 -0
  103. microEye/hardware/misc/temp.py +188 -0
  104. microEye/hardware/port_config.py +59 -0
  105. microEye/hardware/protocols/__init__.py +2 -0
  106. microEye/hardware/protocols/actions.py +402 -0
  107. microEye/hardware/protocols/actions_items.py +703 -0
  108. microEye/hardware/protocols/designer.py +244 -0
  109. microEye/hardware/protocols/scene_manager.py +191 -0
  110. microEye/hardware/protocols/serialization.py +97 -0
  111. microEye/hardware/pycromanager/__init__.py +16 -0
  112. microEye/hardware/pycromanager/core.py +1433 -0
  113. microEye/hardware/pycromanager/devices.py +461 -0
  114. microEye/hardware/pycromanager/enums.py +107 -0
  115. microEye/hardware/pycromanager/headless.py +153 -0
  116. microEye/hardware/pycromanager/utils.py +34 -0
  117. microEye/hardware/pycromanager/widgets/__init__.py +5 -0
  118. microEye/hardware/pycromanager/widgets/bridges.py +407 -0
  119. microEye/hardware/pycromanager/widgets/headless_manager.py +258 -0
  120. microEye/hardware/pycromanager/widgets/headless_options.py +224 -0
  121. microEye/hardware/pycromanager/widgets/pycro_panel.py +455 -0
  122. microEye/hardware/stages/__init__.py +18 -0
  123. microEye/hardware/stages/elliptec/__init__.py +5 -0
  124. microEye/hardware/stages/elliptec/baseDevice.py +314 -0
  125. microEye/hardware/stages/elliptec/device.py +384 -0
  126. microEye/hardware/stages/elliptec/deviceID.py +212 -0
  127. microEye/hardware/stages/elliptec/devicePort.py +379 -0
  128. microEye/hardware/stages/elliptec/deviceStatus.py +65 -0
  129. microEye/hardware/stages/elliptec/devicesView.py +706 -0
  130. microEye/hardware/stages/elliptec/ellDevices.py +134 -0
  131. microEye/hardware/stages/elliptec/messageUpdater.py +34 -0
  132. microEye/hardware/stages/elliptec/motorInfo.py +153 -0
  133. microEye/hardware/stages/elliptec/stage.py +62 -0
  134. microEye/hardware/stages/elliptec/test.py +139 -0
  135. microEye/hardware/stages/kinesis/__init__.py +1 -0
  136. microEye/hardware/stages/kinesis/kdc101/__init__.py +1 -0
  137. microEye/hardware/stages/kinesis/kdc101/enums.py +1002 -0
  138. microEye/hardware/stages/kinesis/kdc101/factory.py +171 -0
  139. microEye/hardware/stages/kinesis/kdc101/kdc101.py +718 -0
  140. microEye/hardware/stages/kinesis/kinesis.py +776 -0
  141. microEye/hardware/stages/piezo_concept.py +607 -0
  142. microEye/hardware/stages/stabilizer.py +785 -0
  143. microEye/hardware/stages/stage.py +89 -0
  144. microEye/hardware/widgets/__init__.py +10 -0
  145. microEye/hardware/widgets/controller.py +246 -0
  146. microEye/hardware/widgets/devices.py +133 -0
  147. microEye/hardware/widgets/focusWidget.py +264 -0
  148. microEye/hardware/widgets/qlist_slider.py +113 -0
  149. microEye/hardware/widgets/scan_acquisition.py +424 -0
  150. microEye/icons/1024.png +0 -0
  151. microEye/icons/128.png +0 -0
  152. microEye/icons/16.png +0 -0
  153. microEye/icons/24.png +0 -0
  154. microEye/icons/256.png +0 -0
  155. microEye/icons/32.png +0 -0
  156. microEye/icons/48.png +0 -0
  157. microEye/icons/512.png +0 -0
  158. microEye/icons/64.png +0 -0
  159. microEye/icons/__init__.py +0 -0
  160. microEye/icons/close.svg +88 -0
  161. microEye/icons/mieye.png +0 -0
  162. microEye/icons/min.svg +83 -0
  163. microEye/icons/viewer.png +0 -0
  164. microEye/launcher.py +42 -0
  165. microEye/qt.py +181 -0
  166. microEye/utils/__init__.py +2 -0
  167. microEye/utils/enum_encoder.py +10 -0
  168. microEye/utils/expandable_groupbox.py +93 -0
  169. microEye/utils/gui_helper.py +457 -0
  170. microEye/utils/hid/__init__.py +8 -0
  171. microEye/utils/hid/controller.py +153 -0
  172. microEye/utils/hid/device.py +63 -0
  173. microEye/utils/hid/enums.py +140 -0
  174. microEye/utils/hid/utils.py +58 -0
  175. microEye/utils/labelled_slider.py +134 -0
  176. microEye/utils/metadata.py +599 -0
  177. microEye/utils/metadata_tree.py +718 -0
  178. microEye/utils/micro_launcher.py +245 -0
  179. microEye/utils/parameter_tree.py +325 -0
  180. microEye/utils/pyscripting.py +444 -0
  181. microEye/utils/retry_exec.py +35 -0
  182. microEye/utils/start_gui.py +112 -0
  183. microEye/utils/thread_worker.py +115 -0
  184. microEye/utils/uImage.py +1512 -0
  185. microeye-2.3.2.dist-info/METADATA +401 -0
  186. microeye-2.3.2.dist-info/RECORD +190 -0
  187. microeye-2.3.2.dist-info/WHEEL +5 -0
  188. microeye-2.3.2.dist-info/entry_points.txt +2 -0
  189. microeye-2.3.2.dist-info/licenses/LICENSE +674 -0
  190. microeye-2.3.2.dist-info/top_level.txt +1 -0
@@ -0,0 +1,270 @@
1
+ import math
2
+
3
+ import numba as nb
4
+ import numpy as np
5
+
6
+ from microEye.analysis.fitting.pyfit3Dcspline.CPU.CPUfunctions import *
7
+
8
+
9
+ @nb.njit(cache=True)
10
+ def kernel_computeDelta3D(
11
+ x_delta, y_delta, z_delta, delta_f, delta_dxf, delta_dyf, delta_dzf
12
+ ):
13
+ '''
14
+ This function for calculation of the commonterm for
15
+ Cspline is adpopted from:
16
+ "Analyzing Single Molecule Localization Microscopy
17
+ Data Using Cubic Splines", Hazen Babcok, Xiaowei Zhuang,
18
+ Scientific Report, 1, 552 , 2017.
19
+
20
+ Parameters
21
+ ----------
22
+ x_delta : float
23
+ _description_
24
+ y_delta : float
25
+ _description_
26
+ z_delta : float
27
+ _description_
28
+ delta_f : float
29
+ _description_
30
+ delta_dxf : float[]
31
+ _description_
32
+ delta_dyf : float[]
33
+ _description_
34
+ delta_dzf : float[]
35
+ _description_
36
+
37
+ Returns
38
+ -------
39
+ tuple[...]
40
+ delta_dxf, delta_dyf, delta_dzf
41
+ '''
42
+
43
+ # int i,j,k;
44
+ # float cx,cy,cz;
45
+
46
+ cz = 1.0
47
+ for i in range(4):
48
+ cy = 1.0
49
+ for j in range(4):
50
+ cx = 1.0
51
+ for k in range(4):
52
+ delta_f[i * 16 + j * 4 + k] = cz * cy * cx
53
+ if k < 3:
54
+ delta_dxf[i * 16 + j * 4 + k + 1] = (float(k) + 1) * cz * cy * cx
55
+
56
+ if j < 3:
57
+ delta_dyf[i * 16 + (j + 1) * 4 + k] = (float(j) + 1) * cz * cy * cx
58
+
59
+ if i < 3:
60
+ delta_dzf[(i + 1) * 16 + j * 4 + k] = (float(i) + 1) * cz * cy * cx
61
+
62
+ cx = cx * x_delta
63
+ cy = cy * y_delta
64
+ cz = cz * z_delta
65
+
66
+ return delta_f, delta_dxf, delta_dyf, delta_dzf
67
+
68
+
69
+ @nb.njit(cache=True)
70
+ def kernel_cholesky(A, n, L, U) -> int:
71
+ '''
72
+ Parameters
73
+ ----------
74
+ A : float[]
75
+ _description_
76
+ n : int
77
+ _description_
78
+ L : float[]
79
+ _description_
80
+ U : float[]
81
+ _description_
82
+
83
+ Returns
84
+ -------
85
+ int
86
+ _description_
87
+ '''
88
+ info = 0
89
+ for i in range(n):
90
+ for j in range(i + 1):
91
+ s = 0.0
92
+ for k in range(j):
93
+ s += L[i * n + k] * L[j * n + k]
94
+
95
+ if i == j:
96
+ if A[i * n + i] - s >= 1e-15: # Improved numerical stability
97
+ L[i * n + j] = math.sqrt(A[i * n + i] - s)
98
+ U[j * n + i] = L[i * n + j] # U is the transpose of L
99
+ else:
100
+ info = 1
101
+ return info
102
+ else:
103
+ if L[j * n + j] > 1e-15: # Avoid division by very small numbers
104
+ L[i * n + j] = 1.0 / L[j * n + j] * (A[i * n + j] - s)
105
+ U[j * n + i] = L[i * n + j] # U is the transpose of L
106
+ else:
107
+ info = 1
108
+ return info
109
+ return info
110
+
111
+
112
+ @nb.njit(cache=True)
113
+ def kernel_luEvaluate(L, U, b, n, x):
114
+ '''_summary_
115
+
116
+ Parameters
117
+ ----------
118
+ L : float
119
+ _description_
120
+ U : float
121
+ _description_
122
+ b : float
123
+ _description_
124
+ n : int
125
+ _description_
126
+ x : float
127
+ _description_
128
+
129
+ Returns
130
+ -------
131
+ float[...]
132
+ x
133
+ '''
134
+ # Ax = b -> LUx = b. Then y is defined to be Ux
135
+ # for sigmaxy, we have 6 parameters
136
+ y = np.zeros(6, dtype=np.float64)
137
+
138
+ # Forward solve Ly = b
139
+ for i in range(n):
140
+ y[i] = b[i]
141
+ for j in range(i):
142
+ y[i] -= L[j * n + i] * y[j]
143
+ y[i] /= L[i * n + i]
144
+
145
+ # Backward solve Ux = y
146
+ for i in range(n - 1, -1, -1):
147
+ x[i] = y[i]
148
+ for j in range(i + 1, n, 1):
149
+ x[i] -= U[j * n + i] * x[j]
150
+ x[i] /= U[i * n + i]
151
+
152
+ return x
153
+
154
+
155
+ @nb.njit(
156
+ nb.types.Tuple((nb.float32[:], nb.float32))(
157
+ nb.int32,
158
+ nb.int32,
159
+ nb.int32,
160
+ nb.int32,
161
+ nb.int32,
162
+ nb.int32,
163
+ nb.float32[:],
164
+ nb.float32[:],
165
+ nb.float32[:],
166
+ nb.float32[:],
167
+ nb.float32[:],
168
+ nb.float32[:],
169
+ nb.float32[:],
170
+ ),
171
+ cache=True,
172
+ )
173
+ def kernel_DerivativeSpline(
174
+ xc,
175
+ yc,
176
+ zc,
177
+ xsize,
178
+ ysize,
179
+ zsize,
180
+ delta_f,
181
+ delta_dxf,
182
+ delta_dyf,
183
+ delta_dzf,
184
+ coeff,
185
+ theta,
186
+ dudt,
187
+ ):
188
+ '''
189
+ Parameters
190
+ ----------
191
+ xc : int
192
+ _description_
193
+ yc : int
194
+ _description_
195
+ zc : int
196
+ _description_
197
+ xsize : int
198
+ _description_
199
+ ysize : int
200
+ _description_
201
+ zsize : int
202
+ _description_
203
+ delta_f : float
204
+ _description_
205
+ delta_dxf : float
206
+ _description_
207
+ delta_dyf : float
208
+ _description_
209
+ delta_dzf : float
210
+ _description_
211
+ coeff : float
212
+ _description_
213
+ theta : float
214
+ _description_
215
+ dudt : float
216
+ _description_
217
+
218
+ Returns
219
+ -------
220
+ tuple[...]
221
+ dudt, model
222
+ '''
223
+ temp = 0
224
+ # float dudt_temp[NV_PSP] = {0};//,temp;
225
+ dudt = np.zeros(NV_PSP, dtype=np.float32)
226
+
227
+ xc = max(xc, 0)
228
+ xc = min(xc, xsize - 1)
229
+
230
+ yc = max(yc, 0)
231
+ yc = min(yc, ysize - 1)
232
+
233
+ zc = max(zc, 0)
234
+ zc = min(zc, zsize - 1)
235
+
236
+ for i in range(64):
237
+ temp += np.float32(
238
+ delta_f[i]
239
+ * coeff[
240
+ i * (xsize * ysize * zsize) + zc * (xsize * ysize) + yc * xsize + xc
241
+ ]
242
+ )
243
+ dudt[0] += (
244
+ delta_dxf[i]
245
+ * coeff[
246
+ i * (xsize * ysize * zsize) + zc * (xsize * ysize) + yc * xsize + xc
247
+ ]
248
+ )
249
+ dudt[1] += (
250
+ delta_dyf[i]
251
+ * coeff[
252
+ i * (xsize * ysize * zsize) + zc * (xsize * ysize) + yc * xsize + xc
253
+ ]
254
+ )
255
+ dudt[4] += (
256
+ delta_dzf[i]
257
+ * coeff[
258
+ i * (xsize * ysize * zsize) + zc * (xsize * ysize) + yc * xsize + xc
259
+ ]
260
+ )
261
+
262
+ dudt[0] *= -1.0 * theta[2]
263
+ dudt[1] *= -1.0 * theta[2]
264
+ dudt[4] *= theta[2]
265
+ dudt[2] = temp
266
+ dudt[3] = 1.0
267
+
268
+ model = theta[3] + theta[2] * max(np.float32(1e-9), temp)
269
+
270
+ return dudt, model
@@ -0,0 +1 @@
1
+ from microEye.analysis.fitting.pyfit3Dcspline.CPU.CPUmleFit_LM import *