Non-physical species model

TCKDB backend app models non-physical species (np_species) module

class tckdb.backend.app.models.np_species.NonPhysicalSpecies(**kwargs)[source]

A class for representing a TCKDB NonPhysicalSpecies item.

Note

All atom indices in these arguments are 1-indexed unless explicitly stated otherwise.

id

The primary key (not a user input).

Type

int

label

A free user label for the species (maximum 255 characters).

Type

Optional[str]

# provenance
timestamp

The UTC timestamp of uploading the data to TCKDB (not a user input).

Type

float

retracted

A reason for retracting this object. Default: None (not a user input).

Type

str

# review
reviewed

Whether this entry was reviewed (not a user input).

Type

bool

approved

If reviewed, whether it was approved (not a user input).

Type

bool

reviewer_flags

Backend flags to assist the review process (automatically determined, but users may add notes to flag items for the reviewer).

Example:

{'general': 'This species has a shallow (1.5 kJ/mol) well along the 4-8-7-10 torsional mode.'}
Type

Dict[str, str]

# chemical identifiers
smiles

The canonical SMILES descriptor with chirality information.

Note

Either smiles, inchi, or graph must be specified.

Type

Optional[str]

inchi

The InChI descriptor with an explicit H layer and chirality information.

Note

Either smiles, inchi, or graph must be specified.

Type

Optional[str]

inchi_key

The InChI key descriptor. Automatically assigned if not given by the user.

Type

Optional[str]

charge

The net molecular charge.

Type

int

multiplicity

The spin multiplicity.

Type

int

electronic_state

The species electronic state at CIS level. Default: 'X' (denoting ground state).

Type

Optional[str]

# geometry and connectivity
coordinates

Cartesian coordinates in standard orientation. Keys (values) are:

  • ‘symbols’ (Tuple[str])

    Chemical element symbols

  • ‘isotopes’ (Tuple[int])

    The respective isotopes

  • ‘coords’ (Tuple[Tuple[float]])

    The respective coordinates

Example for methane:

{'symbols': ('C', 'H', 'H', 'H', 'H'),
 'isotopes': (12, 1, 1, 1, 1),
 'coords': ((0.0, 0.0, 0.0),
            (0.6300326, 0.6300326, 0.6300326),
            (-0.6300326, -0.6300326, 0.6300326),
            (-0.6300326, 0.6300326, -0.6300326),
            (0.6300326, -0.6300326, -0.6300326))}
Type

Dict[str, Union[Tuple[Tuple[float, float, float], …], Tuple[int, …], Tuple[str, …]]]

graph

A 2D connectivity graph in an RMG adjacency list format. Note that this graph represents a single Lewis structure (resonance structure). These graphs can be generated using RMG’s API or online at https://rmg.mit.edu/molecule_search.

Note

Either smiles, inchi, or graph must be specified.

Example for methane:

multiplicity 1
1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S}
2 H u0 p0 c0 {1,S}
3 H u0 p0 c0 {1,S}
4 H u0 p0 c0 {1,S}
5 H u0 p0 c0 {1,S}
Type

Optional[str]

fragments

Fragments represented by this species, e.g., VdW wells. Entries are atom index lists of all atoms in a fragment. Default: None (denoting there’s only one fragment).

Type

Optional[List[List[int]]]

fragment_orientation

Relative orientation of fragments, starting from the heaviest one. All fragments must be in standard Cartesian orientation prior to determining the following parameters. Entries are dictionaries with the following keys (values):

  • ‘cm’ (List[float])

    A vector pointing from a fragment’s center to the center of mass of the next fragment.

    Units:

    Angstrom

  • ‘x’ (float)

    The X axis rotational angle in degrees.

  • ‘y’ (float)

    The Y axis rotational angle in degrees.

  • ‘z’ (float)

    The Z axis rotational angle in degrees.

Type

Optional[List[Dict[str, Union[float, List[float]]]]]

chirality

The species’ chiral centers, following the Cahn–Ingold–Prelog (CIP) notation ('R' or 'S' for atom centers, 'E' or 'Z' for double bond centers). Keys are tuples of atom indices of a chiral center, values are string representations of the respective chiral center.

Note: Non-radical valance 3 nitrogen atoms are also considered chiral if connected to three different groups (considering the lone pair to always be a unique fourth group). In such cases, use a 'NR' or 'NS' notation.

Example

A double bond with chirality 'E' between atoms 1-2, an 'S' chiral center on atom 3, and an 'S' chiral center on atom 6 which is a nitrogen are represented as:

{(1, 2): 'E', (3,): 'S', (6,): 'NS'})
Type

Optional[Dict[Tuple[int], str]]

conformation_method

The method used to determine the lowest energy conformer. Required if the species has 4 or more atoms.

Type

Optional[str]

is_well

Whether this conformer represents a local well (at the opt level used).

Type

bool

is_global_min

If this conformer is a well, whether it is meant to represents the global minimum energy well.

Type

bool

global_min_geometry

If this species does not represent the global minimum well, this argument must contain the coordinates of the global minimum energy conformer at the same opt level.

Type

Optional[Dict[str, tuple]]

# TS
is_ts

Whether this species represents a transition state. Default: False.

Type

bool

irc_trajectories

The two IRC trajectories. Each trajectory is a list of coordinates dictionaries. Required if the species is a transition state. Cannot be specified for non-TS species.

Type

Optional[List[List[Dict[str, tuple]]]]

# relationships - Many to One
literature_id

The literature reference from the Literature table.

Type

int

literature

An attribute that establishes a bidirectional relationship in a One to Many data model with the Literature table, where the “reverse” side is a Many to One data model.

Type

relationship

bot_id

The bot used to generate the object from the Bot table.

Type

int

bot

An attribute that establishes a bidirectional relationship in a One to Many data model with the Bot table, where the “reverse” side is a Many to One data model.

Type

relationship

opt_level

An attribute that establishes a bidirectional relationship in a One to Many data model with the Level table, where the “reverse” side is a Many to One data model.

Type

Optional[relationship]

freq_level

An attribute that establishes a bidirectional relationship in a One to Many data model with the Level table, where the “reverse” side is a Many to One data model.

Type

Optional[relationship]

scan_level

An attribute that establishes a bidirectional relationship in a One to Many data model with the Level table, where the “reverse” side is a Many to One data model.

Type

Optional[relationship]

irc_level

An attribute that establishes a bidirectional relationship in a One to Many data model with the Level table, where the “reverse” side is a Many to One data model.

Type

Optional[relationship]

sp_level

An attribute that establishes a bidirectional relationship in a One to Many data model with the Level table, where the “reverse” side is a Many to One data model. Required.

Type

Optional[relationship]

opt_ess

An attribute that establishes a bidirectional relationship in a One to Many data model with the ESS table, where the “reverse” side is a Many to One data model.

Type

Optional[relationship]

freq_ess

An attribute that establishes a bidirectional relationship in a One to Many data model with the ESS table, where the “reverse” side is a Many to One data model.

Type

Optional[relationship]

scan_ess

An attribute that establishes a bidirectional relationship in a One to Many data model with the ESS table, where the “reverse” side is a Many to One data model.

Type

Optional[relationship]

irc_ess

An attribute that establishes a bidirectional relationship in a One to Many data model with the ESS table, where the “reverse” side is a Many to One data model.

Type

Optional[relationship]

sp_ess

An attribute that establishes a bidirectional relationship in a One to Many data model with the ESS table, where the “reverse” side is a Many to One data model. Required.

Type

Optional[relationship]

# relationships - Many to Many
authors

An attribute that establishes a bidirectional relationship in a Many to Many data model with the Person table representing authors of this object.

Type

relationship

reviewers

An attribute that establishes a bidirectional relationship in a Many to Many data model with the Person table representing reviewers of this object.

Type

relationship

# paths
opt_path

The path to the optimization output file. Required for polyatomic species (with 2 or more atoms).

Type

Optional[str]

freq_path

The path to the frequencies calculation output file. Required for polyatomic species (with 2 or more atoms).

Type

Optional[str]

scan_paths

Paths to the torsion scan calculation output files. Keys are tuples of tuples. The number of inner-level tuples corresponds to the torsion dimension. Entries of the inner-level tuple are torsion atom indices. Values are paths to the respective scan calculation log file.

Type

Optional[Dict[Tuple[Tuple[int, int, int, int], …], str]]

irc_paths

Entries are paths to the IRC calculation output files. Required for transition states. Either a single path to a forward+reverse IRC, or two respective paths.

Type

Optional[List[str]]

sp_path

The path to the single point energy output file. Unlike the Species object, here sp_path is optional.

Type

Optional[str]

# unconverged jobs
unconverged_jobs

Any relevant unconverged jobs that were troubleshooted while calculating this Species. Entries are dictionaries, keys (values) are:

  • ‘job type’ (str): 'opt', 'freq', 'scan', 'irc', or 'sp'

  • ‘issue’ (str): The identified issue

  • ‘troubleshooting’ (str): Description of the troubleshooting method(s) that solved the issue

  • ‘comment’ (str): An optional comment explaining the troubleshooting approach

  • ‘path’ (str): The path to the relevant unconverged ESS log file

Type

Optional[List[Dict[str, str]]]

# misc
extras

Any additional information in the form of a dictionary Unlike the Species object, here extras is required and should at least contain a reason for declaring this species non-physical.

Type

Dict[str, Any]