microeye 2.4.2__tar.gz → 2.4.4__tar.gz

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 (258) hide show
  1. {microeye-2.4.2/src/microeye.egg-info → microeye-2.4.4}/PKG-INFO +60 -39
  2. {microeye-2.4.2 → microeye-2.4.4}/README.md +59 -38
  3. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/_version.py +1 -1
  4. microeye-2.4.4/src/microEye/analysis/clustering/dbscan.py +459 -0
  5. microeye-2.4.4/src/microEye/analysis/clustering/plot.py +1141 -0
  6. microeye-2.4.4/src/microEye/analysis/clustering/rulers.py +361 -0
  7. microeye-2.4.4/src/microEye/analysis/file_system.py +394 -0
  8. microeye-2.4.4/src/microEye/analysis/fitting/aim.py +836 -0
  9. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/fit.py +2 -2
  10. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/processing.py +60 -34
  11. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/extract.py +16 -5
  12. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/spline.py +1 -1
  13. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/stats/core.py +2 -2
  14. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/results.py +343 -222
  15. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/results_stats.py +9 -5
  16. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/multi_viewer.py +85 -272
  17. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/processing/frc.py +1 -1
  18. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/rendering/base.py +51 -16
  19. microeye-2.4.4/src/microEye/analysis/tools/batch.py +420 -0
  20. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/dark_cal/analysis.py +37 -12
  21. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/dark_cal/compare.py +131 -8
  22. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/dark_cal/constants.py +30 -0
  23. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/dark_cal/core.py +74 -6
  24. microeye-2.4.4/src/microEye/analysis/tools/dark_cal/plotting.py +453 -0
  25. microeye-2.4.4/src/microEye/analysis/tools/photon_cal/compare.py +1247 -0
  26. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/photon_cal/constants.py +2 -2
  27. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/photon_cal/core.py +46 -32
  28. microeye-2.4.4/src/microEye/analysis/tools/photon_cal/plotting.py +299 -0
  29. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/registration.py +17 -5
  30. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/utils/__init__.py +1 -1
  31. microeye-2.4.4/src/microEye/analysis/utils/windows.py +40 -0
  32. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/viewer/images.py +132 -93
  33. microeye-2.4.4/src/microEye/analysis/viewer/localizations.py +1975 -0
  34. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/viewer/psf.py +3 -2
  35. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/camera_options.py +24 -1
  36. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/camera_panel.py +12 -1
  37. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/mieye/acquisition_manager.py +133 -119
  38. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/mieye/miEye.py +10 -0
  39. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/pycromanager/devices.py +1 -0
  40. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/widgets/scan_acquisition.py +24 -8
  41. microeye-2.4.4/src/microEye/tools/__init__.py +0 -0
  42. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/display.py +27 -1
  43. microeye-2.4.4/src/microEye/utils/expandable_groupbox.py +179 -0
  44. microeye-2.4.4/src/microEye/utils/pyqt2mplt.py +1086 -0
  45. {microeye-2.4.2 → microeye-2.4.4/src/microeye.egg-info}/PKG-INFO +60 -39
  46. {microeye-2.4.2 → microeye-2.4.4}/src/microeye.egg-info/SOURCES.txt +8 -0
  47. microeye-2.4.2/src/microEye/analysis/tools/dark_cal/plotting.py +0 -153
  48. microeye-2.4.2/src/microEye/analysis/tools/photon_cal/compare.py +0 -580
  49. microeye-2.4.2/src/microEye/analysis/tools/photon_cal/plotting.py +0 -137
  50. microeye-2.4.2/src/microEye/analysis/utils/windows.py +0 -19
  51. microeye-2.4.2/src/microEye/analysis/viewer/localizations.py +0 -1319
  52. microeye-2.4.2/src/microEye/utils/expandable_groupbox.py +0 -93
  53. {microeye-2.4.2 → microeye-2.4.4}/LICENSE +0 -0
  54. {microeye-2.4.2 → microeye-2.4.4}/MANIFEST.in +0 -0
  55. {microeye-2.4.2 → microeye-2.4.4}/pyproject.toml +0 -0
  56. {microeye-2.4.2 → microeye-2.4.4}/setup.cfg +0 -0
  57. {microeye-2.4.2 → microeye-2.4.4}/setup.py +0 -0
  58. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/__init__.py +0 -0
  59. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/__init__.py +0 -0
  60. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/checklist_dialog.py +0 -0
  61. {microeye-2.4.2/src/microEye/analysis/fitting → microeye-2.4.4/src/microEye/analysis/clustering}/__init__.py +0 -0
  62. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/cmosMaps.py +0 -0
  63. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/filters/__init__.py +0 -0
  64. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/filters/base.py +0 -0
  65. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/filters/spatial.py +0 -0
  66. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/filters/temporal.py +0 -0
  67. {microeye-2.4.2/src/microEye/analysis/tools → microeye-2.4.4/src/microEye/analysis/fitting}/__init__.py +0 -0
  68. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/nena.py +0 -0
  69. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/phasor_fit.py +0 -0
  70. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/__init__.py +0 -0
  71. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/rubost_mean.py +0 -0
  72. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/stats/__init__.py +0 -0
  73. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/stats/curve_fit.py +0 -0
  74. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/stats/io.py +0 -0
  75. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/stats/slope_fit.py +0 -0
  76. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/temp.py +0 -0
  77. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/test.py +0 -0
  78. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/CPU/CPUfunctions.py +0 -0
  79. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/CPU/CPUmleFit_LM.py +0 -0
  80. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/CPU/CPUsplineLib.py +0 -0
  81. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/CPU/__init__.py +0 -0
  82. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/GPU/GPUfunctions.py +0 -0
  83. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/GPU/GPUmleFit_LM_EMCCD.py +0 -0
  84. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/GPU/GPUmleFit_LM_sCMOS.py +0 -0
  85. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/GPU/GPUsplineLib.py +0 -0
  86. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/GPU/__init__.py +0 -0
  87. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/__init__.py +0 -0
  88. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/constants.py +0 -0
  89. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/mainfunctions.py +0 -0
  90. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/rcc.py +0 -0
  91. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/tardis.py +0 -0
  92. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/processing/__init__.py +0 -0
  93. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/rendering/__init__.py +0 -0
  94. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/rendering/cloud.py +0 -0
  95. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/rendering/core.py +0 -0
  96. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/rendering/volumetric.py +0 -0
  97. {microeye-2.4.2/src/microEye/hardware/cams/basler → microeye-2.4.4/src/microEye/analysis/tools}/__init__.py +0 -0
  98. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/common.py +0 -0
  99. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/dark_cal/__init__.py +0 -0
  100. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/dark_cal/io.py +0 -0
  101. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/kymograms.py +0 -0
  102. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/photon_cal/__init__.py +0 -0
  103. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/photon_cal/analysis.py +0 -0
  104. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/photon_cal/io.py +0 -0
  105. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/photon_cal/models.py +0 -0
  106. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/photon_cal/table.py +0 -0
  107. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/roi_selectors.py +0 -0
  108. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/sphere_cal.py +0 -0
  109. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/utils/coordinates.py +0 -0
  110. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/utils/images.py +0 -0
  111. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/viewer/__init__.py +0 -0
  112. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/viewer/image_options_widget.py +0 -0
  113. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/viewer/layers_widget.py +0 -0
  114. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/viewer/volume.py +0 -0
  115. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/__init__.py +0 -0
  116. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/__init__.py +0 -0
  117. {microeye-2.4.2/src/microEye/hardware/misc → microeye-2.4.4/src/microEye/hardware/cams/basler}/__init__.py +0 -0
  118. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/basler/basler_cam.py +0 -0
  119. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/basler/basler_panel.py +0 -0
  120. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/camera_calibration.py +0 -0
  121. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/camera_list.py +0 -0
  122. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/dummy/__init__.py +0 -0
  123. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/dummy/dummy_panel.py +0 -0
  124. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/jobs.py +0 -0
  125. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/line_profiler.py +0 -0
  126. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/linescan/IR_Cam.py +0 -0
  127. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/linescan/__init__.py +0 -0
  128. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/micam.py +0 -0
  129. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/pco/__init__.py +0 -0
  130. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/pco/enums.py +0 -0
  131. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/pco/pco_cam.py +0 -0
  132. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/pco/pco_panel.py +0 -0
  133. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/peak/__init__.py +0 -0
  134. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/peak/peak_camera.py +0 -0
  135. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/peak/peak_panel.py +0 -0
  136. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/pycromanager/__init__.py +0 -0
  137. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/pycromanager/pycro_cam.py +0 -0
  138. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/pycromanager/pycro_panel.py +0 -0
  139. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/shortcuts.py +0 -0
  140. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/thorlabs/__init__.py +0 -0
  141. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/thorlabs/thorlabs.py +0 -0
  142. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/thorlabs/thorlabs_panel.py +0 -0
  143. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/ueye/__init__.py +0 -0
  144. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/ueye/ueye_camera.py +0 -0
  145. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/ueye/ueye_panel.py +0 -0
  146. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/vimba/__init__.py +0 -0
  147. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/vimba/vimba_cam.py +0 -0
  148. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/vimba/vimba_panel.py +0 -0
  149. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/device.py +0 -0
  150. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/lasers/__init__.py +0 -0
  151. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/lasers/io_matchbox.py +0 -0
  152. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/lasers/io_params.py +0 -0
  153. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/lasers/io_single_laser.py +0 -0
  154. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/lasers/laser_relay.py +0 -0
  155. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/mieye/__init__.py +0 -0
  156. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/mieye/devices_manager.py +0 -0
  157. {microeye-2.4.2/src/microEye/hardware/protocols → microeye-2.4.4/src/microEye/hardware/misc}/__init__.py +0 -0
  158. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/misc/acquisition_view.py +0 -0
  159. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/misc/reglo.py +0 -0
  160. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/misc/temp.py +0 -0
  161. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/port_config.py +0 -0
  162. {microeye-2.4.2/src/microEye/hardware/stages → microeye-2.4.4/src/microEye/hardware/protocols}/__init__.py +0 -0
  163. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/protocols/actions.py +0 -0
  164. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/protocols/actions_items.py +0 -0
  165. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/protocols/designer.py +0 -0
  166. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/protocols/scene_manager.py +0 -0
  167. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/protocols/serialization.py +0 -0
  168. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/pycromanager/__init__.py +0 -0
  169. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/pycromanager/core.py +0 -0
  170. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/pycromanager/enums.py +0 -0
  171. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/pycromanager/headless.py +0 -0
  172. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/pycromanager/utils.py +0 -0
  173. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/pycromanager/widgets/__init__.py +0 -0
  174. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/pycromanager/widgets/bridges.py +0 -0
  175. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/pycromanager/widgets/headless_manager.py +0 -0
  176. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/pycromanager/widgets/headless_options.py +0 -0
  177. {microeye-2.4.2/src/microEye/hardware/stages/stabilization → microeye-2.4.4/src/microEye/hardware/stages}/__init__.py +0 -0
  178. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/__init__.py +0 -0
  179. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/baseDevice.py +0 -0
  180. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/device.py +0 -0
  181. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/deviceID.py +0 -0
  182. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/devicePort.py +0 -0
  183. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/deviceStatus.py +0 -0
  184. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/devicesView.py +0 -0
  185. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/ellDevices.py +0 -0
  186. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/messageUpdater.py +0 -0
  187. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/motorInfo.py +0 -0
  188. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/stage.py +0 -0
  189. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/test.py +0 -0
  190. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/kinesis/__init__.py +0 -0
  191. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/kinesis/kdc101/__init__.py +0 -0
  192. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/kinesis/kdc101/enums.py +0 -0
  193. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/kinesis/kdc101/factory.py +0 -0
  194. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/kinesis/kdc101/kdc101.py +0 -0
  195. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/kinesis/kinesis.py +0 -0
  196. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/manager.py +0 -0
  197. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/piezon_concept/__init__.py +0 -0
  198. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/piezon_concept/foc.py +0 -0
  199. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/pycromanager/__init__.py +0 -0
  200. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/pycromanager/core.py +0 -0
  201. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/smaract/__init__.py +0 -0
  202. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/smaract/mcs2.py +0 -0
  203. {microeye-2.4.2/src/microEye/icons → microeye-2.4.4/src/microEye/hardware/stages/stabilization}/__init__.py +0 -0
  204. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/stabilization/controller.py +0 -0
  205. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/stabilization/methods.py +0 -0
  206. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/stabilizer.py +0 -0
  207. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/stage.py +0 -0
  208. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/view.py +0 -0
  209. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/widgets/__init__.py +0 -0
  210. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/widgets/controller.py +0 -0
  211. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/widgets/devices.py +0 -0
  212. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/widgets/focusWidget.py +0 -0
  213. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/widgets/indicator.py +0 -0
  214. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/widgets/qlist_slider.py +0 -0
  215. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/widgets/slides.py +0 -0
  216. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/1024.png +0 -0
  217. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/128.png +0 -0
  218. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/16.png +0 -0
  219. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/24.png +0 -0
  220. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/256.png +0 -0
  221. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/32.png +0 -0
  222. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/48.png +0 -0
  223. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/512.png +0 -0
  224. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/64.png +0 -0
  225. {microeye-2.4.2/src/microEye/tools → microeye-2.4.4/src/microEye/icons}/__init__.py +0 -0
  226. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/close.svg +0 -0
  227. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/mieye.png +0 -0
  228. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/min.svg +0 -0
  229. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/viewer.png +0 -0
  230. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/images/__init__.py +0 -0
  231. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/images/handlers.py +0 -0
  232. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/images/uImage.py +0 -0
  233. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/images/zarr.py +0 -0
  234. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/launcher.py +0 -0
  235. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/qt.py +0 -0
  236. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/tools/color.py +0 -0
  237. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/tools/microscopy.py +0 -0
  238. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/__init__.py +0 -0
  239. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/enum_encoder.py +0 -0
  240. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/gui_helper.py +0 -0
  241. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/hid_utils/__init__.py +0 -0
  242. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/hid_utils/controller.py +0 -0
  243. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/hid_utils/device.py +0 -0
  244. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/hid_utils/enums.py +0 -0
  245. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/hid_utils/utils.py +0 -0
  246. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/labelled_slider.py +0 -0
  247. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/metadata.py +0 -0
  248. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/metadata_tree.py +0 -0
  249. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/micro_launcher.py +0 -0
  250. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/parameter_tree.py +0 -0
  251. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/pyscripting.py +0 -0
  252. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/retry_exec.py +0 -0
  253. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/start_gui.py +0 -0
  254. {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/thread_worker.py +0 -0
  255. {microeye-2.4.2 → microeye-2.4.4}/src/microeye.egg-info/dependency_links.txt +0 -0
  256. {microeye-2.4.2 → microeye-2.4.4}/src/microeye.egg-info/entry_points.txt +0 -0
  257. {microeye-2.4.2 → microeye-2.4.4}/src/microeye.egg-info/requires.txt +0 -0
  258. {microeye-2.4.2 → microeye-2.4.4}/src/microeye.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: microeye
3
- Version: 2.4.2
3
+ Version: 2.4.4
4
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
5
  Home-page: https://github.com/samhitech/microEye
6
6
  Author: Mohammad Nour Alsamsam
@@ -72,11 +72,11 @@ The **`microEye`** is a Python toolkit for fluorescence microscopy that supports
72
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
73
 
74
74
  ```bash
75
- __ ____ ____ ___ ____ ___
76
- / |/ (_)__________ / __/_ _____ _ __|_ |/ / / |_ |
77
- / /|_/ / / __/ __/ _ \/ _// // / -_) | |/ / __//_ _/ / __/
78
- /_/ /_/_/\__/_/ \___/___/\_, /\__/ |___/____(_)_/(_)____/
79
- /___/
75
+ __ ____ ____ ___ ____ ____
76
+ / |/ (_)__________ / __/_ _____ _ __|_ |/ / // / /
77
+ / /|_/ / / __/ __/ _ \/ _// // / -_) | |/ / __//_ _/_ _/
78
+ /_/ /_/_/\__/_/ \___/___/\_, /\__/ |___/____(_)_/(_)_/
79
+ /___/
80
80
  ```
81
81
 
82
82
  <!-- ![Package Health](https://snyk.io/advisor/python/microEye/badge.svg) -->
@@ -223,8 +223,12 @@ This toolkit is compatible with the [hardware](#hardware) used in our microscope
223
223
 
224
224
  ---
225
225
 
226
- > ⚠️ **Breaking Change:** Zarr V3 support requires **Python 3.11 or
227
- > newer**. Python 3.9 and 3.10 are no longer supported.
226
+ > [!CAUTION]
227
+ > **Breaking Change**
228
+ >
229
+ > - _Zarr V3 support requires Python 3.11 or
230
+ > newer._
231
+ > - _Python 3.9 and 3.10 are no longer supported._
228
232
 
229
233
  ## Table of Contents
230
234
 
@@ -283,38 +287,43 @@ This toolkit is compatible with the [hardware](#hardware) used in our microscope
283
287
  python -m pip install vmbpy-1.1.1-py3-none-win_amd64.whl
284
288
  ```
285
289
 
286
- **Important note**
287
-
288
- It has been observed that `vmbpy` can hang when initializing `GenICAM` transport layers (TLs) if the `GENICAM_GENTL64_PATH` environment variable contains `.cti` folders from other providers (e.g., `IDS Peak` or `pylon`). To avoid this, restrict `Vimba X` to load only its own TLs by explicitly specifying the `Vimba X` `.cti` directory in `VmbC.xml`.
289
-
290
290
  **Steps**
291
291
  1. **Auto (recommended)**
292
292
 
293
293
  Set the `VIMBA_X_HOME` environment variable to your `Vimba X` installation directory. `microEye` will read `VIMBA_X_HOME` at startup and use it to point the Vimba X transport-layer (`.cti`) configuration (e.g., `VIMBA_X_HOME/cti`).
294
294
 
295
- > Note: On Windows the `Vimba X installer` typically creates this variable automatically — verify it before manually setting it.
296
-
297
295
  2. **Manual**
298
296
 
299
297
  If the automatic method is not prefered, create the environment variable `VIMBA_X_CTI` and point it to the directory (or directories) that contain the `Vimba X` `.cti` transport-layer files. Use directory paths (not individual `.cti` files). Multiple directories are allowed — separate them with the platform-specific path separator.
300
298
 
301
- - Basler CMOS cameras: Install [`pylon`](https://www.baslerweb.com/en/downloads/software/?srsltid=AfmBOoqsMrbQT24hcWiCw-0ptD9PR7nCrPMBZSzi0YlI1CVItNQikMKW&downloadCategory.values.label.data=pylon) (_avoid installing it inside the Program Files directory_).
302
- - IDS CMOS cameras:
303
- - 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.
304
- - Alternatively, [`IDS Peak Extended Setup`](https://en.ids-imaging.com/download-peak.html) is prefered as it support old uEye models and the new uEye+ ones.
299
+ > [!CAUTION]
300
+ >
301
+ > It has been observed that `vmbpy` can hang when initializing `GenICAM` transport layers (TLs) if the `GENICAM_GENTL64_PATH` environment variable contains `.cti` folders from other providers (e.g., `IDS Peak` or `pylon`). To avoid this, restrict `Vimba X` to load only its own TLs by explicitly specifying the `Vimba X` `.cti` directory in `VmbC.xml`.
305
302
 
306
- > - The installation package also includes the uEye camera drivers for UI models in addition to the standard setup. Therefore, no installation of the IDS Software Suite is required for the operation of UI models.
307
- > - If the process cannot read the system-wide `GENICAM_GENTL_PATH`/`GENICAM_GENTL64_PATH`, add the same variable to your User environment variables (not just System) and restart any open terminals or applications for the change to take effect.
303
+ > [!TIP]
304
+ >
305
+ > _On Windows the `Vimba X installer` typically creates the `VIMBA_X_HOME` variable automatically — verify it before manually setting it._
308
306
 
309
- - Integrated Optics Lasers: Install [`Laser control software`](https://integratedoptics.com/downloads).
307
+ - Basler CMOS cameras: Install [`pylon`](https://www.baslerweb.com/en/downloads/software/?srsltid=AfmBOoqsMrbQT24hcWiCw-0ptD9PR7nCrPMBZSzi0YlI1CVItNQikMKW&downloadCategory.values.label.data=pylon) (_avoid installing it inside the Program Files directory_).
308
+ - IDS CMOS cameras:
309
+ - 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.
310
+ - Alternatively, [`IDS Peak Extended Setup`](https://en.ids-imaging.com/download-peak.html) is prefered as it support old uEye models and the new uEye+ ones.
310
311
 
311
- - PCO cameras: Install [`pco.sdk`, `pco.runtime`](https://www.excelitas.com/product/pco-software-development-kits).
312
+ > [!TIP]
313
+ >
314
+ > - _The installation package also includes the uEye camera drivers for UI models in addition to the standard setup. Therefore, no installation of the IDS Software Suite is required for the operation of UI models._
315
+ > - _If the process cannot read the system-wide `GENICAM_GENTL_PATH`/`GENICAM_GENTL64_PATH`, add the same variable to your User environment variables (not just System) and restart any open terminals or applications for the change to take effect._
312
316
 
313
- > **Note:** Support is under development.
317
+ - Integrated Optics Lasers: Install [`Laser control software`](https://integratedoptics.com/downloads).
314
318
 
315
- - 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.
319
+ - PCO cameras: Install [`pco.sdk`, `pco.runtime`](https://www.excelitas.com/product/pco-software-development-kits).
316
320
 
317
- - 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).
321
+ > [!NOTE]
322
+ > **Support is under development.**
323
+
324
+ - 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.
325
+
326
+ - 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).
318
327
 
319
328
  4. **Open a terminal and execute microEye:** :partying_face:
320
329
 
@@ -336,18 +345,21 @@ This toolkit is compatible with the [hardware](#hardware) used in our microscope
336
345
  --no-log-console Disable logging to console.
337
346
  ```
338
347
 
339
- > **Note:** Ensure all necessary drivers are installed for microEye to function properly.
348
+ > [!WARNING]
349
+ > _Ensure all necessary drivers are installed for microEye to function properly._
340
350
 
341
351
  ### Troubleshooting Installation
342
352
 
343
353
  If you encounter any issues during the installation process, please check the following:
344
354
 
345
- - Ensure that you have the latest version of Python installed (`3.9 ≤ version ≤3.11`).
355
+ - Ensure that you have the latest version of Python installed (`3.11.9`).
346
356
  - Try installing the required packages repeating step (2) or individually using `pip install <package_name>`.
347
357
  - Check the system requirements for specific hardware drivers and follow the installation instructions provided by the manufacturers.
348
358
  - Refer to the project's issue tracker on GitHub for any known installation issues and solutions.
349
359
 
350
- > 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.
360
+ > [!NOTE]
361
+ >
362
+ > _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._
351
363
 
352
364
  ## microEye Launcher
353
365
 
@@ -442,9 +454,10 @@ The `microEye` uses the following Python packages:
442
454
  | | scikit_learn | | QScintilla | | | tqdm |
443
455
  | | scipy | | | | | |
444
456
 
445
- > **Note:** The VimbaPython package is bundled with the Vimba SDK and must be installed manually.
457
+ > [!IMPORTANT]
446
458
  >
447
- > **IMPORTANT:** Starting from microEye v2.4.0, the legacy Vimba SDK is no longer supported. Please use the Vimba X SDK and its accompanying _vmbpy_ Python package instead.
459
+ > - _The VimbaPython package is bundled with the Vimba SDK and must be installed manually._
460
+ > - _Starting from microEye v2.4.0, the legacy Vimba SDK is no longer supported. Please use the Vimba X SDK and its accompanying **vmbpy** Python package instead._
448
461
 
449
462
  ## Microscope Scheme
450
463
 
@@ -523,7 +536,8 @@ The following table lists the hardware devices that are integrated and supported
523
536
 
524
537
  _Accessing other types of devices is under development!_
525
538
 
526
- > **Note:** Currently, only acquisition and focus stabilization features are implemented. Support for additional hardware and stage-related controls is under active development.
539
+ > [!NOTE]
540
+ > _Currently, only acquisition and focus stabilization features are implemented. Support for additional hardware and stage-related controls is under active development._
527
541
 
528
542
  ### Step-by-step Instructions
529
543
 
@@ -562,31 +576,38 @@ Special thanks to the following projects and libraries that make this work possi
562
576
 
563
577
  - **ACCéNT**: a partial implementation of the photon free calibration within the acquisition pipeline which generates pixel-wise mean and variance images.
564
578
 
565
- > 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)
579
+ > _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)_
566
580
 
567
581
  - **Phasor Fit**: We have implemented the 2D phasor fitting algorithm in Python for fast pre-fitting visualization of localizations.
568
582
 
569
- > 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).
583
+ > _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)._
570
584
 
571
585
  - **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).
572
586
 
573
- > 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)
587
+ > _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)_
574
588
 
575
589
  - **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:
576
- > Martens et al., “Temporal analysis of relative distances (TARDIS) is a robust, parameter-free alternative to single-particle tracking”, Nature Methods (2024). [Article](https://rdcu.be/dv1sr)
577
590
 
578
- **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.
591
+ > _Martens et al., “Temporal analysis of relative distances (TARDIS) is a robust, parameter-free alternative to single-particle tracking”, Nature Methods (2024). [Article](https://rdcu.be/dv1sr)_
579
592
 
580
- > I make it a standard practice to cite and provide credit within a function's docstring whenever I draw inspiration from any external reference.
593
+ > [!IMPORTANT]
594
+ > **Disclaimer**
595
+ > _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._
596
+ >
597
+ > _I make it a standard practice to cite and provide credit within a function's docstring whenever I draw inspiration from any external reference._
581
598
 
582
599
  ## Citation
583
600
 
584
601
  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:
585
602
 
586
- > 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)
603
+ > **miEye (2022) HardwareX**
604
+ >
605
+ > _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)_
587
606
 
588
607
  Additionally, we would appreciate it if you could provide a link to our GitHub repository or any relevant publication associated with the software.
589
608
 
590
- > Alsamsam, M. N. microEye, <https://github.com/samhitech/microEye> [Computer software]
609
+ > **Software Citation**
610
+ >
611
+ > _Alsamsam, M. N. microEye, <https://github.com/samhitech/microEye> [Computer software]_
591
612
 
592
613
  Thank you for your support!
@@ -7,11 +7,11 @@ The **`microEye`** is a Python toolkit for fluorescence microscopy that supports
7
7
  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).
8
8
 
9
9
  ```bash
10
- __ ____ ____ ___ ____ ___
11
- / |/ (_)__________ / __/_ _____ _ __|_ |/ / / |_ |
12
- / /|_/ / / __/ __/ _ \/ _// // / -_) | |/ / __//_ _/ / __/
13
- /_/ /_/_/\__/_/ \___/___/\_, /\__/ |___/____(_)_/(_)____/
14
- /___/
10
+ __ ____ ____ ___ ____ ____
11
+ / |/ (_)__________ / __/_ _____ _ __|_ |/ / // / /
12
+ / /|_/ / / __/ __/ _ \/ _// // / -_) | |/ / __//_ _/_ _/
13
+ /_/ /_/_/\__/_/ \___/___/\_, /\__/ |___/____(_)_/(_)_/
14
+ /___/
15
15
  ```
16
16
 
17
17
  <!-- ![Package Health](https://snyk.io/advisor/python/microEye/badge.svg) -->
@@ -158,8 +158,12 @@ This toolkit is compatible with the [hardware](#hardware) used in our microscope
158
158
 
159
159
  ---
160
160
 
161
- > ⚠️ **Breaking Change:** Zarr V3 support requires **Python 3.11 or
162
- > newer**. Python 3.9 and 3.10 are no longer supported.
161
+ > [!CAUTION]
162
+ > **Breaking Change**
163
+ >
164
+ > - _Zarr V3 support requires Python 3.11 or
165
+ > newer._
166
+ > - _Python 3.9 and 3.10 are no longer supported._
163
167
 
164
168
  ## Table of Contents
165
169
 
@@ -218,38 +222,43 @@ This toolkit is compatible with the [hardware](#hardware) used in our microscope
218
222
  python -m pip install vmbpy-1.1.1-py3-none-win_amd64.whl
219
223
  ```
220
224
 
221
- **Important note**
222
-
223
- It has been observed that `vmbpy` can hang when initializing `GenICAM` transport layers (TLs) if the `GENICAM_GENTL64_PATH` environment variable contains `.cti` folders from other providers (e.g., `IDS Peak` or `pylon`). To avoid this, restrict `Vimba X` to load only its own TLs by explicitly specifying the `Vimba X` `.cti` directory in `VmbC.xml`.
224
-
225
225
  **Steps**
226
226
  1. **Auto (recommended)**
227
227
 
228
228
  Set the `VIMBA_X_HOME` environment variable to your `Vimba X` installation directory. `microEye` will read `VIMBA_X_HOME` at startup and use it to point the Vimba X transport-layer (`.cti`) configuration (e.g., `VIMBA_X_HOME/cti`).
229
229
 
230
- > Note: On Windows the `Vimba X installer` typically creates this variable automatically — verify it before manually setting it.
231
-
232
230
  2. **Manual**
233
231
 
234
232
  If the automatic method is not prefered, create the environment variable `VIMBA_X_CTI` and point it to the directory (or directories) that contain the `Vimba X` `.cti` transport-layer files. Use directory paths (not individual `.cti` files). Multiple directories are allowed — separate them with the platform-specific path separator.
235
233
 
236
- - Basler CMOS cameras: Install [`pylon`](https://www.baslerweb.com/en/downloads/software/?srsltid=AfmBOoqsMrbQT24hcWiCw-0ptD9PR7nCrPMBZSzi0YlI1CVItNQikMKW&downloadCategory.values.label.data=pylon) (_avoid installing it inside the Program Files directory_).
237
- - IDS CMOS cameras:
238
- - 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.
239
- - Alternatively, [`IDS Peak Extended Setup`](https://en.ids-imaging.com/download-peak.html) is prefered as it support old uEye models and the new uEye+ ones.
234
+ > [!CAUTION]
235
+ >
236
+ > It has been observed that `vmbpy` can hang when initializing `GenICAM` transport layers (TLs) if the `GENICAM_GENTL64_PATH` environment variable contains `.cti` folders from other providers (e.g., `IDS Peak` or `pylon`). To avoid this, restrict `Vimba X` to load only its own TLs by explicitly specifying the `Vimba X` `.cti` directory in `VmbC.xml`.
240
237
 
241
- > - The installation package also includes the uEye camera drivers for UI models in addition to the standard setup. Therefore, no installation of the IDS Software Suite is required for the operation of UI models.
242
- > - If the process cannot read the system-wide `GENICAM_GENTL_PATH`/`GENICAM_GENTL64_PATH`, add the same variable to your User environment variables (not just System) and restart any open terminals or applications for the change to take effect.
238
+ > [!TIP]
239
+ >
240
+ > _On Windows the `Vimba X installer` typically creates the `VIMBA_X_HOME` variable automatically — verify it before manually setting it._
243
241
 
244
- - Integrated Optics Lasers: Install [`Laser control software`](https://integratedoptics.com/downloads).
242
+ - Basler CMOS cameras: Install [`pylon`](https://www.baslerweb.com/en/downloads/software/?srsltid=AfmBOoqsMrbQT24hcWiCw-0ptD9PR7nCrPMBZSzi0YlI1CVItNQikMKW&downloadCategory.values.label.data=pylon) (_avoid installing it inside the Program Files directory_).
243
+ - IDS CMOS cameras:
244
+ - 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.
245
+ - Alternatively, [`IDS Peak Extended Setup`](https://en.ids-imaging.com/download-peak.html) is prefered as it support old uEye models and the new uEye+ ones.
245
246
 
246
- - PCO cameras: Install [`pco.sdk`, `pco.runtime`](https://www.excelitas.com/product/pco-software-development-kits).
247
+ > [!TIP]
248
+ >
249
+ > - _The installation package also includes the uEye camera drivers for UI models in addition to the standard setup. Therefore, no installation of the IDS Software Suite is required for the operation of UI models._
250
+ > - _If the process cannot read the system-wide `GENICAM_GENTL_PATH`/`GENICAM_GENTL64_PATH`, add the same variable to your User environment variables (not just System) and restart any open terminals or applications for the change to take effect._
247
251
 
248
- > **Note:** Support is under development.
252
+ - Integrated Optics Lasers: Install [`Laser control software`](https://integratedoptics.com/downloads).
249
253
 
250
- - 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.
254
+ - PCO cameras: Install [`pco.sdk`, `pco.runtime`](https://www.excelitas.com/product/pco-software-development-kits).
251
255
 
252
- - 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).
256
+ > [!NOTE]
257
+ > **Support is under development.**
258
+
259
+ - 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.
260
+
261
+ - 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).
253
262
 
254
263
  4. **Open a terminal and execute microEye:** :partying_face:
255
264
 
@@ -271,18 +280,21 @@ This toolkit is compatible with the [hardware](#hardware) used in our microscope
271
280
  --no-log-console Disable logging to console.
272
281
  ```
273
282
 
274
- > **Note:** Ensure all necessary drivers are installed for microEye to function properly.
283
+ > [!WARNING]
284
+ > _Ensure all necessary drivers are installed for microEye to function properly._
275
285
 
276
286
  ### Troubleshooting Installation
277
287
 
278
288
  If you encounter any issues during the installation process, please check the following:
279
289
 
280
- - Ensure that you have the latest version of Python installed (`3.9 ≤ version ≤3.11`).
290
+ - Ensure that you have the latest version of Python installed (`3.11.9`).
281
291
  - Try installing the required packages repeating step (2) or individually using `pip install <package_name>`.
282
292
  - Check the system requirements for specific hardware drivers and follow the installation instructions provided by the manufacturers.
283
293
  - Refer to the project's issue tracker on GitHub for any known installation issues and solutions.
284
294
 
285
- > 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.
295
+ > [!NOTE]
296
+ >
297
+ > _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._
286
298
 
287
299
  ## microEye Launcher
288
300
 
@@ -377,9 +389,10 @@ The `microEye` uses the following Python packages:
377
389
  | | scikit_learn | | QScintilla | | | tqdm |
378
390
  | | scipy | | | | | |
379
391
 
380
- > **Note:** The VimbaPython package is bundled with the Vimba SDK and must be installed manually.
392
+ > [!IMPORTANT]
381
393
  >
382
- > **IMPORTANT:** Starting from microEye v2.4.0, the legacy Vimba SDK is no longer supported. Please use the Vimba X SDK and its accompanying _vmbpy_ Python package instead.
394
+ > - _The VimbaPython package is bundled with the Vimba SDK and must be installed manually._
395
+ > - _Starting from microEye v2.4.0, the legacy Vimba SDK is no longer supported. Please use the Vimba X SDK and its accompanying **vmbpy** Python package instead._
383
396
 
384
397
  ## Microscope Scheme
385
398
 
@@ -458,7 +471,8 @@ The following table lists the hardware devices that are integrated and supported
458
471
 
459
472
  _Accessing other types of devices is under development!_
460
473
 
461
- > **Note:** Currently, only acquisition and focus stabilization features are implemented. Support for additional hardware and stage-related controls is under active development.
474
+ > [!NOTE]
475
+ > _Currently, only acquisition and focus stabilization features are implemented. Support for additional hardware and stage-related controls is under active development._
462
476
 
463
477
  ### Step-by-step Instructions
464
478
 
@@ -497,31 +511,38 @@ Special thanks to the following projects and libraries that make this work possi
497
511
 
498
512
  - **ACCéNT**: a partial implementation of the photon free calibration within the acquisition pipeline which generates pixel-wise mean and variance images.
499
513
 
500
- > 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)
514
+ > _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)_
501
515
 
502
516
  - **Phasor Fit**: We have implemented the 2D phasor fitting algorithm in Python for fast pre-fitting visualization of localizations.
503
517
 
504
- > 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).
518
+ > _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)._
505
519
 
506
520
  - **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).
507
521
 
508
- > 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)
522
+ > _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)_
509
523
 
510
524
  - **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:
511
- > Martens et al., “Temporal analysis of relative distances (TARDIS) is a robust, parameter-free alternative to single-particle tracking”, Nature Methods (2024). [Article](https://rdcu.be/dv1sr)
512
525
 
513
- **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.
526
+ > _Martens et al., “Temporal analysis of relative distances (TARDIS) is a robust, parameter-free alternative to single-particle tracking”, Nature Methods (2024). [Article](https://rdcu.be/dv1sr)_
514
527
 
515
- > I make it a standard practice to cite and provide credit within a function's docstring whenever I draw inspiration from any external reference.
528
+ > [!IMPORTANT]
529
+ > **Disclaimer**
530
+ > _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._
531
+ >
532
+ > _I make it a standard practice to cite and provide credit within a function's docstring whenever I draw inspiration from any external reference._
516
533
 
517
534
  ## Citation
518
535
 
519
536
  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:
520
537
 
521
- > 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)
538
+ > **miEye (2022) HardwareX**
539
+ >
540
+ > _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)_
522
541
 
523
542
  Additionally, we would appreciate it if you could provide a link to our GitHub repository or any relevant publication associated with the software.
524
543
 
525
- > Alsamsam, M. N. microEye, <https://github.com/samhitech/microEye> [Computer software]
544
+ > **Software Citation**
545
+ >
546
+ > _Alsamsam, M. N. microEye, <https://github.com/samhitech/microEye> [Computer software]_
526
547
 
527
548
  Thank you for your support!
@@ -1,2 +1,2 @@
1
- version_info = (2, 4, 2)
1
+ version_info = (2, 4, 4)
2
2
  __version__ = '.'.join(map(str, version_info))