Skip to main content

PyQt application for vibrational EELS spectrum extraction and zero-loss calibration

Project description

vibeels

DOI

vibeels is a PyQt6 application for extracting and calibrating vibrational electron energy-loss spectroscopy (EELS) spectra. It supports map-based and snapshot-stack workflows, with zero-loss peak (ZLP) alignment and calibrated spectrum export.

Status

vibeels is under active development. Review results carefully before using them in published analysis.

Features

  • Signal1D 2D map workflow with multiple polygon ROIs.
  • Signal2D snapshot-stack workflow with a single rectangular detector-band ROI.
  • Shared plot controls for zoom, ROI editing, zoom-out, and ROI clearing.
  • Intensity masking using a full-map histogram for 2D map data.
  • Per-spectrum ZLP fitting, alignment, and calibrated summed spectra.
  • Raw and aligned snapshot previews with independent zoom control.
  • Export of spectra, masks, figures, parameters, and reproducibility bundles.
  • Session saving and restoration.
  • Runtime application icon support on macOS and Windows.

Installation

From PyPI

After the package is published to PyPI:

python -m pip install vibeels

From source

git clone https://github.com/shdshim/vibeels.git
cd vibeels
python -m pip install -e .

For a conda-based workflow, create and activate an environment first:

conda create -n vibeels python=3.11
conda activate vibeels
python -m pip install -e .

How to use

  1. Launch the application and load an EELS dataset with Load EELS DM3/DM4.
  2. If needed, load a reference image in the Image tab.
  3. Use the shared plot controls above the figures:
    • Zoom: mouse zoom behavior for all four main plots.
    • ROI: ROI editing on the top-left raw-data plot.
    • Zoom Out: reset zoom for all four main plots.
    • Clear ROI: remove the active ROI selection.
  4. For Signal1D map data, use the 2D Map tab:
    • draw one or more polygon ROIs on the top-left map preview.
    • adjust the map energy range.
    • use the full-map intensity histogram to set the mask range.
    • click Apply ROI / Alignment to extract, align, and sum all spectra inside any polygon and inside the intensity range.
  5. For Signal2D snapshot-stack data, use the 1D Spot tab:
    • draw or set one rectangular detector-y ROI.
    • set the snapshot range and snapshot index.
    • click Apply ROI / Alignment to align snapshots and build the summed spectrum.
  6. Inspect the Calibration tab to review the ZLP fit, FWHM, calibrated spectrum, and previews.
  7. Save selected spectra in the Saved tab, export the processed bundle, or save the session state for later review.

ROI and Plot Controls

  • 2D map mode allows multiple polygon ROIs. Pixels inside any polygon are included.
  • 1D snapshot mode allows one rectangular detector-y ROI.
  • In 2D map mode, the intensity histogram always represents the full integrated image, not only the ROI pixels.
  • Right-click in Zoom mode resets only the clicked plot.
  • Right-click inside an ROI in ROI mode clears that ROI.
  • Zoom state is preserved during ROI changes and snapshot navigation unless Zoom Out or right-click zoom reset is used.

Outputs

Exports include:

  • calibrated spectra
  • selected masks and preview images
  • ZLP fit data
  • processing parameters
  • reproducibility scripts and figures
  • saved session state

Run

python -m vibeels

If installed from the package entry point:

vibeels

Build distribution

python -m pip install build twine
python -m build
python -m twine check dist/*

Release Metadata

Citation

If you use vibeels in research, cite the software using the metadata in CITATION.cff.

License

This project is distributed under the MIT License. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vibeels-0.3.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vibeels-0.3.0-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file vibeels-0.3.0.tar.gz.

File metadata

  • Download URL: vibeels-0.3.0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.11

File hashes

Hashes for vibeels-0.3.0.tar.gz
Algorithm Hash digest
SHA256 80d87e79de149f0ba706fc3852be628afb425839af462534334a515f297adfe3
MD5 d8cd69b625923b2cb5d35014316098b2
BLAKE2b-256 0b0c8aff42e85d2b7acfc68d15ed53b93fa8352bcbdb0042e249833d46883544

See more details on using hashes here.

File details

Details for the file vibeels-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: vibeels-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.11

File hashes

Hashes for vibeels-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fcea6703886e22b325c257a2f362715c94f892af59944f68a37e022a9c27377c
MD5 b45f11c62d4b1b61e4ef104149ebb04c
BLAKE2b-256 bda8e6c400b1778aa01353f16e9b36282ea4934cea43963e12c511c804c477d9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page