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.2.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.2-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: vibeels-0.3.2.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.2.tar.gz
Algorithm Hash digest
SHA256 f831ea99a3877e51d2ae74cdde36f23b82ca0728985b5cdec2221984c92cda2f
MD5 9ec8c24ff92c11d8bb6328bee7fd4bdf
BLAKE2b-256 f628ddedc1aec3cdb26706d2507aa2b09085d665a72a1778ba0949762fb34d08

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vibeels-0.3.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0af653aff544132072b080acfaa802f6f7316fbccc88427bbc66fbc79a108bc3
MD5 723c35cdd2f85d3e37b5e7a4d7d24811
BLAKE2b-256 45d9fd9c83bf310af5bc0c62df4db8702e42028b067b7b21aa796b4530596dd7

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