schrodinger.application.desmond.stage.prepare.forcefield module¶
- schrodinger.application.desmond.stage.prepare.forcefield.is_valid_opls_name(name: str) bool¶
- class schrodinger.application.desmond.stage.prepare.forcefield.AssignCustomCharge(*args, **kwargs)¶
- Bases: - schrodinger.application.desmond.cmj.StructureStageBase- This sets up and runs the custom charge script for the ligand cts in the input file. Ligands must be in separate cts, otherwise custom charges will not be assigned. Other cts will be passed unchanged. This must be called prior to the AssignForcefield stage. - NAME = 'assign_custom_charge'¶
 - PARAM = <schrodinger.utils.sea.sea.Map object>¶
 - run(jobname: str, mae_fname: str) Optional[str]¶
- Parameters
- jobname – Jobname for this stage. 
- input_fname – Filename for the input structure. 
 
- Returns
- Filename for the output structure or - Noneif there was an error generating the output.
 
 
- class schrodinger.application.desmond.stage.prepare.forcefield.AssignForcefield(*args, **kwargs)¶
- Bases: - schrodinger.application.desmond.cmj.StageBase- Variables
- ff_builder_args – a list storing arguments passed to desmond_ff_builder so that the same arguments can be passed to generate_titration_states. 
 - NAME = 'assign_forcefield'¶
 - FFLD_WATER = {'SPC': 'SPC', 'SPCE': 'SPCE', 'TIP3P': 'T3P', 'TIP4P': 'T4P', 'TIP4P2005': 'T4P5', 'TIP4PD': 'T4PD', 'TIP4PEW': 'T4PE', 'TIP5P': 'T5P'}¶
 - parameter_string = '\n DATA = {\n forcefield = OPLS_2005\n water = SPC\n humble = no\n fepio_mode = 2\n restrain = none\n restraints = {\n new = []\n existing = ignore\n }\n print_restraint = false\n atom_group = retain\n fep_retain_angle = yes\n core_hopping_fepio = on\n hydrogen_mass_repartition = off\n make_alchemical_water = on\n fep_enhance_sampling_dihedral = off\n assign_is_infinite = off\n fail_on_lewis_failure = on\n use_zob_property = on\n pose_conf_restraint = {\n enable = false\n name = harm\n schedule = pose_dihedral_restraint\n fc = 50.0\n sigma = 10.0\n alpha = 1.0\n dihedral_schedule = ""\n max_ring_size = 999\n }\n macromolecule_conf_restraint = {\n enable = false\n dihedral_schedule = ""\n backbone = {\n name = harm\n schedule = ""\n fc = 50.0\n sigma = 10.0\n alpha = 1.0\n }\n sidechain = {\n name = harm\n schedule = ""\n fc = 50.0\n sigma = 10.0\n alpha = 1.0\n }\n calpha_rung = {\n name = harm\n schedule = ""\n fc = 5.0\n alpha = 1.0\n }\n }\n }\n\n VALIDATE = {\n forcefield = {type = str _check = check_forcefield}\n water = {type = enum range = [SPC SPCE TIP3P TIP4P TIP4P2005 TIP4PEW TIP4PD TIP5P none]}\n humble = {type = bool}\n fepio_mode = {type = int range = [1 3]}\n atom_group = [\n {type = enum range = [retain none]}\n {atom = {type = str}\n name = {type = str}\n index = {type = int range = [0 7]}\n }\n {type = list size = 0\n elem = {atom = {type = str}\n name = {type = str}\n index = {type = int range = [0 7]}\n }\n }\n ]\n restrain = [\n {type = enum range = [retain none]}\n {_mapcheck = check_restrain _skip = all}\n {type = list size = -1\n elem = {_mapcheck = check_restrain _skip = all}\n }\n ]\n restraints = {\n existing = {type = enum range = [retain ignore ignore_posre]}\n new = [{type = list} {_skip = all}]\n }\n print_restraint = {type = bool }\n fep_retain_angle = {type = bool}\n core_hopping_fepio = {type = bool}\n hydrogen_mass_repartition = {type = bool}\n make_alchemical_water = {type = bool}\n fep_enhance_sampling_dihedral = {type = bool}\n assign_is_infinite = {type = bool}\n fail_on_lewis_failure = {type = bool}\n use_zob_property = {type = bool}\n pose_conf_restraint = {\n enable = {type = bool}\n name = {type = enum range = [harm fbhw soft]}\n fc = {type = float+}\n sigma = {type = float+}\n alpha = {type = float+}\n schedule = {type = str}\n dihedral_schedule = {type = str}\n max_ring_size = {type = int}\n _mapcheck = check_pose_conf_restraint\n }\n macromolecule_conf_restraint = {\n enable = {type = bool}\n dihedral_schedule = {type = str}\n backbone = {\n name = {type = enum range = [harm fbhw soft]}\n schedule = {type = str}\n fc = {type = float+}\n sigma = {type = float+}\n alpha = {type = float+}\n }\n sidechain = {\n name = {type = enum range = [harm fbhw soft]}\n schedule = {type = str}\n fc = {type = float+}\n sigma = {type = float+}\n alpha = {type = float+}\n }\n calpha_rung = {\n name = {type = enum range = [harm]}\n schedule = {type = str}\n fc = {type = float+}\n alpha = {type = float+}\n }\n }\n }\n '¶
 - PARAM = <schrodinger.utils.sea.sea.Map object>¶
 - __init__(*args, **kwargs)¶
 - crunch()¶
 - hook_captured_successful_job(job)¶
 - static get_water_atom_indices(st: schrodinger.structure._structure.Structure) List[int]¶
- Method that returns a generator for all the water atoms in a structure. 
 
- exception schrodinger.application.desmond.stage.prepare.forcefield.AssignLambdaScheduleError¶
- Bases: - Exception
- class schrodinger.application.desmond.stage.prepare.forcefield.AssignLambdaSchedule(should_pack=True)¶
- Bases: - schrodinger.application.desmond.cmj.StageBase- NAME = 'assign_lambda_schedule'¶
 - PARAM = <schrodinger.utils.sea.sea.Map object>¶
 - crunch() None¶
 - static get_n_vdw_and_charge_div(norm_dipole_per_atom: float, n_win: int) Tuple[int, float]¶
- Compute number of van der Waals windows and fraction of charges. - Uses a “broken stick” function to determine the partition of the lambda windows into van der Waals and electrostatic interactions. 
 
- schrodinger.application.desmond.stage.prepare.forcefield.encode_restraints(ct: schrodinger.structure._structure.Structure, restraints: List[schrodinger.utils.sea.sea.Map])¶
- Encode the restraints in the - FEP_ENCODED_RESTRAINTSct property.- Parameters
- ct – Structure to modify in place. 
- restraints – List of restraints as sea.Map objects. 
 
 
- schrodinger.application.desmond.stage.prepare.forcefield.decode_restraints(ct: schrodinger.structure._structure.Structure) List[schrodinger.utils.sea.sea.Map]¶
- Decode the restraints in the - FEP_ENCODED_RESTRAINTSct property.- Parameters
- ct – Structure to read the restraints from. 
- Returns
- If found, restraints that can be passed to - schrodinger.application.desmond.packages.restraint.RestraintsBuilder. Otherwise, return- None.
 
- schrodinger.application.desmond.stage.prepare.forcefield.clear_restraints(ct: schrodinger.structure._structure.Structure)¶
- Clear the - FEP_ENCODED_RESTRAINTSct property and- FEP_RESTRAINatom property from a given structure.- Parameters
- ct – Structure to modify in place. 
 
- schrodinger.application.desmond.stage.prepare.forcefield.add_restraint_reference(st: schrodinger.structure._structure.Structure, restraints: List[schrodinger.utils.sea.sea.Map])¶
- Add the reference values for Boresch type distance/angle/dihedral restraints. - Parameters
- st – Reference structure. 
- restraints – List of restraints, updated in place. 
 
 
- schrodinger.application.desmond.stage.prepare.forcefield.calculate_restraint_correction_term(restraints: List[schrodinger.utils.sea.sea.Map], temperature: float) float¶
- Calculate the correction to the free energy due to the restraints. - Parameters
- restraints – List of restraints. 
- temperature – The temperature for the simulation. 
 
- Returns
- The correction term in kcal/mol. 
 
- schrodinger.application.desmond.stage.prepare.forcefield.add_restraint_atom_marker(st: schrodinger.structure._structure.Structure, ligand_asl: str) Dict[int, int]¶
- Update - stto mark the ligand atoms that could be part of a restraint. Returns a dictionary mapping the- FEP_RESTRAINvalues to the structure atom indicies.- Parameters
- st – This will be updated in place to add atom properties to mark the ligand atoms. 
- ligand_asl – ASL to identify the ligand. 
 
 
- class schrodinger.application.desmond.stage.prepare.forcefield.LoadRestraintsFromStructure(*args, **kwargs)¶
- Bases: - schrodinger.application.desmond.cmj.StructureStageBase- Load the restraints encoded in the structure using - encode_restraintsand store to the cms. By default this stage will append to any existing restraints, set ‘load_restraints_from_structure.existing = ignore’ to ignore existing restraints in the structure.- The restraints can be used by setting ‘restrain.existing = retain’ in the subsequent simulate stage. - NAME = 'load_restraints_from_structure'¶
 - PARAM = <schrodinger.utils.sea.sea.Map object>¶
 - run(jobname: str, cms_fname: str) Optional[str]¶
- Parameters
- jobname – Jobname for this stage. 
- input_fname – Filename for the input structure. 
 
- Returns
- Filename for the output structure or - Noneif there was an error generating the output.
 
 
- class schrodinger.application.desmond.stage.prepare.forcefield.ForcefieldBuilderLauncher(should_pack=True)¶
- Bases: - schrodinger.application.desmond.cmj.StageBase- NAME = 'forcefield_builder_launcher'¶
 - PARAM = <schrodinger.utils.sea.sea.Map object>¶
 - crunch()¶
- This is where jobs of this stage are created. This function should be overriden by the subclass.