Skip to content

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

License

Notifications You must be signed in to change notification settings

zhanzghang/maml

 
 

Repository files navigation

https://circleci.com/gh/materialsvirtuallab/maml.svg?style=shield https://coveralls.io/repos/github/materialsvirtuallab/maml/badge.svg?branch=master&service=github

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.

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.
  1. Bispectrum coefficients
  2. Behler Parrinello symmetry functions
  3. Smooth Overlap of Atom Position (SOAP)
  4. 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:
  1. pes for modelling the potential energy surface, constructing surrogate models for property prediction.
  1. Neural Network Potential (NNP)
  2. Gaussian approximation potential (GAP) with SOAP features
  3. Spectral neighbor analysis potential (SNAP)
  4. Moment Tensor Potential (MTP)
  1. rfxas for random forest models in predicting atomic local environments from X-ray absorption spectroscopy.

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.

Usage

Many Jupyter notebooks are available on usage. See notebooks.

API documentation

See API docs.

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 71.2%
  • Jupyter Notebook 28.5%
  • Other 0.3%