DScribe is a python package for creating machine learning descriptors for atomistic systems. For more details and tutorials, visit the homepage at: https://singroup.github.io/dscribe/
import numpy as np
from ase.build import molecule
from dscribe.descriptors import SOAP
from dscribe.descriptors import CoulombMatrix
# Define atomic structures
samples = [molecule("H2O"), molecule("NO2"), molecule("CO2")]
# Setup descriptors
cm_desc = CoulombMatrix(n_atoms_max=3, permutation="sorted_l2")
soap_desc = SOAP(species=["C", "H", "O", "N"], rcut=5, nmax=8, lmax=6, crossover=True)
# Create descriptors as numpy arrays or scipy sparse matrices
water = samples[0]
coulomb_matrix = cm_desc.create(water)
soap = soap_desc.create(water, positions=[0])
# Easy to use also on multiple systems, can be parallelized across processes
coulomb_matrices = cm_desc.create(samples)
coulomb_matrices = cm_desc.create(samples, n_jobs=3)
oxygen_indices = [np.where(x.get_atomic_numbers() == 8)[0] for x in samples]
oxygen_soap = soap_desc.create(samples, oxygen_indices, n_jobs=3)
- Coulomb matrix
- Sine matrix
- Ewald matrix
- Atom-centered Symmetry Functions (ACSF)
- Smooth Overlap of Atomic Orbitals (SOAP)
- Many-body Tensor Representation (MBTR)
- Local Many-body Tensor Representation (LMBTR)
The package is compatible both with Python 2 and Python 3 (tested on 2.7 and 3.6). We currently only support Unix-based systems, including Linux and macOS. The exact list of dependencies are given in setup.py and all of them will be automatically installed during setup.
The latest stable release is available through pip: (add the --user flag if root access is not available)
pip install dscribe
To install the latest development version, clone the source code from github and install with pip from local file:
git clone https://github.com/SINGROUP/dscribe.git
cd dscribe
pip install .