A ConfigurationSet defines a relationship between a group of Configurations. This is useful when organizing a Dataset and can help future users of the dataset better understand its contents.

The most important functionality of a ConfigurationSet is provided by its aggregate() method, which accumulates critical information about its group of configurations.

Basics of Configuration Sets

The most often use-case is for a ConfigurationSet to be built by specifying the configuration_set_regexes dictionary of a Dataset. For more details about how to build ConfigurationSets, see Building configuration sets.

class, description, aggregated_info)

A configuration set defines a group of configurations and aggregates information about those configurations to improve queries.

Note that a configuration set should only be constructed by loading from an existing database (in order to aggregate the info)


A list of all attached configuration IDs




A human-readable description of the configuration set




A dictionary of information that was aggregated from all of the attached configurations. Contains the following information:

  • nconfigurations: the total number of configurations

  • nsites: the total number of sites

  • nelements: the total number of unique element types

  • elements: the element types

  • individual_elements_ratios: a set of elements ratios generated by looping over each configuration, extracting its concentration of each element, and adding the tuple of concentrations to the set

  • total_elements_ratios: the ratio of the total count of atoms of each element type over nsites

  • labels: the union of all configuration labels

  • labels_counts: the total count of each label

  • chemical_formula_reduced: the set of all reduced chemical formulae

  • chemical_formula_anonymous: the set of all anonymous chemical formulae

  • chemical_formula_hill: the set of all hill chemical formulae

  • nperiodic_dimensions: the set of all numbers of periodic dimensions

  • dimension_types: the set of all periodic boundary choices




Return hash(self).

__init__(configuration_ids, description, aggregated_info)

Return repr(self).


Return str(self).


list of weak references to the object (if defined)