aim2dat.strct.structure_collection

Module implementing the StructureCollection class to handle a set of molecular or crystalline structures.

Module Contents

Classes

StructureCollection

The StructureCollection class is a container for one or multiple atomic structures. It

Attributes

aiida

pymatgen

class aim2dat.strct.structure_collection.StructureCollection(structures: list[aim2dat.strct.strct.Structure | dict] | None = None)[source]

The StructureCollection class is a container for one or multiple atomic structures. It implements several import_* and append_* functions to add new data to the object.

Parameters:

structures (list) – List of Structure or dict objects.

Overview

Properties

labels

Labels assigened to the structures.

Methods

append(label, elements, positions, pbc, cell, is_cartesian, wrap, kinds, attributes, extras)

Append structure.

append_from_aiida_structuredata(aiida_node, use_uuid, label)

Append structure from aiida structuredata.

append_from_ase_atoms(label, ase_atoms, attributes)

Append structure from ase atoms object.

append_from_file(label, file_path, attributes, backend, backend_kwargs)

Append structure from file using the ase read-function.

append_from_pymatgen_structure(label, pymatgen_structure, attributes)

Append structure from pymatgen structure or molecule object.

append_structure(structure, label)

Append Structure object to collection. The label of the structure needs to be

copy()

Return copy of StructureCollection object.

create_pandas_df(exclude_columns)

Create a pandas data frame of the object.

duplicate_structure(key, new_label)

Duplicate structure.

get_all_attribute_keys()

Get all attribute keys.

get_all_elements()

Get the element symbols of all structures.

get_all_kinds()

Get the kind strings of all structures.

get_all_structures()

Return a list of all structures.

get_structure(key, return_index_label)

Get structure by key.

import_from_aiida_db(group_label, use_uuid, raise_error)

Import from the AiiDA database.

import_from_hdf5_file(file_path, raise_error)

Import from hdf5-file. Calculated extras are not yet supported.

import_from_pandas_df(data_frame, structure_column, exclude_columns, use_uuid, raise_error)

Import from pandas data frame.

index(label)

Return index of label. If the label is not present, None is returned.

items()

Return a list of label, value tuples.

pop(key)

Pop structure.

store_in_aiida_db(group_label, group_description)

Store structures into the AiiDA-database.

store_in_hdf5_file(file_path)

Store structures in hdf5-file. Calculated extras are not yet supported.

property labels : list[str]

Labels assigened to the structures.

append(label: str, elements: list, positions: list, pbc: list, cell: list = None, is_cartesian: bool = True, wrap: bool = False, kinds: list = None, attributes: dict = None, extras: dict = None)[source]

Append structure.

Parameters:
  • label (str) – String used to identify the structure.

  • elements (list) – List of element symbols or their atomic numbers.

  • positions (list) – List of the atomic positions, either cartesian or scaled coordinates.

  • pbc (list or bool) – Periodic boundary conditions.

  • cell (list or np.array) – Nested 3x3 list of the cell vectors.

  • is_cartesian (bool (optional)) – Whether the coordinates are cartesian or scaled.

  • wrap (bool (optional)) – Wrap atomic positions back into the unit cell.

  • kinds (list) – List of kind names (this allows custom kinds like Ni0, Ni1, …). If None, the elements will be used as the kind names.

  • attributes (dict) – Additional information about the structure.

  • extras (dict) – Extras of the structure.

append_from_aiida_structuredata(aiida_node: int | str | aiida.orm.StructureData, use_uuid: bool = False, label: str = None)[source]

Append structure from aiida structuredata.

Parameters:
  • aiida_node (int, str or aiida.orm.StructureData) – Primary key, UUID or AiiDA structure node.

  • use_uuid (bool (optional)) – Whether to use the uuid (str) to represent AiiDA nodes instead of the primary key (int).

  • label (str) – String used to identify the structure. Overwrites label property of the structure.

append_from_ase_atoms(label: str, ase_atoms: ase.Atoms, attributes: dict = None)[source]

Append structure from ase atoms object.

Parameters:
  • label (str) – String used to identify the structure.

  • ase_atoms (ase.Atoms) – ase Atoms object.

  • attributes (dict) – Additional information about the structure.

append_from_file(label: str, file_path: str, attributes: dict = None, backend: str = 'ase', backend_kwargs: dict = None)[source]

Append structure from file using the ase read-function.

Parameters:
  • label (str) – String used to identify the structure.

  • file_path (str) – File path.

  • attributes (dict) – Additional information about the structure.

append_from_pymatgen_structure(label: str, pymatgen_structure: pymatgen.core.Molecule | pymatgen.core.Structure, attributes: dict = None)[source]

Append structure from pymatgen structure or molecule object.

Parameters:
  • label (str) – String used to identify the structure.

  • pymatgen_structure (pymatgen.core.Structure or pymatgen.core.Molecule) – pymatgen structure or molecule object.

  • attributes (dict) – Additional information about the structure.

append_structure(structure: aim2dat.strct.strct.Structure, label: str = None)[source]

Append Structure object to collection. The label of the structure needs to be either given via the structures’s property or as keyword argument.

Parameters:
  • structure (Structure) – Structure object.

  • label (str (optional)) – String used to identify the structure. Overwrites label property of the structure.

copy() StructureCollection[source]

Return copy of StructureCollection object.

create_pandas_df(exclude_columns: list = []) pandas.DataFrame[source]

Create a pandas data frame of the object.

Parameters:

exclude_columns (list (optional)) – Columns that are not shown in the pandas data frame.

Returns:

pandas.DataFrame – Pandas data frame.

duplicate_structure(key: str | int, new_label: str)[source]

Duplicate structure.

Parameters:
  • key (str or int) – Key of the structure.

  • new_label (str) – Label of the copied structure.

get_all_attribute_keys() list[source]

Get all attribute keys.

Returns:

list – All attribute keys.

get_all_elements() list[str][source]

Get the element symbols of all structures.

Returns:

list – List of all element symbols .

get_all_kinds() list[source]

Get the kind strings of all structures.

Returns:

list – List of all kinds.

get_all_structures() list[aim2dat.strct.strct.Structure][source]

Return a list of all structures.

Returns:

list – List of all structures stored in the object.

get_structure(key: str | int, return_index_label: bool = False) aim2dat.strct.strct.Structure[source]

Get structure by key.

Parameters:

key (str or int) – Key of the structure.

Returns:

Structure – structure.

import_from_aiida_db(group_label: str = None, use_uuid: bool = False, raise_error: bool = True)[source]

Import from the AiiDA database.

Parameters:
  • group_label (str or list (optional)) – Constrains query to structures that are member of the group(s).

  • use_uuid (bool (optional)) – Whether to use the uuid (str) to represent AiiDA nodes instead of the primary key (int).

  • raise_error (bool (optional)) – Whether to raise an error if one of the constraints is not met.

import_from_hdf5_file(file_path: str, raise_error: bool = True)[source]

Import from hdf5-file. Calculated extras are not yet supported.

Parameters:
  • file_path (str) – File path.

  • raise_error (bool (optional)) – Whether to raise an error if one of the constraints is not met.

import_from_pandas_df(data_frame: pandas.DataFrame, structure_column: str = 'optimized_structure', exclude_columns: list = [], use_uuid: bool = False, raise_error: bool = True)[source]

Import from pandas data frame.

Parameters:
  • data_frame (pd.DataFrame) – Pandas data frame containing at least one column with the AiiDA structure nodes.

  • structure_column (str (optional)) – Column containing AiiDA structure nodes used to determine structural and compositional properties. The default value is 'optimized_structure'.

  • exclude_columns (list (optional)) – Columns of the data frame that are excluded. The default value is [].

  • use_uuid (bool (optional)) – Whether to use the uuid (str) to represent AiiDA nodes instead of the primary key (int).

  • raise_error (bool (optional)) – Whether to raise an error if one of the constraints is not met.

index(label: str)[source]

Return index of label. If the label is not present, None is returned.

Parameters:

str – Label of the structure.

items() list[tuple[str, aim2dat.strct.strct.Structure]][source]

Return a list of label, value tuples.

pop(key: str | int) aim2dat.strct.strct.Structure[source]

Pop structure.

Parameters:

str – Key of the structure.

store_in_aiida_db(group_label: str = None, group_description: str = None)[source]

Store structures into the AiiDA-database.

Parameters:
  • group_label (str (optional)) – Label of the AiiDA group.

  • group_description (str (optional)) – Description of the AiiDA group.

Returns:

list – List containing dictionary of all structure nodes.

store_in_hdf5_file(file_path: str)[source]

Store structures in hdf5-file. Calculated extras are not yet supported.

Parameters:

file_path (str) – File path.

aim2dat.strct.structure_collection.aiida
aim2dat.strct.structure_collection.pymatgen