Complex#

class autode.species.complex.Complex(*args: Species, name: str = 'complex', do_init_translation: bool = False, copy: bool = True, solvent_name: str | None = None)#
__init__(*args: Species, name: str = 'complex', do_init_translation: bool = False, copy: bool = True, solvent_name: str | None = None)#

Molecular complex e.g. VdW complex of one or more Molecules

Keyword Arguments:
  • name (str) –

  • do_init_translation (bool) – Translate molecules initially such that they donot overlap

  • copy (bool) – Should the molecules be copied into this complex?

  • solvent_name (str | None) – Name of the solvent, if None then select the first solvent from the constituent molecules

atom_indexes(mol_index: int)#

List of atom indexes of a molecule withibn a Complex

property atoms: Atoms | None#

Constituent atoms of this collection

calc_repulsion(mol_index: int)#

Calculate the repulsion between a molecule and the rest of the complex

property n_molecules: int#

Number of molecules in this molecular complex

populate_conformers()#

Generate and optimise with a low level method a set of conformers, the number of which is:

Config.num_complex_sphere_points × Config.num_complex_random_rotations

^ (n molecules in complex - 1)

This will not be exact as get_points_on_sphere does not return quite the desired number of points for small N.

reorder_atoms(mapping: dict) None#

Reorder the atoms in this complex using a dictionary keyed with current atom indexes and values as their new positions

rotate_mol(axis: ndarray | Sequence, theta: Angle | float, mol_index: int, origin: ndarray | Sequence | None = None)#

Rotate a molecule within a complex an angle theta about an axis given an origin

Parameters:
  • theta (float | autode.values.Angle) –

  • origin (np.ndarray | list) – Length 3 vector

  • mol_index (int) –

    Index of the molecule to translate. e.g. 2 will translate molecule 1 in the complex

    they are indexed from 0

translate_mol(vec: Sequence[float], mol_index: int)#

Translate a molecule within a complex by a vector

Parameters:

mol_index (int) – Index of the molecule to translate. e.g. 2 will translate molecule 1 in the complex they are indexed from 0

class autode.species.complex.NCIComplex(*args: Species, name: str = 'complex', do_init_translation: bool = False, copy: bool = True, solvent_name: str | None = None)#

Non covalent interaction complex

class autode.species.complex.ProductComplex(*args, name='prod_complex', **kwargs)#
__init__(*args, name='prod_complex', **kwargs)#

Product complex

Keyword Arguments:

name (str) –

to_reactant_complex()#

Return a reactant complex from this product complex

class autode.species.complex.ReactantComplex(*args, name='reac_complex', **kwargs)#
__init__(*args, name='reac_complex', **kwargs)#

Reactant complex

Keyword Arguments:

name (str) –

to_product_complex()#

Return a product complex from this reactant complex

autode.species.complex.get_complex_conformer_atoms(molecules, rotations, points)#

Generate a conformer of a complex given a set of molecules, rotations for each and points on which to shift

Parameters:
  • rotations (list(np.ndarray)) –

    List of len 4 np arrays containing the [theta, x, y, z] defining the rotation

    amount and axis

  • points – (list(np.ndarray)): List of length 3 np arrays containing the point to add the molecule with index i

Returns:

(list(autode.atoms.Atom))