Quick Uncertainty and Entropy from STructural Similarity (QUESTS)

2026.2.22 · active · verified Thu Apr 16

QUESTS (Quick Uncertainty and Entropy via STructural Similarity) is a Python library providing model-free uncertainty and entropy estimation methods for interatomic potentials. It employs a structural descriptor and information-theoretical strategy that is fast to compute, relying only on distances between atoms within an environment. The library is actively maintained, with its latest version being 2026.2.22, and supports Python 3.8 and newer. It's primarily used for analyzing datasets in atomistic machine learning, offering metrics like dataset entropy, diversity, and information gap.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to generate atomic descriptors from a list of `ase.Atoms` objects and then calculate the dataset's entropy. The `ase` library is a core dependency for handling atomic structures. The `rc` parameter (cutoff radius) in `get_atomic_descriptors` is crucial and should be chosen appropriately for your specific materials system.

import numpy as np
from ase.atoms import Atoms
from quests.descriptors import get_atomic_descriptors
from quests.entropy import dataset_entropy

# 1. Create a list of ASE Atoms objects
# In a real application, you would load these from .xyz, .cif, etc.
atoms1 = Atoms('H2O', positions=[(0, 0, 0), (0.75, 0.75, 0), (0.75, -0.75, 0)])
atoms2 = Atoms('H2O', positions=[(0, 0, 0), (0.8, 0.6, 0), (0.6, -0.8, 0)])
# For illustrative purposes, let's create a list of two 'molecules'
atoms_list = [atoms1, atoms2]

# 2. Generate atomic descriptors for the dataset
# rc (cutoff radius) is a critical parameter. Adjust based on your system.
descriptors = get_atomic_descriptors(atoms_list, rc=5.0)

# 3. Compute the dataset entropy
entropy_value = dataset_entropy(descriptors)

print(f"Generated {len(descriptors)} descriptors.")
print(f"Computed dataset entropy: {entropy_value:.4f}")

# Example for GPU (requires 'torch' to be installed via `pip install quests[gpu]`)

view raw JSON →