Skip to main content

A Python package for creating feature transformations in applications of machine learning to materials science.

Project description

Build status Coverage Status Ruff

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/

You can find even more details in the following articles:

Quick Example

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, but in short:

pip

pip install dscribe

conda

conda install -c conda-forge dscribe

From source

git clone https://github.com/SINGROUP/dscribe.git
cd dscribe
git submodule update --init
pip install .

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dscribe-2.1.1.tar.gz (1.2 MB view hashes)

Uploaded Source

Built Distributions

dscribe-2.1.1-pp310-pypy310_pp73-win_amd64.whl (542.2 kB view hashes)

Uploaded PyPy Windows x86-64

dscribe-2.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (724.0 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

dscribe-2.1.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (707.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

dscribe-2.1.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl (669.7 kB view hashes)

Uploaded PyPy macOS 11.0+ ARM64

dscribe-2.1.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl (708.0 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

dscribe-2.1.1-pp39-pypy39_pp73-win_amd64.whl (542.5 kB view hashes)

Uploaded PyPy Windows x86-64

dscribe-2.1.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (724.0 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

dscribe-2.1.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (707.0 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

dscribe-2.1.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl (669.7 kB view hashes)

Uploaded PyPy macOS 11.0+ ARM64

dscribe-2.1.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (708.0 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

dscribe-2.1.1-pp38-pypy38_pp73-win_amd64.whl (542.4 kB view hashes)

Uploaded PyPy Windows x86-64

dscribe-2.1.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (723.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

dscribe-2.1.1-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (706.7 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

dscribe-2.1.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl (669.7 kB view hashes)

Uploaded PyPy macOS 11.0+ ARM64

dscribe-2.1.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (708.0 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

dscribe-2.1.1-cp312-cp312-win_amd64.whl (544.2 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

dscribe-2.1.1-cp312-cp312-win32.whl (508.1 kB view hashes)

Uploaded CPython 3.12 Windows x86

dscribe-2.1.1-cp312-cp312-musllinux_1_2_x86_64.whl (13.4 MB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

dscribe-2.1.1-cp312-cp312-musllinux_1_2_i686.whl (13.2 MB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.2+ i686

dscribe-2.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.9 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

dscribe-2.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (12.3 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

dscribe-2.1.1-cp312-cp312-macosx_11_0_arm64.whl (690.8 kB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

dscribe-2.1.1-cp312-cp312-macosx_10_9_x86_64.whl (726.0 kB view hashes)

Uploaded CPython 3.12 macOS 10.9+ x86-64

dscribe-2.1.1-cp311-cp311-win_amd64.whl (544.1 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

dscribe-2.1.1-cp311-cp311-win32.whl (507.5 kB view hashes)

Uploaded CPython 3.11 Windows x86

dscribe-2.1.1-cp311-cp311-musllinux_1_2_x86_64.whl (13.4 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

dscribe-2.1.1-cp311-cp311-musllinux_1_2_i686.whl (13.2 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.2+ i686

dscribe-2.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.8 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

dscribe-2.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (12.3 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

dscribe-2.1.1-cp311-cp311-macosx_11_0_arm64.whl (691.9 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

dscribe-2.1.1-cp311-cp311-macosx_10_9_x86_64.whl (726.3 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

dscribe-2.1.1-cp310-cp310-win_amd64.whl (543.0 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

dscribe-2.1.1-cp310-cp310-win32.whl (507.0 kB view hashes)

Uploaded CPython 3.10 Windows x86

dscribe-2.1.1-cp310-cp310-musllinux_1_2_x86_64.whl (13.2 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

dscribe-2.1.1-cp310-cp310-musllinux_1_2_i686.whl (13.0 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.2+ i686

dscribe-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.5 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

dscribe-2.1.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (12.2 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

dscribe-2.1.1-cp310-cp310-macosx_11_0_arm64.whl (690.7 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

dscribe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl (725.3 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

dscribe-2.1.1-cp39-cp39-win_amd64.whl (543.2 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

dscribe-2.1.1-cp39-cp39-win32.whl (507.1 kB view hashes)

Uploaded CPython 3.9 Windows x86

dscribe-2.1.1-cp39-cp39-musllinux_1_2_x86_64.whl (13.2 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.2+ x86-64

dscribe-2.1.1-cp39-cp39-musllinux_1_2_i686.whl (13.0 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.2+ i686

dscribe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.5 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

dscribe-2.1.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (12.1 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

dscribe-2.1.1-cp39-cp39-macosx_11_0_arm64.whl (690.9 kB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

dscribe-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl (725.3 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

dscribe-2.1.1-cp38-cp38-win_amd64.whl (543.1 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

dscribe-2.1.1-cp38-cp38-win32.whl (507.0 kB view hashes)

Uploaded CPython 3.8 Windows x86

dscribe-2.1.1-cp38-cp38-musllinux_1_2_x86_64.whl (13.2 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.2+ x86-64

dscribe-2.1.1-cp38-cp38-musllinux_1_2_i686.whl (13.0 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.2+ i686

dscribe-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.5 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

dscribe-2.1.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (12.2 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

dscribe-2.1.1-cp38-cp38-macosx_11_0_arm64.whl (690.6 kB view hashes)

Uploaded CPython 3.8 macOS 11.0+ ARM64

dscribe-2.1.1-cp38-cp38-macosx_10_9_x86_64.whl (725.2 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page