openff.bespokefit.schema.fitting.BespokeOptimizationSchema
- model openff.bespokefit.schema.fitting.BespokeOptimizationSchema[source]
Bases:
BaseOptimizationSchema
A schema which encodes how a bespoke force field should be created for a specific molecule.
- field smiles: str [Required]
The SMILES representation of the molecule to generate bespoke parameters for.
- field initial_force_field_hash: str [Required]
The hash values of the initial input force field with no bespokefit modifications. Used for internal hashing
- field fragmentation_engine: Optional[Union[openff.fragmenter.fragment.WBOFragmenter, openff.fragmenter.fragment.PfizerFragmenter]] = WBOFragmenter(functional_groups={'hydrazine': '[NX3:1][NX3:2]', 'hydrazone': '[NX3:1][NX2:2]', 'nitric_oxide': '[N:1]-[O:2]', 'amide': '[#7:1][#6:2](=[#8:3])', 'amide_n': '[#7:1][#6:2](-[O-:3])', 'amide_2': '[NX3:1][CX3:2](=[OX1:3])[NX3:4]', 'aldehyde': '[CX3H1:1](=[O:2])[#6:3]', 'sulfoxide_1': '[#16X3:1]=[OX1:2]', 'sulfoxide_2': '[#16X3+:1][OX1-:2]', 'sulfonyl': '[#16X4:1](=[OX1:2])=[OX1:3]', 'sulfinic_acid': '[#16X3:1](=[OX1:2])[OX2H,OX1H0-:3]', 'sulfinamide': '[#16X4:1](=[OX1:2])(=[OX1:3])([NX3R0:4])', 'sulfonic_acid': '[#16X4:1](=[OX1:2])(=[OX1:3])[OX2H,OX1H0-:4]', 'phosphine_oxide': '[PX4:1](=[OX1:2])([#6:3])([#6:4])([#6:5])', 'phosphonate': '[P:1](=[OX1:2])([OX2H,OX1-:3])([OX2H,OX1-:4])', 'phosphate': '[PX4:1](=[OX1:2])([#8:3])([#8:4])([#8:5])', 'carboxylic_acid': '[CX3:1](=[O:2])[OX1H0-,OX2H1:3]', 'nitro_1': '[NX3+:1](=[O:2])[O-:3]', 'nitro_2': '[NX3:1](=[O:2])=[O:3]', 'ester': '[CX3:1](=[O:2])[OX2H0:3]', 'tri_halide': '[#6:1]([F,Cl,I,Br:2])([F,Cl,I,Br:3])([F,Cl,I,Br:4])'}, scheme='WBO', wbo_options=WBOOptions(method='am1-wiberg-elf10', max_conformers=800, rms_threshold=1.0), threshold=0.03, heuristic='path_length', keep_non_rotor_ring_substituents=False)
The fragmentation engine that should be used to fragment the molecule. If no engine is provided the molecules will not be fragmented.
- field target_torsion_smirks: Optional[List[str]] [Required]
A list of SMARTS patterns that should be used to identify the bonds within the target molecule to generate bespoke torsions around. Each SMARTS pattern should include two indexed atoms that correspond to the two atoms involved in the central bond. By default bespoke torsion parameters (if requested) will be constructed for all non-terminal ‘rotatable bonds’
- field smirk_settings: SMIRKSettings = SMIRKSettings(expand_torsion_terms=True, generate_bespoke_terms=True)
The settings that should be used when generating SMIRKS patterns for this optimization stage.
- property molecule: Molecule
Return the openff molecule of the mapped smiles.
- property target_smirks: List[SMIRKSType]
Returns a list of the target smirks types based on the selected hyper parameters. Used to determine which parameters should be fit.