schrodinger.application.desmond.stage.app.kinetics module

class schrodinger.application.desmond.stage.app.kinetics.RandomAcceleratedMD(*arg, **kwarg)

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

Random Accelerated Molecular Dynamics (RAMD) simulation is used to explore the potential egress pathway of ligands from the binding pocket. The RAMD job is automatically terminated once the ligand exits the binding pocket as determined by MinDist criteria.

This method used here is similar to the one described by:

Kokh, et al. JCTC (2018) 14, 7, (10.1021/acs.jctc.8b00230)

This stage extends a ‘simulate’ stage, and does not depend on any other stages. The inputs are a cms file of protein-ligand complex, along with the RAMD parameters. Output of this stage is Cms/trajectory and kerseq/cvseq output from enhanced_sampling plugin containing RAMD descriptors.

NAME = 'ramd'
CFG_SIM_NAME = 'ramd'
PARAM = <schrodinger.utils.sea.sea.Map object>
crunch()
DESMOND_CMD = '/scr/buildbot/savedbuilds/2023-2/NB/build-121/desmond'
RESTARTABLE = True
__init__(*arg, **kwarg)
add_job(job: schrodinger.application.desmond.cmj.Job)

Shortcut for add_jobs

add_jobs(jobs: Iterable[schrodinger.application.desmond.cmj.Job])

Add jobs to the stage’s job manager

capture(job)
check_param()
count = 0
describe()
determine()
filter_jobs(**kwargs) List[schrodinger.application.desmond.cmj.Job]

Return a list of jobs based on a matching a set of criteria given as arguments. Read JobManager.filter_jobs for available arguments.

finalize_job(job: schrodinger.application.desmond.cmj.Job)

Call hook_captured_successful_job on any successful jobs and write a checkpoint

finalize_stage()

If the stage is done running, pack the stage, and if the stage is successful, continue to the next stage

get_output_jobs() List[schrodinger.application.desmond.cmj.Job]

Get the stage’s output jobs

get_prejobs() List[schrodinger.application.desmond.cmj.Job]

Get the stage’s input jobs

hook_captured_successful_job(job)
property jobs: List[schrodinger.application.desmond.cmj.Job]
migrate_param(param: schrodinger.utils.sea.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    = "$MAINJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n    dir        = "$[$JOBPREFIX/$]$[$PREFIX/$]$MAINJOBNAME_$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    print_expected_memory = false\n    jlaunch_opt= [""]\n    }\n\n    VALIDATE = {\n    host = {type = str range = [1 10000000000]}\n    fep.type = {type = enum range = [prm_protein_binding prm_ligand_binding prm_thermostability prm_stability protein_selectivity covalent_ligand small_molecule metalloprotein ligand_selectivity absolute_binding solubility]}\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 ignore_posre]}\n    restraints.new = [ {type = list}\n                       {_skip = all}\n    ]\n    print_restraint = {type = bool}\n    print_expected_memory = {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'>, 'fep_membrane_launcher': <class 'schrodinger.application.desmond.stage.launcher.FepMembraneLauncher'>, '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'>, 'calc_ddg': <class 'schrodinger.application.desmond.stage.fep_mapper.CalcDdg'>, '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'>, 'reinit': <class 'schrodinger.application.desmond.stage.simulate.ReInit'>, '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'>, 'forcefield_builder_launcher': <class 'schrodinger.application.desmond.stage.prepare.forcefield.ForcefieldBuilderLauncher'>, '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'>, 'group_waters': <class 'schrodinger.application.desmond.stage.prepare.structure.GroupWaters'>, '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_launcher_base': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingLauncherBase'>, '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'>, 'fragment_linking_primer': <class 'schrodinger.application.desmond.stage.app.fragment_linking.stage.FragmentLinkingPrimer'>, 'ramd': <class 'schrodinger.application.desmond.stage.app.kinetics.RandomAcceleratedMD'>, 'ramd_reactive_path': <class 'schrodinger.application.desmond.stage.app.kinetics.RamdGenerateUnbindingPath'>, 'ramd_setup': <class 'schrodinger.application.desmond.stage.app.kinetics.RamdSetup'>, 'ramd_cleanup': <class 'schrodinger.application.desmond.stage.app.kinetics.RamdCleanup'>, 'path_unbinding': <class 'schrodinger.application.desmond.stage.app.kinetics.PathUnbinding'>, 'path_unbinding_analysis': <class 'schrodinger.application.desmond.stage.app.kinetics.PathUnbindingAnalysis'>, 'path_unbind_cleanup': <class 'schrodinger.application.desmond.stage.app.kinetics.PathUnbindingCleanup'>, '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'>, 'solvate_slab_builder': <class 'schrodinger.application.desmond.stage.app.matsci.SolvateSlabBuilder'>, 'matsci_analysis': <class 'schrodinger.application.desmond.stage.app.matsci.MatSciAnalysis'>, 'ses_stage': <class 'schrodinger.application.desmond.stage.app.matsci.ScaleEffectiveSolvent'>, 'extract_subsystem': <class 'schrodinger.application.desmond.stage.app.matsci.ExtractSubSystem'>, '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'>, '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'>, 'constant_ph_analysis': <class 'schrodinger.application.desmond.stage.app.constant_ph.ConstantpHAnalysis'>, 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'>, 'vacuum_report': <class 'schrodinger.application.desmond.stage.deprecate.VacuumReport'>, 'fep_mapper_report': <class 'schrodinger.application.desmond.stage.deprecate.FepMapperReport'>}
stage_obj = {}
time_stage()
class schrodinger.application.desmond.stage.app.kinetics.RamdGenerateUnbindingPath(should_pack=True)

Bases: schrodinger.application.desmond.cmj.StageBase

Extract and optimize the “reactive path” from the previous RAMD job. A Reactive path is part of the trajectory where ligand ‘unbinds’ from the receptor. This stage should directly follow a ‘ramd’ stage and its outputs are list of structures know as “waypoints”, which are equidistantly spaced, so that they’re suitable for PathCV.

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

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

RESTARTABLE = False
__init__(should_pack=True)
add_job(job: schrodinger.application.desmond.cmj.Job)

Shortcut for add_jobs

add_jobs(jobs: Iterable[schrodinger.application.desmond.cmj.Job])

Add jobs to the stage’s job manager

check_param()
count = 0
describe()
determine()
filter_jobs(**kwargs) List[schrodinger.application.desmond.cmj.Job]

Return a list of jobs based on a matching a set of criteria given as arguments. Read JobManager.filter_jobs for available arguments.

finalize_job(job: schrodinger.application.desmond.cmj.Job)

Call hook_captured_successful_job on any successful jobs and write a checkpoint

finalize_stage()

If the stage is done running, pack the stage, and if the stage is successful, continue to the next stage

get_output_jobs() List[schrodinger.application.desmond.cmj.Job]

Get the stage’s output jobs

get_prejobs() List[schrodinger.application.desmond.cmj.Job]

Get the stage’s input jobs

hook_captured_successful_job(job)
property jobs: List[schrodinger.application.desmond.cmj.Job]
migrate_param(param: schrodinger.utils.sea.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’.

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'>, 'fep_membrane_launcher': <class 'schrodinger.application.desmond.stage.launcher.FepMembraneLauncher'>, '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'>, 'calc_ddg': <class 'schrodinger.application.desmond.stage.fep_mapper.CalcDdg'>, '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'>, 'reinit': <class 'schrodinger.application.desmond.stage.simulate.ReInit'>, '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'>, 'forcefield_builder_launcher': <class 'schrodinger.application.desmond.stage.prepare.forcefield.ForcefieldBuilderLauncher'>, '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'>, 'group_waters': <class 'schrodinger.application.desmond.stage.prepare.structure.GroupWaters'>, '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_launcher_base': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingLauncherBase'>, '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'>, 'fragment_linking_primer': <class 'schrodinger.application.desmond.stage.app.fragment_linking.stage.FragmentLinkingPrimer'>, 'ramd': <class 'schrodinger.application.desmond.stage.app.kinetics.RandomAcceleratedMD'>, 'ramd_reactive_path': <class 'schrodinger.application.desmond.stage.app.kinetics.RamdGenerateUnbindingPath'>, 'ramd_setup': <class 'schrodinger.application.desmond.stage.app.kinetics.RamdSetup'>, 'ramd_cleanup': <class 'schrodinger.application.desmond.stage.app.kinetics.RamdCleanup'>, 'path_unbinding': <class 'schrodinger.application.desmond.stage.app.kinetics.PathUnbinding'>, 'path_unbinding_analysis': <class 'schrodinger.application.desmond.stage.app.kinetics.PathUnbindingAnalysis'>, 'path_unbind_cleanup': <class 'schrodinger.application.desmond.stage.app.kinetics.PathUnbindingCleanup'>, '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'>, 'solvate_slab_builder': <class 'schrodinger.application.desmond.stage.app.matsci.SolvateSlabBuilder'>, 'matsci_analysis': <class 'schrodinger.application.desmond.stage.app.matsci.MatSciAnalysis'>, 'ses_stage': <class 'schrodinger.application.desmond.stage.app.matsci.ScaleEffectiveSolvent'>, 'extract_subsystem': <class 'schrodinger.application.desmond.stage.app.matsci.ExtractSubSystem'>, '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'>, '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'>, 'constant_ph_analysis': <class 'schrodinger.application.desmond.stage.app.constant_ph.ConstantpHAnalysis'>, 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'>, 'vacuum_report': <class 'schrodinger.application.desmond.stage.deprecate.VacuumReport'>, 'fep_mapper_report': <class 'schrodinger.application.desmond.stage.deprecate.FepMapperReport'>}
stage_obj = {}
time_stage()
class schrodinger.application.desmond.stage.app.kinetics.RamdSetup(should_pack=True)

Bases: schrodinger.application.desmond.cmj.StageBase

From an unrestrained simulation of receptor-ligand complex in the previous “simulation” stage we want to measure ligand RMSD aligned on the receptor to ensure it is stable in the binding pocket. If the lignand RMSD is larger than a specified cutoff, we will terminate the calculation; otherwise we would setup a specified number of replicas for RAMD job.

Subsequent stage is a multisim stage, which will launch a specified number of replicas.

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

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

RESTARTABLE = False
__init__(should_pack=True)
add_job(job: schrodinger.application.desmond.cmj.Job)

Shortcut for add_jobs

add_jobs(jobs: Iterable[schrodinger.application.desmond.cmj.Job])

Add jobs to the stage’s job manager

check_param()
count = 0
describe()
determine()
filter_jobs(**kwargs) List[schrodinger.application.desmond.cmj.Job]

Return a list of jobs based on a matching a set of criteria given as arguments. Read JobManager.filter_jobs for available arguments.

finalize_job(job: schrodinger.application.desmond.cmj.Job)

Call hook_captured_successful_job on any successful jobs and write a checkpoint

finalize_stage()

If the stage is done running, pack the stage, and if the stage is successful, continue to the next stage

get_output_jobs() List[schrodinger.application.desmond.cmj.Job]

Get the stage’s output jobs

get_prejobs() List[schrodinger.application.desmond.cmj.Job]

Get the stage’s input jobs

hook_captured_successful_job(job)
property jobs: List[schrodinger.application.desmond.cmj.Job]
migrate_param(param: schrodinger.utils.sea.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’.

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'>, 'fep_membrane_launcher': <class 'schrodinger.application.desmond.stage.launcher.FepMembraneLauncher'>, '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'>, 'calc_ddg': <class 'schrodinger.application.desmond.stage.fep_mapper.CalcDdg'>, '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'>, 'reinit': <class 'schrodinger.application.desmond.stage.simulate.ReInit'>, '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'>, 'forcefield_builder_launcher': <class 'schrodinger.application.desmond.stage.prepare.forcefield.ForcefieldBuilderLauncher'>, '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'>, 'group_waters': <class 'schrodinger.application.desmond.stage.prepare.structure.GroupWaters'>, '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_launcher_base': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingLauncherBase'>, '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'>, 'fragment_linking_primer': <class 'schrodinger.application.desmond.stage.app.fragment_linking.stage.FragmentLinkingPrimer'>, 'ramd': <class 'schrodinger.application.desmond.stage.app.kinetics.RandomAcceleratedMD'>, 'ramd_reactive_path': <class 'schrodinger.application.desmond.stage.app.kinetics.RamdGenerateUnbindingPath'>, 'ramd_setup': <class 'schrodinger.application.desmond.stage.app.kinetics.RamdSetup'>, 'ramd_cleanup': <class 'schrodinger.application.desmond.stage.app.kinetics.RamdCleanup'>, 'path_unbinding': <class 'schrodinger.application.desmond.stage.app.kinetics.PathUnbinding'>, 'path_unbinding_analysis': <class 'schrodinger.application.desmond.stage.app.kinetics.PathUnbindingAnalysis'>, 'path_unbind_cleanup': <class 'schrodinger.application.desmond.stage.app.kinetics.PathUnbindingCleanup'>, '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'>, 'solvate_slab_builder': <class 'schrodinger.application.desmond.stage.app.matsci.SolvateSlabBuilder'>, 'matsci_analysis': <class 'schrodinger.application.desmond.stage.app.matsci.MatSciAnalysis'>, 'ses_stage': <class 'schrodinger.application.desmond.stage.app.matsci.ScaleEffectiveSolvent'>, 'extract_subsystem': <class 'schrodinger.application.desmond.stage.app.matsci.ExtractSubSystem'>, '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'>, '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'>, 'constant_ph_analysis': <class 'schrodinger.application.desmond.stage.app.constant_ph.ConstantpHAnalysis'>, 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'>, 'vacuum_report': <class 'schrodinger.application.desmond.stage.deprecate.VacuumReport'>, 'fep_mapper_report': <class 'schrodinger.application.desmond.stage.deprecate.FepMapperReport'>}
stage_obj = {}
time_stage()
class schrodinger.application.desmond.stage.app.kinetics.RamdCleanup(should_pack=True)

Bases: schrodinger.application.desmond.cmj.StageBase

This cleanup stage collects smoothed unbinding paths in mae format from all the RAMD subjobs and clusters them using Affinity Propagation method. We will use the centroid path from the most populated cluster for as the unbinding path. This path coordinates will be then encoded (stored) in the Cms file, in atom-level properties.

The unbinding path coordinates will then be encoded/stored in the Cms atom properties. This Cms will then be passed to the subsequent multisim stage. A specified number of replicas to run metadynamics unbinding subjobs will be set up.

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

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

RESTARTABLE = False
__init__(should_pack=True)
add_job(job: schrodinger.application.desmond.cmj.Job)

Shortcut for add_jobs

add_jobs(jobs: Iterable[schrodinger.application.desmond.cmj.Job])

Add jobs to the stage’s job manager

check_param()
count = 0
describe()
determine()
filter_jobs(**kwargs) List[schrodinger.application.desmond.cmj.Job]

Return a list of jobs based on a matching a set of criteria given as arguments. Read JobManager.filter_jobs for available arguments.

finalize_job(job: schrodinger.application.desmond.cmj.Job)

Call hook_captured_successful_job on any successful jobs and write a checkpoint

finalize_stage()

If the stage is done running, pack the stage, and if the stage is successful, continue to the next stage

get_output_jobs() List[schrodinger.application.desmond.cmj.Job]

Get the stage’s output jobs

get_prejobs() List[schrodinger.application.desmond.cmj.Job]

Get the stage’s input jobs

hook_captured_successful_job(job)
property jobs: List[schrodinger.application.desmond.cmj.Job]
migrate_param(param: schrodinger.utils.sea.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’.

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'>, 'fep_membrane_launcher': <class 'schrodinger.application.desmond.stage.launcher.FepMembraneLauncher'>, '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'>, 'calc_ddg': <class 'schrodinger.application.desmond.stage.fep_mapper.CalcDdg'>, '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'>, 'reinit': <class 'schrodinger.application.desmond.stage.simulate.ReInit'>, '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'>, 'forcefield_builder_launcher': <class 'schrodinger.application.desmond.stage.prepare.forcefield.ForcefieldBuilderLauncher'>, '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'>, 'group_waters': <class 'schrodinger.application.desmond.stage.prepare.structure.GroupWaters'>, '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_launcher_base': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingLauncherBase'>, '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'>, 'fragment_linking_primer': <class 'schrodinger.application.desmond.stage.app.fragment_linking.stage.FragmentLinkingPrimer'>, 'ramd': <class 'schrodinger.application.desmond.stage.app.kinetics.RandomAcceleratedMD'>, 'ramd_reactive_path': <class 'schrodinger.application.desmond.stage.app.kinetics.RamdGenerateUnbindingPath'>, 'ramd_setup': <class 'schrodinger.application.desmond.stage.app.kinetics.RamdSetup'>, 'ramd_cleanup': <class 'schrodinger.application.desmond.stage.app.kinetics.RamdCleanup'>, 'path_unbinding': <class 'schrodinger.application.desmond.stage.app.kinetics.PathUnbinding'>, 'path_unbinding_analysis': <class 'schrodinger.application.desmond.stage.app.kinetics.PathUnbindingAnalysis'>, 'path_unbind_cleanup': <class 'schrodinger.application.desmond.stage.app.kinetics.PathUnbindingCleanup'>, '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'>, 'solvate_slab_builder': <class 'schrodinger.application.desmond.stage.app.matsci.SolvateSlabBuilder'>, 'matsci_analysis': <class 'schrodinger.application.desmond.stage.app.matsci.MatSciAnalysis'>, 'ses_stage': <class 'schrodinger.application.desmond.stage.app.matsci.ScaleEffectiveSolvent'>, 'extract_subsystem': <class 'schrodinger.application.desmond.stage.app.matsci.ExtractSubSystem'>, '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'>, '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'>, 'constant_ph_analysis': <class 'schrodinger.application.desmond.stage.app.constant_ph.ConstantpHAnalysis'>, 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'>, 'vacuum_report': <class 'schrodinger.application.desmond.stage.deprecate.VacuumReport'>, 'fep_mapper_report': <class 'schrodinger.application.desmond.stage.deprecate.FepMapperReport'>}
stage_obj = {}
time_stage()
class schrodinger.application.desmond.stage.app.kinetics.PathUnbinding(*arg, **kwarg)

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

This stage will setup and run an unbinding simulation, using metadynamics. Inputs for this stage is the Cms file with the unbinding path encoded within its atom properties. This stage returns the standard simulation data plus the metadynamics-specific outputs. PathUnbindingAnalysis stage should run immediately after this stage.

NAME = 'path_unbinding'
PARAM = <schrodinger.utils.sea.sea.Map object>
crunch()
CFG_SIM_NAME = 'mdsim'
DESMOND_CMD = '/scr/buildbot/savedbuilds/2023-2/NB/build-121/desmond'
RESTARTABLE = True
__init__(*arg, **kwarg)
add_job(job: schrodinger.application.desmond.cmj.Job)

Shortcut for add_jobs

add_jobs(jobs: Iterable[schrodinger.application.desmond.cmj.Job])

Add jobs to the stage’s job manager

capture(job)
check_param()
count = 0
describe()
determine()
filter_jobs(**kwargs) List[schrodinger.application.desmond.cmj.Job]

Return a list of jobs based on a matching a set of criteria given as arguments. Read JobManager.filter_jobs for available arguments.

finalize_job(job: schrodinger.application.desmond.cmj.Job)

Call hook_captured_successful_job on any successful jobs and write a checkpoint

finalize_stage()

If the stage is done running, pack the stage, and if the stage is successful, continue to the next stage

get_output_jobs() List[schrodinger.application.desmond.cmj.Job]

Get the stage’s output jobs

get_prejobs() List[schrodinger.application.desmond.cmj.Job]

Get the stage’s input jobs

hook_captured_successful_job(job)
property jobs: List[schrodinger.application.desmond.cmj.Job]
migrate_param(param: schrodinger.utils.sea.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    = "$MAINJOBNAME_$STAGENO$[_lambda$LAMBDA$]"\n    dir        = "$[$JOBPREFIX/$]$[$PREFIX/$]$MAINJOBNAME_$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    print_expected_memory = false\n    jlaunch_opt= [""]\n    }\n\n    VALIDATE = {\n    host = {type = str range = [1 10000000000]}\n    fep.type = {type = enum range = [prm_protein_binding prm_ligand_binding prm_thermostability prm_stability protein_selectivity covalent_ligand small_molecule metalloprotein ligand_selectivity absolute_binding solubility]}\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 ignore_posre]}\n    restraints.new = [ {type = list}\n                       {_skip = all}\n    ]\n    print_restraint = {type = bool}\n    print_expected_memory = {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'>, 'fep_membrane_launcher': <class 'schrodinger.application.desmond.stage.launcher.FepMembraneLauncher'>, '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'>, 'calc_ddg': <class 'schrodinger.application.desmond.stage.fep_mapper.CalcDdg'>, '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'>, 'reinit': <class 'schrodinger.application.desmond.stage.simulate.ReInit'>, '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'>, 'forcefield_builder_launcher': <class 'schrodinger.application.desmond.stage.prepare.forcefield.ForcefieldBuilderLauncher'>, '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'>, 'group_waters': <class 'schrodinger.application.desmond.stage.prepare.structure.GroupWaters'>, '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_launcher_base': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingLauncherBase'>, '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'>, 'fragment_linking_primer': <class 'schrodinger.application.desmond.stage.app.fragment_linking.stage.FragmentLinkingPrimer'>, 'ramd': <class 'schrodinger.application.desmond.stage.app.kinetics.RandomAcceleratedMD'>, 'ramd_reactive_path': <class 'schrodinger.application.desmond.stage.app.kinetics.RamdGenerateUnbindingPath'>, 'ramd_setup': <class 'schrodinger.application.desmond.stage.app.kinetics.RamdSetup'>, 'ramd_cleanup': <class 'schrodinger.application.desmond.stage.app.kinetics.RamdCleanup'>, 'path_unbinding': <class 'schrodinger.application.desmond.stage.app.kinetics.PathUnbinding'>, 'path_unbinding_analysis': <class 'schrodinger.application.desmond.stage.app.kinetics.PathUnbindingAnalysis'>, 'path_unbind_cleanup': <class 'schrodinger.application.desmond.stage.app.kinetics.PathUnbindingCleanup'>, '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'>, 'solvate_slab_builder': <class 'schrodinger.application.desmond.stage.app.matsci.SolvateSlabBuilder'>, 'matsci_analysis': <class 'schrodinger.application.desmond.stage.app.matsci.MatSciAnalysis'>, 'ses_stage': <class 'schrodinger.application.desmond.stage.app.matsci.ScaleEffectiveSolvent'>, 'extract_subsystem': <class 'schrodinger.application.desmond.stage.app.matsci.ExtractSubSystem'>, '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'>, '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'>, 'constant_ph_analysis': <class 'schrodinger.application.desmond.stage.app.constant_ph.ConstantpHAnalysis'>, 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'>, 'vacuum_report': <class 'schrodinger.application.desmond.stage.deprecate.VacuumReport'>, 'fep_mapper_report': <class 'schrodinger.application.desmond.stage.deprecate.FepMapperReport'>}
stage_obj = {}
time_stage()
class schrodinger.application.desmond.stage.app.kinetics.PathUnbindingAnalysis(should_pack=True)

Bases: schrodinger.application.desmond.cmj.StageBase

This stage performs an analysis of the preceeding PathUnbinding stage. CVSEQ file will be processed and converted to panda’s DataFrame. This data will be serialized into a file with “.mtd” extension. Parched trajectory will be generated as in production mode the previous stage will be removed with the ‘trim’ stage.

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

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

RESTARTABLE = False
__init__(should_pack=True)
add_job(job: schrodinger.application.desmond.cmj.Job)

Shortcut for add_jobs

add_jobs(jobs: Iterable[schrodinger.application.desmond.cmj.Job])

Add jobs to the stage’s job manager

check_param()
count = 0
describe()
determine()
filter_jobs(**kwargs) List[schrodinger.application.desmond.cmj.Job]

Return a list of jobs based on a matching a set of criteria given as arguments. Read JobManager.filter_jobs for available arguments.

finalize_job(job: schrodinger.application.desmond.cmj.Job)

Call hook_captured_successful_job on any successful jobs and write a checkpoint

finalize_stage()

If the stage is done running, pack the stage, and if the stage is successful, continue to the next stage

get_output_jobs() List[schrodinger.application.desmond.cmj.Job]

Get the stage’s output jobs

get_prejobs() List[schrodinger.application.desmond.cmj.Job]

Get the stage’s input jobs

hook_captured_successful_job(job)
property jobs: List[schrodinger.application.desmond.cmj.Job]
migrate_param(param: schrodinger.utils.sea.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’.

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'>, 'fep_membrane_launcher': <class 'schrodinger.application.desmond.stage.launcher.FepMembraneLauncher'>, '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'>, 'calc_ddg': <class 'schrodinger.application.desmond.stage.fep_mapper.CalcDdg'>, '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'>, 'reinit': <class 'schrodinger.application.desmond.stage.simulate.ReInit'>, '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'>, 'forcefield_builder_launcher': <class 'schrodinger.application.desmond.stage.prepare.forcefield.ForcefieldBuilderLauncher'>, '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'>, 'group_waters': <class 'schrodinger.application.desmond.stage.prepare.structure.GroupWaters'>, '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_launcher_base': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingLauncherBase'>, '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'>, 'fragment_linking_primer': <class 'schrodinger.application.desmond.stage.app.fragment_linking.stage.FragmentLinkingPrimer'>, 'ramd': <class 'schrodinger.application.desmond.stage.app.kinetics.RandomAcceleratedMD'>, 'ramd_reactive_path': <class 'schrodinger.application.desmond.stage.app.kinetics.RamdGenerateUnbindingPath'>, 'ramd_setup': <class 'schrodinger.application.desmond.stage.app.kinetics.RamdSetup'>, 'ramd_cleanup': <class 'schrodinger.application.desmond.stage.app.kinetics.RamdCleanup'>, 'path_unbinding': <class 'schrodinger.application.desmond.stage.app.kinetics.PathUnbinding'>, 'path_unbinding_analysis': <class 'schrodinger.application.desmond.stage.app.kinetics.PathUnbindingAnalysis'>, 'path_unbind_cleanup': <class 'schrodinger.application.desmond.stage.app.kinetics.PathUnbindingCleanup'>, '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'>, 'solvate_slab_builder': <class 'schrodinger.application.desmond.stage.app.matsci.SolvateSlabBuilder'>, 'matsci_analysis': <class 'schrodinger.application.desmond.stage.app.matsci.MatSciAnalysis'>, 'ses_stage': <class 'schrodinger.application.desmond.stage.app.matsci.ScaleEffectiveSolvent'>, 'extract_subsystem': <class 'schrodinger.application.desmond.stage.app.matsci.ExtractSubSystem'>, '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'>, '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'>, 'constant_ph_analysis': <class 'schrodinger.application.desmond.stage.app.constant_ph.ConstantpHAnalysis'>, 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'>, 'vacuum_report': <class 'schrodinger.application.desmond.stage.deprecate.VacuumReport'>, 'fep_mapper_report': <class 'schrodinger.application.desmond.stage.deprecate.FepMapperReport'>}
stage_obj = {}
time_stage()
class schrodinger.application.desmond.stage.app.kinetics.PathUnbindingCleanup(should_pack=True)

Bases: schrodinger.application.desmond.cmj.StageBase

This cleanup stage collects simulation data from the previous multisim launcher stage together with results.mtd and generates a report for each metadynamcs subjob. The residence time (tau) will be calculated using the previous multisim/subjob results. The results are stored in the the $JOBNAME.{dat|png} files.

This should be a final stage of the Kinetics workflow.

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

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

poststage()

copy the results image and data file

RESTARTABLE = False
__init__(should_pack=True)
add_job(job: schrodinger.application.desmond.cmj.Job)

Shortcut for add_jobs

add_jobs(jobs: Iterable[schrodinger.application.desmond.cmj.Job])

Add jobs to the stage’s job manager

check_param()
count = 0
describe()
determine()
filter_jobs(**kwargs) List[schrodinger.application.desmond.cmj.Job]

Return a list of jobs based on a matching a set of criteria given as arguments. Read JobManager.filter_jobs for available arguments.

finalize_job(job: schrodinger.application.desmond.cmj.Job)

Call hook_captured_successful_job on any successful jobs and write a checkpoint

finalize_stage()

If the stage is done running, pack the stage, and if the stage is successful, continue to the next stage

get_output_jobs() List[schrodinger.application.desmond.cmj.Job]

Get the stage’s output jobs

get_prejobs() List[schrodinger.application.desmond.cmj.Job]

Get the stage’s input jobs

hook_captured_successful_job(job)
property jobs: List[schrodinger.application.desmond.cmj.Job]
migrate_param(param: schrodinger.utils.sea.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)
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'>, 'fep_membrane_launcher': <class 'schrodinger.application.desmond.stage.launcher.FepMembraneLauncher'>, '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'>, 'calc_ddg': <class 'schrodinger.application.desmond.stage.fep_mapper.CalcDdg'>, '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'>, 'reinit': <class 'schrodinger.application.desmond.stage.simulate.ReInit'>, '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'>, 'forcefield_builder_launcher': <class 'schrodinger.application.desmond.stage.prepare.forcefield.ForcefieldBuilderLauncher'>, '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'>, 'group_waters': <class 'schrodinger.application.desmond.stage.prepare.structure.GroupWaters'>, '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_launcher_base': <class 'schrodinger.application.desmond.stage.app.absolute_binding.stage.FepAbsoluteBindingLauncherBase'>, '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'>, 'fragment_linking_primer': <class 'schrodinger.application.desmond.stage.app.fragment_linking.stage.FragmentLinkingPrimer'>, 'ramd': <class 'schrodinger.application.desmond.stage.app.kinetics.RandomAcceleratedMD'>, 'ramd_reactive_path': <class 'schrodinger.application.desmond.stage.app.kinetics.RamdGenerateUnbindingPath'>, 'ramd_setup': <class 'schrodinger.application.desmond.stage.app.kinetics.RamdSetup'>, 'ramd_cleanup': <class 'schrodinger.application.desmond.stage.app.kinetics.RamdCleanup'>, 'path_unbinding': <class 'schrodinger.application.desmond.stage.app.kinetics.PathUnbinding'>, 'path_unbinding_analysis': <class 'schrodinger.application.desmond.stage.app.kinetics.PathUnbindingAnalysis'>, 'path_unbind_cleanup': <class 'schrodinger.application.desmond.stage.app.kinetics.PathUnbindingCleanup'>, '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'>, 'solvate_slab_builder': <class 'schrodinger.application.desmond.stage.app.matsci.SolvateSlabBuilder'>, 'matsci_analysis': <class 'schrodinger.application.desmond.stage.app.matsci.MatSciAnalysis'>, 'ses_stage': <class 'schrodinger.application.desmond.stage.app.matsci.ScaleEffectiveSolvent'>, 'extract_subsystem': <class 'schrodinger.application.desmond.stage.app.matsci.ExtractSubSystem'>, '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'>, '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'>, 'constant_ph_analysis': <class 'schrodinger.application.desmond.stage.app.constant_ph.ConstantpHAnalysis'>, 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'>, 'vacuum_report': <class 'schrodinger.application.desmond.stage.deprecate.VacuumReport'>, 'fep_mapper_report': <class 'schrodinger.application.desmond.stage.deprecate.FepMapperReport'>}
stage_obj = {}
time_stage()