schrodinger.application.desmond.stage.simulate module

schrodinger.application.desmond.stage.simulate.concatenate_and_backup(text_fname)
schrodinger.application.desmond.stage.simulate.backup_trajectories(fname)
schrodinger.application.desmond.stage.simulate.concatenate_trajectories(trajectories)

Concatenate a list of previously backed-up trajectory files (or dirs) with the respective current ones.

Parameters:trajectories (list of `str`s) – A list of file names. Each name should have the suffix of either “_trj.previous” or “.xtc.previous”. Elements without such a suffix will be ignored without error. These are the names of the backed-up trajectories. The current trajectories should have the same basenames, but not required to be of the same format as the previous ones’. This means we can concatenate a DTR trajectory with a XTC trajectory. The final (complete) trajecotries will be in the same formats as the current ones’.
class schrodinger.application.desmond.stage.simulate.SimulateBase(*arg, **kwarg)

Bases: schrodinger.application.desmond.cmj.StageBase

A stage that can launch desmond simulations.

DESMOND_CMD = '/scr/buildbot/savedbuilds/2020-4/NB/build-142/desmond'
CFG_SIM_NAME = 'mdsim'
parameter_string = '\n DATA = {\n jobname = "$MASTERJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n dir = "$[$JOBPREFIX/$]$[$PREFIX/$]$MASTERJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n host = "$SUBHOST"\n fep.type = small_molecule\n jin_file = []\n jin_must_transfer_file= []\n jout = ""\n cfg_file = ""\n window = ?\n atom_group = none\n restraints.new = []\n restraints.existing = ignore\n print_restraint = false\n jlaunch_opt= [""]\n }\n\n VALIDATE = {\n host = {type = str range = [1 10000000000]}\n fep.type = {type = enum range = [prm_stability protein_selectivity covalent_ligand small_molecule metalloprotein ligand_selectivity binding_pose absolute_binding]}\n cfg_file = {type = str range = [0 10000000000]}\n jin_file = [\n {type = str range = [0 10000000000]}\n {type = list size = 0\n elem = {type = str range = [0 10000000000]}}\n ]\n jin_must_transfer_file = {type = list size = 0 elem = {type = str range = [0 10000000000]}}\n jout = [\n {type = str range = [0 10000000000]}\n {type = list size = 0\n elem = {type = str range = [0 10000000000]}}\n ]\n window = [\n {type = none}\n {type = int0 _check = check_iwindow}\n {type = list size = 0 elem = {type = int0 _check = check_iwindow}}\n ]\n atom_group = [\n {type = enum range = [retain none]}\n {atom = {type = str range = [0 10000000000]}\n name = {type = str range = [0 10000000000]}\n index = {type = int range = [0 255]}\n }\n {type = list size = 0\n elem = {atom = {type = str range = [0 10000000000]}\n name = {type = str range = [0 10000000000]}\n index = {type = int range = [0 7]}\n }\n }\n ]\n restraints.existing = {type = enum range = [retain ignore]}\n restraints.new = [ {type = list}\n {_skip = all}\n ]\n print_restraint = {type = bool}\n jlaunch_opt.black_list = ["!append!" "-exec" "-PROCS" "-in" "-c" "-overwrite"]\n }\n '
PARAM = <schrodinger.utils.sea.Map object>
__init__(*arg, **kwarg)
migrate_param(param: schrodinger.utils.sea.Map)

The Berendsen method is no longer supported (it was CPU only). If we encounter it we automatically change it to Langevin, which was the behavior before it was removed via the gpu effect_if param. :param param: a param corresponding to this stage class to migrate

crunch()
restart_subjobs(jobs)

Subclass should override this if it supports subjob restarting.

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

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

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

Bases: schrodinger.application.desmond.stage.simulate.SimulateBase

Any stage that actually does simulation should inherit from this class. Only vrun-type stages, which rely on the consistency of the previous stage’s trajectory and the cms model for the current stage, should derive from SimulateBase instead.

CFG_SIM_NAME = 'mdsim'
DESMOND_CMD = '/scr/buildbot/savedbuilds/2020-4/NB/build-142/desmond'
NAME = 'generic'
PARAM = <schrodinger.utils.sea.Map object>
__init__(*arg, **kwarg)
capture(job)
check_param()
count = 0
crunch()
describe()
determine()
hook_captured_successful_job(job)
migrate_param(param: schrodinger.utils.sea.Map)

The Berendsen method is no longer supported (it was CPU only). If we encounter it we automatically change it to Langevin, which was the behavior before it was removed via the gpu effect_if param. :param param: a param corresponding to this stage class to migrate

pack_stage(force=False)
parameter_string = '\n DATA = {\n jobname = "$MASTERJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n dir = "$[$JOBPREFIX/$]$[$PREFIX/$]$MASTERJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n host = "$SUBHOST"\n fep.type = small_molecule\n jin_file = []\n jin_must_transfer_file= []\n jout = ""\n cfg_file = ""\n window = ?\n atom_group = none\n restraints.new = []\n restraints.existing = ignore\n print_restraint = false\n jlaunch_opt= [""]\n }\n\n VALIDATE = {\n host = {type = str range = [1 10000000000]}\n fep.type = {type = enum range = [prm_stability protein_selectivity covalent_ligand small_molecule metalloprotein ligand_selectivity binding_pose absolute_binding]}\n cfg_file = {type = str range = [0 10000000000]}\n jin_file = [\n {type = str range = [0 10000000000]}\n {type = list size = 0\n elem = {type = str range = [0 10000000000]}}\n ]\n jin_must_transfer_file = {type = list size = 0 elem = {type = str range = [0 10000000000]}}\n jout = [\n {type = str range = [0 10000000000]}\n {type = list size = 0\n elem = {type = str range = [0 10000000000]}}\n ]\n window = [\n {type = none}\n {type = int0 _check = check_iwindow}\n {type = list size = 0 elem = {type = int0 _check = check_iwindow}}\n ]\n atom_group = [\n {type = enum range = [retain none]}\n {atom = {type = str range = [0 10000000000]}\n name = {type = str range = [0 10000000000]}\n index = {type = int range = [0 255]}\n }\n {type = list size = 0\n elem = {atom = {type = str range = [0 10000000000]}\n name = {type = str range = [0 10000000000]}\n index = {type = int range = [0 7]}\n }\n }\n ]\n restraints.existing = {type = enum range = [retain ignore]}\n restraints.new = [ {type = list}\n {_skip = all}\n ]\n print_restraint = {type = bool}\n jlaunch_opt.black_list = ["!append!" "-exec" "-PROCS" "-in" "-c" "-overwrite"]\n }\n '
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 = {'generic': <class 'schrodinger.application.desmond.stage.simulate.VrunBase'>, 'pl_analysis': <class 'schrodinger.application.desmond.stage.analysis.PLAnalysis'>, 'analysis': <class 'schrodinger.application.desmond.stage.analysis.Analysis'>, 'fep_analysis': <class 'schrodinger.application.desmond.stage.analysis.FepAnalysis'>, 'multisim': <class 'schrodinger.application.desmond.stage.launcher.Multisim'>, 'fep_launcher': <class 'schrodinger.application.desmond.stage.launcher.FepLauncher'>, 'build_geometry': <class 'schrodinger.application.desmond.stage.prepare.structure.BuildGeometry'>, 'extract_structures': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractStructures'>, 'extract_solute_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractSoluteStructure'>, 'hash_structure_title': <class 'schrodinger.application.desmond.stage.prepare.structure.HashStructureTitle'>, 'disordered_system_builder': <class 'schrodinger.application.desmond.stage.prepare.structure.DisorderedSystemBuilder'>, 'protein_mutation_generator': <class 'schrodinger.application.desmond.stage.prepare.structure.ProteinMutationGenerator'>, 'replicate_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ReplicateStructure'>, 'system_builder': <class 'schrodinger.application.desmond.stage.utils.SystemBuilder'>, 'simulate': <class 'schrodinger.application.desmond.stage.simulate.Simulate'>, 'replica_exchange': <class 'schrodinger.application.desmond.stage.simulate.ReplicaExchange'>, 'lambda_hopping': <class 'schrodinger.application.desmond.stage.simulate.LambdaHopping'>, 'desmond_extend': <class 'schrodinger.application.desmond.stage.simulate.DesmondExtend'>, 'vrun': <class 'schrodinger.application.desmond.stage.simulate.Vrun'>, 'fep_vrun': <class 'schrodinger.application.desmond.stage.simulate.FepVrun'>, 'concatenate': <class 'schrodinger.application.desmond.stage.simulate.Concatenate'>, 'primer': <class 'schrodinger.application.desmond.stage.workflow.Primer'>, 'concluder': <class 'schrodinger.application.desmond.stage.workflow.Concluder'>, 'task': <class 'schrodinger.application.desmond.stage.workflow.Task'>, 'extern': <class 'schrodinger.application.desmond.stage.workflow.Extern'>, 'trim': <class 'schrodinger.application.desmond.stage.workflow.Trim'>, 'stop': <class 'schrodinger.application.desmond.stage.workflow.Stop'>, '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'>, 'load_restraints_from_structure': <class 'schrodinger.application.desmond.stage.prepare.forcefield.LoadRestraintsFromStructure'>, 'fep_absolute_binding_structure_primer': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingStructurePrimer'>, '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_fep_launcher': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingFepLauncher'>, 'fep_absolute_binding_analysis': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingAnalysis'>, 'fep_binding_pose_primer': <class 'schrodinger.application.desmond.stage.app.binding_pose.FepBindingPosePrimer'>, 'fragment_linking_primer': <class 'schrodinger.application.desmond.stage.app.fragment_linking.stage.FragmentLinkingPrimer'>, 'aacg_sitemap': <class 'schrodinger.application.desmond.stage.app.matsci.Aacg_SiteMap_Multijob'>, 'average_cell': <class 'schrodinger.application.desmond.stage.app.matsci.AverageCell'>, 'deform_cell': <class 'schrodinger.application.desmond.stage.app.matsci.DeformCell'>, 'matsci_analysis': <class 'schrodinger.application.desmond.stage.app.matsci.MatSciAnalysis'>, 'generate_solubility_fep_structures': <class 'schrodinger.application.desmond.stage.app.solubility.GenerateSolubilityFepStructures'>, 'solubility_md_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityMdLauncher'>, 'solubility_fep_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepLauncher'>, 'solubility_fep_analysis': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepAnalysis'>, 'watermap_cluster': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapCluster'>, 'watermap_post_analysis': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapPostAnalysis'>, 'mixed_solvent_setup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventSetup'>, 'mixed_solvent_analysis': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventAnalysis'>, 'mixed_solvent_cleanup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventCleanup'>, 'generate_mxmd_box': <class 'schrodinger.application.desmond.stage.app.mxmd.GenerateMxmdBox'>, 'analyze_mxmd_probe_mixture': <class 'schrodinger.application.desmond.stage.app.mxmd.AnalyzeMxmdProbeMixture'>, 'covalent_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.CovalentFepMapper'>, 'protein_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.ProteinFepMapper'>, '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'>, 'vacuum_report': <class 'schrodinger.application.desmond.stage.fep_mapper.VacuumReport'>, 'calc_ddg': <class 'schrodinger.application.desmond.stage.fep_mapper.CalcDdg'>, 'binding_pose_fep_primer': <class 'schrodinger.application.desmond.stage.deprecate.BindingPoseFepPrimer'>, None: <class 'schrodinger.application.desmond.stage.deprecate.MustSkip'>, 'ffbuilder': <class 'schrodinger.application.desmond.stage.deprecate.ForcefieldBuilder'>, 'align_core': <class 'schrodinger.application.desmond.stage.deprecate.AlignCore'>, 'solvate_pocket': <class 'schrodinger.application.desmond.stage.deprecate.SolvatePocket'>}
stage_obj = {}
time_stage()
class schrodinger.application.desmond.stage.simulate.GCMCCapable(*args, **kwargs)

Bases: schrodinger.application.desmond.stage.simulate.RemovesInitialGCMCSolvent

An extension to SimulateBase that allows adding a GCMC plugin to the desmond simulation. Subclasses of this class become ‘GCMC-capable’. If no ‘gcmc’ block is passed to the class’s config block, this class behaves exactly as SimulateBase.

PARAM = <schrodinger.utils.sea.Map object>
__init__(*args, **kwargs)
check_param()

See super for details. This subclass implementation checks if the gcmc block was passed in by the user to determine if this stage needs to do gcmc-functionality.

CFG_SIM_NAME = 'mdsim'
DESMOND_CMD = '/scr/buildbot/savedbuilds/2020-4/NB/build-142/desmond'
NAME = 'generic'
capture(job)
count = 0
crunch()
describe()
determine()
hook_captured_successful_job(job)
migrate_param(param: schrodinger.utils.sea.Map)

The Berendsen method is no longer supported (it was CPU only). If we encounter it we automatically change it to Langevin, which was the behavior before it was removed via the gpu effect_if param. :param param: a param corresponding to this stage class to migrate

pack_stage(force=False)
parameter_string = '\n DATA = {\n jobname = "$MASTERJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n dir = "$[$JOBPREFIX/$]$[$PREFIX/$]$MASTERJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n host = "$SUBHOST"\n fep.type = small_molecule\n jin_file = []\n jin_must_transfer_file= []\n jout = ""\n cfg_file = ""\n window = ?\n atom_group = none\n restraints.new = []\n restraints.existing = ignore\n print_restraint = false\n jlaunch_opt= [""]\n }\n\n VALIDATE = {\n host = {type = str range = [1 10000000000]}\n fep.type = {type = enum range = [prm_stability protein_selectivity covalent_ligand small_molecule metalloprotein ligand_selectivity binding_pose absolute_binding]}\n cfg_file = {type = str range = [0 10000000000]}\n jin_file = [\n {type = str range = [0 10000000000]}\n {type = list size = 0\n elem = {type = str range = [0 10000000000]}}\n ]\n jin_must_transfer_file = {type = list size = 0 elem = {type = str range = [0 10000000000]}}\n jout = [\n {type = str range = [0 10000000000]}\n {type = list size = 0\n elem = {type = str range = [0 10000000000]}}\n ]\n window = [\n {type = none}\n {type = int0 _check = check_iwindow}\n {type = list size = 0 elem = {type = int0 _check = check_iwindow}}\n ]\n atom_group = [\n {type = enum range = [retain none]}\n {atom = {type = str range = [0 10000000000]}\n name = {type = str range = [0 10000000000]}\n index = {type = int range = [0 255]}\n }\n {type = list size = 0\n elem = {atom = {type = str range = [0 10000000000]}\n name = {type = str range = [0 10000000000]}\n index = {type = int range = [0 7]}\n }\n }\n ]\n restraints.existing = {type = enum range = [retain ignore]}\n restraints.new = [ {type = list}\n {_skip = all}\n ]\n print_restraint = {type = bool}\n jlaunch_opt.black_list = ["!append!" "-exec" "-PROCS" "-in" "-c" "-overwrite"]\n }\n '
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 = {'generic': <class 'schrodinger.application.desmond.stage.simulate.VrunBase'>, 'pl_analysis': <class 'schrodinger.application.desmond.stage.analysis.PLAnalysis'>, 'analysis': <class 'schrodinger.application.desmond.stage.analysis.Analysis'>, 'fep_analysis': <class 'schrodinger.application.desmond.stage.analysis.FepAnalysis'>, 'multisim': <class 'schrodinger.application.desmond.stage.launcher.Multisim'>, 'fep_launcher': <class 'schrodinger.application.desmond.stage.launcher.FepLauncher'>, 'build_geometry': <class 'schrodinger.application.desmond.stage.prepare.structure.BuildGeometry'>, 'extract_structures': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractStructures'>, 'extract_solute_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractSoluteStructure'>, 'hash_structure_title': <class 'schrodinger.application.desmond.stage.prepare.structure.HashStructureTitle'>, 'disordered_system_builder': <class 'schrodinger.application.desmond.stage.prepare.structure.DisorderedSystemBuilder'>, 'protein_mutation_generator': <class 'schrodinger.application.desmond.stage.prepare.structure.ProteinMutationGenerator'>, 'replicate_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ReplicateStructure'>, 'system_builder': <class 'schrodinger.application.desmond.stage.utils.SystemBuilder'>, 'simulate': <class 'schrodinger.application.desmond.stage.simulate.Simulate'>, 'replica_exchange': <class 'schrodinger.application.desmond.stage.simulate.ReplicaExchange'>, 'lambda_hopping': <class 'schrodinger.application.desmond.stage.simulate.LambdaHopping'>, 'desmond_extend': <class 'schrodinger.application.desmond.stage.simulate.DesmondExtend'>, 'vrun': <class 'schrodinger.application.desmond.stage.simulate.Vrun'>, 'fep_vrun': <class 'schrodinger.application.desmond.stage.simulate.FepVrun'>, 'concatenate': <class 'schrodinger.application.desmond.stage.simulate.Concatenate'>, 'primer': <class 'schrodinger.application.desmond.stage.workflow.Primer'>, 'concluder': <class 'schrodinger.application.desmond.stage.workflow.Concluder'>, 'task': <class 'schrodinger.application.desmond.stage.workflow.Task'>, 'extern': <class 'schrodinger.application.desmond.stage.workflow.Extern'>, 'trim': <class 'schrodinger.application.desmond.stage.workflow.Trim'>, 'stop': <class 'schrodinger.application.desmond.stage.workflow.Stop'>, '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'>, 'load_restraints_from_structure': <class 'schrodinger.application.desmond.stage.prepare.forcefield.LoadRestraintsFromStructure'>, 'fep_absolute_binding_structure_primer': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingStructurePrimer'>, '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_fep_launcher': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingFepLauncher'>, 'fep_absolute_binding_analysis': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingAnalysis'>, 'fep_binding_pose_primer': <class 'schrodinger.application.desmond.stage.app.binding_pose.FepBindingPosePrimer'>, 'fragment_linking_primer': <class 'schrodinger.application.desmond.stage.app.fragment_linking.stage.FragmentLinkingPrimer'>, 'aacg_sitemap': <class 'schrodinger.application.desmond.stage.app.matsci.Aacg_SiteMap_Multijob'>, 'average_cell': <class 'schrodinger.application.desmond.stage.app.matsci.AverageCell'>, 'deform_cell': <class 'schrodinger.application.desmond.stage.app.matsci.DeformCell'>, 'matsci_analysis': <class 'schrodinger.application.desmond.stage.app.matsci.MatSciAnalysis'>, 'generate_solubility_fep_structures': <class 'schrodinger.application.desmond.stage.app.solubility.GenerateSolubilityFepStructures'>, 'solubility_md_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityMdLauncher'>, 'solubility_fep_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepLauncher'>, 'solubility_fep_analysis': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepAnalysis'>, 'watermap_cluster': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapCluster'>, 'watermap_post_analysis': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapPostAnalysis'>, 'mixed_solvent_setup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventSetup'>, 'mixed_solvent_analysis': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventAnalysis'>, 'mixed_solvent_cleanup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventCleanup'>, 'generate_mxmd_box': <class 'schrodinger.application.desmond.stage.app.mxmd.GenerateMxmdBox'>, 'analyze_mxmd_probe_mixture': <class 'schrodinger.application.desmond.stage.app.mxmd.AnalyzeMxmdProbeMixture'>, 'covalent_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.CovalentFepMapper'>, 'protein_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.ProteinFepMapper'>, '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'>, 'vacuum_report': <class 'schrodinger.application.desmond.stage.fep_mapper.VacuumReport'>, 'calc_ddg': <class 'schrodinger.application.desmond.stage.fep_mapper.CalcDdg'>, 'binding_pose_fep_primer': <class 'schrodinger.application.desmond.stage.deprecate.BindingPoseFepPrimer'>, None: <class 'schrodinger.application.desmond.stage.deprecate.MustSkip'>, 'ffbuilder': <class 'schrodinger.application.desmond.stage.deprecate.ForcefieldBuilder'>, 'align_core': <class 'schrodinger.application.desmond.stage.deprecate.AlignCore'>, 'solvate_pocket': <class 'schrodinger.application.desmond.stage.deprecate.SolvatePocket'>}
stage_obj = {}
time_stage()
class schrodinger.application.desmond.stage.simulate.Simulate(*args, **kwargs)

Bases: schrodinger.application.desmond.stage.simulate.GCMCCapable

This class defines the GCMC-capable simulate stage, which can be thought of as the basic simulate stage, and is what the user will get when they use the name simulate. This is just a thin wrapper to associate the name ‘simulate’ with a corresponding class, even though it is otherwise identical to GCMCCapable. Edits to basic simulate functionality should be made to SimulateBase, not here. This class should be subclassed if GCMC support is needed, otherwise subclass SimulateBase

NAME = 'simulate'
CFG_SIM_NAME = 'mdsim'
DESMOND_CMD = '/scr/buildbot/savedbuilds/2020-4/NB/build-142/desmond'
PARAM = <schrodinger.utils.sea.Map object>
__init__(*args, **kwargs)
capture(job)
check_param()

See super for details. This subclass implementation checks if the gcmc block was passed in by the user to determine if this stage needs to do gcmc-functionality.

count = 0
crunch()
describe()
determine()
hook_captured_successful_job(job)
migrate_param(param: schrodinger.utils.sea.Map)

The Berendsen method is no longer supported (it was CPU only). If we encounter it we automatically change it to Langevin, which was the behavior before it was removed via the gpu effect_if param. :param param: a param corresponding to this stage class to migrate

pack_stage(force=False)
parameter_string = '\n DATA = {\n jobname = "$MASTERJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n dir = "$[$JOBPREFIX/$]$[$PREFIX/$]$MASTERJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n host = "$SUBHOST"\n fep.type = small_molecule\n jin_file = []\n jin_must_transfer_file= []\n jout = ""\n cfg_file = ""\n window = ?\n atom_group = none\n restraints.new = []\n restraints.existing = ignore\n print_restraint = false\n jlaunch_opt= [""]\n }\n\n VALIDATE = {\n host = {type = str range = [1 10000000000]}\n fep.type = {type = enum range = [prm_stability protein_selectivity covalent_ligand small_molecule metalloprotein ligand_selectivity binding_pose absolute_binding]}\n cfg_file = {type = str range = [0 10000000000]}\n jin_file = [\n {type = str range = [0 10000000000]}\n {type = list size = 0\n elem = {type = str range = [0 10000000000]}}\n ]\n jin_must_transfer_file = {type = list size = 0 elem = {type = str range = [0 10000000000]}}\n jout = [\n {type = str range = [0 10000000000]}\n {type = list size = 0\n elem = {type = str range = [0 10000000000]}}\n ]\n window = [\n {type = none}\n {type = int0 _check = check_iwindow}\n {type = list size = 0 elem = {type = int0 _check = check_iwindow}}\n ]\n atom_group = [\n {type = enum range = [retain none]}\n {atom = {type = str range = [0 10000000000]}\n name = {type = str range = [0 10000000000]}\n index = {type = int range = [0 255]}\n }\n {type = list size = 0\n elem = {atom = {type = str range = [0 10000000000]}\n name = {type = str range = [0 10000000000]}\n index = {type = int range = [0 7]}\n }\n }\n ]\n restraints.existing = {type = enum range = [retain ignore]}\n restraints.new = [ {type = list}\n {_skip = all}\n ]\n print_restraint = {type = bool}\n jlaunch_opt.black_list = ["!append!" "-exec" "-PROCS" "-in" "-c" "-overwrite"]\n }\n '
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 = {'generic': <class 'schrodinger.application.desmond.stage.simulate.VrunBase'>, 'pl_analysis': <class 'schrodinger.application.desmond.stage.analysis.PLAnalysis'>, 'analysis': <class 'schrodinger.application.desmond.stage.analysis.Analysis'>, 'fep_analysis': <class 'schrodinger.application.desmond.stage.analysis.FepAnalysis'>, 'multisim': <class 'schrodinger.application.desmond.stage.launcher.Multisim'>, 'fep_launcher': <class 'schrodinger.application.desmond.stage.launcher.FepLauncher'>, 'build_geometry': <class 'schrodinger.application.desmond.stage.prepare.structure.BuildGeometry'>, 'extract_structures': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractStructures'>, 'extract_solute_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractSoluteStructure'>, 'hash_structure_title': <class 'schrodinger.application.desmond.stage.prepare.structure.HashStructureTitle'>, 'disordered_system_builder': <class 'schrodinger.application.desmond.stage.prepare.structure.DisorderedSystemBuilder'>, 'protein_mutation_generator': <class 'schrodinger.application.desmond.stage.prepare.structure.ProteinMutationGenerator'>, 'replicate_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ReplicateStructure'>, 'system_builder': <class 'schrodinger.application.desmond.stage.utils.SystemBuilder'>, 'simulate': <class 'schrodinger.application.desmond.stage.simulate.Simulate'>, 'replica_exchange': <class 'schrodinger.application.desmond.stage.simulate.ReplicaExchange'>, 'lambda_hopping': <class 'schrodinger.application.desmond.stage.simulate.LambdaHopping'>, 'desmond_extend': <class 'schrodinger.application.desmond.stage.simulate.DesmondExtend'>, 'vrun': <class 'schrodinger.application.desmond.stage.simulate.Vrun'>, 'fep_vrun': <class 'schrodinger.application.desmond.stage.simulate.FepVrun'>, 'concatenate': <class 'schrodinger.application.desmond.stage.simulate.Concatenate'>, 'primer': <class 'schrodinger.application.desmond.stage.workflow.Primer'>, 'concluder': <class 'schrodinger.application.desmond.stage.workflow.Concluder'>, 'task': <class 'schrodinger.application.desmond.stage.workflow.Task'>, 'extern': <class 'schrodinger.application.desmond.stage.workflow.Extern'>, 'trim': <class 'schrodinger.application.desmond.stage.workflow.Trim'>, 'stop': <class 'schrodinger.application.desmond.stage.workflow.Stop'>, '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'>, 'load_restraints_from_structure': <class 'schrodinger.application.desmond.stage.prepare.forcefield.LoadRestraintsFromStructure'>, 'fep_absolute_binding_structure_primer': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingStructurePrimer'>, '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_fep_launcher': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingFepLauncher'>, 'fep_absolute_binding_analysis': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingAnalysis'>, 'fep_binding_pose_primer': <class 'schrodinger.application.desmond.stage.app.binding_pose.FepBindingPosePrimer'>, 'fragment_linking_primer': <class 'schrodinger.application.desmond.stage.app.fragment_linking.stage.FragmentLinkingPrimer'>, 'aacg_sitemap': <class 'schrodinger.application.desmond.stage.app.matsci.Aacg_SiteMap_Multijob'>, 'average_cell': <class 'schrodinger.application.desmond.stage.app.matsci.AverageCell'>, 'deform_cell': <class 'schrodinger.application.desmond.stage.app.matsci.DeformCell'>, 'matsci_analysis': <class 'schrodinger.application.desmond.stage.app.matsci.MatSciAnalysis'>, 'generate_solubility_fep_structures': <class 'schrodinger.application.desmond.stage.app.solubility.GenerateSolubilityFepStructures'>, 'solubility_md_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityMdLauncher'>, 'solubility_fep_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepLauncher'>, 'solubility_fep_analysis': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepAnalysis'>, 'watermap_cluster': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapCluster'>, 'watermap_post_analysis': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapPostAnalysis'>, 'mixed_solvent_setup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventSetup'>, 'mixed_solvent_analysis': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventAnalysis'>, 'mixed_solvent_cleanup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventCleanup'>, 'generate_mxmd_box': <class 'schrodinger.application.desmond.stage.app.mxmd.GenerateMxmdBox'>, 'analyze_mxmd_probe_mixture': <class 'schrodinger.application.desmond.stage.app.mxmd.AnalyzeMxmdProbeMixture'>, 'covalent_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.CovalentFepMapper'>, 'protein_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.ProteinFepMapper'>, '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'>, 'vacuum_report': <class 'schrodinger.application.desmond.stage.fep_mapper.VacuumReport'>, 'calc_ddg': <class 'schrodinger.application.desmond.stage.fep_mapper.CalcDdg'>, 'binding_pose_fep_primer': <class 'schrodinger.application.desmond.stage.deprecate.BindingPoseFepPrimer'>, None: <class 'schrodinger.application.desmond.stage.deprecate.MustSkip'>, 'ffbuilder': <class 'schrodinger.application.desmond.stage.deprecate.ForcefieldBuilder'>, 'align_core': <class 'schrodinger.application.desmond.stage.deprecate.AlignCore'>, 'solvate_pocket': <class 'schrodinger.application.desmond.stage.deprecate.SolvatePocket'>}
stage_obj = {}
time_stage()
class schrodinger.application.desmond.stage.simulate.ReplicaExchange(*arg, **kwarg)

Bases: schrodinger.application.desmond.stage.simulate.Simulate

NAME = 'replica_exchange'
CFG_SIM_NAME = 'remd'
PARAM = <schrodinger.utils.sea.Map object>
__init__(*arg, **kwarg)
hook_captured_successful_job(job)
DESMOND_CMD = '/scr/buildbot/savedbuilds/2020-4/NB/build-142/desmond'
capture(job)
check_param()

See super for details. This subclass implementation checks if the gcmc block was passed in by the user to determine if this stage needs to do gcmc-functionality.

count = 0
crunch()
describe()
determine()
migrate_param(param: schrodinger.utils.sea.Map)

The Berendsen method is no longer supported (it was CPU only). If we encounter it we automatically change it to Langevin, which was the behavior before it was removed via the gpu effect_if param. :param param: a param corresponding to this stage class to migrate

pack_stage(force=False)
parameter_string = '\n DATA = {\n jobname = "$MASTERJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n dir = "$[$JOBPREFIX/$]$[$PREFIX/$]$MASTERJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n host = "$SUBHOST"\n fep.type = small_molecule\n jin_file = []\n jin_must_transfer_file= []\n jout = ""\n cfg_file = ""\n window = ?\n atom_group = none\n restraints.new = []\n restraints.existing = ignore\n print_restraint = false\n jlaunch_opt= [""]\n }\n\n VALIDATE = {\n host = {type = str range = [1 10000000000]}\n fep.type = {type = enum range = [prm_stability protein_selectivity covalent_ligand small_molecule metalloprotein ligand_selectivity binding_pose absolute_binding]}\n cfg_file = {type = str range = [0 10000000000]}\n jin_file = [\n {type = str range = [0 10000000000]}\n {type = list size = 0\n elem = {type = str range = [0 10000000000]}}\n ]\n jin_must_transfer_file = {type = list size = 0 elem = {type = str range = [0 10000000000]}}\n jout = [\n {type = str range = [0 10000000000]}\n {type = list size = 0\n elem = {type = str range = [0 10000000000]}}\n ]\n window = [\n {type = none}\n {type = int0 _check = check_iwindow}\n {type = list size = 0 elem = {type = int0 _check = check_iwindow}}\n ]\n atom_group = [\n {type = enum range = [retain none]}\n {atom = {type = str range = [0 10000000000]}\n name = {type = str range = [0 10000000000]}\n index = {type = int range = [0 255]}\n }\n {type = list size = 0\n elem = {atom = {type = str range = [0 10000000000]}\n name = {type = str range = [0 10000000000]}\n index = {type = int range = [0 7]}\n }\n }\n ]\n restraints.existing = {type = enum range = [retain ignore]}\n restraints.new = [ {type = list}\n {_skip = all}\n ]\n print_restraint = {type = bool}\n jlaunch_opt.black_list = ["!append!" "-exec" "-PROCS" "-in" "-c" "-overwrite"]\n }\n '
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 = {'generic': <class 'schrodinger.application.desmond.stage.simulate.VrunBase'>, 'pl_analysis': <class 'schrodinger.application.desmond.stage.analysis.PLAnalysis'>, 'analysis': <class 'schrodinger.application.desmond.stage.analysis.Analysis'>, 'fep_analysis': <class 'schrodinger.application.desmond.stage.analysis.FepAnalysis'>, 'multisim': <class 'schrodinger.application.desmond.stage.launcher.Multisim'>, 'fep_launcher': <class 'schrodinger.application.desmond.stage.launcher.FepLauncher'>, 'build_geometry': <class 'schrodinger.application.desmond.stage.prepare.structure.BuildGeometry'>, 'extract_structures': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractStructures'>, 'extract_solute_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractSoluteStructure'>, 'hash_structure_title': <class 'schrodinger.application.desmond.stage.prepare.structure.HashStructureTitle'>, 'disordered_system_builder': <class 'schrodinger.application.desmond.stage.prepare.structure.DisorderedSystemBuilder'>, 'protein_mutation_generator': <class 'schrodinger.application.desmond.stage.prepare.structure.ProteinMutationGenerator'>, 'replicate_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ReplicateStructure'>, 'system_builder': <class 'schrodinger.application.desmond.stage.utils.SystemBuilder'>, 'simulate': <class 'schrodinger.application.desmond.stage.simulate.Simulate'>, 'replica_exchange': <class 'schrodinger.application.desmond.stage.simulate.ReplicaExchange'>, 'lambda_hopping': <class 'schrodinger.application.desmond.stage.simulate.LambdaHopping'>, 'desmond_extend': <class 'schrodinger.application.desmond.stage.simulate.DesmondExtend'>, 'vrun': <class 'schrodinger.application.desmond.stage.simulate.Vrun'>, 'fep_vrun': <class 'schrodinger.application.desmond.stage.simulate.FepVrun'>, 'concatenate': <class 'schrodinger.application.desmond.stage.simulate.Concatenate'>, 'primer': <class 'schrodinger.application.desmond.stage.workflow.Primer'>, 'concluder': <class 'schrodinger.application.desmond.stage.workflow.Concluder'>, 'task': <class 'schrodinger.application.desmond.stage.workflow.Task'>, 'extern': <class 'schrodinger.application.desmond.stage.workflow.Extern'>, 'trim': <class 'schrodinger.application.desmond.stage.workflow.Trim'>, 'stop': <class 'schrodinger.application.desmond.stage.workflow.Stop'>, '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'>, 'load_restraints_from_structure': <class 'schrodinger.application.desmond.stage.prepare.forcefield.LoadRestraintsFromStructure'>, 'fep_absolute_binding_structure_primer': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingStructurePrimer'>, '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_fep_launcher': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingFepLauncher'>, 'fep_absolute_binding_analysis': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingAnalysis'>, 'fep_binding_pose_primer': <class 'schrodinger.application.desmond.stage.app.binding_pose.FepBindingPosePrimer'>, 'fragment_linking_primer': <class 'schrodinger.application.desmond.stage.app.fragment_linking.stage.FragmentLinkingPrimer'>, 'aacg_sitemap': <class 'schrodinger.application.desmond.stage.app.matsci.Aacg_SiteMap_Multijob'>, 'average_cell': <class 'schrodinger.application.desmond.stage.app.matsci.AverageCell'>, 'deform_cell': <class 'schrodinger.application.desmond.stage.app.matsci.DeformCell'>, 'matsci_analysis': <class 'schrodinger.application.desmond.stage.app.matsci.MatSciAnalysis'>, 'generate_solubility_fep_structures': <class 'schrodinger.application.desmond.stage.app.solubility.GenerateSolubilityFepStructures'>, 'solubility_md_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityMdLauncher'>, 'solubility_fep_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepLauncher'>, 'solubility_fep_analysis': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepAnalysis'>, 'watermap_cluster': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapCluster'>, 'watermap_post_analysis': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapPostAnalysis'>, 'mixed_solvent_setup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventSetup'>, 'mixed_solvent_analysis': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventAnalysis'>, 'mixed_solvent_cleanup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventCleanup'>, 'generate_mxmd_box': <class 'schrodinger.application.desmond.stage.app.mxmd.GenerateMxmdBox'>, 'analyze_mxmd_probe_mixture': <class 'schrodinger.application.desmond.stage.app.mxmd.AnalyzeMxmdProbeMixture'>, 'covalent_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.CovalentFepMapper'>, 'protein_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.ProteinFepMapper'>, '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'>, 'vacuum_report': <class 'schrodinger.application.desmond.stage.fep_mapper.VacuumReport'>, 'calc_ddg': <class 'schrodinger.application.desmond.stage.fep_mapper.CalcDdg'>, 'binding_pose_fep_primer': <class 'schrodinger.application.desmond.stage.deprecate.BindingPoseFepPrimer'>, None: <class 'schrodinger.application.desmond.stage.deprecate.MustSkip'>, 'ffbuilder': <class 'schrodinger.application.desmond.stage.deprecate.ForcefieldBuilder'>, 'align_core': <class 'schrodinger.application.desmond.stage.deprecate.AlignCore'>, 'solvate_pocket': <class 'schrodinger.application.desmond.stage.deprecate.SolvatePocket'>}
stage_obj = {}
time_stage()
class schrodinger.application.desmond.stage.simulate.LambdaHopping(*arg, **kwarg)

Bases: schrodinger.application.desmond.stage.simulate.ReplicaExchange

NAME = 'lambda_hopping'
PARAM = <schrodinger.utils.sea.Map object>
__init__(*arg, **kwarg)
crunch()
restart_subjobs(jobs)

Subclass should override this if it supports subjob restarting.

hook_captured_successful_job(job)
CFG_SIM_NAME = 'remd'
DESMOND_CMD = '/scr/buildbot/savedbuilds/2020-4/NB/build-142/desmond'
capture(job)
check_param()

See super for details. This subclass implementation checks if the gcmc block was passed in by the user to determine if this stage needs to do gcmc-functionality.

count = 0
describe()
determine()
migrate_param(param: schrodinger.utils.sea.Map)

The Berendsen method is no longer supported (it was CPU only). If we encounter it we automatically change it to Langevin, which was the behavior before it was removed via the gpu effect_if param. :param param: a param corresponding to this stage class to migrate

pack_stage(force=False)
parameter_string = '\n DATA = {\n jobname = "$MASTERJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n dir = "$[$JOBPREFIX/$]$[$PREFIX/$]$MASTERJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n host = "$SUBHOST"\n fep.type = small_molecule\n jin_file = []\n jin_must_transfer_file= []\n jout = ""\n cfg_file = ""\n window = ?\n atom_group = none\n restraints.new = []\n restraints.existing = ignore\n print_restraint = false\n jlaunch_opt= [""]\n }\n\n VALIDATE = {\n host = {type = str range = [1 10000000000]}\n fep.type = {type = enum range = [prm_stability protein_selectivity covalent_ligand small_molecule metalloprotein ligand_selectivity binding_pose absolute_binding]}\n cfg_file = {type = str range = [0 10000000000]}\n jin_file = [\n {type = str range = [0 10000000000]}\n {type = list size = 0\n elem = {type = str range = [0 10000000000]}}\n ]\n jin_must_transfer_file = {type = list size = 0 elem = {type = str range = [0 10000000000]}}\n jout = [\n {type = str range = [0 10000000000]}\n {type = list size = 0\n elem = {type = str range = [0 10000000000]}}\n ]\n window = [\n {type = none}\n {type = int0 _check = check_iwindow}\n {type = list size = 0 elem = {type = int0 _check = check_iwindow}}\n ]\n atom_group = [\n {type = enum range = [retain none]}\n {atom = {type = str range = [0 10000000000]}\n name = {type = str range = [0 10000000000]}\n index = {type = int range = [0 255]}\n }\n {type = list size = 0\n elem = {atom = {type = str range = [0 10000000000]}\n name = {type = str range = [0 10000000000]}\n index = {type = int range = [0 7]}\n }\n }\n ]\n restraints.existing = {type = enum range = [retain ignore]}\n restraints.new = [ {type = list}\n {_skip = all}\n ]\n print_restraint = {type = bool}\n jlaunch_opt.black_list = ["!append!" "-exec" "-PROCS" "-in" "-c" "-overwrite"]\n }\n '
poststage()
prestage()
push(job)
release(is_restarting=False)

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

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

Bases: schrodinger.application.desmond.cmj.StageBase

NAME = 'desmond_extend'
PARAM = <schrodinger.utils.sea.Map object>
crunch()

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

hook_captured_successful_job(job)

Run after successfully completing this stage.

Parameters:job (FepJob) – Job object representing the captured job
restart_subjobs(jobs)

Subclass should override this if it supports subjob restarting.

__init__(should_pack=True)

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

capture(job)
check_param()
count = 0
describe()
determine()
migrate_param(param: schrodinger.utils.sea.Map)

Subclasses can implement this to migrate params to provide backward compatibility with older msj files, ideally with a deprecation warning.

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

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

Bases: schrodinger.application.desmond.stage.simulate.SimulateBase

PARAM = <schrodinger.utils.sea.Map object>
CFG_SIM_NAME = 'mdsim'
DESMOND_CMD = '/scr/buildbot/savedbuilds/2020-4/NB/build-142/desmond'
NAME = 'generic'
__init__(*arg, **kwarg)
capture(job)
check_param()
count = 0
crunch()
describe()
determine()
hook_captured_successful_job(job)
migrate_param(param: schrodinger.utils.sea.Map)

The Berendsen method is no longer supported (it was CPU only). If we encounter it we automatically change it to Langevin, which was the behavior before it was removed via the gpu effect_if param. :param param: a param corresponding to this stage class to migrate

pack_stage(force=False)
parameter_string = '\n DATA = {\n jobname = "$MASTERJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n dir = "$[$JOBPREFIX/$]$[$PREFIX/$]$MASTERJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n host = "$SUBHOST"\n fep.type = small_molecule\n jin_file = []\n jin_must_transfer_file= []\n jout = ""\n cfg_file = ""\n window = ?\n atom_group = none\n restraints.new = []\n restraints.existing = ignore\n print_restraint = false\n jlaunch_opt= [""]\n }\n\n VALIDATE = {\n host = {type = str range = [1 10000000000]}\n fep.type = {type = enum range = [prm_stability protein_selectivity covalent_ligand small_molecule metalloprotein ligand_selectivity binding_pose absolute_binding]}\n cfg_file = {type = str range = [0 10000000000]}\n jin_file = [\n {type = str range = [0 10000000000]}\n {type = list size = 0\n elem = {type = str range = [0 10000000000]}}\n ]\n jin_must_transfer_file = {type = list size = 0 elem = {type = str range = [0 10000000000]}}\n jout = [\n {type = str range = [0 10000000000]}\n {type = list size = 0\n elem = {type = str range = [0 10000000000]}}\n ]\n window = [\n {type = none}\n {type = int0 _check = check_iwindow}\n {type = list size = 0 elem = {type = int0 _check = check_iwindow}}\n ]\n atom_group = [\n {type = enum range = [retain none]}\n {atom = {type = str range = [0 10000000000]}\n name = {type = str range = [0 10000000000]}\n index = {type = int range = [0 255]}\n }\n {type = list size = 0\n elem = {atom = {type = str range = [0 10000000000]}\n name = {type = str range = [0 10000000000]}\n index = {type = int range = [0 7]}\n }\n }\n ]\n restraints.existing = {type = enum range = [retain ignore]}\n restraints.new = [ {type = list}\n {_skip = all}\n ]\n print_restraint = {type = bool}\n jlaunch_opt.black_list = ["!append!" "-exec" "-PROCS" "-in" "-c" "-overwrite"]\n }\n '
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 = {'generic': <class 'schrodinger.application.desmond.stage.simulate.VrunBase'>, 'pl_analysis': <class 'schrodinger.application.desmond.stage.analysis.PLAnalysis'>, 'analysis': <class 'schrodinger.application.desmond.stage.analysis.Analysis'>, 'fep_analysis': <class 'schrodinger.application.desmond.stage.analysis.FepAnalysis'>, 'multisim': <class 'schrodinger.application.desmond.stage.launcher.Multisim'>, 'fep_launcher': <class 'schrodinger.application.desmond.stage.launcher.FepLauncher'>, 'build_geometry': <class 'schrodinger.application.desmond.stage.prepare.structure.BuildGeometry'>, 'extract_structures': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractStructures'>, 'extract_solute_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractSoluteStructure'>, 'hash_structure_title': <class 'schrodinger.application.desmond.stage.prepare.structure.HashStructureTitle'>, 'disordered_system_builder': <class 'schrodinger.application.desmond.stage.prepare.structure.DisorderedSystemBuilder'>, 'protein_mutation_generator': <class 'schrodinger.application.desmond.stage.prepare.structure.ProteinMutationGenerator'>, 'replicate_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ReplicateStructure'>, 'system_builder': <class 'schrodinger.application.desmond.stage.utils.SystemBuilder'>, 'simulate': <class 'schrodinger.application.desmond.stage.simulate.Simulate'>, 'replica_exchange': <class 'schrodinger.application.desmond.stage.simulate.ReplicaExchange'>, 'lambda_hopping': <class 'schrodinger.application.desmond.stage.simulate.LambdaHopping'>, 'desmond_extend': <class 'schrodinger.application.desmond.stage.simulate.DesmondExtend'>, 'vrun': <class 'schrodinger.application.desmond.stage.simulate.Vrun'>, 'fep_vrun': <class 'schrodinger.application.desmond.stage.simulate.FepVrun'>, 'concatenate': <class 'schrodinger.application.desmond.stage.simulate.Concatenate'>, 'primer': <class 'schrodinger.application.desmond.stage.workflow.Primer'>, 'concluder': <class 'schrodinger.application.desmond.stage.workflow.Concluder'>, 'task': <class 'schrodinger.application.desmond.stage.workflow.Task'>, 'extern': <class 'schrodinger.application.desmond.stage.workflow.Extern'>, 'trim': <class 'schrodinger.application.desmond.stage.workflow.Trim'>, 'stop': <class 'schrodinger.application.desmond.stage.workflow.Stop'>, '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'>, 'load_restraints_from_structure': <class 'schrodinger.application.desmond.stage.prepare.forcefield.LoadRestraintsFromStructure'>, 'fep_absolute_binding_structure_primer': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingStructurePrimer'>, '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_fep_launcher': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingFepLauncher'>, 'fep_absolute_binding_analysis': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingAnalysis'>, 'fep_binding_pose_primer': <class 'schrodinger.application.desmond.stage.app.binding_pose.FepBindingPosePrimer'>, 'fragment_linking_primer': <class 'schrodinger.application.desmond.stage.app.fragment_linking.stage.FragmentLinkingPrimer'>, 'aacg_sitemap': <class 'schrodinger.application.desmond.stage.app.matsci.Aacg_SiteMap_Multijob'>, 'average_cell': <class 'schrodinger.application.desmond.stage.app.matsci.AverageCell'>, 'deform_cell': <class 'schrodinger.application.desmond.stage.app.matsci.DeformCell'>, 'matsci_analysis': <class 'schrodinger.application.desmond.stage.app.matsci.MatSciAnalysis'>, 'generate_solubility_fep_structures': <class 'schrodinger.application.desmond.stage.app.solubility.GenerateSolubilityFepStructures'>, 'solubility_md_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityMdLauncher'>, 'solubility_fep_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepLauncher'>, 'solubility_fep_analysis': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepAnalysis'>, 'watermap_cluster': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapCluster'>, 'watermap_post_analysis': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapPostAnalysis'>, 'mixed_solvent_setup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventSetup'>, 'mixed_solvent_analysis': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventAnalysis'>, 'mixed_solvent_cleanup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventCleanup'>, 'generate_mxmd_box': <class 'schrodinger.application.desmond.stage.app.mxmd.GenerateMxmdBox'>, 'analyze_mxmd_probe_mixture': <class 'schrodinger.application.desmond.stage.app.mxmd.AnalyzeMxmdProbeMixture'>, 'covalent_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.CovalentFepMapper'>, 'protein_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.ProteinFepMapper'>, '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'>, 'vacuum_report': <class 'schrodinger.application.desmond.stage.fep_mapper.VacuumReport'>, 'calc_ddg': <class 'schrodinger.application.desmond.stage.fep_mapper.CalcDdg'>, 'binding_pose_fep_primer': <class 'schrodinger.application.desmond.stage.deprecate.BindingPoseFepPrimer'>, None: <class 'schrodinger.application.desmond.stage.deprecate.MustSkip'>, 'ffbuilder': <class 'schrodinger.application.desmond.stage.deprecate.ForcefieldBuilder'>, 'align_core': <class 'schrodinger.application.desmond.stage.deprecate.AlignCore'>, 'solvate_pocket': <class 'schrodinger.application.desmond.stage.deprecate.SolvatePocket'>}
stage_obj = {}
time_stage()
class schrodinger.application.desmond.stage.simulate.Vrun(*arg, **kwarg)

Bases: schrodinger.application.desmond.stage.simulate.VrunBase

NAME = 'vrun'
PARAM = <schrodinger.utils.sea.Map object>
__init__(*arg, **kwarg)
crunch()
CFG_SIM_NAME = 'mdsim'
DESMOND_CMD = '/scr/buildbot/savedbuilds/2020-4/NB/build-142/desmond'
capture(job)
check_param()
count = 0
describe()
determine()
hook_captured_successful_job(job)
migrate_param(param: schrodinger.utils.sea.Map)

The Berendsen method is no longer supported (it was CPU only). If we encounter it we automatically change it to Langevin, which was the behavior before it was removed via the gpu effect_if param. :param param: a param corresponding to this stage class to migrate

pack_stage(force=False)
parameter_string = '\n DATA = {\n jobname = "$MASTERJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n dir = "$[$JOBPREFIX/$]$[$PREFIX/$]$MASTERJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n host = "$SUBHOST"\n fep.type = small_molecule\n jin_file = []\n jin_must_transfer_file= []\n jout = ""\n cfg_file = ""\n window = ?\n atom_group = none\n restraints.new = []\n restraints.existing = ignore\n print_restraint = false\n jlaunch_opt= [""]\n }\n\n VALIDATE = {\n host = {type = str range = [1 10000000000]}\n fep.type = {type = enum range = [prm_stability protein_selectivity covalent_ligand small_molecule metalloprotein ligand_selectivity binding_pose absolute_binding]}\n cfg_file = {type = str range = [0 10000000000]}\n jin_file = [\n {type = str range = [0 10000000000]}\n {type = list size = 0\n elem = {type = str range = [0 10000000000]}}\n ]\n jin_must_transfer_file = {type = list size = 0 elem = {type = str range = [0 10000000000]}}\n jout = [\n {type = str range = [0 10000000000]}\n {type = list size = 0\n elem = {type = str range = [0 10000000000]}}\n ]\n window = [\n {type = none}\n {type = int0 _check = check_iwindow}\n {type = list size = 0 elem = {type = int0 _check = check_iwindow}}\n ]\n atom_group = [\n {type = enum range = [retain none]}\n {atom = {type = str range = [0 10000000000]}\n name = {type = str range = [0 10000000000]}\n index = {type = int range = [0 255]}\n }\n {type = list size = 0\n elem = {atom = {type = str range = [0 10000000000]}\n name = {type = str range = [0 10000000000]}\n index = {type = int range = [0 7]}\n }\n }\n ]\n restraints.existing = {type = enum range = [retain ignore]}\n restraints.new = [ {type = list}\n {_skip = all}\n ]\n print_restraint = {type = bool}\n jlaunch_opt.black_list = ["!append!" "-exec" "-PROCS" "-in" "-c" "-overwrite"]\n }\n '
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 = {'generic': <class 'schrodinger.application.desmond.stage.simulate.VrunBase'>, 'pl_analysis': <class 'schrodinger.application.desmond.stage.analysis.PLAnalysis'>, 'analysis': <class 'schrodinger.application.desmond.stage.analysis.Analysis'>, 'fep_analysis': <class 'schrodinger.application.desmond.stage.analysis.FepAnalysis'>, 'multisim': <class 'schrodinger.application.desmond.stage.launcher.Multisim'>, 'fep_launcher': <class 'schrodinger.application.desmond.stage.launcher.FepLauncher'>, 'build_geometry': <class 'schrodinger.application.desmond.stage.prepare.structure.BuildGeometry'>, 'extract_structures': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractStructures'>, 'extract_solute_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractSoluteStructure'>, 'hash_structure_title': <class 'schrodinger.application.desmond.stage.prepare.structure.HashStructureTitle'>, 'disordered_system_builder': <class 'schrodinger.application.desmond.stage.prepare.structure.DisorderedSystemBuilder'>, 'protein_mutation_generator': <class 'schrodinger.application.desmond.stage.prepare.structure.ProteinMutationGenerator'>, 'replicate_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ReplicateStructure'>, 'system_builder': <class 'schrodinger.application.desmond.stage.utils.SystemBuilder'>, 'simulate': <class 'schrodinger.application.desmond.stage.simulate.Simulate'>, 'replica_exchange': <class 'schrodinger.application.desmond.stage.simulate.ReplicaExchange'>, 'lambda_hopping': <class 'schrodinger.application.desmond.stage.simulate.LambdaHopping'>, 'desmond_extend': <class 'schrodinger.application.desmond.stage.simulate.DesmondExtend'>, 'vrun': <class 'schrodinger.application.desmond.stage.simulate.Vrun'>, 'fep_vrun': <class 'schrodinger.application.desmond.stage.simulate.FepVrun'>, 'concatenate': <class 'schrodinger.application.desmond.stage.simulate.Concatenate'>, 'primer': <class 'schrodinger.application.desmond.stage.workflow.Primer'>, 'concluder': <class 'schrodinger.application.desmond.stage.workflow.Concluder'>, 'task': <class 'schrodinger.application.desmond.stage.workflow.Task'>, 'extern': <class 'schrodinger.application.desmond.stage.workflow.Extern'>, 'trim': <class 'schrodinger.application.desmond.stage.workflow.Trim'>, 'stop': <class 'schrodinger.application.desmond.stage.workflow.Stop'>, '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'>, 'load_restraints_from_structure': <class 'schrodinger.application.desmond.stage.prepare.forcefield.LoadRestraintsFromStructure'>, 'fep_absolute_binding_structure_primer': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingStructurePrimer'>, '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_fep_launcher': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingFepLauncher'>, 'fep_absolute_binding_analysis': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingAnalysis'>, 'fep_binding_pose_primer': <class 'schrodinger.application.desmond.stage.app.binding_pose.FepBindingPosePrimer'>, 'fragment_linking_primer': <class 'schrodinger.application.desmond.stage.app.fragment_linking.stage.FragmentLinkingPrimer'>, 'aacg_sitemap': <class 'schrodinger.application.desmond.stage.app.matsci.Aacg_SiteMap_Multijob'>, 'average_cell': <class 'schrodinger.application.desmond.stage.app.matsci.AverageCell'>, 'deform_cell': <class 'schrodinger.application.desmond.stage.app.matsci.DeformCell'>, 'matsci_analysis': <class 'schrodinger.application.desmond.stage.app.matsci.MatSciAnalysis'>, 'generate_solubility_fep_structures': <class 'schrodinger.application.desmond.stage.app.solubility.GenerateSolubilityFepStructures'>, 'solubility_md_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityMdLauncher'>, 'solubility_fep_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepLauncher'>, 'solubility_fep_analysis': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepAnalysis'>, 'watermap_cluster': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapCluster'>, 'watermap_post_analysis': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapPostAnalysis'>, 'mixed_solvent_setup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventSetup'>, 'mixed_solvent_analysis': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventAnalysis'>, 'mixed_solvent_cleanup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventCleanup'>, 'generate_mxmd_box': <class 'schrodinger.application.desmond.stage.app.mxmd.GenerateMxmdBox'>, 'analyze_mxmd_probe_mixture': <class 'schrodinger.application.desmond.stage.app.mxmd.AnalyzeMxmdProbeMixture'>, 'covalent_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.CovalentFepMapper'>, 'protein_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.ProteinFepMapper'>, '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'>, 'vacuum_report': <class 'schrodinger.application.desmond.stage.fep_mapper.VacuumReport'>, 'calc_ddg': <class 'schrodinger.application.desmond.stage.fep_mapper.CalcDdg'>, 'binding_pose_fep_primer': <class 'schrodinger.application.desmond.stage.deprecate.BindingPoseFepPrimer'>, None: <class 'schrodinger.application.desmond.stage.deprecate.MustSkip'>, 'ffbuilder': <class 'schrodinger.application.desmond.stage.deprecate.ForcefieldBuilder'>, 'align_core': <class 'schrodinger.application.desmond.stage.deprecate.AlignCore'>, 'solvate_pocket': <class 'schrodinger.application.desmond.stage.deprecate.SolvatePocket'>}
stage_obj = {}
time_stage()
class schrodinger.application.desmond.stage.simulate.FepVrun(*arg, **kwarg)

Bases: schrodinger.application.desmond.stage.simulate.VrunBase

NAME = 'fep_vrun'
PARAM = <schrodinger.utils.sea.Map object>
__init__(*arg, **kwarg)
crunch()
hook_captured_successful_job(job)
CFG_SIM_NAME = 'mdsim'
DESMOND_CMD = '/scr/buildbot/savedbuilds/2020-4/NB/build-142/desmond'
capture(job)
check_param()
count = 0
describe()
determine()
migrate_param(param: schrodinger.utils.sea.Map)

The Berendsen method is no longer supported (it was CPU only). If we encounter it we automatically change it to Langevin, which was the behavior before it was removed via the gpu effect_if param. :param param: a param corresponding to this stage class to migrate

pack_stage(force=False)
parameter_string = '\n DATA = {\n jobname = "$MASTERJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n dir = "$[$JOBPREFIX/$]$[$PREFIX/$]$MASTERJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n host = "$SUBHOST"\n fep.type = small_molecule\n jin_file = []\n jin_must_transfer_file= []\n jout = ""\n cfg_file = ""\n window = ?\n atom_group = none\n restraints.new = []\n restraints.existing = ignore\n print_restraint = false\n jlaunch_opt= [""]\n }\n\n VALIDATE = {\n host = {type = str range = [1 10000000000]}\n fep.type = {type = enum range = [prm_stability protein_selectivity covalent_ligand small_molecule metalloprotein ligand_selectivity binding_pose absolute_binding]}\n cfg_file = {type = str range = [0 10000000000]}\n jin_file = [\n {type = str range = [0 10000000000]}\n {type = list size = 0\n elem = {type = str range = [0 10000000000]}}\n ]\n jin_must_transfer_file = {type = list size = 0 elem = {type = str range = [0 10000000000]}}\n jout = [\n {type = str range = [0 10000000000]}\n {type = list size = 0\n elem = {type = str range = [0 10000000000]}}\n ]\n window = [\n {type = none}\n {type = int0 _check = check_iwindow}\n {type = list size = 0 elem = {type = int0 _check = check_iwindow}}\n ]\n atom_group = [\n {type = enum range = [retain none]}\n {atom = {type = str range = [0 10000000000]}\n name = {type = str range = [0 10000000000]}\n index = {type = int range = [0 255]}\n }\n {type = list size = 0\n elem = {atom = {type = str range = [0 10000000000]}\n name = {type = str range = [0 10000000000]}\n index = {type = int range = [0 7]}\n }\n }\n ]\n restraints.existing = {type = enum range = [retain ignore]}\n restraints.new = [ {type = list}\n {_skip = all}\n ]\n print_restraint = {type = bool}\n jlaunch_opt.black_list = ["!append!" "-exec" "-PROCS" "-in" "-c" "-overwrite"]\n }\n '
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 = {'generic': <class 'schrodinger.application.desmond.stage.simulate.VrunBase'>, 'pl_analysis': <class 'schrodinger.application.desmond.stage.analysis.PLAnalysis'>, 'analysis': <class 'schrodinger.application.desmond.stage.analysis.Analysis'>, 'fep_analysis': <class 'schrodinger.application.desmond.stage.analysis.FepAnalysis'>, 'multisim': <class 'schrodinger.application.desmond.stage.launcher.Multisim'>, 'fep_launcher': <class 'schrodinger.application.desmond.stage.launcher.FepLauncher'>, 'build_geometry': <class 'schrodinger.application.desmond.stage.prepare.structure.BuildGeometry'>, 'extract_structures': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractStructures'>, 'extract_solute_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractSoluteStructure'>, 'hash_structure_title': <class 'schrodinger.application.desmond.stage.prepare.structure.HashStructureTitle'>, 'disordered_system_builder': <class 'schrodinger.application.desmond.stage.prepare.structure.DisorderedSystemBuilder'>, 'protein_mutation_generator': <class 'schrodinger.application.desmond.stage.prepare.structure.ProteinMutationGenerator'>, 'replicate_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ReplicateStructure'>, 'system_builder': <class 'schrodinger.application.desmond.stage.utils.SystemBuilder'>, 'simulate': <class 'schrodinger.application.desmond.stage.simulate.Simulate'>, 'replica_exchange': <class 'schrodinger.application.desmond.stage.simulate.ReplicaExchange'>, 'lambda_hopping': <class 'schrodinger.application.desmond.stage.simulate.LambdaHopping'>, 'desmond_extend': <class 'schrodinger.application.desmond.stage.simulate.DesmondExtend'>, 'vrun': <class 'schrodinger.application.desmond.stage.simulate.Vrun'>, 'fep_vrun': <class 'schrodinger.application.desmond.stage.simulate.FepVrun'>, 'concatenate': <class 'schrodinger.application.desmond.stage.simulate.Concatenate'>, 'primer': <class 'schrodinger.application.desmond.stage.workflow.Primer'>, 'concluder': <class 'schrodinger.application.desmond.stage.workflow.Concluder'>, 'task': <class 'schrodinger.application.desmond.stage.workflow.Task'>, 'extern': <class 'schrodinger.application.desmond.stage.workflow.Extern'>, 'trim': <class 'schrodinger.application.desmond.stage.workflow.Trim'>, 'stop': <class 'schrodinger.application.desmond.stage.workflow.Stop'>, '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'>, 'load_restraints_from_structure': <class 'schrodinger.application.desmond.stage.prepare.forcefield.LoadRestraintsFromStructure'>, 'fep_absolute_binding_structure_primer': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingStructurePrimer'>, '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_fep_launcher': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingFepLauncher'>, 'fep_absolute_binding_analysis': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingAnalysis'>, 'fep_binding_pose_primer': <class 'schrodinger.application.desmond.stage.app.binding_pose.FepBindingPosePrimer'>, 'fragment_linking_primer': <class 'schrodinger.application.desmond.stage.app.fragment_linking.stage.FragmentLinkingPrimer'>, 'aacg_sitemap': <class 'schrodinger.application.desmond.stage.app.matsci.Aacg_SiteMap_Multijob'>, 'average_cell': <class 'schrodinger.application.desmond.stage.app.matsci.AverageCell'>, 'deform_cell': <class 'schrodinger.application.desmond.stage.app.matsci.DeformCell'>, 'matsci_analysis': <class 'schrodinger.application.desmond.stage.app.matsci.MatSciAnalysis'>, 'generate_solubility_fep_structures': <class 'schrodinger.application.desmond.stage.app.solubility.GenerateSolubilityFepStructures'>, 'solubility_md_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityMdLauncher'>, 'solubility_fep_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepLauncher'>, 'solubility_fep_analysis': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepAnalysis'>, 'watermap_cluster': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapCluster'>, 'watermap_post_analysis': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapPostAnalysis'>, 'mixed_solvent_setup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventSetup'>, 'mixed_solvent_analysis': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventAnalysis'>, 'mixed_solvent_cleanup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventCleanup'>, 'generate_mxmd_box': <class 'schrodinger.application.desmond.stage.app.mxmd.GenerateMxmdBox'>, 'analyze_mxmd_probe_mixture': <class 'schrodinger.application.desmond.stage.app.mxmd.AnalyzeMxmdProbeMixture'>, 'covalent_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.CovalentFepMapper'>, 'protein_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.ProteinFepMapper'>, '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'>, 'vacuum_report': <class 'schrodinger.application.desmond.stage.fep_mapper.VacuumReport'>, 'calc_ddg': <class 'schrodinger.application.desmond.stage.fep_mapper.CalcDdg'>, 'binding_pose_fep_primer': <class 'schrodinger.application.desmond.stage.deprecate.BindingPoseFepPrimer'>, None: <class 'schrodinger.application.desmond.stage.deprecate.MustSkip'>, 'ffbuilder': <class 'schrodinger.application.desmond.stage.deprecate.ForcefieldBuilder'>, 'align_core': <class 'schrodinger.application.desmond.stage.deprecate.AlignCore'>, 'solvate_pocket': <class 'schrodinger.application.desmond.stage.deprecate.SolvatePocket'>}
stage_obj = {}
time_stage()
class schrodinger.application.desmond.stage.simulate.ConcatParam(ark={}, parent=None)

Bases: schrodinger.utils.sea.Map

update(ark=None, file=None, tag={})

Updates this ‘Map’ object with the given ‘ark’ or with the given ‘file’.

Parameters:
  • file – If ‘file’ is not None, it must be the name of a file in the ark file format. If ‘file’ is given, the ‘ark’ parameter will be ignored.
  • ark – ark can be a string or a dict or a ‘Map’ object. Or ark can be list of the previous objects.
INDEX_PATTERN = re.compile('([^\\[]*)\\[ *([+-]*[1234567890]*) *\\]')
INDEX_PATTERN2 = re.compile('\\[ *[+-]*([1234567890]*) *\\]')
__contains__(key)

Returns True if this ‘Map’ object has the ‘key’. Returns False if otherwise.

__init__(ark={}, parent=None)

Constructs a ‘Map’ object with a given ‘ark’. The ‘ark’ can be of the following types of objects:

  • dict The ‘Map’ object will be constructed consistent with the dict object.
  • Map The ‘ark’ will be deep-copied.
  • str The string will be parsed and the ‘Map’ object will be constructed for the parsed string.
  • list The elements of the list object must be of the above types. A new ‘Map’ object will be constructed using the first elements, and then the ‘Map’ object will be updated with the remaining objects in the list.

If ‘ark’ is not provided, an empty ‘Map’ will be constructed.

User can optionally specify the ‘parent’ parameter, which will set the parent of this ‘Map’ object to the given value of the ‘parent’ parameter.

add_tag(tag, propagate=True)

Tags this object with another string(s).

Parameters:
  • tag – The given ‘tag’ can be a string, or a list of strings, or a ‘set’ of strings.
  • propagate – If True, the function will propagate the operation to all ‘Sea’ subobjects.
apply(op)

Recursively applies the operation as given by ‘op’ to all ‘Sea’ subobjects of this ‘Sea’ object.

bval

Readonly. Returns a new Map object, which has all macros expanded and references dereferenced.

clear_all_tag(propagate=True)

Removes all tags.

Parameters:propagate – If True, the function will propagate the operation to all ‘Sea’ subobjects.
clone(orig)

Lets this ‘Map’ object become a deep copy of the ‘orig’ ‘Map’ object.

del_key(key: str)

Deletes the given key from this map.

Parameters:key – The ‘key’ can be a composite key in the pathway notation, e.g., “key[1].key2[0].key3”.
dump(tag={})

Converts this ‘Sea’ object into a string that looks ugly (yet syntactically correct). This method is 50%-900% faster than the __str__ method.

dval

Readonly. Returns a new Map object with dereferenced values.

get_value(key)

Returns the value of the given ‘key’.

Parameters:key – The ‘key’ can be a composite key (i.e., the pathway notation), such as, e.g., “key[1][2].key2.key3[2]”.
has_key(key)
has_tag(tag)

Returns True if we already tagged this object with the given ‘tag’.

Parameters:tag – The given ‘tag’ can be a string, or a list of strings, or a ‘set’ of strings.
key_value(tag={}, should_sort=False)

Returns the key and associated value in a list. Note each element in the returned list will be a 2-tuple object. The first element of the tuple is a reference of the key, and the second element is a reference of the value. User can optionally set the ‘should_sort’ parameter to True, which will let the function return a sorted list. The sorting will be based on the alphanumeric order of ‘key’.

keys(tag={})

Returns references of all keys in a list. Note each element in the returned list will be of the ‘Key’ type.

parent()

Rerturns the parent of this ‘Sea’ object or None if it does not have a parent.

pmode()

Returns the printing mode.

raw_val

Readwrite. When read, this returns the current raw value (references and macros kept as is).

remove_tag(tag, propagate=True)

Removes a tag.

Parameters:
  • tag – The given ‘tag’ can be a string, or a list of strings, or a ‘set’ of strings.
  • propagate – If True, the function will propagate the operation to all ‘Sea’ subobjects.
reset_tag(tag, propagate=True)

Resets the tag of this object to the given ‘tag’.

Parameters:
  • tag – The given ‘tag’ can be a string, or a list of strings, or a ‘set’ of strings.
  • propagate – If True, the function will propagate the operation to all ‘Sea’ subobjects.
set_parent(parent)

Sets the parent of this ‘Sea’ object to the given ‘parent’.

set_pmode(pmode, propagate=True)

Resets the printing mode of this object to the given ‘pmode’.

Parameters:propagate – If True, the function will propagate the operation to all ‘Sea’ subobjects.
set_value(key, value, tag={})

Associates the given value with the given key. The difference between this function and the __setitem__ operator is that the former allows us to reset the tag of the value.

Parameters:
  • key – The ‘key’ can be a composite key (i.e., the pathway notation), e.g., “key[1].key2[0].key3”.
  • tag – If the “tag” parameter is specified, the value of ‘tag’ will be used to tag the ‘value’.
set_value_fast(key, value, tag={})

Similar to set_value method. The difference is that if value is a Sea object the value object itself (as opposed to a copy) will be included into this Map object after this function call, as a result, the original Sea object value might be mutated as necessary. This function is much faster than set_value.

sval

Readonly. Returns the current Sea object.

tag()

Returns tags, which are ‘set’ objects.

val

Readwrite. When read, this returns the current value (macros will be expanded, and references will be dereferenced.

values(tag={})

Returns references of all values in a list. Note each element in the returned list will be of the ‘Sea’ type.

class schrodinger.application.desmond.stage.simulate.Concatenate(*args, **kwargs)

Bases: schrodinger.application.desmond.stage.simulate.Simulate

NAME = 'concatenate'
PARAM = <schrodinger.utils.sea.Map object>
__init__(*args, **kwargs)
param
check_param()

See super for details. This subclass implementation checks if the gcmc block was passed in by the user to determine if this stage needs to do gcmc-functionality.

CFG_SIM_NAME = 'mdsim'
DESMOND_CMD = '/scr/buildbot/savedbuilds/2020-4/NB/build-142/desmond'
capture(job)
count = 0
crunch()
describe()
determine()
hook_captured_successful_job(job)
migrate_param(param: schrodinger.utils.sea.Map)

The Berendsen method is no longer supported (it was CPU only). If we encounter it we automatically change it to Langevin, which was the behavior before it was removed via the gpu effect_if param. :param param: a param corresponding to this stage class to migrate

pack_stage(force=False)
parameter_string = '\n DATA = {\n jobname = "$MASTERJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n dir = "$[$JOBPREFIX/$]$[$PREFIX/$]$MASTERJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n host = "$SUBHOST"\n fep.type = small_molecule\n jin_file = []\n jin_must_transfer_file= []\n jout = ""\n cfg_file = ""\n window = ?\n atom_group = none\n restraints.new = []\n restraints.existing = ignore\n print_restraint = false\n jlaunch_opt= [""]\n }\n\n VALIDATE = {\n host = {type = str range = [1 10000000000]}\n fep.type = {type = enum range = [prm_stability protein_selectivity covalent_ligand small_molecule metalloprotein ligand_selectivity binding_pose absolute_binding]}\n cfg_file = {type = str range = [0 10000000000]}\n jin_file = [\n {type = str range = [0 10000000000]}\n {type = list size = 0\n elem = {type = str range = [0 10000000000]}}\n ]\n jin_must_transfer_file = {type = list size = 0 elem = {type = str range = [0 10000000000]}}\n jout = [\n {type = str range = [0 10000000000]}\n {type = list size = 0\n elem = {type = str range = [0 10000000000]}}\n ]\n window = [\n {type = none}\n {type = int0 _check = check_iwindow}\n {type = list size = 0 elem = {type = int0 _check = check_iwindow}}\n ]\n atom_group = [\n {type = enum range = [retain none]}\n {atom = {type = str range = [0 10000000000]}\n name = {type = str range = [0 10000000000]}\n index = {type = int range = [0 255]}\n }\n {type = list size = 0\n elem = {atom = {type = str range = [0 10000000000]}\n name = {type = str range = [0 10000000000]}\n index = {type = int range = [0 7]}\n }\n }\n ]\n restraints.existing = {type = enum range = [retain ignore]}\n restraints.new = [ {type = list}\n {_skip = all}\n ]\n print_restraint = {type = bool}\n jlaunch_opt.black_list = ["!append!" "-exec" "-PROCS" "-in" "-c" "-overwrite"]\n }\n '
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 = {'generic': <class 'schrodinger.application.desmond.stage.simulate.VrunBase'>, 'pl_analysis': <class 'schrodinger.application.desmond.stage.analysis.PLAnalysis'>, 'analysis': <class 'schrodinger.application.desmond.stage.analysis.Analysis'>, 'fep_analysis': <class 'schrodinger.application.desmond.stage.analysis.FepAnalysis'>, 'multisim': <class 'schrodinger.application.desmond.stage.launcher.Multisim'>, 'fep_launcher': <class 'schrodinger.application.desmond.stage.launcher.FepLauncher'>, 'build_geometry': <class 'schrodinger.application.desmond.stage.prepare.structure.BuildGeometry'>, 'extract_structures': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractStructures'>, 'extract_solute_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ExtractSoluteStructure'>, 'hash_structure_title': <class 'schrodinger.application.desmond.stage.prepare.structure.HashStructureTitle'>, 'disordered_system_builder': <class 'schrodinger.application.desmond.stage.prepare.structure.DisorderedSystemBuilder'>, 'protein_mutation_generator': <class 'schrodinger.application.desmond.stage.prepare.structure.ProteinMutationGenerator'>, 'replicate_structure': <class 'schrodinger.application.desmond.stage.prepare.structure.ReplicateStructure'>, 'system_builder': <class 'schrodinger.application.desmond.stage.utils.SystemBuilder'>, 'simulate': <class 'schrodinger.application.desmond.stage.simulate.Simulate'>, 'replica_exchange': <class 'schrodinger.application.desmond.stage.simulate.ReplicaExchange'>, 'lambda_hopping': <class 'schrodinger.application.desmond.stage.simulate.LambdaHopping'>, 'desmond_extend': <class 'schrodinger.application.desmond.stage.simulate.DesmondExtend'>, 'vrun': <class 'schrodinger.application.desmond.stage.simulate.Vrun'>, 'fep_vrun': <class 'schrodinger.application.desmond.stage.simulate.FepVrun'>, 'concatenate': <class 'schrodinger.application.desmond.stage.simulate.Concatenate'>, 'primer': <class 'schrodinger.application.desmond.stage.workflow.Primer'>, 'concluder': <class 'schrodinger.application.desmond.stage.workflow.Concluder'>, 'task': <class 'schrodinger.application.desmond.stage.workflow.Task'>, 'extern': <class 'schrodinger.application.desmond.stage.workflow.Extern'>, 'trim': <class 'schrodinger.application.desmond.stage.workflow.Trim'>, 'stop': <class 'schrodinger.application.desmond.stage.workflow.Stop'>, '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'>, 'load_restraints_from_structure': <class 'schrodinger.application.desmond.stage.prepare.forcefield.LoadRestraintsFromStructure'>, 'fep_absolute_binding_structure_primer': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingStructurePrimer'>, '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_fep_launcher': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingFepLauncher'>, 'fep_absolute_binding_analysis': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingAnalysis'>, 'fep_binding_pose_primer': <class 'schrodinger.application.desmond.stage.app.binding_pose.FepBindingPosePrimer'>, 'fragment_linking_primer': <class 'schrodinger.application.desmond.stage.app.fragment_linking.stage.FragmentLinkingPrimer'>, 'aacg_sitemap': <class 'schrodinger.application.desmond.stage.app.matsci.Aacg_SiteMap_Multijob'>, 'average_cell': <class 'schrodinger.application.desmond.stage.app.matsci.AverageCell'>, 'deform_cell': <class 'schrodinger.application.desmond.stage.app.matsci.DeformCell'>, 'matsci_analysis': <class 'schrodinger.application.desmond.stage.app.matsci.MatSciAnalysis'>, 'generate_solubility_fep_structures': <class 'schrodinger.application.desmond.stage.app.solubility.GenerateSolubilityFepStructures'>, 'solubility_md_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityMdLauncher'>, 'solubility_fep_launcher': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepLauncher'>, 'solubility_fep_analysis': <class 'schrodinger.application.desmond.stage.app.solubility.SolubilityFepAnalysis'>, 'watermap_cluster': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapCluster'>, 'watermap_post_analysis': <class 'schrodinger.application.desmond.stage.app.watermap.WaterMapPostAnalysis'>, 'mixed_solvent_setup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventSetup'>, 'mixed_solvent_analysis': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventAnalysis'>, 'mixed_solvent_cleanup': <class 'schrodinger.application.desmond.stage.app.mxmd.MixedSolventCleanup'>, 'generate_mxmd_box': <class 'schrodinger.application.desmond.stage.app.mxmd.GenerateMxmdBox'>, 'analyze_mxmd_probe_mixture': <class 'schrodinger.application.desmond.stage.app.mxmd.AnalyzeMxmdProbeMixture'>, 'covalent_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.CovalentFepMapper'>, 'protein_fep_mapper': <class 'schrodinger.application.desmond.stage.fep_mapper.ProteinFepMapper'>, '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'>, 'vacuum_report': <class 'schrodinger.application.desmond.stage.fep_mapper.VacuumReport'>, 'calc_ddg': <class 'schrodinger.application.desmond.stage.fep_mapper.CalcDdg'>, 'binding_pose_fep_primer': <class 'schrodinger.application.desmond.stage.deprecate.BindingPoseFepPrimer'>, None: <class 'schrodinger.application.desmond.stage.deprecate.MustSkip'>, 'ffbuilder': <class 'schrodinger.application.desmond.stage.deprecate.ForcefieldBuilder'>, 'align_core': <class 'schrodinger.application.desmond.stage.deprecate.AlignCore'>, 'solvate_pocket': <class 'schrodinger.application.desmond.stage.deprecate.SolvatePocket'>}
stage_obj = {}
time_stage()