• Stars
    star
    344
  • Rank 122,389 (Top 3 %)
  • Language
    Jupyter Notebook
  • License
    BSD 3-Clause "New...
  • Created over 4 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Python for Materials Machine Learning, Materials Descriptors, Machine Learning Force Fields, Deep Learning, etc.

maml

GitHub license Linting Testing Downloads codecov

maml (MAterials Machine Learning) is a Python package that aims to provide useful high-level interfaces that make ML for materials science as easy as possible.

The goal of maml is not to duplicate functionality already available in other packages. maml relies on well-established packages such as scikit-learn and tensorflow for implementations of ML algorithms, as well as other materials science packages such as pymatgen and matminer for crystal/molecule manipulation and feature generation.

Official documentation at https://materialsvirtuallab.github.io/maml/

Features

  1. Convert materials (crystals and molecules) into features. In addition to common compositional, site and structural features, we provide the following fine-grain local environment features.

a) Bispectrum coefficients b) Behler Parrinello symmetry functions c) Smooth Overlap of Atom Position (SOAP) d) Graph network features (composition, site and structure)

  1. Use ML to learn relationship between features and targets. Currently, the maml supports sklearn and keras models.

  2. Applications:

a) pes for modelling the potential energy surface, constructing surrogate models for property prediction.

i) Neural Network Potential (NNP) ii) Gaussian approximation potential (GAP) with SOAP features iii) Spectral neighbor analysis potential (SNAP) iv) Moment Tensor Potential (MTP)

b) rfxas for random forest models in predicting atomic local environments from X-ray absorption spectroscopy.

c) bowsr for rapid structural relaxation with bayesian optimization and surrogate energy model.

Installation

Pip install via PyPI:

pip install maml

To run the potential energy surface (pes), lammps installation is required you can install from source or from conda::

conda install -c conda-forge/label/cf202003 lammps

The SNAP potential comes with this lammps installation. The GAP package for GAP and MLIP package for MTP are needed to run the corresponding potentials. For fitting NNP potential, the n2p2 package is needed.

Install all the libraries from requirement.txt file::

pip install -r requirements.txt

For all the requirements above::

pip install -r requirements-ci.txt
pip install -r requirements-optional.txt
pip install -r requirements-dl.txt
pip install -r requirements.txt

Usage

Many Jupyter notebooks are available on usage. See notebooks. We also have a tool and tutorial lecture at nanoHUB.

API documentation

See API docs.

Citing

@misc{
    maml,
    author = {Chen, Chi and Zuo, Yunxing, Ye, Weike, Ji, Qi and Ong, Shyue Ping},
    title = {{Maml - materials machine learning package}},
    year = {2020},
    publisher = {GitHub},
    journal = {GitHub repository},
    howpublished = {\url{https://github.com/materialsvirtuallab/maml}},
}

For the ML-IAP package (maml.pes), please cite::

Zuo, Y.; Chen, C.; Li, X.; Deng, Z.; Chen, Y.; Behler, J.; Csรกnyi, G.; Shapeev, A. V.; Thompson, A. P.;
Wood, M. A.; Ong, S. P. Performance and Cost Assessment of Machine Learning Interatomic Potentials.
J. Phys. Chem. A 2020, 124 (4), 731โ€“745. https://doi.org/10.1021/acs.jpca.9b08723.

For the BOWSR package (maml.bowsr), please cite::

Zuo, Y.; Qin, M.; Chen, C.; Ye, W.; Li, X.; Luo, J.; Ong, S. P. Accelerating Materials Discovery with Bayesian
Optimization and Graph Deep Learning. Materials Today 2021, 51, 126โ€“135.
https://doi.org/10.1016/j.mattod.2021.08.012.

For the AtomSets model (maml.models.AtomSets), please cite::

Chen, C.; Ong, S. P. AtomSets as a hierarchical transfer learning framework for small and large materials
datasets. Npj Comput. Mater. 2021, 7, 173. https://doi.org/10.1038/s41524-021-00639-w

More Repositories

1

megnet

Graph Networks as a Universal Machine Learning Framework for Molecules and Crystals
Jupyter Notebook
494
star
2

matgl

Graph deep learning library for materials
Python
247
star
3

m3gnet

Materials graph network with 3-body interactions featuring a DFT surrogate crystal relaxer and a state-of-the-art property predictor.
Python
223
star
4

matgenb

Jupyter notebooks demonstrating the utilization of open-source codes for the study of materials science.
Jupyter Notebook
219
star
5

mlearn

Benchmark Suite for Machine Learning Interatomic Potentials for Materials
Python
105
star
6

pyhull

Pyhull is a Python wrapper to Qhull (http://www.qhull.org/) for the computation of the convex hull, Delaunay triangulation and Voronoi diagram.
C
99
star
7

pymatgen-analysis-diffusion

This add-on to pymatgen provides tools for analyzing diffusion in materials.
Python
90
star
8

monty

This repository implements supplementary useful functions for Python that are not part of the standard library. Examples include useful utilities like transparent support for zipped files etc.
Python
70
star
9

nano281

Data Science for Materials Science
Jupyter Notebook
56
star
10

matcalc

A python library for calculating materials properties from the PES
Python
46
star
11

snap

Repository for spectral neighbor analysis potential (SNAP) model development.
AMPL
36
star
12

garnetdnn

This repo implements a web application utilizing a deep neural network to predict the formation energies and stability of garnet crystals.
Python
32
star
13

nano106

Course materials for NANO 106 - Crystallography of Materials
Jupyter Notebook
31
star
14

nano266

Repository for UCSD NANO 266 Quantum Mechanical Modelling of Materials
Python
19
star
15

veidt

Veidt is a deep learning library for materials science.
Python
18
star
16

flamyngo

Flask frontend for MongoDB
Python
15
star
17

materials.sh

materials.sh
Python
10
star
18

Data-driven-First-Principles-Methods-for-the-Study-and-Design-of-Alkali-Superionic-Conductors

Jupyter notebooks and data for our Chemistry of Materials article "Data-driven First Principles Methods for the Study and Design of Alkali Superionic Conductors"
Jupyter Notebook
10
star
19

matgenie

Web interface to pymatgen
Python
5
star
20

materialsvirtuallab.github.io

A guide to the Materials Virtual Lab
TeX
4
star
21

ceng114

Repository for CENG114 Probability and Statistics for Engineers
Jupyter Notebook
4
star
22

thematerialsapp

An Android Application for the Materials Project
Java
1
star