rdmc.external.rmg#

A module contains RMG related functions. Needs to run with rmg_env.

rdmc.external.rmg.check_isomorphic_molecules(mols_1: List[Molecule], mols_2: List[Molecule]) bool#

Check if two lists share the same set of molecules.

Parameters:
  • mols_1 (list) – The first set of molecules.

  • mols_2 (list) – The second set of molecules.

Returns:

bool – If both sets share exactly same molecules.

rdmc.external.rmg.find_reaction_family(database: rmgpy.data.kinetics.database.KineticsDatabase, reactants: list, products: list, only_families: list | None = None, unique: bool = True, verbose: bool = True, resonance: bool = True) tuple | None#

A helper function to find reaction families for given reactants and products.txt

Parameters:
  • database (KineticsDatabase) – A RMG Kinetics database instance.

  • reactants (list) – A list of reactant molecules.

  • products (list) – A list of product molecules.

  • only_families (list, optional) – A list of family to search from. Defaults to None for unlimited.

  • unique (bool) – Whether to only return a single results. Defaults to True.

  • verbose (bool, optional) – Whether to print results. Defaults to print.

  • resonance (bool) – Whether to generate resonance strucuture when searching for reaction family. Defauls to `True.

Returns:
  • - tuple – (family_label, is_forward) if unique == True.

  • - None – if no match is found.

  • - list – [(family_label1, is_foward_1), (family_label2, is_forward2)…] if unique == False.

rdmc.external.rmg.from_rdkit_mol(rdkitmol, sort: bool = False, raise_atomtype_exception: bool = True) Molecule#

Convert a RDKit Mol object rdkitmol to a molecular structure. Uses RDKit to perform the conversion. This Kekulizes everything, removing all aromatic atom types.

rdmc.external.rmg.generate_reaction_complex(database: KineticsDatabase, reactants: list, products: list, only_families: list | None = None, forward: bool | None = None, verbose: bool = True, resonance: bool = True) List[Molecule]#

Generate a pair of reactant and product complex according to RMG reaction family.

It will first match the given reactant and product pairs to a family (by calling find_reaction_family). Then, it will form a reactant complexes based on the reactants list. Finally, it will apply the template corresponding to the family to the reactants complex and yield a product complex with the correct atom map. One can bypasses the searching step by providing only_families with a single-element list and assigning the forward variable. All allowed families names can be found at https://rmg.mit.edu/database/kinetics/families/. Please note that this function currently only returns the first template it finds. This is non-idea if a nominal reaction has multiple channels. # TODO: provide an option if multiple channel if available.

Parameters:
  • database (KineticsDatabase) – An RMG Kinetics database instance.

  • reactants (list) – A list of reactant molecules.

  • products (list) – A list of product molecules.

  • only_families (list) – A list of families that constrains the search. Defaults to None for no constraint. If only_families contains only one family and forward is specified, the function assumes the user is only interested in the specific reaction family and will skip the find_reaction_family step.

  • forward (bool) – Whether the reaction is forward or not. Only used if a user wants to skip the find_reaction_family step and assigns an one-element list to only_families. Defaults to None, for not skipping the find_reaction_family step.

  • resonance (bool) – Generate resonance structures when identifying template matching. Can be potentially expensive for some complicated structures. Defaults to True.

  • verbose (bool, optional) – Whether to print results. Defaults to True as to print.

Returns:

Tuple – a reactant complex and a product complex with consistent atom indexing as in the reactant.

rdmc.external.rmg.load_rmg_database(families: list = [], all_families: bool = False)#

A helper function to load RMG database.

Returns:

RMGDatabase – A instance of RMG database

rdmc.external.rmg.load_rxn_family_database(families: list | str = 'all')#

A helper function to load RMG Kinetic database that only contains reaction family info.

Parameters:

families (list, optional) – Accepts a list or str of the following: - Specific kinetics family labels - Names of family sets defined in recommended.py - ‘all’ - ‘none’. Defaults to ‘all’.