Control microscopes with Python¶
A set of Python packages for running a microscope through Micro-Manager's C++ core and device adapters, with no Java process involved. Script your hardware, run multi-dimensional acquisitions, build your own GUI, or just use one of ours.
Where to start¶
-
Script a microscope
Load a configuration, move stages, snap images, and connect callbacks to changes in the core, from a script or a notebook.
-
Run acquisitions
Describe time-lapses, z-stacks, channels and positions with
useq, run them with an acquisition engine you can customize, and save to OME-Zarr or OME-TIFF. -
Build a GUI
Combine Qt widgets (property browsers, stage controls, MDA editors, image previews, etc...) into your own application.
-
Just use an app
Point-and-click microscope control with
pymmcore-gui, or inside napari withnapari-micromanager.
Getting Started goes through these in order, using Micro-Manager's demo devices (no microscope required). If you already know Micro-Manager, Coming from Micro-Manager maps what you know onto these packages.
How the pieces fit together¶
Each package builds on the ones below it. You only need to go as far up the stack
as you want (pymmcore-plus on its own is enough to script a microscope).
Micro-Manager's demo devices, or your own hardware
Community¶
-
Ask a question on the image.sc forum
-
Chat with developers on Zulip
-
Report a bug or request a feature on GitHub