Prediction Module

Prediction algorithm implementation. Wraps the structure prediction pipeline.

Structure prediction implementation.

Todo

  • Test with a fully populated database.

  • Implement n-ary substitution probabilities; at the moment, only zero- and single-species substitutions are considered.

class smact.structure_prediction.prediction.StructurePredictor(mutator: CationMutator, struct_db: StructureDB, table: str)[source]

Bases: object

Provides structure prediction functionality.

Implements a statistically-based model for determining likely structures of a given composition, based on a database of known compositions and a lambda table of weights.

Based on the algorithm presented in:

Hautier, G., Fischer, C., Ehrlacher, V., Jain, A., and Ceder, G. (2011) Data Mined Ionic Substitutions for the Discovery of New Compounds. Inorganic Chemistry, 50(2), 656-663. doi:10.1021/ic102031h

nary_predict_structs(species: List[Tuple[str, int]], n_ary: Optional[int] = 2, thresh: Optional[float] = 0.001, include_same: Optional[bool] = True) Generator[Tuple[SmactStructure, float, SmactStructure], None, None][source]

Predicts structures for a combination of species.

Parameters
  • species – A list of (element, charge). The constituent species of the target compound.

  • thresh – The probability threshold, below which to discard predictions.

  • n_ary – The number of species in a parent compound to replace.

  • include_same – Whether to include unmodified structures from the database, i.e. structures containing all the same species.

Yields

Potential structures, as tuples of (structure, probability, parent).

predict_structs(species: List[Tuple[str, int]], thresh: Optional[float] = 0.001, include_same: Optional[bool] = True) Generator[Tuple[SmactStructure, float, SmactStructure], None, None][source]

Predict structures for a combination of species.

Parameters
  • species – A list of (element, charge). The constituent species of the target compound.

  • thresh – The probability threshold, below which to discard predictions.

  • include_same – Whether to include unmodified structures from the database, i.e. structures containing all the same species. Defaults to True.

Yields

Potential structures, as tuples of (structure, probability, parent).