• Stars
    star
    375
  • Rank 110,437 (Top 3 %)
  • Language
    C++
  • License
    Apache License 2.0
  • Created about 7 years ago
  • Updated 27 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

DScribe is a python package for creating machine learning descriptors for atomistic systems.

Build status Coverage Status Code style: 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/

You can find even more details in our open-access 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"], rcut=5, nmax=8, lmax=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 βœ”οΈ βœ”οΈ
Sine matrix βœ”οΈ βœ”οΈ
Ewald matrix βœ”οΈ βœ”οΈ
Atom-centered Symmetry Functions (ACSF) βœ”οΈ βœ”οΈ
Smooth Overlap of Atomic Positions (SOAP) βœ”οΈ βœ”οΈ
Many-body Tensor Representation (MBTR) βœ”οΈ βœ”οΈ
Local Many-body Tensor Representation (LMBTR) βœ”οΈ βœ”οΈ
Valle-Oganov descriptor βœ”οΈ βœ”οΈ

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 .

More Repositories

1

pycp2k

Python Cp2k interface
Python
79
star
2

SOAPLite

Fast lightweight SOAP implementation for machine learning in quantum chemistry and materials physics.
C
41
star
3

MutualInformation

Mutual Information codes
Python
29
star
4

matid

MatID is a python package for identifying and analyzing atomistic systems based on their structure. MatID is designed to help researchers in the automated analysis and labeling of atomistic datasets.
Python
23
star
5

PyVAFM

Python Virtual Atomic Force Microscope
Python
13
star
6

VASP

Scripts for analyzing VASP output and preparing VASP input, especially for NEB calculations.
Shell
12
star
7

Graph-AFM

Machine learning molecule graphs from atomic force microscopy images.
Python
12
star
8

Auto-CO-AFM

Automatic evaluator of the CO-functionalized tips in Atomic Force Microscopy
Jupyter Notebook
9
star
9

Atom_manipulation_with_RL

Autonomous atom manipulation - in this project, we use deep reinforcement learning algorithms including soft actor-critic, hindsight experience replay, and emphasize recent experience replay to automatize atom manipulation in the Createc scanning tunneling microscope system.
Jupyter Notebook
9
star
10

Potential_solver

A Python module for solving electrostatic potential of a distribution of point charges using periodic boundary conditions.
Python
6
star
11

lammpser

Bottom-up topology maker for LAMMPS
Python
5
star
12

ED-AFM

Electrostatic Discovery Atomic Force Microscopy
Python
4
star
13

CP2k_mtools

This Python package is intended to help running multiple CP2k calculations for the same system or multiple similar systems.
Python
3
star
14

critcatworks

Workflow manager for DFT simulations on nanocluster databases using Fireworks
Python
3
star
15

cluskit

Mathematica
3
star
16

KPFM_FEM

This Python package is intended to help running finite element method (FEM) calculations related to modeling the macroscopic part of the KPFM probe and storing the results.
Python
2
star
17

Topobuilder

Python
2
star
18

DensityTools

Tools to ease density generation and predictions from MD runs
Python
2
star
19

Bader_charges

Simple script that takes charges from a Bader analysis and converts them to effective charges based on the valence electrons in the pseudopotential.
Python
2
star
20

Runner

Tools to easly schedule atomistic simulation workflow
Python
1
star
21

ml-spm

Machine learning for scanning probe microscopy
Python
1
star
22

ASD-AFM

Automated Structure Discovery in Atomic Force Microscopy
Python
1
star
23

triton

Scripts for working with the Triton cluster.
Python
1
star
24

MechAFM

Mechanical AFM (implementation based on Hapala et al., Phys. Rev. B, 90:085421, 2014)
C++
1
star
25

ProbeParticle_workflow

A workflow for double ProbeParticle method using OpenCL and complex_tip branch of ProbeParticle method
Jupyter Notebook
1
star