Metadata-Version: 2.4
Name: lyse
Version: 3.3.0
Summary: Automated analysis queue for labscript suite experiments
Author-email: The labscript suite community <labscriptsuite@googlegroups.com>
License: Copyright (c) 2013, Monash University
        All rights reserved.
        
        This project (lyse) is dual licensed under the 2-clause BSD license and 3-clause BSD license (see the files BSD-2-CLAUSE-LICENSE.txt and BSD-3-CLAUSE-LICENSE.txt), subject to the following conditions:
        
        1) If you wish to use this project with PySide and/or a commercial license of PyQt, the use of this project is governed by the terms of one of the licenses, chosen at your discretion.
        
        2) If you wish to use this project with the free (GPLv2 or GPLv3 licensed) version of PyQt, the use of this project is governed by the terms of the 3-clause BSD license only, along with the terms specified in the GPL_EXCEPTIONS.TXT file in the PyQt project source code.
        
        These terms are in place to guarantee compatibility with the terms outlined in the GPL License Exceptions of the PyQt project (see the GPL_EXCEPTIONS.TXT file in the source code of the PyQt project)
Project-URL: Homepage, http://labscriptsuite.org/
Project-URL: Documentation, https://docs.labscriptsuite.org/
Project-URL: Repository, https://github.com/labscript-suite/lyse/
Project-URL: Downloads, https://github.com/labscript-suite/lyse/releases/
Project-URL: Tracker, https://github.com/labscript-suite/lyse/issues/
Keywords: experiment control,automation
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: desktop-app>=0.1.2
Requires-Dist: h5py
Requires-Dist: labscript_utils>=3.3.0
Requires-Dist: matplotlib
Requires-Dist: numpy
Requires-Dist: pandas>=1.5
Requires-Dist: qtutils>=2.2.2
Requires-Dist: scipy
Requires-Dist: tzlocal
Requires-Dist: zprocess>=2.2.2
Provides-Extra: docs
Requires-Dist: PyQt5; extra == "docs"
Requires-Dist: Sphinx==8.2.3; extra == "docs"
Requires-Dist: sphinx-rtd-theme==3.0.2; extra == "docs"
Requires-Dist: myst_parser==4.0.1; extra == "docs"
Dynamic: license-file

<img src="https://raw.githubusercontent.com/labscript-suite/labscript-suite/master/art/lyse_32nx32n.svg" height="64" alt="the labscript suite – lyse" align="right">

# the _labscript suite_ » lyse

### Online analysis of live experiment data

[![Actions Status](https://github.com/labscript-suite/lyse/workflows/Build%20and%20Release/badge.svg)](https://github.com/labscript-suite/lyse/actions)
[![License](https://img.shields.io/pypi/l/lyse.svg)](https://github.com/labscript-suite/lyse/raw/master/LICENSE.txt)
[![Python Version](https://img.shields.io/pypi/pyversions/lyse.svg)](https://python.org)
[![PyPI](https://img.shields.io/pypi/v/lyse.svg)](https://pypi.org/project/lyse)
[![Conda Version](https://img.shields.io/conda/v/labscript-suite/lyse)](https://anaconda.org/labscript-suite/lyse)
[![Google Group](https://img.shields.io/badge/Google%20Group-labscriptsuite-blue.svg)](https://groups.google.com/forum/#!forum/labscriptsuite)
<!--[![DOI](http://img.shields.io/badge/DOI-10.1063%2F1.4817213-0F79D0.svg)](https://doi.org/10.1063/1.4817213)-->


**lyse** is a data analysis framework for experiments controlled by the [*labscript suite*](https://github.com/labscript-suite/labscript-suite). It coordinates online analysis of live experiment data, by automatically running Python analysis scripts.

Analysis routines are Python scripts that can be run on a labscript experiment ([HDF5](https://support.hdfgroup.org/HDF5/whatishdf5.html)) file. We break analysis into two distinct groups:

1. **single-shot analysis** routines analyze a single HDF5 file corresponding to one realization of an experimental sequence, or *shot*; and
2. **multi-shot analysis** routines perform higher-order analysis on data from many shots.

A set of Python scripts can be loaded for each analysis category, which will run (when appropriate) on new shot files as they are sent to lyse from [**blacs**](https://github.com/labscript-suite/blacs). Acquired data, global variables from [**runmanager**](https://github.com/labscript-suite/runmanager) and analysis results generated in lyse, for all loaded shots, are stored in a table (a [pandas `DataFrame`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html). This is a powerful analysis schema that takes advantage of the self-documenting nature of labscript experiment shot files.

The DataFrame is displayed in the lyse GUI and can also be accessed remotely from another PC as follows:

```python
import lyse
df = lyse.data(host='127.0.0.1', port=42519)
```

Moreover, the lyse DataFrame can be serialized so that an analysis session can be restored in lyse or in a headless environment.

<img src="https://raw.githubusercontent.com/labscript-suite/lyse/master/docs/source/img/lyse_gui.png" alt="lyse interface – screenshot">

The lyse interface, comprising:

- Single- and multi-shot analysis routines (Python scripts);
- A graphical representation of the Pandas DataFrame;
- Figures generated by the analysis scripts.†
- The output log from lyse and the analysis routines.

† In this example, these are publication quality figures generated for the manuscript *Science* **364**, pp. 1267 (2019) [doi:10.1126/science.aat5793](https://doi.org/10.1126/science.aat5793).


## Installation

lyse is distributed as a Python package on [PyPI](https://pypi.org/user/labscript-suite) and [Anaconda Cloud](https://anaconda.org/labscript-suite), and should be installed with other components of the _labscript suite_. Please see the [installation guide](https://docs.labscriptsuite.org/en/latest/installation) for details.
