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

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.6
File Size Uploaded Provenance Actions
eelsnmf_gui-0.0.6.tar.gz 81.3 kB Without provenance Details for eelsnmf_gui-0.0.6.tar.gz

Built distribution (wheel)

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

Total release size: 146.1 kB

Release files / eelsnmf_gui-0.0.6.tar.gz

Download URL eelsnmf_gui-0.0.6.tar.gz
Size 81.3 kB
Tags Source
SHA-256 checksum
How to use checksums
5e4fb5a64dd9fc829f65d89d02731c072eb2000800461e99d6bcaeed66895113
BLAKE2b-256 checksum
How to use checksums
d7f76bae8cf60970796597272fa959b483a3ed11470f556ded63accd4e5b4464
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.6-py3-none-any.whl

Download URL eelsnmf_gui-0.0.6-py3-none-any.whl
Size 64.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e46189a47d8168dc471141a7b7ff5c21d1d054c50d63919424085d15be00fd9a
BLAKE2b-256 checksum
How to use checksums
a5201661e12798e563425a77baa358184972d6b79e88fd593c8e44a2642e51de
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.6

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