Skip to main content

A python toolkit for fluorescence microscopy that features industrial-grade CMOS cameras and Integrated Optics laser combiner MatchBox.

Project description

microEye

A python toolkit for fluorescence microscopy that features IDS uEye industrial-grade CMOS cameras.

The Acquisition Module allows multi-cam image acquisition within one graphical user interface.

The Control Module allows setting the laser excitation presets, manual focus and automatic focus stabilization by monitoring the peak position of a totally internally reflected IR beam and moving the piezo stage accordingly.

The Tiff Viewer Module allows accessing tiff images (single file and sequecnces) of order TYX (2D SMLM), also allows for visualizing the filtering-localization process WYSIWYG.

This toolkit is compatible with the hardware we are using in our microscope. For further details check our miEye microscope's paper and OSF project.

Uses Packages

  • Numpy
  • scipy
  • pandas
  • Zarr
  • dask
  • pyueye
  • cv2
  • tifffile
  • PyQt5
  • pyqtgraph
  • qdarkstyle
  • ome-types
  • hidapi
  • pyqode.python (Jedi Fix)
  • VimbaPython (Included in Vimba SDK and installed manually)

How to Install Package

  1. Download and install the latest Python 3.9 stable release. (We tested with 3.9.4 and 3.9.7)

  2. Open a terminal and install microEye package using pip.

    pip install microEye

  3. Download the file requirements.txt and install the microEye required packages by executing the following line. (This may take a while)

    pip install -r /path/to/requirements.txt

  4. Install the dependent hardware specific drivers for the cameras if you intend to use the hardware control or acquisition modules. (microEye might not function as expected in case drivers are missing)

    • Integrated Optics Laser control software.

    • IDS uEye CMOS cameras: install IDS Software Suite 4.96.1 for Windows 32/64-bit. (We did not test it with Linux)

    • Allied Vision CMOS cameras: install the Vimba SDK 5.0 or 6.0 outside the Program Files to skip the run as admin requirement, then in a terminal navigate to directory [.../Allied Vision/Vimba_5.0/VimbaPython/] where [setup.py] is located and execute:

    python -m pip install .

    • Thorlabs CMOS cameras: install Thorcam in its default directory as it is initial to have uc480_64.dll in path 'C:\Program Files\Thorlabs\Scientific Imaging\ThorCam\uc480_64.dll'. (Note, Thorlabs cameras can get identified by Windows as IDS uEye cameras and run without this software)
  5. Other hardware used by the miEye microscope include:

  6. Download and run examples to start using microEye! :partying_face:

Microscope Scheme

Schematic overview of the miEye instrument. A) The excitation path via single-mode fiber (SMF) for TIRF-, HILO-, and Epi-mode. B) The excitation path via multi-mode fiber (MMF) for Epi-mode when imaging MMF output on the sample plane. C) The fluorescence emission path. D) IR laser-based autofocusing path. AC: achromat lens, AS: aspheric lens, BFP: back-focal plane, TL: tube lens, B: B-coated N-BK7 optics, BS: beamsplitter.

quadScheme_4

scheme_git_0

Hardware

  • Supported Cameras:
    • IDS uEye industrial-grade CMOS cameras, specifically UI-3060CP Rev. 2.
    • Thorlabs DCx cameras using the UC480 driver, specifically DCC1545M.
    • Allied Vision cameras using Vimba SDK, specifically Alvium 1800 U-158m.
  • Integrated Optics Multi-wavelength Laser Combiner MatchBox.
  • Piezo Concept nanopositioner for microscope objectives FOC.
  • Thorlab's Elliptec Dual-Position/Four-Position (ELL6/ELL9) support.
  • Thorlab's Kinesis KDC101 controller for Z825B 25mm motorized actuators used for the XY stage instead of manual micrometers. (Requires activating USB VCP to access the COM port from device manger)
  • Parallax Linescan Camera Module used for IR autofocus stabilization tracking TSL1401-DB (#28317) acquisition done by an Arduino LineScanner.
  • RelayBox arduino for laser control using the camera flash signal with different presets.
  • Parts list of our miEye OSF Project an iteration of hohlbeinlab miCube.

Acquisition Module

acquisition_module

How to use

For Vimba SDK to work the script should be executed as administrator on Windows and wrapped in a with statement:

 from microEye.hardware import acquisition_module

 try:
     import vimba as vb
 except Exception:
     vb = None


 if vb:
     with vb.Vimba.get_instance() as vimba:
         app, window = acquisition_module.StartGUI()

         app.exec_()
 else:
     app, window = acquisition_module.StartGUI()

     app.exec_()

Control Module

control_module

How to use

from microEye.hardware import control_module

app, window = control_module.StartGUI()
app.exec_()

miEye Module

TBA

Data Viewer / Processor

Capture_viewer Capture_viewer_2 Capture_viewer_3

How to use

from microEye import tiff_viewer

app, window = tiff_viewer.StartGUI('D:/')

app.exec_()

Authors

Mohammad Nour Alsamsam

Twitter URL

People Involved

Dr. Marijonas Tutkus (supervision)

Twitter URL

Aurimas Kopūstas (sample preparation and experiments)

Acknowledgement

ack

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

microEye-1.0.1.tar.gz (492.7 kB view hashes)

Uploaded Source

Built Distribution

microEye-1.0.1-py3-none-any.whl (514.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page