User Guide

Starting Micro-Manager

After completing the Installation/setup, Pycro-Manager offers two running modes:

  1. Alongside Micro-Manager’s desktop application. This is recommended for new users, as it provides access to the Micro-Manager GUI for microscope configuration and hardware testing.

  2. Headless Mode, where the Micro-Manager Core is launched programmatically without the desktop application.

The Backends page provides more information on pycro-manager’s architecture and headless mode (which is not required for most users).

High-level APIs

The Acquisition class provides the best starting point for most users. It offers:

  • Control of common microscopy experiments (3D volumes, time series, multi-channel data)

  • Customization for non-standard hardware and acquisition schemes

  • Data access via the Dataset class as numpy or dask arrays

  • A built-in image viewer (which can be disabled for custom applications)

For more information, see Acquisitions.

Low-level APIs

The Micro-Manager Core allows direct hardware control, such as:

  • Getting/setting XY stage or focus drive positions

  • Snapping a single image on a camera

For more information, see Low-level Control with MMCore.

Java Control Through Python

In addition to the Python interfaces, Pycro-Manager can call Java code from Python (using the PyJavaZ library). This offers:

  1. Micro-Manager UI Control: Interact with the Micro-Manager user interface programmatically through the Calling Micro-manager Java (“Studio”) API.

  2. Plugin Support: Control Micro-Manager plugins, such as Micro-Magellan, from Python. See Controlling Micro-Magellan for more information.

  3. Legacy Script Compatibility: Run existing Micro-Manager scripts written in Beanshell with minimal modifications.

  4. Custom Java Integration: Incorporate your own Java code into Python workflows. See Calling custom Java code for details.