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 current version only supports .bcf
and .emi
files. The publication is available here.
Try your dataset on SIGMA with Colab in the cloud:
If analysis using sigma forms a part of published work please cite the
- Create a Python>=3.7.0 environment with conda:
conda create -n sigma python=3.7 anaconda
conda activate sigma
- Install SIGMA with pip:
pip install emsigma
- Use the notebook in the tutorial folder to run SIGMA.
- 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).