Spectral Interpretation using Gaussian Mixtures and Autoencoder (SIGMA) is an open-source Python library for phase identification and spectrum analysis for energy dispersive x-ray spectroscopy (EDS) datasets. The library mainly builds on the Hyperspy, Pytorch, and Scikit-learn. The publication is available here.
(UPDATE v0.2.0) SIGMA now supports UMAP for dimensionality reduction and HDBSCAN for clustering.
Try your dataset on SIGMA with Colab in the cloud:
Type of data | Support format | Colab link |
---|---|---|
SEM | .bcf .hspy |
|
TEM | .emi /.ser .emd |
|
Images | .tif .png |
|
EXCITE conference practical | .hspy |
This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No 101005611: The EXCITE Network. If analysis using SIGMA forms a part of published work please cite the manuscript.
- Create a Python>=3.10 environment with conda:
conda create -n sigma python=3.10
conda activate sigma
- Install SIGMA with pip:
pip install emsigma
- Use the notebook in the tutorial folder to run SIGMA.
jupyter-lab
- A neural network autoencoder is trained to learn good representations of elemental pixels in the 2D latent space.
- The trained encoder is then used to transform high-dimensional elemental pixels into low-dimensional representations, followed by clustering using Gaussian mixture modeling (GMM) in the informative latent space.
- Non-negative matrix factorization (NMF) is applied to unmix the single-phase spectra for all clusters.
In such a way, the algorithm not only identifies the locations of all unknown phases but also isolates the background-subtracted EDS spectra of individual phases.
An example of checking the EDS dataset and the sum spectrum.
An example of analysing the latent space using the graphical widget.
A demo of acquiring Background-substracted spectrum using Factor Analysis (FA).