Skip to main content

Dirigo is an extensible backend for scientific image acquisition

Project description

Dirigo

PyPI Documentation Status

Dirigo is an extensible, high-performance backend for scientific image acquisition, designed with high-speed laser scanning microscopy in mind but adaptable to a wide range of medium- to high-complexity imaging systems.

Dirigo separates hardware control, acquisition logic, and user interface, making it easy to:

  • Add new hardware via plugin drivers that implement generic device interfaces (digitizers, scanners, stages, cameras, etc.)

  • Reconfigure data acquisition and processing pipelines using a Worker/publisher–subscriber model

  • Integrate adaptive acquisition strategies through feedback loops between processing and control

  • Build custom GUIs or integrate with existing tools via a clean API (a reference GUI is available as a separate package)

Performance-critical operations are accelerated with Numba JIT compilation, releasing the GIL during execution and enabling parallel/vectorized processing.

Dirigo follows a modular, package-oriented architecture: almost all components—hardware drivers, processing modules, GUIs—are separate Python packages that can be developed, installed, and updated independently.

Dirigo is in very early development. While the API and architecture are functional, documentation and ready-to-use releases are in progress.

Digitizer ↔ LSM mode compatibility

Legend: ✓ supported now · △ possible/experimental · ✗ not recommended/unsupported · — unknown

Digitizer (vendor/model family) Galvo–Galvo analog Galvo–Galvo photon counting Resonant–Galvo analog Polygon–Galvo analog
NI X-Series (e.g., PCIe-63xx) ✓* ✓ (up to 4 chan.) ✗† ✗†
NI S-Series (e.g., PCI-6110/6115) ✓ (up to 2 chan.) △§ △§
AlazarTech (e.g., ATS9440)
Teledyne SP Devices (e.g., ADQ32)
Other / custom (contact TDW)

Notes
* Multichannel acquisition subject to aggregate AI sample rate (e.g 2 channels: 500 kS/s, 4 channels 250 kS/s).
† AI sample rate typically insufficient for resonant/polygon rates.
§ Borderline: Max sample rate may limit pixels per line, dependent on scanner frequency. Not yet validated.

Installation

Dirigo should be installed in a virtual environment. We recommend miniconda. Install Dirigo from PyPI with pip install dirigo. To enable additional hardware and acquisition modes, also install Dirigo plugins. A list can be found here: https://github.com/orgs/dirigo-developers/repositories

Initialization

Verify installations (with miniconda, conda list) and run the initialization script by running dirigo-init. This script will set up Dirigo settings folders and files. It will not overwrite existing files.

System configuration

The system_config.toml file contains a list of the available hardware, the associated Python entry point, and information required to configure each device. An example can be found here: system_config.toml

Frame specification

Acquisition sequence variables (e.g. frame size) are described with a specification file. The initialization script will generate a FrameAcquisition specification file at Dirigo/acquisitions/frame/default.toml which should be updated before starting Dirigo.

Digitizer profile

Groups of settable parameters for devices are group into profiles. The initialization script will generate a blank digitizer profile at Dirigo/acquisitions/frame/default.toml which will need to be updated. An example from the dirigo-alazar plugin can be found here: default_ats9440.toml

Funding

Development of Dirigo has been supported in part by the National Cancer Institute of the National Institutes of Health under award number R01CA249151.

The content of this repository is solely the responsibility of the authors and does not necessarily represent the official views of the National Institutes of Health.

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

dirigo-0.3.10.tar.gz (84.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dirigo-0.3.10-py3-none-any.whl (96.5 kB view details)

Uploaded Python 3

File details

Details for the file dirigo-0.3.10.tar.gz.

File metadata

  • Download URL: dirigo-0.3.10.tar.gz
  • Upload date:
  • Size: 84.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for dirigo-0.3.10.tar.gz
Algorithm Hash digest
SHA256 004084c4df2af2036c306811dc428dc3564665523a2bf2d450379b3df857f1bd
MD5 30abe36f8d78e5911e82e1ce07dcdec7
BLAKE2b-256 cd64653cdac25bf4352601035815dfeaec8e21e456a8ade75683041d630b7766

See more details on using hashes here.

File details

Details for the file dirigo-0.3.10-py3-none-any.whl.

File metadata

  • Download URL: dirigo-0.3.10-py3-none-any.whl
  • Upload date:
  • Size: 96.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for dirigo-0.3.10-py3-none-any.whl
Algorithm Hash digest
SHA256 a372eb165e7ec3120c18bfe3cfb0becafea5dbc707984f675fe42b6e84503afe
MD5 1b4a6e039141d711646e6bf14f7abb6a
BLAKE2b-256 dd55a481573142b32eafa7e0e03808295caab9447c15c567438c321b9b1c9d0d

See more details on using hashes here.

Supported by

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