Spinner
- class Spinner(step_size=1.5, rotation_step_size=5.0, num_conformers=50, max_attempts=1000, nonbond_epsilon=5.0, beta=2.0, random_seed=1000)[source]
Bases:
Optimizer
Performs Monte Carlo optimisation of host-guest complexes [1].
Examples
Structure Optimization
Using
Spinner
will lead toConstructedMolecule
structures with better host-guest structures. Especially useful for multiple-guest systems and removing overlap.import stk bb1 = stk.BuildingBlock( smiles='NCCN', functional_groups=[stk.PrimaryAminoFactory()], ) bb2 = stk.BuildingBlock( smiles='O=CC(C=O)C=O', functional_groups=[stk.AldehydeFactory()], ) guest1 = stk.host_guest.Guest( building_block=stk.BuildingBlock('c1ccccc1'), ) guest2 = stk.host_guest.Guest( building_block=stk.BuildingBlock('C1CCCCC1'), ) cage = stk.ConstructedMolecule( topology_graph=stk.cage.FourPlusSix( building_blocks=(bb1, bb2), optimizer=stk.MCHammer(), ), ) complex = stk.ConstructedMolecule( topology_graph=stk.host_guest.Complex( host=stk.BuildingBlock.init_from_molecule(cage), guests=(guest1, guest2), optimizer=stk.Spinner(), ), )
Optimisation with
stk
simply collects the final position matrix. The optimisation’s trajectory can be output using theSpinDry
implementation if required by the user [1]. This code is entirely nonphysical and is, therefore, completely general to any chemistry.References
Methods
optimize
(state)Optimize the structure of a molecule under construction.
- __init__(step_size=1.5, rotation_step_size=5.0, num_conformers=50, max_attempts=1000, nonbond_epsilon=5.0, beta=2.0, random_seed=1000)[source]
Initialize an instance of
Spinner
.- Parameters:
step_size (
float
) – The relative size of the step to take during step.rotation_step_size (
float
) – The relative size of the rotation to take during step.num_conformers (
int
) – Number of conformers to extract.max_attempts (
int
) – Maximum number of MC moves to try to generate conformers.nonbond_epsilon (
float
) – Value of epsilon used in the nonbonded potential in MC moves. Determines strength of the nonbonded potential.beta (
float
) – Value of beta used in the in MC moves. Beta takes the place of the inverse boltzmann temperature.random_seed (
int
) – Random seed to use for MC algorithm.
- optimize(state)[source]
Optimize the structure of a molecule under construction.
- Parameters:
state (
ConstructionState
) – The molecule being constructed.- Returns:
The optimized construction state.
- Return type: