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,401 @@
1
+ Metadata-Version: 2.4
2
+ Name: microeye
3
+ Version: 2.3.2
4
+ Summary: A python toolkit for fluorescence microscopy that features hardware control, data analysis and vizualization for super-resolution single-molecule localization microscopy and single-partical tracking.
5
+ Home-page: https://github.com/samhitech/microEye
6
+ Author: Mohammad Nour Alsamsam
7
+ Author-email: nour.alsamsam@gmail.com
8
+ Project-URL: miEye Paper, https://doi.org/10.1016/j.ohx.2022.e00368
9
+ Project-URL: miEye OSF, http://doi.org/10.17605/osf.io/j2fqy
10
+ Classifier: Programming Language :: Python :: 3.9
11
+ Classifier: Programming Language :: Python :: 3.10
12
+ Classifier: Programming Language :: Python :: 3.11
13
+ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
14
+ Classifier: Operating System :: OS Independent
15
+ Requires-Python: >=3.9.4, <3.12
16
+ Description-Content-Type: text/markdown
17
+ License-File: LICENSE
18
+ Requires-Dist: autopep8==2.2.0
19
+ Requires-Dist: dask==2024.5.2
20
+ Requires-Dist: h5py==3.11.0
21
+ Requires-Dist: hidapi==0.14.0
22
+ Requires-Dist: matplotlib==3.9.2
23
+ Requires-Dist: mmpycore==0.3.16
24
+ Requires-Dist: numba==0.60.0
25
+ Requires-Dist: numpy==1.26.4
26
+ Requires-Dist: ome_types==0.5.2
27
+ Requires-Dist: opencv_python==4.9.0.80
28
+ Requires-Dist: pandas==2.2.3
29
+ Requires-Dist: pco==2.3.0
30
+ Requires-Dist: pycromanager==1.0.2
31
+ Requires-Dist: pyfiglet==1.0.2
32
+ Requires-Dist: pyflakes==3.2.0
33
+ Requires-Dist: pyjokes==0.6.0
34
+ Requires-Dist: PyOpenGL==3.1.7
35
+ Requires-Dist: pyqtdarktheme==2.1.0
36
+ Requires-Dist: pyqtgraph==0.13.7
37
+ Requires-Dist: pyserial==3.5
38
+ Requires-Dist: PySide6==6.7.2
39
+ Requires-Dist: PySide6_Addons==6.7.2
40
+ Requires-Dist: PySide6_Essentials==6.7.2
41
+ Requires-Dist: pyueye==4.96.952
42
+ Requires-Dist: QDarkStyle==3.2.3
43
+ Requires-Dist: QScintilla==2.14.1
44
+ Requires-Dist: scikit-image==0.22.0
45
+ Requires-Dist: scikit_learn==1.5.0
46
+ Requires-Dist: scipy==1.14.1
47
+ Requires-Dist: setuptools==69.0.2
48
+ Requires-Dist: tables==3.9.1
49
+ Requires-Dist: tabulate==0.9.0
50
+ Requires-Dist: tqdm==4.66.4
51
+ Requires-Dist: tifffile==2024.8.10
52
+ Requires-Dist: vispy==0.14.2
53
+ Requires-Dist: zarr==2.18.2
54
+ Dynamic: author
55
+ Dynamic: author-email
56
+ Dynamic: classifier
57
+ Dynamic: description
58
+ Dynamic: description-content-type
59
+ Dynamic: home-page
60
+ Dynamic: license-file
61
+ Dynamic: project-url
62
+ Dynamic: requires-dist
63
+ Dynamic: requires-python
64
+ Dynamic: summary
65
+
66
+ # The microEye
67
+
68
+ ![microEye](https://github.com/samhitech/microEye/assets/89871015/37ca0859-0b4b-402d-8652-9a01d0bf0f29)
69
+
70
+ The **`microEye`** is a Python toolkit for fluorescence microscopy that supports super-resolution single-molecule localization microscopy and single-particle tracking. It features hardware control, data analysis, and visualization.
71
+
72
+ This toolkit is compatible with the [hardware](#hardware) used in our microscope. For further details, refer to the [miEye microscope paper](https://doi.org/10.1016/j.ohx.2022.e00368) and [OSF project](http://doi.org/10.17605/osf.io/j2fqy).
73
+
74
+ ![Package Health](https://snyk.io/advisor/python/microEye/badge.svg)
75
+ ![Python Version](https://img.shields.io/badge/Python->=3.9_|_<3.12-blue)
76
+ ![Package Version](https://img.shields.io/pypi/v/microEye.svg)
77
+ ![Package Version](https://img.shields.io/badge/GUI_Platform-PySide6|PyQt6|PyQt5-navy)
78
+ [![DOI](https://img.shields.io/badge/HardwareX-10.1016/j.ohx.2022.e00368-orange)](https://doi.org/10.1016/j.ohx.2022.e00368)
79
+ ![Package Version](https://img.shields.io/badge/Windows-Tested-cyan)
80
+ ![Package Version](https://img.shields.io/badge/MacOS-Errors-red)
81
+ ![Package Version](https://img.shields.io/badge/Linux-NotTested-lightgray)
82
+ ![Downloads](https://img.shields.io/pypi/dm/microEye.svg)
83
+
84
+ <!-- ![Dependencies](https://img.shields.io/librariesio/release/pypi/microEye) -->
85
+
86
+ ![Contributors](https://img.shields.io/github/contributors/samhitech/microEye.svg)
87
+ ![GitHub Last Commit](https://img.shields.io/github/last-commit/samhitech/microEye.svg)
88
+ ![Maintenance](https://img.shields.io/maintenance/yes/2024.svg)
89
+
90
+ ![GitHub Issues](https://img.shields.io/github/issues/samhitech/microEye.svg)
91
+ ![GitHub Bugs](https://img.shields.io/github/issues/samhitech/microEye/bug.svg)
92
+ ![GitHub Feature Requests](https://img.shields.io/github/issues/samhitech/microEye/feature%20request.svg)
93
+ ![GitHub Pull Requests](https://img.shields.io/github/issues-pr/samhitech/microEye.svg)
94
+
95
+ ![GitHub Forks](https://img.shields.io/github/forks/samhitech/microEye.svg)
96
+ ![GitHub Stars](https://img.shields.io/github/stars/samhitech/microEye.svg)
97
+
98
+ ```bash
99
+ __ ____ ____ ___ ____ ___
100
+ / |/ (_)__________ / __/_ _____ _ __|_ | |_ / |_ |
101
+ / /|_/ / / __/ __/ _ \/ _// // / -_) | |/ / __/_ _/_ <_ / __/
102
+ /_/ /_/_/\__/_/ \___/___/\_, /\__/ |___/____(_)____(_)____/
103
+ /___/
104
+ ```
105
+
106
+ ## Table of Contents
107
+
108
+ - [The microEye](#the-microeye)
109
+ - [Table of Contents](#table-of-contents)
110
+ - [How to Install microEye](#how-to-install-microeye)
111
+ - [Troubleshooting Installation](#troubleshooting-installation)
112
+ - [microEye Launcher](#microeye-launcher)
113
+ - [Usage](#usage)
114
+ - [Modules](#modules)
115
+ - [The miEye Module](#the-mieye-module)
116
+ - [Experiment Designer (Beta)](#experiment-designer-beta)
117
+ - [The Multi Viewer Module](#the-multi-viewer-module)
118
+ - [Uses Packages](#uses-packages)
119
+ - [Microscope Scheme](#microscope-scheme)
120
+ - [Hardware](#hardware)
121
+ - [Supported Cameras](#supported-cameras)
122
+ - [Additional Hardware](#additional-hardware)
123
+ - [Pycro-Manager Hardware](#pycro-manager-hardware)
124
+ - [Authors](#authors)
125
+ - [People Involved](#people-involved)
126
+ - [Acknowledgement](#acknowledgement)
127
+ - [Citation](#citation)
128
+
129
+ ## How to Install [microEye](https://pypi.org/project/microEye/)
130
+
131
+ 1. **Install Python:**
132
+
133
+ Download and install the latest [Python](https://www.python.org/downloads/) ≥3.9 stable release.
134
+
135
+ 2. **Install microEye package:**
136
+
137
+ Open a terminal and execute the following command to install microEye using pip:
138
+
139
+ ```powershell
140
+ pip install microEye --upgrade
141
+ ```
142
+
143
+ Or for a specific version:
144
+
145
+ ```powershell
146
+ pip install microEye==version
147
+ ```
148
+
149
+ 3. **Install required packages: (Optional)**
150
+
151
+ Download the [requirements.txt](https://github.com/samhitech/microEye/blob/main/requirements.txt) file. Navigate to the directory containing the requirements file in your terminal and run:
152
+
153
+ ```powershell
154
+ pip install -r requirements.txt
155
+ ```
156
+
157
+ Note: This step is optional as dependecies are installed with the package.
158
+
159
+ 4. **Install specific hardware drivers: (Optional)**
160
+
161
+ - For Integrated Optics: Download and install [Laser control software](https://integratedoptics.com/downloads).
162
+ - For IDS uEye CMOS cameras: Install [IDS Software Suite 4.96.1](https://en.ids-imaging.com/download-details/AB00604.html?os=windows&version=win10&bus=64&floatcalc=) for Windows 32/64-bit.
163
+ - For Allied Vision CMOS cameras: Install [Vimba SDK](https://www.alliedvision.com/en/products/vimba-sdk) 5.0 or 6.0 outside the Program Files. Navigate to the directory containing setup.py and run:
164
+
165
+ ```powershell
166
+ python -m pip install .
167
+ ```
168
+
169
+ - For Thorlabs CMOS cameras: Install [Thorcam](https://www.thorlabs.com/software_pages/ViewSoftwarePage.cfm?Code=ThorCam) in its default directory. Note: Some Thorlabs cameras may be identified as IDS uEye cameras by Windows and may run without Thorcam.
170
+
171
+ - For Thorlabs hardware, install [Kinesis® Software](https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=10285) and [Elliptec™ Software](https://www.thorlabs.com/software_pages/ViewSoftwarePage.cfm?Code=ELL).
172
+
173
+ 5. **Open a terminal and execute microEye:** :partying_face:
174
+
175
+ ```powershell
176
+ usage: microEye.exe [-h] [--module MODULE] [--QT_API QT_API] [--theme THEME]
177
+
178
+ optional arguments:
179
+ -h, --help show this help message and exit
180
+ --module {mieye,viewer}
181
+ The module to launch [mieye|viewer], If not specified, launcher is executed.
182
+ --QT_API {PySide6,PyQT6,PyQt5}
183
+ Select QT API [PySide6|PyQT6|PyQt5], If not specified, the environment variable QT_API is used.
184
+ --theme {None,qdarktheme,qdarkstyle,...}
185
+ The theme of the app, if not specified, the environment variable MITHEME is used.
186
+ ```
187
+
188
+ > **Note:** Ensure all necessary drivers are installed for microEye to function properly.
189
+
190
+ ### Troubleshooting Installation
191
+
192
+ If you encounter any issues during the installation process, please check the following:
193
+
194
+ - Ensure that you have the latest version of Python installed (≥3.9).
195
+ - Try installing the required packages repeating step (2) or individually using `pip install <package_name>`.
196
+ - Check the system requirements for specific hardware drivers and follow the installation instructions provided by the manufacturers.
197
+ - Refer to the project's issue tracker on GitHub for any known installation issues and solutions.
198
+
199
+ If the issue persists, feel free to open a new issue on the project's GitHub repository, providing detailed information about the problem and any error messages you encountered.
200
+
201
+ ## microEye Launcher
202
+
203
+ The microEye Launcher allows you to launch either the `miEye Module` or the `Viewer Module`, and provides options to select the Qt API and theme for the application.
204
+
205
+ ![Launcher Screenshot](https://github.com/samhitech/microEye/assets/89871015/385cc3d6-e3b8-44a4-a288-2471b6b34f7f)
206
+
207
+ ### Usage
208
+
209
+ Upon running the launcher, you will be presented with the following interface:
210
+
211
+ - **miEye Module**: Launches the miEye module for microscope control and acquisition.
212
+ - **Viewer Module**: Launches the viewer module for image/data anlysis and visualization.
213
+ - **QT API (dropdown)**: Select the Qt API to use. Options are PySide6, PyQt6, or PyQt5.
214
+ - **Theme (dropdown)**: Select the theme for the application. Options are None (default), qdarktheme, or qdarkstyle.
215
+
216
+ To launch a module, simply click on the respective button (`miEye Module` or `Viewer Module`). If you wish to change the Qt API or theme, select the desired option from the dropdown menus before launching.
217
+ Sounds good, here's the updated section with the simplified commands:
218
+
219
+ ## Modules
220
+
221
+ ### The miEye Module
222
+
223
+ The `miEye_module` provides the primary graphical user interface (GUI) for microscope control and data acquisition, combining the functionalities of the deprecated _Acquisition_ and _Control_ modules.
224
+
225
+ | miEye module (NOT UP TO DATE) | Acquisition Camera |
226
+ | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
227
+ | ![miEye](https://github.com/samhitech/microEye/assets/89871015/20c5573a-e489-478e-adfc-29410bc6d4c2) | ![CamStack](https://github.com/samhitech/microEye/assets/89871015/ead95989-54ce-4643-b5a3-4461c36f6b14) |
228
+
229
+ **How to use:**
230
+
231
+ To launch the miEye module, run the following command:
232
+
233
+ ```powershell
234
+ microEye --module mieye
235
+ ```
236
+
237
+ #### Experiment Designer (Beta)
238
+
239
+ ![Experiment Designer (Beta)](https://github.com/samhitech/microEye/assets/89871015/0693a620-6aed-4bf4-a723-7b0c7b143d1f)
240
+
241
+ The Experiment Designer is a new feature within the `miEye Module` that allows users to create and manage complex acquisition protocols through a graphical interface.
242
+
243
+ Key features include:
244
+
245
+ - GUI-based design of acquisition protocols;
246
+ - Support for loops and device parameter adjustments/actions;
247
+ - Export and import capabilities for protocols;
248
+ - Threaded execution with pause functionality;
249
+ - Configurable delays between protocol steps
250
+ - Context menu for easy adjustments
251
+ - Nested protocol structure
252
+ - Acquisition action wait option
253
+ - Cell reordering and deletion via keyboard shortcuts
254
+ - Real-time execution progress view
255
+
256
+ To access the Experiment Designer:
257
+
258
+ 1. Launch the `miEye module`.
259
+ 2. Look for the Experiment Designer (Protocols) view in the interface.
260
+
261
+ Note: This feature is currently in beta. We value your feedback to enhance its functionality and improve the user experience.
262
+
263
+ ### The Multi Viewer Module
264
+
265
+ The `multi_viewer` Module is an improved GUI that replaces the deprecated `tiff_viewer` module. It allows users to process multiple files and provides data analysis and visualization tools for super-resolution single-molecule localization microscopy and single-particle tracking.
266
+
267
+ | Raw Data | Localizations |
268
+ | ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
269
+ | ![imagesStack](https://github.com/samhitech/microEye/assets/89871015/17421117-a633-4a20-ba38-e7adffcd7332) | ![locStack](https://github.com/samhitech/microEye/assets/89871015/713d9fc7-7f92-4341-adb2-17b83ac8fc34) |
270
+
271
+ **How to use:**
272
+
273
+ To launch the Multi Viewer module, run the following command:
274
+
275
+ ```powershell
276
+ microEye --module viewer
277
+ ```
278
+
279
+ ## Uses Packages
280
+
281
+ The `microEye` uses the following Python packages:
282
+
283
+ | Data Analysis and Visualization | GUI and UI Development | Code Quality and Formatting | Image and Video Processing | File and Data Storage | Other Utilities |
284
+ | ------------------------------- | ---------------------- | --------------------------- | -------------------------- | --------------------- | --------------- |
285
+ | dask | PySide6 | autopep8 | opencv-python | ome-types | hidapi |
286
+ | matplotlib | pyqtdarktheme | pyflakes | | tables | pyfiglet |
287
+ | numba | pyqtgraph | | | zarr | pyserial |
288
+ | numpy | QDarkStyle | | | | pyjokes |
289
+ | pandas | QScintilla | | | | setuptools |
290
+ | scikit-image | PyQt5 (optional) | | | | tabulate |
291
+ | scikit_learn | PyQt6 (optional) | | | | pyueye |
292
+ | scipy | | | | | |
293
+ | tifffile | | | | | |
294
+ | vispy | | | | | |
295
+
296
+ Note: VimbaPython is included in Vimba SDK and needs to be installed manually.
297
+
298
+ ## Microscope Scheme
299
+
300
+ Schematic overview of the miEye instrument:
301
+
302
+ - **A) Single-Mode Fiber (SMF):** Excitation path for TIRF-, HILO-, and Epi-mode.
303
+ - **B) Multi-Mode Fiber (MMF):** Excitation path for Epi-mode when imaging MMF output on the sample plane.
304
+ - **C) Fluorescence Emission:** Path for fluorescence emission.
305
+ - **D) Automatic Focus Stabilization:** the automatic focus stabilization path using an IR laser in TIRF setting.
306
+
307
+ | Scheme 1 | Scheme 2 |
308
+ | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
309
+ | ![Quad Scheme](https://user-images.githubusercontent.com/89871015/182302644-9fdf8615-75c3-4702-9913-d1a535f60e22.png) | ![Scheme GIT](https://user-images.githubusercontent.com/89871015/182302694-3f70d058-b1b6-4ef5-9cc2-aec9b58a05f0.png) |
310
+
311
+ **Key Components:** _AC:_ Achromat lens, _AS:_ Aspheric lens, _BFP:_ Back-focal plane, _TL:_ Tube lens, _B:_ B-coated N-BK7 optics, _BS:_ Beamsplitter.
312
+
313
+ ## Hardware
314
+
315
+ ### Supported Cameras
316
+
317
+ | Camera | Description | Link |
318
+ | ------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------- |
319
+ | IDS uEye UI-3060CP Rev. 2 | IDS industrial-grade CMOS cameras | [Link](https://en.ids-imaging.com/store/products/cameras/ui-3060cp-rev-2.html) |
320
+ | Thorlabs DCC1545M | DCx camera using UC480 driver | [Link](https://www.thorlabs.com/thorProduct.cfm?partNumber=DCC1545M) |
321
+ | Allied Vision Alvium 1800 | Allied Vision industrial-grade CMOS cameras (U-158m, U-511m) | [Link](https://www.alliedvision.com/en/products/alvium-configurator/alvium-1800-u/158/#_configurator) |
322
+
323
+ ### Additional Hardware
324
+
325
+ | Hardware | Description | Link |
326
+ | --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
327
+ | Integrated Optics MatchBox | Multi-wavelength Laser Combiner, Single Laser MatchBox | [Link](https://integratedoptics.com/products/wavelength-combiners) |
328
+ | Piezo Concept FOC | Nanopositioner for microscope objectives | [Link](https://piezoconcept-store.squarespace.com/1-axis/p/foc) |
329
+ | Thorlabs Elliptec ELL6/ELL9/ELL12 | Dual/Four/Six-Position Slider | [ELL6](https://www.thorlabs.com/thorproduct.cfm?partnumber=ELL6), [ELL9](https://www.thorlabs.com/thorproduct.cfm?partnumber=ELL9), [ELL12](https://www.thorlabs.com/thorproduct.cfm?partnumber=ELL12) |
330
+ | Thorlabs Elliptec ELL14 | Rotation Mount: SM1 Threaded | [ELL14](https://www.thorlabs.com/thorproduct.cfm?partnumber=ELL14) |
331
+ | Thorlabs Elliptec ELL20 | Linear Stage: 60 mm Travel | [ELL20](https://www.thorlabs.com/thorproduct.cfm?partnumber=ELL20) |
332
+ | Thorlabs KDC101 | Kinesis Controller for Z825B/[Z925B](https://www.thorlabs.com/thorproduct.cfm?partnumber=Z925B) actuators (Activate USB VCP to access the COM port in device manager) | [Link](https://www.thorlabs.com/thorproduct.cfm?partnumber=KDC101) |
333
+ | Parallax TSL1401-DB (#28317) | Linescan Camera Module | [Link](https://eu.mouser.com/ProductDetail/Parallax/28317?qs=%2Fha2pyFaduiCRhuOAXMuCmQIeG1Q3R01m6Y1EH%252BmN80%3D) |
334
+ | RelayBox Arduino | For laser control using camera GPIO signals | [RelayBox](https://github.com/samhitech/RelayBox) |
335
+ | miEye OSF Project Parts List | Parts list of miEye OSF Project | [Link](https://osf.io/j2fqy/) |
336
+
337
+ ### Pycro-Manager Hardware
338
+
339
+ Integration under development. **[To Be Added]**
340
+
341
+ ![pycromanager integration](https://github.com/user-attachments/assets/73893f9f-c1ef-438f-a884-ec3f60f00118)
342
+
343
+ ## Authors
344
+
345
+ [Mohammad Nour Alsamsam](https://tutkuslab.github.io/team/MNA/), PhD student @ Vilnius University.
346
+
347
+ [![Twitter URL](https://img.shields.io/twitter/url/https/twitter.com/samhightech.svg?style=social&label=Follow%20%40samhightech)](https://twitter.com/samhightech)
348
+
349
+ ## People Involved
350
+
351
+ **PhD supervision:** [Dr. Marijonas Tutkus](https://tutkuslab.github.io/team/MT/)
352
+
353
+ [![Twitter URL](https://img.shields.io/twitter/url/https/twitter.com/MTutkus.svg?style=social&label=Follow%20%40MTutkus)](https://twitter.com/MTutkus)
354
+
355
+ **Sample preparation, experiments and testing:**
356
+
357
+ - [Aurimas Kopūstas](https://tutkuslab.github.io/team/AK/)
358
+ - [Tutkus Lab Team](https://tutkuslab.github.io/team/)
359
+
360
+ ## Acknowledgement
361
+
362
+ Research and access to intruments and samples is credited to:
363
+
364
+ - Vilnius University, Lithuania.
365
+ - Center For Physical Sciences and Technology, Vilnius, Lithuania.
366
+ - Research Council of Lithuania.
367
+
368
+ Special thanks to the following projects and libraries that make this work possible:
369
+
370
+ - **SMAP/fit3Dcspline**: The original code, provided as a part of the Ries group [SMAP software](https://github.com/jries/SMAP/tree/master/fit3Dcspline). The `pyfit3Dcspline` module in our project is a Python adaptation of this functionality, offering both CPU and GPU accelerated fitting of Single-Molecule Localization Microscopy (SMLM) data. For more details, refer to the pyfit3Dcspline [README](https://github.com/samhitech/microEye/tree/main/src/microEye/analysis/fitting/pyfit3Dcspline/README.md).
371
+
372
+ - **ACCéNT**: a partial implementation of the photon free calibration within the acquisition pipeline which generates pixel-wise mean and variance images.
373
+
374
+ > Robin Diekmann, Joran Deschamps, Yiming Li, Aline Tschanz, Maurice Kahnwald, Ulf Matti, Jonas Ries, "Photon-free (s)CMOS camera characterization for artifact reduction in high- and super-resolution microscopy", bioRxiv 2021.04.16.440125. [doi: 2021.04.16.440125](https://doi.org/10.1101/2021.04.16.440125)
375
+
376
+ - **Phasor Fit**: We have implemented the 2D phasor fitting algorithm in Python for fast pre-fitting visualization of localizations.
377
+
378
+ > K.J.A. Martens, A.N. Bader, S. Baas, B. Rieger, J. Hohlbein. "Phasor based single-molecule localization microscopy in 3D (pSMLM-3D): an algorithm for MHz localization rates using standard CPUs," bioRxiv, 2017. [DOI: 10.1101/191957](https://doi.org/10.1101/191957).
379
+
380
+ - **Endesfelder Lab/SMLMComputational**: A numba accelerated adaptation of Drift Correction, Fourier Ring Correlation (FRC) structural resolution and Nearest Neighbour Analysis (NeNA) for localization precision from [Endesfelder Lab](https://github.com/Endesfelder-Lab/SMLMComputational).
381
+
382
+ > Raw data to results: a hands-on introduction and overview of computational analysis for single-molecule localization microscopy", Martens et al., (2022), Frontiers in Bioinformatics. [Paper](https://www.frontiersin.org/articles/10.3389/fbinf.2021.817254)
383
+
384
+ - **TARDIS (Temporal Analysis of Relative Distances)**: We have developed a partial Python implementation of TARDIS without fitting for now. For more information, refer to the [TARDIS software releases](https://github.com/kjamartens/TARDIS-public). The underlying algorithms and scientific details of TARDIS are detailed in the manuscript:
385
+ > Martens et al., “Temporal analysis of relative distances (TARDIS) is a robust, parameter-free alternative to single-particle tracking”, Nature Methods (2024). [Link](https://rdcu.be/dv1sr)
386
+
387
+ **Note**: I'm committed to maintaining an accurate acknowledgment list for our project. However, if I inadvertently miss acknowledging your work, please don't hesitate to reach out to us. I appreciate your understanding, and I'm doing my best to manage all acknowledgments amidst my other responsibilities.
388
+
389
+ > I make it a standard practice to cite and provide credit within a function's docstring whenever I draw inspiration from any external reference.
390
+
391
+ ## Citation
392
+
393
+ If you find our work or software helpful in your research or project, we kindly request that you cite it appropriately. Here is the suggested citation format:
394
+
395
+ > M.N. Alsamsam, A. Kopūstas, M. Jurevičiūtė, and M. Tutkus, “The miEye: Bench-top super-resolution microscope with cost-effective equipment,” HardwareX 12, e00368 (2022). [Paper](https://doi.org/10.1016/j.ohx.2022.e00368)
396
+
397
+ Additionally, we would appreciate it if you could provide a link to our GitHub repository or any relevant publication associated with the software.
398
+
399
+ > Alsamsam, M. N. microEye, <https://github.com/samhitech/microEye> [Computer software]
400
+
401
+ Thank you for your support!
@@ -0,0 +1,190 @@
1
+ microEye/__init__.py,sha256=ZL6oZ4nB5kGQTcxpBJPvxNF8uoX7U5D9fmL6Y4yyUCU,1385
2
+ microEye/_version.py,sha256=h3CKuG7l5MrUpkLiSh_LVP9FUzSRk2kFz7GvkrLdqwk,74
3
+ microEye/launcher.py,sha256=_vdLkl6yuqiCn3amXwixSRzGXSB_Wu7ZjBb8nElznvY,978
4
+ microEye/qt.py,sha256=d8dMitdzkjzoAUZm3m1IO_DZI4J4IDOq8hM8LNdyMQs,5562
5
+ microEye/analysis/__init__.py,sha256=wC9MzH9Dp3qxs4p6mKljJS6nlvM0Ryz8sLJJ_ThNEMg,57
6
+ microEye/analysis/checklist_dialog.py,sha256=jqziqnMzjizsvZv-oErQmbpe-I6BXc28DYGk5OWky3g,4619
7
+ microEye/analysis/cmosMaps.py,sha256=ILa_AGPGi3sfSxXOr7SYX8o2NOwh4lECaHo_3mgrtos,7790
8
+ microEye/analysis/multi_viewer.py,sha256=lUG6EwaqUU7GMvsXCu0uyZukNvK5FNa4EIcu0B--I_s,18493
9
+ microEye/analysis/filters/__init__.py,sha256=JBbu2CAWsgdFd7wG7whhP8OqS-LR4fJXiIh2cVuIB6M,274
10
+ microEye/analysis/filters/base.py,sha256=uE4-EZaGRiBpb9PiXqHSt6FeEEYU6LoZKGMZlOk3F00,547
11
+ microEye/analysis/filters/spatial.py,sha256=yKhWF1opq7w5WSfezCFsBkyvEMHMtfoeKyCogvvXjxM,10590
12
+ microEye/analysis/filters/temporal.py,sha256=r6aVi9M6XRcX9wb9dZNGhoUCKn7qPgHu9zf7slfjbYw,2365
13
+ microEye/analysis/fitting/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
+ microEye/analysis/fitting/fit.py,sha256=u7FRIQs0D9VHqMHbg2yY0VnXwLufWKjJX9uneJ8IIgk,22211
15
+ microEye/analysis/fitting/nena.py,sha256=3uLz97_pBN8mLKOBArn5qJZRNub9jCdeeZjgIpq9zeg,11813
16
+ microEye/analysis/fitting/phasor_fit.py,sha256=mX6CYuaTzolQZpSzUYcFTfcyQ3moQ2lhA1NmhkjanHE,2646
17
+ microEye/analysis/fitting/processing.py,sha256=E-EDQ8ITwvJyv9nONxKvUtsndVvtokxOBb13afZCemQ,9864
18
+ microEye/analysis/fitting/results.py,sha256=EjmhjA0OUyWg-52Edb8RB6M0FN1dzM5w2flNpG718BU,32607
19
+ microEye/analysis/fitting/results_stats.py,sha256=nGJPeyAvtoWsuoHI51PxN95ZrM5iTuRqkK65hrYJvjU,8511
20
+ microEye/analysis/fitting/tardis.py,sha256=Thm0Q7Wikcs7fygaapE09GZCC71MlRMfqbFoRhvgo6A,6993
21
+ microEye/analysis/fitting/psf/__init__.py,sha256=PpLKqdkuMF-gGbRDIhgDKI5PPZakUGiI9wHFaD7-Uhk,161
22
+ microEye/analysis/fitting/psf/extract.py,sha256=6eC7HsoRk23gK0NZjf12yXsoneXzEDB9KmT10qSYov0,38449
23
+ microEye/analysis/fitting/psf/rubost_mean.py,sha256=PvMAc_5Vbd0qYi4EqfiU7L5JOmTnwNCrUOUBwKO79dE,5279
24
+ microEye/analysis/fitting/psf/spline.py,sha256=BzZMIK7f-mPMim3JLdXWumkFMVWKbzLNLvNSXX2bQ74,5565
25
+ microEye/analysis/fitting/psf/temp.py,sha256=HQsI0ZDCyJqEQLdijikjH87KZDiPI-HwNwFxlH4TzqU,5145
26
+ microEye/analysis/fitting/psf/test.py,sha256=sD0sUbUoocWKULrxnOFtWe5tJh4B1Vsif23n4plNp24,1198
27
+ microEye/analysis/fitting/psf/stats/__init__.py,sha256=1iKJs-fiWadG3RomXqyCC22_8CRPWpwUIxVRwYEi5eI,417
28
+ microEye/analysis/fitting/psf/stats/core.py,sha256=SVkgFn4Wijwy4tIs72nEvP_CN-Ir6XGnAeS_tm30NGw,10813
29
+ microEye/analysis/fitting/psf/stats/curve_fit.py,sha256=OXJxb0eCa41A4gvRBqNQ4WlZ4JC7D8YQedHiCsPjAn8,24329
30
+ microEye/analysis/fitting/psf/stats/io.py,sha256=gf3WxXc5wMrJezaMY-OsOU2-D2tZcG5fN8ufrwzyzts,2700
31
+ microEye/analysis/fitting/psf/stats/slope_fit.py,sha256=VJ4F6r-e0uOwcQUgAY9hlsDifAd7TFtzZ_6BMiFKhOQ,6777
32
+ microEye/analysis/fitting/pyfit3Dcspline/__init__.py,sha256=WCalWs16QjifgHg-hMaJn6S2zUf4a5wNI2KuveXJ2K0,273
33
+ microEye/analysis/fitting/pyfit3Dcspline/constants.py,sha256=xRuHxu1CV4UiNd8I8s10VtUa_ff0EQzEd6KA8YreHtk,798
34
+ microEye/analysis/fitting/pyfit3Dcspline/mainfunctions.py,sha256=Old5uDzqclQYalIYnwpUbWGpW0GQzQ0Rt5q-U6eKztM,29905
35
+ microEye/analysis/fitting/pyfit3Dcspline/CPU/CPUfunctions.py,sha256=03ZqfwBgCTNhUw4B5vN2E9N5YrVaok7f2UUNLM7Twtc,16140
36
+ microEye/analysis/fitting/pyfit3Dcspline/CPU/CPUmleFit_LM.py,sha256=rqIbwVibk4eCtDx6SmL_XbCOdu0RMBs9XS1n852f6O8,44849
37
+ microEye/analysis/fitting/pyfit3Dcspline/CPU/CPUsplineLib.py,sha256=xJFla2XuqxhVEvKbYie9P3Lwi5qB80-12EpfPdlEG5M,6254
38
+ microEye/analysis/fitting/pyfit3Dcspline/CPU/__init__.py,sha256=klUiup_fuUPZHpW1xiyXgkzUp1WSUmqSDlzY8rDbPe0,73
39
+ microEye/analysis/fitting/pyfit3Dcspline/GPU/GPUfunctions.py,sha256=1uf4fMp5wcoOUZbVibMgbHim_Ug0lairPRgZLsKY76M,14796
40
+ microEye/analysis/fitting/pyfit3Dcspline/GPU/GPUmleFit_LM_EMCCD.py,sha256=MGo4jNy_ZblFvjFlIFNU78AsGL-mI01WtRSoxVS6LIg,47487
41
+ microEye/analysis/fitting/pyfit3Dcspline/GPU/GPUmleFit_LM_sCMOS.py,sha256=yEfR8W_3HTf_26ayfebqbSn8QaCXVGmcXM0TIL5qXE0,48967
42
+ microEye/analysis/fitting/pyfit3Dcspline/GPU/GPUsplineLib.py,sha256=iii3cCCSYQiR2PlwuqQzTU6U6w1AqTcFtDjaMGmPjG8,5558
43
+ microEye/analysis/fitting/pyfit3Dcspline/GPU/__init__.py,sha256=Itc01IYVtisKXkc4qx0QN71hQ3-LnCPXeKYweK00y9A,158
44
+ microEye/analysis/processing/__init__.py,sha256=eH6Njx3Szujvrr7V_1eHJnHSmNdNF5bbMrc-za_d35Y,80
45
+ microEye/analysis/processing/frc.py,sha256=81b7jAhJusMNRpnkxhoH6UlTzyfZbjHhAwbD8wUO0mw,4122
46
+ microEye/analysis/rendering/__init__.py,sha256=2sKsf5U1Mj5wrXURguRmsW-9xK9kjm8pN_RBtn2LR7Y,217
47
+ microEye/analysis/rendering/base.py,sha256=NjWGqjHEFQySKQZhjrMy8luIBHqx71x0yFsJml_TpTE,14364
48
+ microEye/analysis/rendering/cloud.py,sha256=5dPkDv1UIxA5TRWns_dmGhZyaMyE9YZoWORbR4rXMqI,7836
49
+ microEye/analysis/rendering/core.py,sha256=cXjLlvvzaKqV3Y-kSbS7Umfh1gKFKmRyaiucGr0bfac,1129
50
+ microEye/analysis/rendering/volumetric.py,sha256=MxhTEgEMaslsFkvz2FmOWcxzBHNPIlNohoLtpkL4WrI,6685
51
+ microEye/analysis/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
+ microEye/analysis/tools/kymograms.py,sha256=zudfKs28FL4hUmdafb7bacIZwwrdA9-yxA5Q1X_o7UI,38781
53
+ microEye/analysis/tools/roi_selectors.py,sha256=9ofD_qgnZODU3zRFpSAdLdAkp6ezTE5KqKgOo3sNl_I,21255
54
+ microEye/analysis/utils/__init__.py,sha256=xcFTUwX1BmHlWffcpzF86mwM7bjs-qlpMkHp-9w2iX8,214
55
+ microEye/analysis/utils/coordinates.py,sha256=WwILJ4gdp7uxOH8j_6XevmLG0McFxliFllzCBvphry8,482
56
+ microEye/analysis/utils/images.py,sha256=_iFOtiZmii14QG1qIUOtQAx59PntXxGL_1_0Y5mEEL0,1848
57
+ microEye/analysis/utils/windows.py,sha256=JftmE_9dFBeJ_kl4jtuB-7lSEeGWMQdQGQgJUudp3WE,343
58
+ microEye/analysis/viewer/__init__.py,sha256=Q6RxYuuDCoQEiIW14vYGjiJwBNF6Ljnvc9WwmLycUwM,175
59
+ microEye/analysis/viewer/image_options_widget.py,sha256=E5YniQ4CujaDbfHtJUQEvVF34uWTnd1-kOZ722aI_wQ,24747
60
+ microEye/analysis/viewer/images.py,sha256=ciasRhKg-AhSUUBe87otablz_YjSdRbGPL-KZuBCmB8,43835
61
+ microEye/analysis/viewer/layers_widget.py,sha256=qn6xYiJ_Zqms2SyATJMC7i6S1h5bEnFntLryRVD8PiU,14517
62
+ microEye/analysis/viewer/localizations.py,sha256=-5ADz7xD2HdJcVeg3Up5lxfqLobhJXsO-0-SUotFRug,47193
63
+ microEye/analysis/viewer/psf.py,sha256=2BXAMrfgqoXjhYHhe5adcQYO8boaSguGhctaTqHVO-Q,38558
64
+ microEye/analysis/viewer/volume.py,sha256=hvC-zr9EU4K8K8V14aBORKkhroEQuhjMVV7QrDcXvG4,16026
65
+ microEye/hardware/__init__.py,sha256=sEKWTnAeV7TdDfzpC5CdWJQ0cROH19qui9LPNPamtDA,174
66
+ microEye/hardware/device.py,sha256=CaYsKK1VBN-0aFWMPn5krR-0IxYlWuIi0Fxm20v95Yc,1726
67
+ microEye/hardware/port_config.py,sha256=iHV_N3ocf2XrBSOMFb8zQS7bUEkLeFh_N18CcYvyat4,2240
68
+ microEye/hardware/cams/__init__.py,sha256=K2VTpZEN8JCa5y-dbww845ChFb2VxfrHmpEBUYdB_HU,1044
69
+ microEye/hardware/cams/camera_calibration.py,sha256=bF4wO97HkmtgEA9r_2o8MvkouswKCIf-ukYtyfXmEt4,2908
70
+ microEye/hardware/cams/camera_list.py,sha256=vLslDpHF4hMQMpBwmGyjXNLuqALoAW5N7uoOd4pnI_4,17814
71
+ microEye/hardware/cams/camera_options.py,sha256=0LIC9ObWCTdH3TS9klNifqVm_BWgioV3B3gAzcdRs50,23522
72
+ microEye/hardware/cams/camera_panel.py,sha256=wYOLIY7ppcy4ToJRh7UTPb2m2-MT7Vhw3LFaH-rv_78,32471
73
+ microEye/hardware/cams/jobs.py,sha256=RYOILOgggvU1Tiq8swijPbPmPoypu7i_7mtr1jUvH9I,18603
74
+ microEye/hardware/cams/line_profiler.py,sha256=plXJE1sxRQPdg3I89nXdP6rFQTzNpbArNvOvvP-ded4,3167
75
+ microEye/hardware/cams/micam.py,sha256=JWbRU00BLtUhPgAs2hFJsg38hb2GlDQNKZ7FBr4zx88,17744
76
+ microEye/hardware/cams/shortcuts.py,sha256=KD3PbeXFGsYOqeqMTj2lupmA7dQP02_WxuSA3pPKJS0,10654
77
+ microEye/hardware/cams/dummy/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
78
+ microEye/hardware/cams/dummy/dummy_panel.py,sha256=M7gMKy4gy1G2lEFX64oWVXSYr_F1Po6mmTzqWb5PGe0,28210
79
+ microEye/hardware/cams/linescan/IR_Cam.py,sha256=qkhgbTTjv3JvL-PPRbdPfTC_e7erJhKqK7je3Cma92s,18191
80
+ microEye/hardware/cams/linescan/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
81
+ microEye/hardware/cams/pco/__init__.py,sha256=bkBkRp11ls6djvAhAlniaM-ufz3UwietJ92Vktjx42k,1556
82
+ microEye/hardware/cams/pco/enums.py,sha256=9dDNXJpVD3Ty8pdaTST-kOubuQaq0CMu-LMnYlw8sK8,12501
83
+ microEye/hardware/cams/pco/pco_cam.py,sha256=yaCP5k42-t3JWJdoCcZXas-deMcg5tDZPskOfegNW70,22989
84
+ microEye/hardware/cams/pco/pco_panel.py,sha256=fXdX5EcUlfAM1EKqh4R_VYYxOtwDRcd3VNu5ghYEedY,15811
85
+ microEye/hardware/cams/thorlabs/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
86
+ microEye/hardware/cams/thorlabs/thorlabs.py,sha256=-rmmzMX0UxKYfi3AjRK8orpaHh88allr_DfTlI0bXBE,53737
87
+ microEye/hardware/cams/thorlabs/thorlabs_panel.py,sha256=bXvkxva5LGKh4B9_GNCQmyq4nznXSg6Uk4S5BtLKlsg,30382
88
+ microEye/hardware/cams/ueye/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
89
+ microEye/hardware/cams/ueye/ueye_camera.py,sha256=Uoly9QnJM4xYTNj-JvusZXTdE9rWggkBi46-67kjNBE,35288
90
+ microEye/hardware/cams/ueye/ueye_panel.py,sha256=rhfHGG1cr_HZwZIxoj-OhS857I_UmkvXjueSXHWoWtk,31044
91
+ microEye/hardware/cams/vimba/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
92
+ microEye/hardware/cams/vimba/vimba_cam.py,sha256=gVQHkeJizDepp1XS-SrItFqCd_88HtdWjCpLpyjN3c4,34267
93
+ microEye/hardware/cams/vimba/vimba_panel.py,sha256=SkiXX82h9nv9kMcKJLc0mDf2HAiaLb5nUsePH_C0ssc,31409
94
+ microEye/hardware/lasers/__init__.py,sha256=NhavgnzrWNt1SpL-_DjsE20PPd7NlxK2_heNfnNr9c0,413
95
+ microEye/hardware/lasers/io_matchbox.py,sha256=qn5WBX4HQsdfM8m2EuTPgIQ4z78c8RtwMONTcfh2IEE,27381
96
+ microEye/hardware/lasers/io_params.py,sha256=r-Kx45kCMB41elQmQjoKWZxOj36ErSohQeJm1uGsWi8,2386
97
+ microEye/hardware/lasers/io_single_laser.py,sha256=xo2ky19sHn9y1yrMTnKIINFpBkmvMQCqM0GMnOIZEA0,26282
98
+ microEye/hardware/lasers/laser_relay.py,sha256=fWW851uvUVvY6U7mlw0si9uph6iVKdvDgWyz34fM_6E,17202
99
+ microEye/hardware/mieye/__init__.py,sha256=3YYyLzmOUdbavqZyMiCMq0HH22-FO7QlwvIG-NxcADI,56
100
+ microEye/hardware/mieye/acquisition_manager.py,sha256=TqSV5dtPWnHK7OWLTEYhtM60dMoQu6PH46Oij5mJsrk,15697
101
+ microEye/hardware/mieye/devices_manager.py,sha256=QWIYmSBDSuzTDTFNsTiPmP3DDctewFbOH_NSZ1pT-rc,18743
102
+ microEye/hardware/mieye/miEye.py,sha256=XUIHb3fbNamyG08MqjutFvQpdf8hFSFLJ1hmH4P-Fag,22897
103
+ microEye/hardware/misc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
104
+ microEye/hardware/misc/acquisition_view.py,sha256=lRtcNXBTRr6kLqgXGeQYTaH_Gxxx4YOEcXxvXNSlF4U,2058
105
+ microEye/hardware/misc/reglo.py,sha256=HWm6ONKRMxUxT3kvFbqlD6cy4TTd08uk8CpmvEYsGdU,28730
106
+ microEye/hardware/misc/temp.py,sha256=YHZEnBPxYxPoKjTQixzRsfP0UVmE1gfem1g3DqE8hzI,6471
107
+ microEye/hardware/protocols/__init__.py,sha256=a2UoFn6HXEn367Ck8ASR40GAIw_sQfDsnxT7TwO9Ek4,130
108
+ microEye/hardware/protocols/actions.py,sha256=FuRalsvpgys-P3wT6KrYF9_KqAWzUX1bqzCteXA591A,13073
109
+ microEye/hardware/protocols/actions_items.py,sha256=90t7JlAUzzS44eplNZi9eYmezVuOah4VItXcNQ7Dqa4,24156
110
+ microEye/hardware/protocols/designer.py,sha256=PtoJa2JCMlXneUo3nA4aUB070G4VUKkaNHP4R0gAhlE,7838
111
+ microEye/hardware/protocols/scene_manager.py,sha256=tT7-TfHEysNcTB6yfYfptBT4ivx5YBbPjv1DfIPJ7Xg,6588
112
+ microEye/hardware/protocols/serialization.py,sha256=gkS4gJLG8G4oWeIysJTm9QX-HtBYUKIoQoSnXgQHAdE,3236
113
+ microEye/hardware/pycromanager/__init__.py,sha256=yxFRh9MIr_UOSf21KPhvYyNQ1eBaUairNnaOwHzbU-4,571
114
+ microEye/hardware/pycromanager/core.py,sha256=Ja1uamJnh0-_N3psPkcnPNVfyCrD7DV0WQxJUaz2B-Y,55049
115
+ microEye/hardware/pycromanager/devices.py,sha256=3YemvpfSGfu9XRfl4C-vfsdwgwieVXHWHVIu8l4a4fo,14608
116
+ microEye/hardware/pycromanager/enums.py,sha256=tGKrg9IgVODm-MLjKgbZ5QR2jaBHVNQqZY0rTV_YjsQ,2345
117
+ microEye/hardware/pycromanager/headless.py,sha256=n7m-C_mz5slPgOry2fYhHoLkseneB9VHtE4U83oJ3Cw,5209
118
+ microEye/hardware/pycromanager/utils.py,sha256=YEn5pf8I3erU_FxflfOg0VUEjDLjeZ30wu3juJnlCYo,1006
119
+ microEye/hardware/pycromanager/widgets/__init__.py,sha256=DRGx4zzP1vkpe-Fvik0t174kxm25LsghXpIAtwSNNR4,264
120
+ microEye/hardware/pycromanager/widgets/bridges.py,sha256=x9_5hE3su3MDuBhrslq4_AE05QSXPnMah6GJ9tHTnZQ,15449
121
+ microEye/hardware/pycromanager/widgets/headless_manager.py,sha256=rfYHs9RWttRAnjKyF6n75ujmrkyYexMq1u0jXvMOaeQ,9926
122
+ microEye/hardware/pycromanager/widgets/headless_options.py,sha256=H9LHmsecPbe_vyQCSTiMAnJaBv8NIj0YaXGK8d3KTsU,7134
123
+ microEye/hardware/pycromanager/widgets/pycro_panel.py,sha256=W2w_tjVgfIQvROosra8DkR3Zo5KLPNd4ST26AIlZkzM,15538
124
+ microEye/hardware/stages/__init__.py,sha256=knq9vTKmEZ1SHUMRyNsQcuPW1OjV_PXmkpkyKxrLkkM,457
125
+ microEye/hardware/stages/piezo_concept.py,sha256=r8RrHemr3dlX0MeVHzHpW1ZKBiMbqxo_wYFGypYpksk,20063
126
+ microEye/hardware/stages/stabilizer.py,sha256=W1_weacotBjLQMDvySRbbGWHjrKPBZDt6oHhXNzbkYo,25027
127
+ microEye/hardware/stages/stage.py,sha256=GFi-vbkPR-wUwtKnDbVwKbJjRDD8MBOTek4oGozsD74,2106
128
+ microEye/hardware/stages/elliptec/__init__.py,sha256=bTsz4BCpt02RXj5ZMrWRIjRxGwlckcu04mppIPWAk6Q,178
129
+ microEye/hardware/stages/elliptec/baseDevice.py,sha256=bI_TIEYSmor3HKuIQ4vcMgXZN5dRCVlXDiX_Db3Udzc,11057
130
+ microEye/hardware/stages/elliptec/device.py,sha256=tlDvJbqH0xBDj2GHpCRP-WqPdryLe_z7kLiqzn9SQZY,14881
131
+ microEye/hardware/stages/elliptec/deviceID.py,sha256=R4uJCX_si1BBaOr1PfEUdd1yqZBD8R5xiqWOXpvLF4s,8044
132
+ microEye/hardware/stages/elliptec/devicePort.py,sha256=Paay9oBxgjIz3jlFpqcr-u9NkqJkl0japmdl1qv6D0w,11780
133
+ microEye/hardware/stages/elliptec/deviceStatus.py,sha256=eicDkURVVBC3GtlVastTh8-p_hB0Y8Y-tkwZNoSrGYI,1853
134
+ microEye/hardware/stages/elliptec/devicesView.py,sha256=pSrql7RjtrAZ0XnX8iY_NcwjJOftVuD8G0e5Wvntgh8,26353
135
+ microEye/hardware/stages/elliptec/ellDevices.py,sha256=nVFjSXq6v6M1ri9ieL46Ev2qQ_w1x853NxNiCzs8aH4,4685
136
+ microEye/hardware/stages/elliptec/messageUpdater.py,sha256=V1qlD-GszJIW3KHECl6Gq5P48YtLu2ZfBzbEJylsUPw,1052
137
+ microEye/hardware/stages/elliptec/motorInfo.py,sha256=HJ8DKV5EzWUBxUaUD8h2zMojuQoZbDAbqEkKA8JW6tw,4302
138
+ microEye/hardware/stages/elliptec/stage.py,sha256=ICVqs8eOAywv13H4AKB1guu2Xwezf1axai7_PrYSsgc,2218
139
+ microEye/hardware/stages/elliptec/test.py,sha256=0xAMXhNvk0FQiVdOloXpic50SkgJsHKlB0Sn9-soqPI,6015
140
+ microEye/hardware/stages/kinesis/__init__.py,sha256=gJTZIYPKGE5iTq642FjXVoGuzxIvnJJsz510KWNKQZE,77
141
+ microEye/hardware/stages/kinesis/kinesis.py,sha256=bkNTPQtWsHI1_G3Fc4o6PhBJGDl5NAhxKrpRFMdludE,27823
142
+ microEye/hardware/stages/kinesis/kdc101/__init__.py,sha256=Gth7tz3XGaM6VRCx7qRJ8N-_okv1E0r55OHdEzNVCLk,77
143
+ microEye/hardware/stages/kinesis/kdc101/enums.py,sha256=8A5mYh5qWlYsckOwp4Mt6WYZF5yjP8VqBEF2xNyawB8,33311
144
+ microEye/hardware/stages/kinesis/kdc101/factory.py,sha256=vtvACHKs4sGYTSviO60SM3H3V4GY8roNi0SGCy5OBhU,5637
145
+ microEye/hardware/stages/kinesis/kdc101/kdc101.py,sha256=kqgQS6FWQspHMBlBszvaP4VJdGPm4jLHcPPk7DgW-rY,26008
146
+ microEye/hardware/widgets/__init__.py,sha256=Y93gJuaXQ_eBMsabizucky1FxoUd2S7RhWvCmXvmV6c,409
147
+ microEye/hardware/widgets/controller.py,sha256=ycy8kIf0yqIm4LzYFUJCx862BxWgwHcFENrxRb6uIcA,9261
148
+ microEye/hardware/widgets/devices.py,sha256=ML9xphVvNKBhT9ccastPQUjrYnYklC8MyqF2IS29--8,4264
149
+ microEye/hardware/widgets/focusWidget.py,sha256=awy-x-fQeLJ3wXXxc1DL7nJF0F5IxWFTe6YMZfwrb_o,10710
150
+ microEye/hardware/widgets/qlist_slider.py,sha256=37sHaWWZlwzuwT2KfuStsXsvgmrH2cy7P0M4RLC_t-8,3386
151
+ microEye/hardware/widgets/scan_acquisition.py,sha256=ipSxkaqCTdotuezs4Y8xzRcSZFPkXMjLVyC-5RVAO0w,14479
152
+ microEye/icons/1024.png,sha256=FH0mkhvSXSkbr7PEB7BG5viY21abi1o1lfIVfOZ4HRk,107038
153
+ microEye/icons/128.png,sha256=xzT6U60cPLI7sSrpjA6LvFYmiZ4EPBcMIKcUoznKMGg,9750
154
+ microEye/icons/16.png,sha256=phYnC8rxndCYE4LgSnaJwxg0WUSzvr0DJJrdSHrUQeE,654
155
+ microEye/icons/24.png,sha256=5O-2h0Rr3a1SJa9bCkLOW6J_3z61f0S7Ax_zMan-Vgg,1166
156
+ microEye/icons/256.png,sha256=qObWdA-_P9s4iYzVPVtgsaTRVmCDipQwNqGyVQ5ILz8,21678
157
+ microEye/icons/32.png,sha256=lPFNpRe59xG3DuOtl06xL28qpd3eXsJv1rzl9YhLPPs,1735
158
+ microEye/icons/48.png,sha256=Qyio5FOcc5l62U1CPrkPYPk_uKz6ZIqAKhVk0kzKvoQ,2962
159
+ microEye/icons/512.png,sha256=tcqSBQ5cxxa1hU93LBwlIFmH0x4X7gg2f8kqKIxKRlw,47746
160
+ microEye/icons/64.png,sha256=YIDgSyrBCGVBh_D8jadZRirPhvAbKVbdRXMlMXOyi2E,4197
161
+ microEye/icons/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
162
+ microEye/icons/close.svg,sha256=mVJ79mh4tIclFElQRcZjbUdWmz4BovjqFGinZs1qZ2s,3123
163
+ microEye/icons/mieye.png,sha256=9_Y8TdyUxbV3jcZXPS2dpIJ1zpVINFZx44AKQGGyBL8,66360
164
+ microEye/icons/min.svg,sha256=OdDwblMkWO8skZED5w1PONnH0Flh6ZGdhrcQga8ffpc,2831
165
+ microEye/icons/viewer.png,sha256=Z64VMjCL1M3TOFTH28R2jB9izRiUPvHjuT00X6qhU3g,61343
166
+ microEye/utils/__init__.py,sha256=Z8IlZUZnqvoxTPomXODv3fllzE3S0r0bXL1X7oYOYK4,95
167
+ microEye/utils/enum_encoder.py,sha256=PtcYP7lmIFW6zB8e79XYt_us_Bb11-WisMb3eHzS1OU,249
168
+ microEye/utils/expandable_groupbox.py,sha256=X7_N7HkeklUejQMWTDRUegx5g-I34E66O8hqBPp9z9s,2974
169
+ microEye/utils/gui_helper.py,sha256=grYTcbkeCKN8jLrIWnwvvOFvBPnRk--UvUwGhVftPEc,11868
170
+ microEye/utils/labelled_slider.py,sha256=K4bz5un0D8_tbNDCDJ4MsNMVd43frbSQ_Imaj8MpPKc,4121
171
+ microEye/utils/metadata.py,sha256=Vr3G7XP_uzHiZo1rFb4BjbLonmn8rJJdTFV9JvzrSJs,23927
172
+ microEye/utils/metadata_tree.py,sha256=El1NMUKwqsZfKKUrY2zemV5yboc4YPmHe8u110Tmfns,31852
173
+ microEye/utils/micro_launcher.py,sha256=5IVBhdu18rVAD9UTFB65HR0HkNditra1KNlm5YTBulg,9078
174
+ microEye/utils/parameter_tree.py,sha256=MY7X7kctCRvheX5cdIuamMAmvGNN2dp34aaASOexVdU,9575
175
+ microEye/utils/pyscripting.py,sha256=b1m5ZwlmBkOfVzzUrfcaFnwYTkv447ifYpZmk77yXBo,15759
176
+ microEye/utils/retry_exec.py,sha256=y3kcaQO7jW15Et_XpiMaFJDBzm-x-FO0kPi0PhOZZeQ,987
177
+ microEye/utils/start_gui.py,sha256=H-mCFMSnnsAAYFU6bMc7bwjBtwh1Eyu-eRvQlGIdOvU,3177
178
+ microEye/utils/thread_worker.py,sha256=6OXwhXOmICRAUx8Y89nc6eye2Spj6xI8sj56GDva7s0,3325
179
+ microEye/utils/uImage.py,sha256=sdaS-m3Ile0X9f9so7kp0KUeXq1Fg_1vLxi0nXHg5kQ,46715
180
+ microEye/utils/hid/__init__.py,sha256=YE5w6iLjcXR27U1TvzSv6B-crsuAZzSbvRzdqEaA9A0,241
181
+ microEye/utils/hid/controller.py,sha256=90qUNOuL_GUrZduaklu-b2eUwNRwM1NdKXt6VNHnobM,5082
182
+ microEye/utils/hid/device.py,sha256=4BOhZpOLNsJUp1oOFb9MtW_NOzHQK3QHEK_qUTL2LgY,1563
183
+ microEye/utils/hid/enums.py,sha256=I316_fPOc8JlYLIyIDfo0AKiVgq_nID0CWA1P4T6ANc,4014
184
+ microEye/utils/hid/utils.py,sha256=md6xY1fkI4AI5H5y4u7AHY7iZ6SRGL-b3DCrvRXSrs4,1841
185
+ microeye-2.3.2.dist-info/licenses/LICENSE,sha256=IwGE9guuL-ryRPEKi6wFPI_zOhg7zDZbTYuHbSt_SAk,35823
186
+ microeye-2.3.2.dist-info/METADATA,sha256=G8q-5ENEihWoeG8XHZqyjcM6fbL_MiG40NmKUmr4WTM,27289
187
+ microeye-2.3.2.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
188
+ microeye-2.3.2.dist-info/entry_points.txt,sha256=scfi8i3dB67KYvrHeMa_W5sM2Dv7vyNe_Zk7jLtMhj8,52
189
+ microeye-2.3.2.dist-info/top_level.txt,sha256=Juv9M-Pj5MIxJxY5pJq4tM8TEwo25jWLWTAnvE4NAzQ,9
190
+ microeye-2.3.2.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (78.1.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ microEye = microEye.launcher:main