materialyzeai/maml

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

What it solves

It simplifies the application of machine learning to materials science by providing high-level interfaces for converting crystal and molecular structures into machine-learnable features and predicting material properties.

How it works

The package integrates existing tools like scikit-learn, TensorFlow, pymatgen, and matminer. It transforms materials data into specific descriptors (such as SOAP, Bispectrum coefficients, and Graph network features) and uses these features to train models via scikit-learn or Keras. It specifically supports the creation of surrogate models for potential energy surfaces and the use of Bayesian optimization for structural relaxation.

Who it’s for

Materials scientists and researchers who want to apply ML algorithms to predict material properties or model atomic environments without building the low-level data processing pipelines from scratch.

Highlights

  • Feature Generation: Supports fine-grain local environment features including SOAP, Behler Parrinello symmetry functions, and Bispectrum coefficients.
  • Potential Energy Surface (PES) Modeling: Provides tools for Neural Network Potentials (NNP), Gaussian approximation potentials (GAP), and Spectral neighbor analysis potentials (SNAP).
  • Structural Relaxation: Includes the bowsr module for rapid structural relaxation using Bayesian optimization.
  • X-ray Spectroscopy: Features the rfxas module for predicting atomic local environments from X-ray absorption spectroscopy using random forests.