yaq/alternatives


alternatives

yaq is by no means the first project to attempt to simplify scientific instrumental software design. The very name yaq (yet another acquisition) acknowledges this. The further sections of this page attempt to highlight similar projects that we are aware of. We attempt to briefly compare each project to yaq.

We choose to continue yaq development because we believe that yaq provides a uniquely elegant and flexible solution to instrumental software development. Our introduction to yaq page does a good job highlighting yaq's core design principles. Briefly, these principles include:

Bluesky

Bluesky is a data collection framework which aims to abstract away the task of collecting scientific data and metadata. The Bluesky Framework itself is purely focused on experimental control and data streaming, so it's truly orthogonal to yaq. Bluesky is part of a larger set of projects which include Ophyd, an object oriented hardware abstraction layer in Python. Ophyd has similar goals to yaq, although without the modular client/daemon design.

The project ophyd-yaq aims to provide a bridge to consume yaq daemons within Ophyd and Bluesky.

EPICS

EPICS is a set of software tools and applications which provide a software infrastructure for use in building distributed control systems to operate devices such as Particle Accelerators, Large Experiments and major Telescopes. EPICS is in many ways very similar to yaq. The complex interface that EPICS defines, while impressive, is likely too challenging for implementation by the "everyday scientist". yaq tries to differentiate itself with it's much simpler interface.

Exopy

Exopy is a all-in-one data acquisition software solution. It attempts to provide a graphical interface to a variety of hardware. In contrast, yaq attempts only to provide a unified interface to a set of daemons. Exopy has built in support for a variety of existing hardware.

Instrbuilder

Instrbuilder is a unified interface for the control of electrical instruments in Python. It attempts to support any instrument that uses ASCII textual string communication (such as SCPI). In contrast, yaq is completely agnostic to the hardware interface. Instrbuilder is meant to be run locally within a singular Python process. Instrbuilder does plug in to Bluesky.

Instrumental

Instrumental provides high level Python drivers for a variety of lab hardware. It's meant to be run locally within a singular Python process.

Lantz

Latnz provides a consistent hardware interface within Python. It's meant to be run locally within a singular Python process. From what we can tell, Lantz may be abandoned.

Micro-Manager

Micro-Manager is a really cool project which focuses on being a comprehensive solution for driving microscopes. Like yaq, they focus on consistent hardware interfaces: they define classes of hardware which have the same C++ interface. The Software for Microscopy Workshop White Paper is a good read for anyone interested in the future of the project.

PyLabLib

PyLabLib aims to provide support for device control and experiment automation. It interfaces with lots of different devices, including several different camera interfaces, translational stages, oscilloscopes, AWGs, sensors, and more. The interface is implemented in a natural way through Python objects, and is easy to understand.

PyMeasure

PyMeasure makes scientific measurements easy to set up and run. The package contains a repository of instrument classes and a system for running experiment procedures, which provides graphical interfaces for graphing live data and managing queues of experiments. Both parts of the package are independent, and when combined provide all the necessary requirements for advanced measurements with only limited coding.

python-microscopy

The Python Microscopy Environment is an open-source package providing image acquisition and data analysis functionality for a number of microscopy applications, but with a particular emphasis on single molecule localisation microscopy.```suggestion:-0+0 The PYthon Microscopy Environment is an open-source package providing image acquisition and data analysis functionality for a number of microscopy applications, but with a particular emphasis on single molecule localisation microscopy. It has a much narrower focus than yaq.

PyMoDAQ

PyMoDAQ, Modular Data Acquisition with Python, is a set of python modules used to interface any kind of experiments. It simplifies the interaction with detector and actuator hardware to go straight to the data acquisition of interest. Check this paper to see more details.

Qcodes

Qcodes is a Python-based data acquisition framework developed by the Copenhagen / Delft / Sydney / Microsoft quantum computing consortium. They have an impressive list of supported hardware.

Qudi

Qudi is a general, modular, multi-operating system suite written in Python 3 for controlling laboratory experiments. It provides a structured environment by separating functionality into hardware abstraction, experiment logic and user interface layers.

Sardana

Sardana is a software suite for Supervision, Control and Data Acquisition in scientific installations. It aims to reduce cost and time of design, development and support of the control and data acquisition systems. Sardana is based on Tango and uses Taurus for control system access and user interfaces.

ScopeFoundry

A Python platform for controlling custom laboratory experiments and visualizing scientific data.

storm-control

This is a repository of code developed in the Zhuang lab and the Babcock lab for the acquisition of STORM movies. It is an all-in-one Python3 / PyQt5 application.


built 2024-02-09 01:44:16                                      CC0: no copyright