https://github.com/mpes-kit/fuller
Probabilistic machine learning for reconstruction and parametrization of electronic band sturcture from photoemission spectroscopy data
Science Score: 49.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 1 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org, ieee.org -
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.6%) to scientific vocabulary
Keywords
Repository
Probabilistic machine learning for reconstruction and parametrization of electronic band sturcture from photoemission spectroscopy data
Basic Info
- Host: GitHub
- Owner: mpes-kit
- License: mit
- Language: Jupyter Notebook
- Default Branch: master
- Homepage: https://mpes-kit.github.io/fuller/
- Size: 25.9 MB
Statistics
- Stars: 13
- Watchers: 2
- Forks: 3
- Open Issues: 1
- Releases: 4
Topics
Metadata Files
README.md
fuller
Integrated computational framework for electronic band structure reconstruction and parametrization, powered by probabilistic machine learning
Introduction
This Python package comprises a set of tools to reconstruct and parametrize the electronic band structure (EBS) from photoemission spectroscopy data. It implements the Markov Random Field model introduced in Xian & Stimper et al. (2020) in TensorFlow.
Methods of installation
The latest version of the package can be installed via pip
pip install --upgrade git+https://github.com/mpes-kit/fuller.git
Alternatively, download the repository and run
python setup.py install
Install directly from PyPI
pip install fuller
Requirements
Apart from the packages specified in the requirements.txt file, tensorflow is needed. Installation instructions can be found at the official webpage. The package works with the CPU only and GPU supported version of the framework. Currently, only version TensorFlow 1 (1.14 onwards) is supported, but we are working on porting it to TensorFlow 2.
Sample dataset
As a model system to demonstrate the effectiveness of the methodology we worked on 3D photoemission data of the semiconductor tungsten diselenide (WSe2). It resolve the momentum along the x- and y- axis (kx and ky) and the energy.
Reconstruction
All 14 valence band of WSe2 are visible in the dataset. The optimization was initialized by DFT calculation with HSE06 hybrid exchange-correlation functional. The results are shown in the figure below.

Documentation
Complete API documentation is provided here.
Preprocessing and Reconstruction
Class MrfRec
The MrfRec class is of central importance for reconstruction as well as preprocessing the data. To reconstruct the EBS create a MrfRec object and use its methods to perform the algorithms and plot the results. Here, we list a selection of the most important methods of the class. For further illustration on how to use the class check out the mpes_reconstruction_mrf.ipynb notebook in the example folder.
__init__
python
def __init__(E, kx=None, ky=None, I=None, E0=None, eta=0.1, includeCurv=False, etaCurv=0.1):
...
E: Energy as 1D numpy arraykx: Momentum along x axis as 1D numpy array, ifNoneit is set to 0ky: Momentum along y axis as 1D numpy array, ifNoneit is set to 0I: Measured intensity wrt momentum (rows) and energy (columns), generated ifNoneE0: Initial guess for band structure energy values, ifNonethe median ofEis takeneta: Standard deviation of neighbor interaction termincludeCurv: Flag, if true curvature term is included during optimizationetaCurv: Standard deviation of curvature term
iter_para
python
def iter_para(num_epoch=1, updateLogP=False, use_gpu=True, disable_tqdm=False, graph_reset=False):
...
Hereby, the parallel optimization of Markov Random Field model can be performed to reconstruct an electronic
band.
* num_epoch: Number of epochs to perform
* updateLogP: Flag, if true logP is updated every half epoch (requires more computations)
* use_gpu: Flag, if true gpu is used for computations if available
* disable_tqdm: Flag, it true no progress bar is shown during optimization
* graph_reset: Flag, if true Tensorflow graph is reset after computation to reduce memory demand
normalizeI
python
def normalizeI(kernel_size=None, n_bins=128, clip_limit=0.01, use_gpu=True, threshold=1e-6):
...
This performs Multidimensional Contrast Limited Adaptive Histogram Equalization (MCLAHE), introduced in Stimper et al. 2019. The method is a wrapper for the TensorFlow implementation of the mclahe function.
* kernel_size: Tuple of kernel sizes, 1/8 of dimension lengths of x if None
* n_bins: Number of bins to be used in the histogram
* clip_limit: Relative intensity limit to be ignored in the histogram equalization
* use_gpu: Flag, if true gpu is used for computations if available
* threshold: Threshold below which intensity values are set to zero
Citation
If you are using this package within your own projects, please cite it as
R. P. Xian, V. Stimper, M. Zacharias, S. Dong, M. Dendzik, S. Beaulieu, B. Schölkopf, M. Wolf, L. Rettig, C. Carbogno, S. Bauer, and R. Ernstorfer, "A machine learning route between band mapping and band structure," arXiv:2005.10210, 2020.
Bibtex code
@article{Xian2020,
author={R. P. Xian and V. Stimper and M. Zacharias and S. Dong and M. Dendzik and S. Beaulieu and
B. Schölkopf and M. Wolf and L. Rettig and C. Carbogno and S. Bauer and R. Ernstorfer},
journal={arXiv:2005.10210},
title={A machine learning route between band mapping and band structure},
year={2020},
}
Owner
- Name: mpes-kit
- Login: mpes-kit
- Kind: organization
- Location: Germany
- Website: https://mpes-kit.github.io/
- Repositories: 5
- Profile: https://github.com/mpes-kit
Codebase for materials informatics in multidimensional) photoemission spectroscopy (https://gitter.im/mpes_tools/community)
GitHub Events
Total
- Create event: 12
- Release event: 3
- Issues event: 2
- Watch event: 2
- Delete event: 8
- Member event: 1
- Push event: 24
- Pull request review event: 1
- Pull request review comment event: 5
- Pull request event: 10
- Fork event: 2
Last Year
- Create event: 12
- Release event: 3
- Issues event: 2
- Watch event: 2
- Delete event: 8
- Member event: 1
- Push event: 24
- Pull request review event: 1
- Pull request review comment event: 5
- Pull request event: 10
- Fork event: 2
Committers
Last synced: almost 3 years ago
All Time
- Total Commits: 40
- Total Committers: 2
- Avg Commits per committer: 20.0
- Development Distribution Score (DDS): 0.15
Top Committers
| Name | Commits | |
|---|---|---|
| RealPolitiX | x****k@g****m | 34 |
| Vincent Stimper | v****r@g****m | 6 |
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 3
- Total pull requests: 7
- Average time to close issues: about 2 months
- Average time to close pull requests: about 1 month
- Total issue authors: 2
- Total pull request authors: 3
- Average comments per issue: 0.67
- Average comments per pull request: 0.0
- Merged pull requests: 5
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 2
- Pull requests: 6
- Average time to close issues: 16 days
- Average time to close pull requests: about 1 month
- Issue authors: 2
- Pull request authors: 2
- Average comments per issue: 0.0
- Average comments per pull request: 0.0
- Merged pull requests: 4
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- JulyZR (2)
- rettigl (1)
Pull Request Authors
- rettigl (10)
- myksa (2)
- VincentStimper (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 34 last-month
- Total dependent packages: 0
- Total dependent repositories: 1
- Total versions: 5
- Total maintainers: 2
pypi.org: fuller
Integrated computational framework for electronic band structure reconstruction and parametrization
- Homepage: https://github.com/mpes-kit/fuller
- Documentation: https://fuller.readthedocs.io/
- License: mit
-
Latest release: 2.0.0
published 10 months ago
Rankings
Maintainers (2)
Dependencies
- matplotlib *
- natsort *
- numpy *
- poppy *
- scipy *
- silx *
- symmetrize *
- tqdm *
- x.strip *