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).
SessionAPI (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.Sessionowns 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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.