Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/SINGROUP/dscribe
DScribe is a python package for creating machine learning descriptors for atomistic systems.
https://github.com/SINGROUP/dscribe
atomistic-systems descriptors machine-learning materials-science python
Last synced: about 1 month ago
JSON representation
DScribe is a python package for creating machine learning descriptors for atomistic systems.
- Host: GitHub
- URL: https://github.com/SINGROUP/dscribe
- Owner: SINGROUP
- License: apache-2.0
- Created: 2017-05-08T08:29:51.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-01-06T12:07:39.000Z (6 months ago)
- Last Synced: 2024-03-16T04:23:58.834Z (3 months ago)
- Topics: atomistic-systems, descriptors, machine-learning, materials-science, python
- Language: C++
- Homepage: https://singroup.github.io/dscribe/
- Size: 16.4 MB
- Stars: 363
- Watchers: 19
- Forks: 86
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-python-chemistry - DScribe - Descriptor library containing a variety of fingerprinting techniques, including the Smooth Overlap of Atomic Positions (SOAP). (Machine Learning)
- awesome-python-chemistry - DScribe - Descriptor library containing a variety of fingerprinting techniques, including the Smooth Overlap of Atomic Positions (SOAP). (Machine Learning)
- best-of-atomistic-machine-learning - GitHub - 8% open · ⏱️ 28.05.2024): (Representation Engineering)
README
![Build status](https://github.com/SINGROUP/dscribe/actions/workflows/actions.yml/badge.svg)
[![Coverage Status](https://coveralls.io/repos/github/SINGROUP/dscribe/badge.svg?branch=master)](https://coveralls.io/github/SINGROUP/dscribe?branch=master)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)DScribe is a Python package for transforming atomic structures into fixed-size
numerical fingerprints. These fingerprints are often called "descriptors" and
they can be used in various tasks, including machine learning, visualization,
similarity analysis, etc.# Documentation
For more details and tutorials, visit our documentation at:
[https://singroup.github.io/dscribe/](https://singroup.github.io/dscribe/)You can find even more details in the following articles:
- [DScribe: Library of descriptors for machine learning in materials science]()
- [Updates to the DScribe library: New descriptors and derivatives](https://doi.org/10.1063/5.0151031)# Quick Example
```python
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"], r_cut=5, n_max=8, l_max=6, crossover=True)# Create descriptors as numpy arrays or sparse arrays
water = samples[0]
coulomb_matrix = cm_desc.create(water)
soap = soap_desc.create(water, centers=[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)# Descriptors also allow calculating derivatives with respect to atomic
# positions
der, des = soap_desc.derivatives(samples, return_descriptor=True)
```# Currently implemented descriptors
| Descriptor | Spectrum | Derivatives |
|-----------------------------------------------|-----|-------|
| Coulomb matrix | :heavy_check_mark: | :heavy_check_mark: |
| Sine matrix | :heavy_check_mark: | :heavy_check_mark: |
| Ewald matrix | :heavy_check_mark: | :heavy_check_mark: |
| Atom-centered Symmetry Functions (ACSF) | :heavy_check_mark: | :heavy_check_mark: |
| Smooth Overlap of Atomic Positions (SOAP) | :heavy_check_mark: | :heavy_check_mark: |
| Many-body Tensor Representation (MBTR) | :heavy_check_mark: | :heavy_check_mark: |
| Local Many-body Tensor Representation (LMBTR) | :heavy_check_mark: | :heavy_check_mark: |
| Valle-Oganov descriptor | :heavy_check_mark: | :heavy_check_mark: |# Installation
In-depth installation instructions can be found [in the
documentation](https://singroup.github.io/dscribe/latest/install.html), but in
short:## pip
```sh
pip install dscribe
```## conda
```sh
conda install -c conda-forge dscribe
```## From source
```sh
git clone https://github.com/SINGROUP/dscribe.git
cd dscribe
git submodule update --init
pip install .
```