Skip to content

Python library for phase identification and spectrum analysis of energy dispersive x-ray spectroscopy (EDS)

License

Notifications You must be signed in to change notification settings

poyentung/sigma

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Description

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 Open In Colab
TEM .emi/.ser .emd Open In Colab
Images .tif .png Open In Colab
EXCITE conference practical .hspy Open In Colab

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.

Installation

  1. Create a Python>=3.10 environment with conda:
conda create -n sigma python=3.10
conda activate sigma
  1. Install SIGMA with pip:
pip install emsigma
  1. Use the notebook in the tutorial folder to run SIGMA.
jupyter-lab

Workflow of SIGMA

  1. A neural network autoencoder is trained to learn good representations of elemental pixels in the 2D latent space.
Autoencoder

  1. 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.
GMM

  1. Non-negative matrix factorization (NMF) is applied to unmix the single-phase spectra for all clusters.
NMF

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.

User-friendly GUI

Check .bcf file

An example of checking the EDS dataset and the sum spectrum.

Demo with Colab

Demo-check_EDS_dataset

Dimensionality reduction and clustering

An example of analysing the latent space using the graphical widget.

Demo with Colab

Screen Recording 2022-02-22 at 12 09 38 PM

Factor analysis on cluster-wise spectra

A demo of acquiring Background-substracted spectrum using Factor Analysis (FA).

Demo with Colab

Demo-NMF