Reactions Discovery in Python (PLAMS)

An example of how to use Reactions Discovery with Python (PLAMS) can be found in the examples section of the PLAMS documentation.

The scm.reactions_discovery.plams_job Python module contains the below classes.

class ReactionsDiscoveryResults(job)[source]

Results class for ReactionsDiscoveryJob

get_errormsg()[source]

Returns the error message of this calculation if any were raised.

Returns

String containing the error message.

Return type

str

get_md_jobs()[source]

Returns the AMSJobs used during the calculation.

Returns

List of AMSJobs used during the calculation.

Return type

List[AMSJob]

rkfpath()[source]

Returns path to reactions_discovery.rkf

Returns

Path to reactions_discovery.rkf

Return type

str

get_network_rd()[source]

Returns the reaction network represented by Reactions Discovery CombinedMol and CombinedReaction classes.

Raises

KFError – If the KF file associated with this result does not contain the required information.

Returns

Graph representing the reaction network, a dictionairy of categories and lists of CombinedMol, a dictionairy of categories and CombinedReaction and a list of categories.

Return type

Tuple[DiGraph, Dict[str, List[CombinedMol]], Dict[int, CombinedReaction], List[str]]

get_network()[source]
Returns the reaction network represented by a DiGraph and a dictionairy of lists of PLAMS molecules.

Each key in the dictionary is a category.

Returns

graph of the reaction network, dictionary of categories and lists of Molecules, and a list of categories.

Return type

Tuple[DiGraph, Dict[str, List[Molecule]], List[str]]

get_num_md_simulations()[source]

Returns the number of MD simulations used during the Molecular Dynamics stage.

Raises

KFError – If the KF file associated with this result does not contain the right information.

Returns

The number of MD simulations used during the Molecular Dynamics stage.

Return type

int

class ReactionsDiscoveryJob(name='reactions_discovery_job', driver=None, settings=None, molecule=None, **kwargs)[source]

PLAMS Job class for running Reactions Discovery.

This class inherits from the PLAMS SingleJob class. For usage, see the SingleJob documentation.

If you supply a Settings object to the constructor, it will be converted to a PISA (Python Input System for AMS) object.

Attributes:

  • input: an alias for self.settings.input

  • builder: an alias for self.settings.input.MolecularDynamics.BuildSystem

__init__(name='reactions_discovery_job', driver=None, settings=None, molecule=None, **kwargs)[source]

Initialize the ReactionsDiscoveryJob.

namestr

The name of the job

driverscm.input_classes.drivers.ReactionsDiscovery

PISA object describing the input to the ReactionsDiscovery program

settings: scm.plams.Settings

All settings for the job. Input settings in the PLAMS settings format under settings.input are automatically converted to the PISA format. You can specify settings.runscript.nproc to set the total number of cores to run on.

molecule: scm.plams.Molecule or Dict[str, scm.plams.Molecule]

Two possibilities:

  • molecule is of type Molecule - it should then be the complete system as a PLAMS Molecule . Cannot be combined with the driver.input.MolecularDynamics.BuildSystem or settings.input.ams.MolecularDynamics.BuildSystem. It will be written to the main System block in the input.

  • molecule is a dictionary with string keys and Molecule values - the keys should then be given in the driver.input.MolecularDynamics.BuildSystem.Molecule[i].SystemID input option. The molecules will then be used to build the system before the MD.

classmethod from_rkf(path)[source]

Initialize a job from a reactions_discovery.rkf file.

Parameters

path (str) – Path to a reactions_discovery.rkf file

Returns

A new ReactionsDiscoveryJob instance based on the information found in path.

Return type

ReactionsDiscoveryJob

classmethod from_input(text_input)[source]

Initialize a job from text input.

Parameters

text_input (str) – A multiline text input

Returns

A ReactionsDiscoveryJob

Return type

ReactionsDiscoveryJob

static _extract_mol_from_pisa(pisa)[source]

Remove a molecule from a System block in the ReactionsDiscovery PISA object and return it as molecule(s)

get_errormsg()[source]

Returns the contents of the jobname.err file if it exists. If the file does not exist an empty string is returned.

Returns

The error message

Return type

str

get_runscript()[source]

Generates the runscript. Use self.settings.runscript.preamble_lines = ['line1', 'line2'] or similarly for self.settings.runscript.postamble_lines to set custom settings.

self.settings.runscript.nproc controls the total number of cores to run on.

check()[source]

Returns True if “NORMAL TERMINATION” is given in the General section of reactions_discovery.rkf, AND all molecular dynamics jobs also have finished successfully.

ok()[source]

Synonym for check()

get_md_jobs()[source]

Returns: List of AMSJob

property input

PISA format input

classmethod load_external(path, finalize=False)[source]

Load a previous ReactionsDiscovery job from disk.

Parameters
  • path (Union[str, Path]) – A reactions discovery results folder.

  • finalize (bool, optional) – See SingleJob, defaults to False

Raises

FileError – When the path does not exist.

Returns

An initialized ReactionsDiscoveryJob

Return type

ReactionsDiscoveryJob

get_input()[source]

Obtain the input string used to run the Reactions Discovery workflow script.

Returns

An input string.

Return type

str