schrodinger.application.desmond.stage.prepare.forcefield module

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.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 None if there was an error generating the output.

__init__(*args, **kwargs)

Initialize self. See help(type(self)) for accurate signature.

capture(job)
check_param()
count = 0
crunch()

This is where jobs of this stage are created. This function should be overriden by the subclass.

describe()
determine()
hook_captured_successful_job(job)
pack_stage(force=False)
poststage()
prestage()
push(job)
release(is_restarting=False)

Calls the ‘crunch’ method to generate new jobs objects and submits them to the ‘QUEUE’.

restart_subjobs(jobs)

Subclass should override this if it supports subjob restarting.

stage_cls = {'aacg_sitemap': <class 'schrodinger.application.desmond.stage.app.matsci.Aacg_SiteMap_Multijob'>, 'align_core': <class 'schrodinger.application.desmond.stage.deprecate.AlignCore'>, 'analysis': <class 'schrodinger.application.desmond.stage.analysis.Analysis'>, 'analyze_mxmd_probe_mixture': <class 'schrodinger.application.desmond.stage.app.mxmd.AnalyzeMxmdProbeMixture'>, 'assign_custom_charge': <class 'schrodinger.application.desmond.stage.prepare.forcefield.AssignCustomCharge'>, 'assign_forcefield': <class 'schrodinger.application.desmond.stage.prepare.forcefield.AssignForcefield'>, 'assign_lambda_schedule': <class 'schrodinger.application.desmond.stage.prepare.forcefield.AssignLambdaSchedule'>, 'average_cell': <class 'schrodinger.application.desmond.stage.app.matsci.AverageCell'>, 'binding_pose_fep_primer': <class 'schrodinger.application.desmond.stage.deprecate.BindingPoseFepPrimer'>, 'build_geometry': <class 'schrodinger.application.desmond.stage.prepare.structure.BuildGeometry'>, 'calc_ddg': <class 'schrodinger.application.desmond.stage.fep_mapper.CalcDdg'>, 'concatenate': <class 'schrodinger.application.desmond.stage.simulate.Concatenate'>, 'concluder': <class 'schrodinger.application.desmond.stage.workflow.Concluder'>, 'covalent_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.CovalentFepMapper'>, 'desmond_extend': <class 'schrodinger.application.desmond.stage.simulate.DesmondExtend'>, 'disordered_system_builder': <class 'schrodinger.application.desmond.stage.prepare.structure.DisorderedSystemBuilder'>, 'extern': <class 'schrodinger.application.desmond.stage.workflow.Extern'>, 'extract_solute_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractSoluteStructure'>, 'extract_structures': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractStructures'>, 'fep_absolute_binding_analysis': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingAnalysis'>, 'fep_absolute_binding_fep_launcher': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingFepLauncher'>, 'fep_absolute_binding_fep_primer': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingFepPrimer'>, 'fep_absolute_binding_md_launcher': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingMdLauncher'>, 'fep_absolute_binding_structure_primer': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingStructurePrimer'>, 'fep_analysis': <class 'schrodinger.application.desmond.stage.analysis.FepAnalysis'>, 'fep_binding_pose_primer': <class 'schrodinger.application.desmond.stage.app.binding_pose.FepBindingPosePrimer'>, 'fep_launcher': <class 'schrodinger.application.desmond.stage.launcher.FepLauncher'>, 'fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.FepMapper'>, 'fep_mapper_cleanup': <class 'schrodinger.application.desmond.stage.fep_mapper.FepMapperCleanup'>, 'fep_mapper_report': <class 'schrodinger.application.desmond.stage.fep_mapper.FepMapperReport'>, 'fep_vrun': <class 'schrodinger.application.desmond.stage.simulate.FepVrun'>, 'ffbuilder': <class 'schrodinger.application.desmond.stage.deprecate.ForcefieldBuilder'>, 'fragment_linking_primer': <class 'schrodinger.application.desmond.stage.app.fragment_linking.stage.FragmentLinkingPrimer'>, 'generate_mxmd_box': <class 'schrodinger.application.desmond.stage.app.mxmd.GenerateMxmdBox'>, 'generate_solubility_fep_structures': <class 'schrodinger.application.desmond.stage.app.solubility.GenerateSolubilityFepStructures'>, 'generic': <class 'schrodinger.application.desmond.stage.simulate.GCMCCapable'>, 'hash_structure_title': <class 'schrodinger.application.desmond.stage.prepare.structure.HashStructureTitle'>, 'lambda_hopping': <class 'schrodinger.application.desmond.stage.simulate.LambdaHopping'>, 'load_restraints_from_structure': <class 'schrodinger.application.desmond.stage.prepare.forcefield.LoadRestraintsFromStructure'>, 'matsci_analysis': <class 'schrodinger.application.desmond.stage.app.matsci.MatSciAnalysis'>, 'minimize': <class 'schrodinger.application.desmond.stage.deprecate.Minimize'>, 'mixed_solvent_analysis': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventAnalysis'>, 'mixed_solvent_cleanup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventCleanup'>, 'mixed_solvent_setup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventSetup'>, 'multisim': <class 'schrodinger.application.desmond.stage.launcher.Multisim'>, 'pl_analysis': <class 'schrodinger.application.desmond.stage.analysis.PLAnalysis'>, 'primer': <class 'schrodinger.application.desmond.stage.workflow.Primer'>, 'protein_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.ProteinFepMapper'>, 'protein_mutation_generator': <class 'schrodinger.application.desmond.stage.prepare.structure.ProteinMutationGenerator'>, 'replica_exchange': <class 'schrodinger.application.desmond.stage.simulate.ReplicaExchange'>, 'replicate_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ReplicateStructure'>, 'simulate': <class 'schrodinger.application.desmond.stage.simulate.Simulate'>, 'solubility_fep_analysis': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepAnalysis'>, 'solubility_fep_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepLauncher'>, 'solubility_md_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityMdLauncher'>, 'solvate_pocket': <class 'schrodinger.application.desmond.stage.deprecate.SolvatePocket'>, 'stop': <class 'schrodinger.application.desmond.stage.workflow.Stop'>, 'system_builder': <class 'schrodinger.application.desmond.stage.utils.SystemBuilder'>, 'task': <class 'schrodinger.application.desmond.stage.workflow.Task'>, 'trim': <class 'schrodinger.application.desmond.stage.workflow.Trim'>, 'vacuum_report': <class 'schrodinger.application.desmond.stage.fep_mapper.VacuumReport'>, 'vrun': <class 'schrodinger.application.desmond.stage.simulate.Vrun'>, 'watermap_cluster': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapCluster'>, 'watermap_post_analysis': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapPostAnalysis'>}
stage_obj = {}
time_stage()
class schrodinger.application.desmond.stage.prepare.forcefield.AssignForcefield(*arg, **kwarg)

Bases: schrodinger.application.desmond.cmj.StageBase

NAME = 'assign_forcefield'
OPLS = ['OPLS_2005', 'OPLS2.1', 'OPLS3', 'OPLS3e']
PARAM = <schrodinger.utils.sea.Map object>
__init__(*arg, **kwarg)
crunch()
hook_captured_successful_job(job)
static get_water_ct_indices(model)
capture(job)
check_param()
count = 0
describe()
determine()
pack_stage(force=False)
poststage()
prestage()
push(job)
release(is_restarting=False)

Calls the ‘crunch’ method to generate new jobs objects and submits them to the ‘QUEUE’.

restart_subjobs(jobs)

Subclass should override this if it supports subjob restarting.

stage_cls = {'aacg_sitemap': <class 'schrodinger.application.desmond.stage.app.matsci.Aacg_SiteMap_Multijob'>, 'align_core': <class 'schrodinger.application.desmond.stage.deprecate.AlignCore'>, 'analysis': <class 'schrodinger.application.desmond.stage.analysis.Analysis'>, 'analyze_mxmd_probe_mixture': <class 'schrodinger.application.desmond.stage.app.mxmd.AnalyzeMxmdProbeMixture'>, 'assign_custom_charge': <class 'schrodinger.application.desmond.stage.prepare.forcefield.AssignCustomCharge'>, 'assign_forcefield': <class 'schrodinger.application.desmond.stage.prepare.forcefield.AssignForcefield'>, 'assign_lambda_schedule': <class 'schrodinger.application.desmond.stage.prepare.forcefield.AssignLambdaSchedule'>, 'average_cell': <class 'schrodinger.application.desmond.stage.app.matsci.AverageCell'>, 'binding_pose_fep_primer': <class 'schrodinger.application.desmond.stage.deprecate.BindingPoseFepPrimer'>, 'build_geometry': <class 'schrodinger.application.desmond.stage.prepare.structure.BuildGeometry'>, 'calc_ddg': <class 'schrodinger.application.desmond.stage.fep_mapper.CalcDdg'>, 'concatenate': <class 'schrodinger.application.desmond.stage.simulate.Concatenate'>, 'concluder': <class 'schrodinger.application.desmond.stage.workflow.Concluder'>, 'covalent_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.CovalentFepMapper'>, 'desmond_extend': <class 'schrodinger.application.desmond.stage.simulate.DesmondExtend'>, 'disordered_system_builder': <class 'schrodinger.application.desmond.stage.prepare.structure.DisorderedSystemBuilder'>, 'extern': <class 'schrodinger.application.desmond.stage.workflow.Extern'>, 'extract_solute_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractSoluteStructure'>, 'extract_structures': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractStructures'>, 'fep_absolute_binding_analysis': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingAnalysis'>, 'fep_absolute_binding_fep_launcher': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingFepLauncher'>, 'fep_absolute_binding_fep_primer': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingFepPrimer'>, 'fep_absolute_binding_md_launcher': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingMdLauncher'>, 'fep_absolute_binding_structure_primer': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingStructurePrimer'>, 'fep_analysis': <class 'schrodinger.application.desmond.stage.analysis.FepAnalysis'>, 'fep_binding_pose_primer': <class 'schrodinger.application.desmond.stage.app.binding_pose.FepBindingPosePrimer'>, 'fep_launcher': <class 'schrodinger.application.desmond.stage.launcher.FepLauncher'>, 'fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.FepMapper'>, 'fep_mapper_cleanup': <class 'schrodinger.application.desmond.stage.fep_mapper.FepMapperCleanup'>, 'fep_mapper_report': <class 'schrodinger.application.desmond.stage.fep_mapper.FepMapperReport'>, 'fep_vrun': <class 'schrodinger.application.desmond.stage.simulate.FepVrun'>, 'ffbuilder': <class 'schrodinger.application.desmond.stage.deprecate.ForcefieldBuilder'>, 'fragment_linking_primer': <class 'schrodinger.application.desmond.stage.app.fragment_linking.stage.FragmentLinkingPrimer'>, 'generate_mxmd_box': <class 'schrodinger.application.desmond.stage.app.mxmd.GenerateMxmdBox'>, 'generate_solubility_fep_structures': <class 'schrodinger.application.desmond.stage.app.solubility.GenerateSolubilityFepStructures'>, 'generic': <class 'schrodinger.application.desmond.stage.simulate.GCMCCapable'>, 'hash_structure_title': <class 'schrodinger.application.desmond.stage.prepare.structure.HashStructureTitle'>, 'lambda_hopping': <class 'schrodinger.application.desmond.stage.simulate.LambdaHopping'>, 'load_restraints_from_structure': <class 'schrodinger.application.desmond.stage.prepare.forcefield.LoadRestraintsFromStructure'>, 'matsci_analysis': <class 'schrodinger.application.desmond.stage.app.matsci.MatSciAnalysis'>, 'minimize': <class 'schrodinger.application.desmond.stage.deprecate.Minimize'>, 'mixed_solvent_analysis': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventAnalysis'>, 'mixed_solvent_cleanup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventCleanup'>, 'mixed_solvent_setup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventSetup'>, 'multisim': <class 'schrodinger.application.desmond.stage.launcher.Multisim'>, 'pl_analysis': <class 'schrodinger.application.desmond.stage.analysis.PLAnalysis'>, 'primer': <class 'schrodinger.application.desmond.stage.workflow.Primer'>, 'protein_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.ProteinFepMapper'>, 'protein_mutation_generator': <class 'schrodinger.application.desmond.stage.prepare.structure.ProteinMutationGenerator'>, 'replica_exchange': <class 'schrodinger.application.desmond.stage.simulate.ReplicaExchange'>, 'replicate_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ReplicateStructure'>, 'simulate': <class 'schrodinger.application.desmond.stage.simulate.Simulate'>, 'solubility_fep_analysis': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepAnalysis'>, 'solubility_fep_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepLauncher'>, 'solubility_md_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityMdLauncher'>, 'solvate_pocket': <class 'schrodinger.application.desmond.stage.deprecate.SolvatePocket'>, 'stop': <class 'schrodinger.application.desmond.stage.workflow.Stop'>, 'system_builder': <class 'schrodinger.application.desmond.stage.utils.SystemBuilder'>, 'task': <class 'schrodinger.application.desmond.stage.workflow.Task'>, 'trim': <class 'schrodinger.application.desmond.stage.workflow.Trim'>, 'vacuum_report': <class 'schrodinger.application.desmond.stage.fep_mapper.VacuumReport'>, 'vrun': <class 'schrodinger.application.desmond.stage.simulate.Vrun'>, 'watermap_cluster': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapCluster'>, 'watermap_post_analysis': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapPostAnalysis'>}
stage_obj = {}
time_stage()
exception schrodinger.application.desmond.stage.prepare.forcefield.AssignLambdaScheduleError

Bases: Exception

__init__

Initialize self. See help(type(self)) for accurate signature.

args
with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

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.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.

__init__(should_pack=True)

Initialize self. See help(type(self)) for accurate signature.

capture(job)
check_param()
count = 0
describe()
determine()
hook_captured_successful_job(job)
pack_stage(force=False)
poststage()
prestage()
push(job)
release(is_restarting=False)

Calls the ‘crunch’ method to generate new jobs objects and submits them to the ‘QUEUE’.

restart_subjobs(jobs)

Subclass should override this if it supports subjob restarting.

stage_cls = {'aacg_sitemap': <class 'schrodinger.application.desmond.stage.app.matsci.Aacg_SiteMap_Multijob'>, 'align_core': <class 'schrodinger.application.desmond.stage.deprecate.AlignCore'>, 'analysis': <class 'schrodinger.application.desmond.stage.analysis.Analysis'>, 'analyze_mxmd_probe_mixture': <class 'schrodinger.application.desmond.stage.app.mxmd.AnalyzeMxmdProbeMixture'>, 'assign_custom_charge': <class 'schrodinger.application.desmond.stage.prepare.forcefield.AssignCustomCharge'>, 'assign_forcefield': <class 'schrodinger.application.desmond.stage.prepare.forcefield.AssignForcefield'>, 'assign_lambda_schedule': <class 'schrodinger.application.desmond.stage.prepare.forcefield.AssignLambdaSchedule'>, 'average_cell': <class 'schrodinger.application.desmond.stage.app.matsci.AverageCell'>, 'binding_pose_fep_primer': <class 'schrodinger.application.desmond.stage.deprecate.BindingPoseFepPrimer'>, 'build_geometry': <class 'schrodinger.application.desmond.stage.prepare.structure.BuildGeometry'>, 'calc_ddg': <class 'schrodinger.application.desmond.stage.fep_mapper.CalcDdg'>, 'concatenate': <class 'schrodinger.application.desmond.stage.simulate.Concatenate'>, 'concluder': <class 'schrodinger.application.desmond.stage.workflow.Concluder'>, 'covalent_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.CovalentFepMapper'>, 'desmond_extend': <class 'schrodinger.application.desmond.stage.simulate.DesmondExtend'>, 'disordered_system_builder': <class 'schrodinger.application.desmond.stage.prepare.structure.DisorderedSystemBuilder'>, 'extern': <class 'schrodinger.application.desmond.stage.workflow.Extern'>, 'extract_solute_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractSoluteStructure'>, 'extract_structures': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractStructures'>, 'fep_absolute_binding_analysis': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingAnalysis'>, 'fep_absolute_binding_fep_launcher': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingFepLauncher'>, 'fep_absolute_binding_fep_primer': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingFepPrimer'>, 'fep_absolute_binding_md_launcher': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingMdLauncher'>, 'fep_absolute_binding_structure_primer': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingStructurePrimer'>, 'fep_analysis': <class 'schrodinger.application.desmond.stage.analysis.FepAnalysis'>, 'fep_binding_pose_primer': <class 'schrodinger.application.desmond.stage.app.binding_pose.FepBindingPosePrimer'>, 'fep_launcher': <class 'schrodinger.application.desmond.stage.launcher.FepLauncher'>, 'fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.FepMapper'>, 'fep_mapper_cleanup': <class 'schrodinger.application.desmond.stage.fep_mapper.FepMapperCleanup'>, 'fep_mapper_report': <class 'schrodinger.application.desmond.stage.fep_mapper.FepMapperReport'>, 'fep_vrun': <class 'schrodinger.application.desmond.stage.simulate.FepVrun'>, 'ffbuilder': <class 'schrodinger.application.desmond.stage.deprecate.ForcefieldBuilder'>, 'fragment_linking_primer': <class 'schrodinger.application.desmond.stage.app.fragment_linking.stage.FragmentLinkingPrimer'>, 'generate_mxmd_box': <class 'schrodinger.application.desmond.stage.app.mxmd.GenerateMxmdBox'>, 'generate_solubility_fep_structures': <class 'schrodinger.application.desmond.stage.app.solubility.GenerateSolubilityFepStructures'>, 'generic': <class 'schrodinger.application.desmond.stage.simulate.GCMCCapable'>, 'hash_structure_title': <class 'schrodinger.application.desmond.stage.prepare.structure.HashStructureTitle'>, 'lambda_hopping': <class 'schrodinger.application.desmond.stage.simulate.LambdaHopping'>, 'load_restraints_from_structure': <class 'schrodinger.application.desmond.stage.prepare.forcefield.LoadRestraintsFromStructure'>, 'matsci_analysis': <class 'schrodinger.application.desmond.stage.app.matsci.MatSciAnalysis'>, 'minimize': <class 'schrodinger.application.desmond.stage.deprecate.Minimize'>, 'mixed_solvent_analysis': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventAnalysis'>, 'mixed_solvent_cleanup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventCleanup'>, 'mixed_solvent_setup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventSetup'>, 'multisim': <class 'schrodinger.application.desmond.stage.launcher.Multisim'>, 'pl_analysis': <class 'schrodinger.application.desmond.stage.analysis.PLAnalysis'>, 'primer': <class 'schrodinger.application.desmond.stage.workflow.Primer'>, 'protein_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.ProteinFepMapper'>, 'protein_mutation_generator': <class 'schrodinger.application.desmond.stage.prepare.structure.ProteinMutationGenerator'>, 'replica_exchange': <class 'schrodinger.application.desmond.stage.simulate.ReplicaExchange'>, 'replicate_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ReplicateStructure'>, 'simulate': <class 'schrodinger.application.desmond.stage.simulate.Simulate'>, 'solubility_fep_analysis': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepAnalysis'>, 'solubility_fep_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepLauncher'>, 'solubility_md_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityMdLauncher'>, 'solvate_pocket': <class 'schrodinger.application.desmond.stage.deprecate.SolvatePocket'>, 'stop': <class 'schrodinger.application.desmond.stage.workflow.Stop'>, 'system_builder': <class 'schrodinger.application.desmond.stage.utils.SystemBuilder'>, 'task': <class 'schrodinger.application.desmond.stage.workflow.Task'>, 'trim': <class 'schrodinger.application.desmond.stage.workflow.Trim'>, 'vacuum_report': <class 'schrodinger.application.desmond.stage.fep_mapper.VacuumReport'>, 'vrun': <class 'schrodinger.application.desmond.stage.simulate.Vrun'>, 'watermap_cluster': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapCluster'>, 'watermap_post_analysis': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapPostAnalysis'>}
stage_obj = {}
time_stage()
schrodinger.application.desmond.stage.prepare.forcefield.encode_restraints(ct: schrodinger.structure._structure.Structure, restraints: List[schrodinger.utils.sea.Map])

Encode the restraints in the FEP_ENCODED_RESTRAINTS ct 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.Map]

Decode the restraints in the FEP_ENCODED_RESTRAINTS ct 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_RESTRAINTS ct property and FEP_RESTRAIN atom property from a given structure.

Parameters:ct – Structure to modify in place.
schrodinger.application.desmond.stage.prepare.forcefield.calculate_restraint_correction_term(restraints: List[schrodinger.utils.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 st to mark the ligand atoms that could be part of a restraint. Returns a dictionary mapping the FEP_RESTRAIN values 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_restraints and 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.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 None if there was an error generating the output.

__init__(*args, **kwargs)

Initialize self. See help(type(self)) for accurate signature.

capture(job)
check_param()
count = 0
crunch()

This is where jobs of this stage are created. This function should be overriden by the subclass.

describe()
determine()
hook_captured_successful_job(job)
pack_stage(force=False)
poststage()
prestage()
push(job)
release(is_restarting=False)

Calls the ‘crunch’ method to generate new jobs objects and submits them to the ‘QUEUE’.

restart_subjobs(jobs)

Subclass should override this if it supports subjob restarting.

stage_cls = {'aacg_sitemap': <class 'schrodinger.application.desmond.stage.app.matsci.Aacg_SiteMap_Multijob'>, 'align_core': <class 'schrodinger.application.desmond.stage.deprecate.AlignCore'>, 'analysis': <class 'schrodinger.application.desmond.stage.analysis.Analysis'>, 'analyze_mxmd_probe_mixture': <class 'schrodinger.application.desmond.stage.app.mxmd.AnalyzeMxmdProbeMixture'>, 'assign_custom_charge': <class 'schrodinger.application.desmond.stage.prepare.forcefield.AssignCustomCharge'>, 'assign_forcefield': <class 'schrodinger.application.desmond.stage.prepare.forcefield.AssignForcefield'>, 'assign_lambda_schedule': <class 'schrodinger.application.desmond.stage.prepare.forcefield.AssignLambdaSchedule'>, 'average_cell': <class 'schrodinger.application.desmond.stage.app.matsci.AverageCell'>, 'binding_pose_fep_primer': <class 'schrodinger.application.desmond.stage.deprecate.BindingPoseFepPrimer'>, 'build_geometry': <class 'schrodinger.application.desmond.stage.prepare.structure.BuildGeometry'>, 'calc_ddg': <class 'schrodinger.application.desmond.stage.fep_mapper.CalcDdg'>, 'concatenate': <class 'schrodinger.application.desmond.stage.simulate.Concatenate'>, 'concluder': <class 'schrodinger.application.desmond.stage.workflow.Concluder'>, 'covalent_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.CovalentFepMapper'>, 'desmond_extend': <class 'schrodinger.application.desmond.stage.simulate.DesmondExtend'>, 'disordered_system_builder': <class 'schrodinger.application.desmond.stage.prepare.structure.DisorderedSystemBuilder'>, 'extern': <class 'schrodinger.application.desmond.stage.workflow.Extern'>, 'extract_solute_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractSoluteStructure'>, 'extract_structures': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractStructures'>, 'fep_absolute_binding_analysis': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingAnalysis'>, 'fep_absolute_binding_fep_launcher': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingFepLauncher'>, 'fep_absolute_binding_fep_primer': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingFepPrimer'>, 'fep_absolute_binding_md_launcher': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingMdLauncher'>, 'fep_absolute_binding_structure_primer': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingStructurePrimer'>, 'fep_analysis': <class 'schrodinger.application.desmond.stage.analysis.FepAnalysis'>, 'fep_binding_pose_primer': <class 'schrodinger.application.desmond.stage.app.binding_pose.FepBindingPosePrimer'>, 'fep_launcher': <class 'schrodinger.application.desmond.stage.launcher.FepLauncher'>, 'fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.FepMapper'>, 'fep_mapper_cleanup': <class 'schrodinger.application.desmond.stage.fep_mapper.FepMapperCleanup'>, 'fep_mapper_report': <class 'schrodinger.application.desmond.stage.fep_mapper.FepMapperReport'>, 'fep_vrun': <class 'schrodinger.application.desmond.stage.simulate.FepVrun'>, 'ffbuilder': <class 'schrodinger.application.desmond.stage.deprecate.ForcefieldBuilder'>, 'fragment_linking_primer': <class 'schrodinger.application.desmond.stage.app.fragment_linking.stage.FragmentLinkingPrimer'>, 'generate_mxmd_box': <class 'schrodinger.application.desmond.stage.app.mxmd.GenerateMxmdBox'>, 'generate_solubility_fep_structures': <class 'schrodinger.application.desmond.stage.app.solubility.GenerateSolubilityFepStructures'>, 'generic': <class 'schrodinger.application.desmond.stage.simulate.GCMCCapable'>, 'hash_structure_title': <class 'schrodinger.application.desmond.stage.prepare.structure.HashStructureTitle'>, 'lambda_hopping': <class 'schrodinger.application.desmond.stage.simulate.LambdaHopping'>, 'load_restraints_from_structure': <class 'schrodinger.application.desmond.stage.prepare.forcefield.LoadRestraintsFromStructure'>, 'matsci_analysis': <class 'schrodinger.application.desmond.stage.app.matsci.MatSciAnalysis'>, 'minimize': <class 'schrodinger.application.desmond.stage.deprecate.Minimize'>, 'mixed_solvent_analysis': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventAnalysis'>, 'mixed_solvent_cleanup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventCleanup'>, 'mixed_solvent_setup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventSetup'>, 'multisim': <class 'schrodinger.application.desmond.stage.launcher.Multisim'>, 'pl_analysis': <class 'schrodinger.application.desmond.stage.analysis.PLAnalysis'>, 'primer': <class 'schrodinger.application.desmond.stage.workflow.Primer'>, 'protein_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.ProteinFepMapper'>, 'protein_mutation_generator': <class 'schrodinger.application.desmond.stage.prepare.structure.ProteinMutationGenerator'>, 'replica_exchange': <class 'schrodinger.application.desmond.stage.simulate.ReplicaExchange'>, 'replicate_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ReplicateStructure'>, 'simulate': <class 'schrodinger.application.desmond.stage.simulate.Simulate'>, 'solubility_fep_analysis': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepAnalysis'>, 'solubility_fep_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepLauncher'>, 'solubility_md_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityMdLauncher'>, 'solvate_pocket': <class 'schrodinger.application.desmond.stage.deprecate.SolvatePocket'>, 'stop': <class 'schrodinger.application.desmond.stage.workflow.Stop'>, 'system_builder': <class 'schrodinger.application.desmond.stage.utils.SystemBuilder'>, 'task': <class 'schrodinger.application.desmond.stage.workflow.Task'>, 'trim': <class 'schrodinger.application.desmond.stage.workflow.Trim'>, 'vacuum_report': <class 'schrodinger.application.desmond.stage.fep_mapper.VacuumReport'>, 'vrun': <class 'schrodinger.application.desmond.stage.simulate.Vrun'>, 'watermap_cluster': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapCluster'>, 'watermap_post_analysis': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapPostAnalysis'>}
stage_obj = {}
time_stage()