scine_puffin.jobs.kinetx_kinetic_modeling

Classes

KinetxKineticModeling()

A job that performs the kinetic modeling using KiNetX given a set of reactions and an electronic structure model.

class scine_puffin.jobs.kinetx_kinetic_modeling.KinetxKineticModeling[source]

A job that performs the kinetic modeling using KiNetX given a set of reactions and an electronic structure model. The reaction rates are calculated from transition state theory. The final concentration and the maximum concentration reached (for at least a given set of time steps) is added as properties to the centroids of each compound. As starting concentrations, the sum of all “start_concentration” properties of each structure for the given compounds is used.

Order Name

kinetx_kinetic_modeling

Required Input
modeldb.Model

The electronic structure model to flag the new properties with.

Required Settings
aggregate_idsList[str]

The aggregate IDs (as strings).

reaction_idsList[str]

The reaction IDs (as strings).

aggregate_typesList[int]

The aggregate types. 0 for compounds, 1 for flasks.

lhs_ratesList[float]

The reaction rates for the forward reactions.

rhs_ratesList[float]

The reaction rates for the backward reactions.

Optional Settings

Optional settings are read from the settings field, which is part of any Calculation stored in a SCINE Database.

The following options are available:

time_stepfloat

The integration time step.

solverstr

The name of the numerical differential equation solver. Options are “CashKarp5” (default), “ImplicitEuler”, and “ExplicitEuler”.

batch_intervalint

The numerical integration is done in batches of time steps. After each step the maximum concentration for each compound is updated. This is the size of each time-step batch.

n_batchesint

The numerical integration is done in batches of time steps. After each step the maximum concentration for each compound is updated. This is the number of time-step batches.

energy_model_programstr

The program with which the electronic structure model should be flagged. Default any.

convergencefloat

Stop the numerical integration if the concentrations do not change more than this threshold between intervals.

concentration_label_postfixstr

Post fix to the property label. Default “”.

Required Packages
  • SCINE: Database (present by default)

  • SCINE: Utils (present by default)

  • SCINE: KiNetX

Generated Data

If successful (technically and chemically) the following data will be generated and added to the database:

Properties

The maximum and final concentration, and the vertex flux of each aggregate is added to its centroid. The edge flux, forward + backward flux for each reaction is added to the centroid of the first aggregate on the reaction’s LHS. Note, that the properties are NOT listed in the results to avoid large DB documents.

archive(archive: str) None

Archives all files existent in the job’s directory into tarball named with the job’s ID. The tarball is then moved to the given destination.

Parameters:
archivestr

The path to move the resulting tarball to.

capture_raw_output() Tuple[str, str]

Tries to capture the raw output of the calculation context and save it in the raw_output field of the configured calculation. This should never throw.

Notes

  • Requires run configuration

classmethod check_configuration(instance: T) typing_extensions.TypeGuard[T]
static check_duplicate_property(structure: db.Structure, properties: db.Collection, property_name: str, model: db.Model) db.ID | bool

Checks for a property that is an exact match for the one queried here. Exact match meaning that key and model both are matches.

Parameters:
propertiesdb.Collection (Scine::Database::Collection)

The collection housing all properties.

property_namestr

The name (key) of the queried property, e.g. electronic_energy.

modeldb.Model (Scine::Database::Model)

The model used in the calculation that resulted in this property.

structuredb.Structure (Scine::Database::Structure)

The structure to be checked in. The structure has to be linked to its collection.

Returns:
IDdb.ID (Scine::Database::ID)

Returns False if there is no existing property like the one queried or the ID of the first duplicate.

check_mass_balance(lhs_stoichiometry, rhs_stoichiometry, aggregate_id_list, aggregate_type_list)[source]
clear() None

Clears the directory in which the job was run.

complete_job() None

Saves the executing Puffin, changes status to db.Status.COMPLETE.

config: Configuration
configure_run(manager: db.Manager, calculation: db.Calculation, config: Configuration) None

Configures a job for a given Calculation to do tasks in the run function

Parameters:
managerdb.Manager (Scine::Database::Manager)

The manager of the database holding all collections

calculationdb.Calculation (Scine::Database::Calculation)

The calculation to be performed

configConfiguration

The configuration of the Puffin doing the job

fail_job() None

Saves the executing Puffin, changes status to db.Status.FAILED.

failed_file() str

Returns the path to the file indicating a failed calculation, None if job has not been prepared

postprocess_calculation_context() bool

Postprocesses a calculation context, pushing all errors and comments.

Returns:
True if the job succeeded, False otherwise.
prepare(job_dir: str, id: db.ID) None

Prepares the actual job. This function has to be implemented by any job that shall be added to Puffins job portfolio.

Parameters:
job_dirstr

The path to the directory in which all jobs are executed.

iddb.ID (Scine::Database::ID)

The calculation that triggered the execution of this job.

static required_programs() List[str][source]

This function has to be implemented by any job that shall be added to Puffins job portfolio.

Returns:
requirementsList[str]

A list of names of programs/packages that are required for the execution of the job.

run(manager: db.Manager, calculation: db.Calculation, config: Configuration) bool[source]

Runs the actual job. This function has to be implemented by any job that shall be added to Puffins job portfolio.

Parameters:
managerdb.Manager (Scine::Database::Manager)

The manager/database to work on/with.

calculationdb.Calculation (Scine::Database::Calculation)

The calculation that triggered the execution of this job.

configscine_puffin.config.Configuration

The configuration of Puffin.

stderr_path: str = 'stderr'
stdout_path: str = 'stdout'
store_property(properties: db.Collection, property_name: str, property_type: str, data: Any, model: db.Model, calculation: db.Calculation, structure: db.Structure, replace: bool = True) db.Property | None

Adds a single property into the database, connecting it with a given structure and calculation (it’s results section) and also

Parameters:
propertiesdb.Collection (Scine::Database::Collection)

The collection housing all properties.

property_namestr

The name (key) of the new property, e.g. electronic_energy.

property_typestr

The type of property to be added, e.g. NumberProperty.

dataAny (According to ‘property_type’)

The data to be stored in the property, the type of this object is dependent on the type of property requested. A NumberProperty will require a float, a VectorProperty will require a List[float], etc.

modeldb.Model (Scine::Database::Model)

The model used in the calculation that resulted in this property.

calculationdb.Calculation (Scine::Database::Calculation)

The calculation that resulted in this property. The calculation has to be linked to its collection.

structuredb.Structure (Scine::Database::Structure)

The structure for which the property is to be added. The properties field of the structure will receive an additional entry, or have an entry replaced, based on the options given to this function. The structure has to be linked to its collection.

replacebool

If true, replaces an existing property (identical name and model) with the new one. This option is true by default. If false, doesnothing in the previous case, and returns None

Returns:
propertyDerived of db.Property (Scine::Database::Property)

The property, a derived class of db.Property, linked to the properties’ collection, or None if no property was generated due to duplication.

success_file() str

Returns the path to the file indicating a successful calculation, empty string if job has not been prepared

verify_connection() None

Verifies the connection to the database. Returns only if a connection is established, if it is not, the function will attempt to generate a connection every 10 seconds, indefinitely.

Notes

  • Requires run configuration

work_dir: str