/microEye

A python toolkit for fluorescence microscopy.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

The microEye

The microEye is a Python toolkit for fluorescence microscopy that supports super-resolution single-molecule localization microscopy and single-particle tracking. It features hardware control, data analysis, and visualization.

This toolkit is compatible with the hardware used in our microscope. For further details, refer to the miEye microscope paper and OSF project.

Package Health Python Version Package Version Package Version Package Version DOI

   __  ____              ____                ___   ___   ___ 
  /  |/  (_)__________  / __/_ _____   _  __|_  | / _ \ / _ \
 / /|_/ / / __/ __/ _ \/ _// // / -_) | |/ / __/_/ // // // /
/_/  /_/_/\__/_/  \___/___/\_, /\__/  |___/____(_)___(_)___/ 
                          /___/

Modules

The miEye Module

The miEye_module provides the primary graphical user interface (GUI) for microscope control and data acquisition, combining the functionalities of the deprecated Acquisition and Control modules.

miEye module Acquisition Camera
miEye CamStack

How to use:

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

from microEye.hardware import miEye_module

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

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

The Multi Viewer Module

The multi_viewer Module is an improved GUI that replaces the deprecated tiff_viewer module. It allows users to process multiple files and provides data analysis and visualization tools for super-resolution single-molecule localization microscopy and single-particle tracking.

Raw Data Localizations
imagesStack locStack

How to use:

from microEye import multi_viewer

app, window = multi_viewer.StartGUI('')

app.exec_()

Uses Packages

The microEye uses the following Python packages:

Data Analysis and Visualization GUI and UI Development Code Quality and Formatting Image and Video Processing File and Data Storage Other Utilities
dask PyQt5 autopep8 opencv-python ome-types hidapi
h5py pyqtdarktheme pyflakes tables pyfiglet
matplotlib pyqtgraph zarr pyserial
numba QDarkStyle pyueye
numpy QScintilla setuptools
pandas tabulate
scikit-image VimbaPython
scikit-learn
scipy
tifffile
vispy

Note: VimbaPython is included in Vimba SDK and needs to be installed manually.

How to Install microEye

  1. Install Python:

    Download and install the latest Python 3.9 stable release.

  2. Install microEye package:

    Open a terminal and execute the following command to install microEye using pip:

    pip install microEye
  3. Install required packages:

    Download the requirements.txt file. Navigate to the directory containing the requirements file in your terminal and run:

    pip install -r requirements.txt

    Note: This step might take a while.

  4. Install specific hardware drivers: (Optional)

    • For Integrated Optics: Download and install Laser control software.

    • For IDS uEye CMOS cameras: Install IDS Software Suite 4.96.1 for Windows 32/64-bit.

    • For Allied Vision CMOS cameras: Install Vimba SDK 5.0 or 6.0 outside the Program Files. Navigate to the directory containing setup.py and run:

      python -m pip install .
    • For Thorlabs CMOS cameras: Install Thorcam in its default directory. Note: Some Thorlabs cameras may be identified as IDS uEye cameras by Windows and may run without Thorcam.

    • For Thorlabs hardware, install Kinesis® Software and Elliptec™ Software.

  5. Download and run examples: Download examples to start using microEye!

🥳 Note: Ensure all necessary drivers are installed for microEye to function properly.

Microscope Scheme

Schematic overview of the miEye instrument:

  • A) Single-Mode Fiber (SMF): Excitation path for TIRF-, HILO-, and Epi-mode.
  • B) Multi-Mode Fiber (MMF): Excitation path for Epi-mode when imaging MMF output on the sample plane.
  • C) Fluorescence Emission: Path for fluorescence emission.
  • D) Automatic Focus Stabilization: the automatic focus stabilization path using an IR laser in TIRF setting.
Scheme 1 Scheme 2
Quad Scheme Scheme GIT

Key Components: AC: Achromat lens, AS: Aspheric lens, BFP: Back-focal plane, TL: Tube lens, B: B-coated N-BK7 optics, BS: Beamsplitter.

Hardware

Supported Cameras

Camera Description Link
IDS uEye UI-3060CP Rev. 2 IDS industrial-grade CMOS cameras Link
Thorlabs DCC1545M DCx camera using UC480 driver Link
Allied Vision Alvium 1800 Allied Vision industrial-grade CMOS cameras (U-158m, U-511m) Link

Additional Hardware

Hardware Description Link
Integrated Optics MatchBox Multi-wavelength Laser Combiner, Single Laser MatchBox Link
Piezo Concept FOC Nanopositioner for microscope objectives Link
Thorlabs Elliptec ELL6/ELL9 Dual/Four-Position Support ELL6, ELL9
Thorlabs KDC101 Kinesis Controller for Z825B/Z925B actuators (Activate USB VCP to access the COM port in device manager) Link
Parallax TSL1401-DB (#28317) Linescan Camera Module Link
RelayBox Arduino For laser control using camera GPIO signals RelayBox
miEye OSF Project Parts List Parts list of miEye OSF Project Link

Authors

Mohammad Nour Alsamsam, PhD student @ Vilnius University.

Twitter URL

People Involved

PhD supervision: Dr. Marijonas Tutkus

Twitter URL

Sample preparation, experiments and testing:

Acknowledgement

Research and access to intruments and samples is credited to:

  • Vilnius University, Lithuania.
  • Center For Physical Sciences and Technology, Vilnius, Lithuania.
  • Research Council of Lithuania.