software
Software we contribute to
MDIG is involved in a number of open source software projects for the materials science community. We believe in the power of open software to enrich and improve science. We try, wherever possible, to ensure that our computational work is accompanied by easy to use software. This often requires some significant additional effort and at times we have definitely cursed the decision to make software open and accessible, but the rewards have always been more than worth the effort.
SMACT
Semiconducting Materials by Analogy and Chemical Theory (SMACT) is a Python package for high-throughput virtual screening for new functional materials. SMACT uses chemical heuristics to search through vast compositional spaces to identify target functional materials. SMACT also has functionallity for deriving reasonable crystal structures for a given composition and can be used to interface with a range of modern machine learning techniques and atomistic modelling packages.
Code:https://github.com/WMD-group/SMACT Docs:https://smact.readthedocs.io/en/latest/
pip install smact
SMACT in action
Some publications where SMACT has been used to discover new materials:
- Computational Screening of All Stoichiometric Inorganic Materials
- Data-driven discovery of photoactive quaternary oxides using first-principles machine learning
- Computer-aided design of metal chalcohalide semiconductors: from chemical composition to crystal structure
- Materials discovery by chemical analogy: role of oxidation states in structure prediction
MacroDensity
MacroDensity is a Python package for analysing and manipulating electron densities and electrostatic potential maps obtained from modern electronic strucutre codes. The primary functionality of MacroDensity is to obtain energy band alignment diagrams for extended solids, however it can also be used to explore and study potential maps for any arbitrary property.
Code:https://github.com/WMD-group/MacroDensity Docs:https://github.com/WMD-group/MacroDensity
pip install git+git://github.com/WMD-group/MacroDensity.git
MacroDensity in action
Some publications where MacroDensity has been used:
- Electronic Chemical Potentials of Porous Metal–Organic Frameworks
- Crystal electron binding energy and surface work function control of tin dioxide
- Quasi-particle electronic band structure and alignment of the V-VI-VII semiconductors SbSI, SbSBr, and SbSeI for solar cells
- Interplay of Orbital and Relativistic Effects in Bismuth Oxyhalides: BiOF, BiOCl, BiOBr, and BiOI
- Band alignment of the hybrid halide perovskites CH3NH3PbCl3, CH3NH3PbBr3 and CH3NH3PbI3
UnlockNN
UnlockNN is a Python package which can be used to combine the expressive power of graph neural networks with the principled uncertainty quantification of Gaussian processes. UnlockNN was written by Alex Moriarty - currently at UCL - and uses TensorFlow and TensorFlow Probability for an efficient implementation.
Code:https://github.com/a-ws-m/unlockNN Docs:https://unlocknn.readthedocs.io/en/latest/
pip install unlocknn
UnclockNN in action
Some publications where UnlockNN has been used:
SuperResTomo
superres-tomo is a package of useful scripts and models for applying neural networks for tomographic reconstruction of X-ray images. The package also includes models and scripts useful for the analysis of the images generated, allowing tasks such as semantic segmentation of very large images and removing noise from low dose images.
Code: https://github.com/keeeto/super_tomo_py Docs: https://superres-tomo.readthedocs.io/en/latest/about.html
SkipAtom
SkipAtom is an approach for creating distributed representations of atoms, for use in Machine Learning contexts. It is based on the Skip-gram model used widely in Natural Language Processing. SkipAtom is written by Luis Antunes who is currently pursuing a PhD at the University of Reading.
Code https://github.com/lantunes/skipatom Docs https://github.com/lantunes/skipatom
SkipAtom can be installed with:
pip install skipatom
However, this will install a minimal implementation that can be used to work with existing SkipAtom embeddings only. To train new embeddings, SkipAtom should be installed with:
pip install skipatom[training]