Metadata-Version: 2.4
Name: pyminflux
Version: 0.7.0
Summary: Reader, processor, and viewer of MINFLUX raw data.
Project-URL: Repository, https://github.com/bsse-scf/pyMINFLUX
Project-URL: Documentation, https://github.com/bsse-scf/pyMINFLUX/wiki
Project-URL: Bug Tracker, https://github.com/bsse-scf/pyMINFLUX/issues
Author-email: Aaron Ponti <aaron.ponti@bsse.ethz.ch>
License: Apache-2.0
License-File: LICENSE.txt
Keywords: Analysis,Filtering,MINFLUX,Python,Visualization
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering
Requires-Python: <3.13,>=3.10
Requires-Dist: h5py<4.0.0,>=3.11.0
Requires-Dist: natsort<9.0.0,>=8.4.0
Requires-Dist: numpy<3.0.0,>=2.0.0
Requires-Dist: pandas<3.0.0,>=2.2.3
Requires-Dist: pyarrow<20.0.0,>=19.0.1
Requires-Dist: pyqtgraph<0.15.0,>=0.14.0
Requires-Dist: pyside6<7.0.0,>=6.8.0
Requires-Dist: requests<3.0,>=2.32
Requires-Dist: scikit-learn<2.0.0,>=1.5.0
Requires-Dist: scipy<2.0.0,>=1.14.0
Requires-Dist: vispy<0.17.0,>=0.16.1
Requires-Dist: zarr<3.0
Provides-Extra: dev
Requires-Dist: hatchling>=1.29.0; extra == 'dev'
Requires-Dist: nuitka>4.0.0; extra == 'dev'
Requires-Dist: ordered-set<5.0.0,>=4.1.0; extra == 'dev'
Requires-Dist: patchelf<0.18.0.0,>=0.17.2.2; (sys_platform == 'linux') and extra == 'dev'
Requires-Dist: pdoc3<0.12.0,>=0.11.0; extra == 'dev'
Requires-Dist: pre-commit<5.0.0,>=4.5.0; extra == 'dev'
Requires-Dist: pytest-cov<8.0.0,>=7.1.0; extra == 'dev'
Requires-Dist: pytest<10.0.0,>=9.0.0; extra == 'dev'
Requires-Dist: ruff<0.16.0,>=0.15.0; extra == 'dev'
Requires-Dist: zstandard<0.26.0,>=0.25.0; extra == 'dev'
Description-Content-Type: text/markdown

# ![](pyminflux/ui/assets/Logo_v3_small.png)&nbsp;&nbsp;&nbsp;pyMINFLUX

Reader, analyzer, and viewer of MINFLUX raw data.

<p align="center">
  <img width="800" src="https://pyminflux.ethz.ch/img/pyminflux.png">
</p>

## Installation

### Apps

**Compiled executables** (apps) for Linux, macOS and Windows can be downloaded from the [release page](https://github.com/bsse-scf/pyMINFLUX/releases/latest). 

**Please note**: since **pyMINFLUX.exe** on Windows and **pyMINFLUX.app** on macOS come from an *unidentified developer* and are not (yet) digitally signed, both operating systems may prevent them from running. In this case, please have a look at our [troubleshooting guide](https://github.com/bsse-scf/pyMINFLUX/wiki/Troubleshooting#installation). Please mind that this only applies to the **compiled executables**.

On macOS, it is recommended to download the zipped app via **curl** or **wget** to prevent Gatekeeper from quarantining the application (see also [troubleshooting guide](https://github.com/bsse-scf/pyMINFLUX/wiki/Troubleshooting#installation)).

```bash
$ curl -LJO https://github.com/bsse-scf/pyMINFLUX/releases/download/0.5.0/pyMINFLUX_0.5.0_macos_m1.zip
```
Alternatively, if `wget` is installed:

```bash
$ wget --content-disposition https://github.com/bsse-scf/pyMINFLUX/releases/download/0.5.0/pyMINFLUX_0.5.0_macos_m1.zip
```

The equivalent call for **Powershell** on Windows is:

```bash
$ Invoke-WebRequest -Uri "https://github.com/bsse-scf/pyMINFLUX/releases/download/0.5.0/pyMINFLUX_0.5.0_win.zip" -OutFile C:\pyMINFLUX_0.5.0_win.zip 
```
Adapt the path for the `-OutFile` argument as needed.

### pip

The latest version of pyMINFLUX can also be installed from [pypi.org](https://pypi.org/project/pyminflux/). pyMINFLUX is compatible with and tested on Python 3.10 and 3.11. It is recommended to install pyMINFLUX in a conda environment as follows:

```sh
$ conda create -n pyminflux-env python=3.11  # or 3.10
$ conda activate pyminflux-env
$ pip install --upgrade pyminflux
```

pyMINFLUX can then easily be run from the command line:

```sh
$ pyminflux
```

### uv

pyMINFLUX can also be installed with [uv](https://docs.astral.sh/uv/). If not yet installed, installing uv requires one line in the terminal depending on your OS, see [uv installation guide](https://docs.astral.sh/uv/getting-started/installation/). After installing uv, pyMINFLUX can be run as follows (installation and execution are combined in one step):

For the latest stable release on PyPI:

```sh
$ uvx --refresh pyminflux
```

For a development version on GitHub (supported for pyminflux versions > 0.6.0):
```sh
$ uvx --refresh --from 'git+https://github.com/bsse-scf/pyMINFLUX@bead_alignment' pyminflux
```


## For developers and tinkerers

pyMINFLUX is compatible with and tested on Python 3.10, 3.11, and 3.12. For development, it is recommended to install pyMINFLUX in editable mode in a [conda](https://docs.conda.io/en/latest/miniconda.html#latest-miniconda-installer-links) environment as follows:

```sh
$ conda create -n pyminflux-env python=3.11  # or 3.10, 3.12
$ conda activate pyminflux-env
$ git clone https://github.com/bsse-scf/pyMINFLUX /path/to/pyminflux
$ cd /path/to/pyminflux
$ python -m pip install -e .
$ pip install -r dev-requirements.txt
```

If you want to participate to the development of pyMINFLUX, please have a look at [how you can contribute](CONTRIBUTING.md) and at our [code of conduct](CODE_OF_CONDUCT.md).

### Running pyMINFLUX from console

```sh
$ cd /path/to/pyminflux
$ python pyminflux/main.py  # As a Python script, or
$ pyminflux                 # as a standalone tool
```

### Using the pyMINFLUX API from Python scripts or Jupyter Notebooks

The graphical user interface is not the only way to use pyMINFLUX. Indeed, the pyMINFLUX core library can be integrated in Python scripts or Jupyter Notebooks. The documentation for the pyMIMFLUX core API can be found on [https://pyminflux.ethz.ch/api/pyminflux/](https://pyminflux.ethz.ch/api/pyminflux/); an example Jupyter Notebook is [bundled with the code](/examples/processing.ipynb).

## User manual

The user manual is hosted in the [project wiki](https://github.com/bsse-scf/pyMINFLUX/wiki/pyMINFLUX-user-manual).

## Official website

The official pyMINFLUX website is on https://pyminflux.ethz.ch.

## pyMINFLUX mailing list

Join the [pyMINFLUX mailing list](https://sympa.ethz.ch/sympa/subscribe/pyminflux) for release announcements and further discussions.

## Contributing to pyMINFLUX

We value the contribution of our community members, and to make sure that everyone can profit from this collaboration, we ask you to have a look at our [CONTRIBUTING](./CONTRIBUTING.md) and [CODE OF CONDUCT](./CODE_OF_CONDUCT.md) documents.

## Citing pyMINFLUX

If you use pyMINFLUX in your research, please cite this repository as follows:

> Aaron Ponti, Javier Casares Arias, & Thomas Horn. (2023). pyMINFLUX. Zenodo. [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.7895501.svg)](https://doi.org/10.5281/zenodo.7895501)



