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.
- {microeye-2.4.2/src/microeye.egg-info → microeye-2.4.4}/PKG-INFO +60 -39
- {microeye-2.4.2 → microeye-2.4.4}/README.md +59 -38
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/_version.py +1 -1
- microeye-2.4.4/src/microEye/analysis/clustering/dbscan.py +459 -0
- microeye-2.4.4/src/microEye/analysis/clustering/plot.py +1141 -0
- microeye-2.4.4/src/microEye/analysis/clustering/rulers.py +361 -0
- microeye-2.4.4/src/microEye/analysis/file_system.py +394 -0
- microeye-2.4.4/src/microEye/analysis/fitting/aim.py +836 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/fit.py +2 -2
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/processing.py +60 -34
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/extract.py +16 -5
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/spline.py +1 -1
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/stats/core.py +2 -2
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/results.py +343 -222
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/results_stats.py +9 -5
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/multi_viewer.py +85 -272
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/processing/frc.py +1 -1
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/rendering/base.py +51 -16
- microeye-2.4.4/src/microEye/analysis/tools/batch.py +420 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/dark_cal/analysis.py +37 -12
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/dark_cal/compare.py +131 -8
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/dark_cal/constants.py +30 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/dark_cal/core.py +74 -6
- microeye-2.4.4/src/microEye/analysis/tools/dark_cal/plotting.py +453 -0
- microeye-2.4.4/src/microEye/analysis/tools/photon_cal/compare.py +1247 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/photon_cal/constants.py +2 -2
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/photon_cal/core.py +46 -32
- microeye-2.4.4/src/microEye/analysis/tools/photon_cal/plotting.py +299 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/registration.py +17 -5
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/utils/__init__.py +1 -1
- microeye-2.4.4/src/microEye/analysis/utils/windows.py +40 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/viewer/images.py +132 -93
- microeye-2.4.4/src/microEye/analysis/viewer/localizations.py +1975 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/viewer/psf.py +3 -2
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/camera_options.py +24 -1
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/camera_panel.py +12 -1
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/mieye/acquisition_manager.py +133 -119
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/mieye/miEye.py +10 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/pycromanager/devices.py +1 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/widgets/scan_acquisition.py +24 -8
- microeye-2.4.4/src/microEye/tools/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/display.py +27 -1
- microeye-2.4.4/src/microEye/utils/expandable_groupbox.py +179 -0
- microeye-2.4.4/src/microEye/utils/pyqt2mplt.py +1086 -0
- {microeye-2.4.2 → microeye-2.4.4/src/microeye.egg-info}/PKG-INFO +60 -39
- {microeye-2.4.2 → microeye-2.4.4}/src/microeye.egg-info/SOURCES.txt +8 -0
- microeye-2.4.2/src/microEye/analysis/tools/dark_cal/plotting.py +0 -153
- microeye-2.4.2/src/microEye/analysis/tools/photon_cal/compare.py +0 -580
- microeye-2.4.2/src/microEye/analysis/tools/photon_cal/plotting.py +0 -137
- microeye-2.4.2/src/microEye/analysis/utils/windows.py +0 -19
- microeye-2.4.2/src/microEye/analysis/viewer/localizations.py +0 -1319
- microeye-2.4.2/src/microEye/utils/expandable_groupbox.py +0 -93
- {microeye-2.4.2 → microeye-2.4.4}/LICENSE +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/MANIFEST.in +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/pyproject.toml +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/setup.cfg +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/setup.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/checklist_dialog.py +0 -0
- {microeye-2.4.2/src/microEye/analysis/fitting → microeye-2.4.4/src/microEye/analysis/clustering}/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/cmosMaps.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/filters/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/filters/base.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/filters/spatial.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/filters/temporal.py +0 -0
- {microeye-2.4.2/src/microEye/analysis/tools → microeye-2.4.4/src/microEye/analysis/fitting}/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/nena.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/phasor_fit.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/rubost_mean.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/stats/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/stats/curve_fit.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/stats/io.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/stats/slope_fit.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/temp.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/psf/test.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/CPU/CPUfunctions.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/CPU/CPUmleFit_LM.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/CPU/CPUsplineLib.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/CPU/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/GPU/GPUfunctions.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/GPU/GPUmleFit_LM_EMCCD.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/GPU/GPUmleFit_LM_sCMOS.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/GPU/GPUsplineLib.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/GPU/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/constants.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/pyfit3Dcspline/mainfunctions.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/rcc.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/fitting/tardis.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/processing/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/rendering/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/rendering/cloud.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/rendering/core.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/rendering/volumetric.py +0 -0
- {microeye-2.4.2/src/microEye/hardware/cams/basler → microeye-2.4.4/src/microEye/analysis/tools}/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/common.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/dark_cal/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/dark_cal/io.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/kymograms.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/photon_cal/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/photon_cal/analysis.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/photon_cal/io.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/photon_cal/models.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/photon_cal/table.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/roi_selectors.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/tools/sphere_cal.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/utils/coordinates.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/utils/images.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/viewer/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/viewer/image_options_widget.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/viewer/layers_widget.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/analysis/viewer/volume.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/__init__.py +0 -0
- {microeye-2.4.2/src/microEye/hardware/misc → microeye-2.4.4/src/microEye/hardware/cams/basler}/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/basler/basler_cam.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/basler/basler_panel.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/camera_calibration.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/camera_list.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/dummy/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/dummy/dummy_panel.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/jobs.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/line_profiler.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/linescan/IR_Cam.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/linescan/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/micam.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/pco/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/pco/enums.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/pco/pco_cam.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/pco/pco_panel.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/peak/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/peak/peak_camera.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/peak/peak_panel.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/pycromanager/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/pycromanager/pycro_cam.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/pycromanager/pycro_panel.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/shortcuts.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/thorlabs/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/thorlabs/thorlabs.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/thorlabs/thorlabs_panel.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/ueye/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/ueye/ueye_camera.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/ueye/ueye_panel.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/vimba/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/vimba/vimba_cam.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/cams/vimba/vimba_panel.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/device.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/lasers/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/lasers/io_matchbox.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/lasers/io_params.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/lasers/io_single_laser.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/lasers/laser_relay.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/mieye/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/mieye/devices_manager.py +0 -0
- {microeye-2.4.2/src/microEye/hardware/protocols → microeye-2.4.4/src/microEye/hardware/misc}/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/misc/acquisition_view.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/misc/reglo.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/misc/temp.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/port_config.py +0 -0
- {microeye-2.4.2/src/microEye/hardware/stages → microeye-2.4.4/src/microEye/hardware/protocols}/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/protocols/actions.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/protocols/actions_items.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/protocols/designer.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/protocols/scene_manager.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/protocols/serialization.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/pycromanager/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/pycromanager/core.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/pycromanager/enums.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/pycromanager/headless.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/pycromanager/utils.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/pycromanager/widgets/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/pycromanager/widgets/bridges.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/pycromanager/widgets/headless_manager.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/pycromanager/widgets/headless_options.py +0 -0
- {microeye-2.4.2/src/microEye/hardware/stages/stabilization → microeye-2.4.4/src/microEye/hardware/stages}/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/baseDevice.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/device.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/deviceID.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/devicePort.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/deviceStatus.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/devicesView.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/ellDevices.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/messageUpdater.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/motorInfo.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/stage.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/elliptec/test.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/kinesis/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/kinesis/kdc101/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/kinesis/kdc101/enums.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/kinesis/kdc101/factory.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/kinesis/kdc101/kdc101.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/kinesis/kinesis.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/manager.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/piezon_concept/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/piezon_concept/foc.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/pycromanager/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/pycromanager/core.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/smaract/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/smaract/mcs2.py +0 -0
- {microeye-2.4.2/src/microEye/icons → microeye-2.4.4/src/microEye/hardware/stages/stabilization}/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/stabilization/controller.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/stabilization/methods.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/stabilizer.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/stage.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/stages/view.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/widgets/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/widgets/controller.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/widgets/devices.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/widgets/focusWidget.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/widgets/indicator.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/widgets/qlist_slider.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/hardware/widgets/slides.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/1024.png +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/128.png +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/16.png +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/24.png +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/256.png +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/32.png +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/48.png +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/512.png +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/64.png +0 -0
- {microeye-2.4.2/src/microEye/tools → microeye-2.4.4/src/microEye/icons}/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/close.svg +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/mieye.png +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/min.svg +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/icons/viewer.png +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/images/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/images/handlers.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/images/uImage.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/images/zarr.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/launcher.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/qt.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/tools/color.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/tools/microscopy.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/enum_encoder.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/gui_helper.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/hid_utils/__init__.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/hid_utils/controller.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/hid_utils/device.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/hid_utils/enums.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/hid_utils/utils.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/labelled_slider.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/metadata.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/metadata_tree.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/micro_launcher.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/parameter_tree.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/pyscripting.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/retry_exec.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/start_gui.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microEye/utils/thread_worker.py +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microeye.egg-info/dependency_links.txt +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microeye.egg-info/entry_points.txt +0 -0
- {microeye-2.4.2 → microeye-2.4.4}/src/microeye.egg-info/requires.txt +0 -0
- {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.
|
|
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
|
<!--  -->
|
|
@@ -223,8 +223,12 @@ This toolkit is compatible with the [hardware](#hardware) used in our microscope
|
|
|
223
223
|
|
|
224
224
|
---
|
|
225
225
|
|
|
226
|
-
>
|
|
227
|
-
>
|
|
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
|
-
|
|
302
|
-
|
|
303
|
-
|
|
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
|
-
|
|
307
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
317
|
+
- Integrated Optics Lasers: Install [`Laser control software`](https://integratedoptics.com/downloads).
|
|
314
318
|
|
|
315
|
-
|
|
319
|
+
- PCO cameras: Install [`pco.sdk`, `pco.runtime`](https://www.excelitas.com/product/pco-software-development-kits).
|
|
316
320
|
|
|
317
|
-
|
|
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
|
-
>
|
|
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
|
|
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
|
-
>
|
|
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
|
-
>
|
|
457
|
+
> [!IMPORTANT]
|
|
446
458
|
>
|
|
447
|
-
>
|
|
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
|
-
|
|
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
|
-
>
|
|
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
|
-
>
|
|
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
|
-
>
|
|
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
|
-
|
|
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
|
-
>
|
|
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
|
-
>
|
|
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
|
-
>
|
|
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
|
<!--  -->
|
|
@@ -158,8 +158,12 @@ This toolkit is compatible with the [hardware](#hardware) used in our microscope
|
|
|
158
158
|
|
|
159
159
|
---
|
|
160
160
|
|
|
161
|
-
>
|
|
162
|
-
>
|
|
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
|
-
|
|
237
|
-
|
|
238
|
-
|
|
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
|
-
|
|
242
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
252
|
+
- Integrated Optics Lasers: Install [`Laser control software`](https://integratedoptics.com/downloads).
|
|
249
253
|
|
|
250
|
-
|
|
254
|
+
- PCO cameras: Install [`pco.sdk`, `pco.runtime`](https://www.excelitas.com/product/pco-software-development-kits).
|
|
251
255
|
|
|
252
|
-
|
|
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
|
-
>
|
|
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
|
|
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
|
-
>
|
|
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
|
-
>
|
|
392
|
+
> [!IMPORTANT]
|
|
381
393
|
>
|
|
382
|
-
>
|
|
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
|
-
|
|
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
|
-
>
|
|
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
|
-
>
|
|
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
|
-
>
|
|
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
|
-
|
|
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
|
-
>
|
|
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
|
-
>
|
|
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
|
-
>
|
|
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,
|
|
1
|
+
version_info = (2, 4, 4)
|
|
2
2
|
__version__ = '.'.join(map(str, version_info))
|