Skip to main content

Event-driven acquisition

Project description

Event-driven acquisition (EDA)

'event-driven-acquisition' is a Python library for advanced microscope control routines to enable acquisitions to react to specific biological events of interest.

More information on the project it was first used on can be found in the bioRxiv article.

See the Documentation for more details.

Components of EDA

Analyzers

Analyzers receive an image or images from the microscope. Their task is to reduce the information in these images to a single or a set of parameters. These parameters are passed on to interpreters.

Interpreters

An interpreter receives parameters from an analyzer and uses these to take a decision for how to proceed with acquisition. This decision is passed on to an actuator. The interpretation can for example take into account the temporal context of results from the analyzer.

Actuators

The responsibility of an actuator is both to handle start/stop of acquisitions and to apply the decisions from an interpreter to the ongoing acquisition.

Installing Event-driven acquisition

  1. Install the latest version of micro-manager2.0
  2. pip install eda_plugin
  3. Install the Micro-Manager plugins:
    1. >>> import eda_plugin
    2. >>> eda_plugin.install_mm_plugins()
    3. Choose the main Micro-Manager folder in the file dialog (e.g. C:\Program Files\Micro-Manager-2.0)
  4. Run micro-manager with the zmq server (pycromanager installation)
  5. Run the PythonEventServer from Plugins -> Developer Tools -> Python Event Server

Now you can run one of the examples

import eda_plugin
eda_plugin.examples.basic()
# or if you have CUDA and tensorflow installed
eda_plugin.examples.pyro()

Or construct your own EDA loop e.g.

    import sys
    from PyQt5 import QtWidgets

    from eda_plugin.utility.event_bus import EventBus
    import eda_plugin.utility.settings
    from eda_plugin.eda_gui import EDAMainGUI

    from eda_plugin.interpreters.frame_rate import BinaryFrameRateInterpreter
    from eda_plugin.analysers.image import ImageAnalyser
    from eda_plugin.actuators.micro_manager import MMActuator, TimerMMAcquisition

    eda_plugin.utility.settings.setup_logging()

    app = QtWidgets.QApplication(sys.argv)
    event_bus = EventBus()

    gui = EDAMainGUI(event_bus, viewer=True)
    actuator = MMActuator(event_bus, TimerMMAcquisition)
    analyser = ImageAnalyser(event_bus)
    interpreter = BinaryFrameRateInterpreter(event_bus)

    gui.show()
    actuator.gui.show()
    interpreter.gui.show()

    sys.exit(app.exec_())

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

eda_plugin-0.2.25.tar.gz (18.1 MB view details)

Uploaded Source

Built Distribution

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

eda_plugin-0.2.25-py3-none-any.whl (18.1 MB view details)

Uploaded Python 3

File details

Details for the file eda_plugin-0.2.25.tar.gz.

File metadata

  • Download URL: eda_plugin-0.2.25.tar.gz
  • Upload date:
  • Size: 18.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.6

File hashes

Hashes for eda_plugin-0.2.25.tar.gz
Algorithm Hash digest
SHA256 e5bbbc22ae9d30a08ffb2fe474f840947a9f7924a28f359e0cc2d7532c7ca2c4
MD5 405a6e2c8284719ae712f6bd7b93bbed
BLAKE2b-256 180ae49dad764c684c0367d400cc6cd669f829f838222b29145169369f68d917

See more details on using hashes here.

File details

Details for the file eda_plugin-0.2.25-py3-none-any.whl.

File metadata

  • Download URL: eda_plugin-0.2.25-py3-none-any.whl
  • Upload date:
  • Size: 18.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.6

File hashes

Hashes for eda_plugin-0.2.25-py3-none-any.whl
Algorithm Hash digest
SHA256 723d39241a352af9cbee06dc9552d6723401df78eb618ee0917f68db098db412
MD5 249478aaf3d4341534dd265a27400b72
BLAKE2b-256 ce078ab090b35cea270dc106766f64e9ce905a66d52a26a8af0f3b54a251cb50

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