Git Product home page Git Product logo

maml's Introduction

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

maml's People

Contributors

chc273 avatar code-mraj avatar comprhys avatar dependabot-preview[bot] avatar dependabot[bot] avatar janosh avatar jiqi535 avatar mausam1112 avatar ml-evs avatar pre-commit-ci[bot] avatar sgbaird avatar shivamjindal1 avatar shyuep avatar tinaatucsd avatar w6ye avatar yunxingzuo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.