Skip to main content

eelsnmf-gui

GUI for EELS NMF processing, including a standalone Qt GUI and a scriptable processing API for scripts and batch workflows.

Features

  • Qt GUI for end-to-end EELS NMF workflows (preprocess, masking, decomposition, plotting, exports).
  • Session API (src/eelsnmf_gui/session.py) exposing the same pipeline stages for scripted usage outside the GUI.
  • Stage-wise caching: preprocessing, masks, and fitted decompositions are reused and invalidated automatically when their inputs change.

Design Notes

  • The pipeline is split into explicit stages: preprocessing (folder loading, ZLP alignment, despiking, common energy axis), mask building, model building and decomposition, and result analysis (edges, maps, summaries).
  • eelsnmf_gui.session.Session owns the folders and parameters, caches each stage, and self-invalidates:
    • changing folders or the median filter size invalidates everything;
    • changing mask parameters invalidates masks and decompositions, but keeps preprocessing;
    • changing decomposition parameters (beam, edge ranges, number of components, max iterations, W init) invalidates decompositions only;
    • colors never affect the decomposition: recoloring only re-renders.
  • The EELSNMF backend is isolated behind a loader and an engine interface, so all other stages run on plain numpy arrays and are testable without EELSNMF installed.
  • The GUI is a thin wrapper around the Session, keeping behavior consistent between interactive and scripted runs.

Installation

Install the EELSNMF backend from source:

pip install "EELSNMF[EML] @ git+https://github.com/PauTorru/EELSNMF.git"

Then install package from source:

git clone https://github.com/jules-vanaret/eelsnmf-gui
cd eelsnmf-gui
pip install -e .

If you want GPU support, make sure to install cupy (we recommend using the conda installer or equivalent to minimize dependency issues):

conda install -c conda-forge cupy

Run the GUI:

Using the console entry point:

eelsnmfgui

By default the GUI assumes the loaded spectrum images are already preprocessed (despiked, ZLP-aligned), hides the preprocessing controls, and processes folders individually. To show the preprocessing controls (and preprocess the data on load) and/or allow joint processing of several folders, use:

eelsnmfgui --pre --joint

or calling the script directly (make sure to run from the package root):

python run_gui.py

Testing

Run the test suite with:

python -m pytest

Unit, session, and widget tests run without EELSNMF installed; the end-to-end tests marked integration run when EELSNMF is available and can be skipped with pytest -m "not integration".

License

Distributed under the terms of the BSD-3 license.

Metadata

Release files for eelsnmf-gui 0.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eelsnmf-gui 0.0.5
File Size Uploaded Provenance Actions
eelsnmf_gui-0.0.5.tar.gz 70.3 kB Without provenance Details for eelsnmf_gui-0.0.5.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for eelsnmf-gui 0.0.5
File Interpreter ABI Platform Actions
eelsnmf_gui-0.0.5-py3-none-any.whl Python 3 none any Details for eelsnmf_gui-0.0.5-py3-none-any.whl

Total release size: 128.0 kB

Release files / eelsnmf_gui-0.0.5.tar.gz

Download URL eelsnmf_gui-0.0.5.tar.gz
Size 70.3 kB
Tags Source
SHA-256 checksum
How to use checksums
07c6c6d98e4034daf1e2d417254ffcea306aafc96c3fa7b0b5f5205608448e40
BLAKE2b-256 checksum
How to use checksums
42cec7e5c8059894468bb1527eb136f4abb003796617cd16a458a00f5d7a33b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / eelsnmf_gui-0.0.5-py3-none-any.whl

Download URL eelsnmf_gui-0.0.5-py3-none-any.whl
Size 57.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9f69019af251e9aa3af70df7ab891c13bdaf42adc5d8033424134801993475a9
BLAKE2b-256 checksum
How to use checksums
1981f82b20c2f8f3691e212b699bddfac0fc74b79b6b8467f4d796327b014596
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Security for eelsnmf-gui 0.0.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page