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.4

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.4
File Size Uploaded Provenance Actions
eelsnmf_gui-0.0.4.tar.gz 70.3 kB Without provenance Details for eelsnmf_gui-0.0.4.tar.gz

Built distribution (wheel)

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

Total release size: 127.9 kB

Release files / eelsnmf_gui-0.0.4.tar.gz

Download URL eelsnmf_gui-0.0.4.tar.gz
Size 70.3 kB
Tags Source
SHA-256 checksum
How to use checksums
90f4933a567875d64cdd345fbc28ab3ad715096a2cd246348c335f45a73a4a3e
BLAKE2b-256 checksum
How to use checksums
a70db6ace8482d48c0bc2f6d36eced1d89f22e6151777fddf5df87ee429e72e1
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.4-py3-none-any.whl

Download URL eelsnmf_gui-0.0.4-py3-none-any.whl
Size 57.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
26aa6d118530744b04f7538129a969aecabdb476d17268d73104f1ef28313bbe
BLAKE2b-256 checksum
How to use checksums
2c9306e340ed8a30a2635af2813b49820b9d9049d90e41f334907d87a75aa152
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.4

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