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[str]) – 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) trajectories 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.

RESTARTABLE = True
DESMOND_CMD = '/Users/young/builds/2023-1/build/desmond'
CFG_SIM_NAME = 'mdsim'
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    '
PARAM = <schrodinger.utils.sea.sea.Map object>
__init__(*arg, **kwarg)
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

prestage()
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'
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

property jobs: List[schrodinger.application.desmond.cmj.Job]
poststage()
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'>, 'fep_membrane_launcher': <class 'schrodinger.application.desmond.stage.launcher.FepMembraneLauncher'>, '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'>, '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'>, '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'>, 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.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 = '/Users/young/builds/2023-1/build/desmond'
NAME = 'generic'
PARAM = <schrodinger.utils.sea.sea.Map object>
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
crunch()
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'>, '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'>, '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'>, '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'>, 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.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.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 = '/Users/young/builds/2023-1/build/desmond'
NAME = 'generic'
RESTARTABLE = 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

capture(job)
count = 0
crunch()
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'>, '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'>, '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'>, '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'>, 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.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 = '/Users/young/builds/2023-1/build/desmond'
PARAM = <schrodinger.utils.sea.sea.Map object>
RESTARTABLE = True
__init__(*args, **kwargs)
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()

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()
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'>, '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'>, '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'>, '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'>, 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.simulate.ReplicaExchange(*arg, **kwarg)

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

NAME = 'replica_exchange'
CFG_SIM_NAME = 'remd'
PARAM = <schrodinger.utils.sea.sea.Map object>
__init__(*arg, **kwarg)
hook_captured_successful_job(job)
restart_subjobs(jobs)

Subclass should override this if it supports subjob restarting.

DESMOND_CMD = '/Users/young/builds/2023-1/build/desmond'
RESTARTABLE = 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

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()
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

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

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'>, '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'>, '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'>, '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'>, 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.simulate.LambdaHopping(*arg, **kwarg)

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

NAME = 'lambda_hopping'
PARAM = <schrodinger.utils.sea.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 = '/Users/young/builds/2023-1/build/desmond'
RESTARTABLE = 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

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()
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

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

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'>, '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'>, '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'>, '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'>, 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.simulate.DesmondExtend(*args, **kwargs)

Bases: schrodinger.application.desmond.cmj.StageBase

Extend a simulate phase if requested by the user.

This stage is included in every FEP job, even those that are not extensions. However, it does not do anything unless the user includes a nonzero added_time parameter as input. In this case, the job is restarted from the simulate stage, continuing where the simulation left off.

Variables

should_restart_extend (bool) – if the previous stage failed, restart it rather than extending

NAME = 'desmond_extend'
PARAM = <schrodinger.utils.sea.sea.Map object>
__init__(*args, **kwargs)
crunch()

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

restart_subjobs(jobs)

Subclass should override this if it supports subjob restarting.

RESTARTABLE = False
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’.

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'>, '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'>, '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'>, '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'>, 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.simulate.VrunBase(*arg, **kwarg)

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

PARAM = <schrodinger.utils.sea.sea.Map object>
CFG_SIM_NAME = 'mdsim'
DESMOND_CMD = '/Users/young/builds/2023-1/build/desmond'
NAME = 'generic'
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
crunch()
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'>, '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'>, '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'>, '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'>, 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.simulate.Vrun(*arg, **kwarg)

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

NAME = 'vrun'
PARAM = <schrodinger.utils.sea.sea.Map object>
__init__(*arg, **kwarg)
crunch()
CFG_SIM_NAME = 'mdsim'
DESMOND_CMD = '/Users/young/builds/2023-1/build/desmond'
RESTARTABLE = 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

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'>, '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'>, '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'>, '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'>, 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.simulate.FepVrun(*arg, **kwarg)

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

NAME = 'fep_vrun'
PARAM = <schrodinger.utils.sea.sea.Map object>
__init__(*arg, **kwarg)
crunch()
hook_captured_successful_job(job)
CFG_SIM_NAME = 'mdsim'
DESMOND_CMD = '/Users/young/builds/2023-1/build/desmond'
RESTARTABLE = 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

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

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'>, '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'>, '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'>, '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'>, 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.simulate.ConcatParam(ark={}, parent=None)

Bases: schrodinger.utils.sea.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.

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

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

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

property sval

Readonly. Returns the current Sea object.

tag()

Returns tags, which are ‘set’ objects.

property 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.sea.Map object>
__init__(*args, **kwargs)
property 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.

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

CFG_SIM_NAME = 'mdsim'
DESMOND_CMD = '/Users/young/builds/2023-1/build/desmond'
RESTARTABLE = 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

capture(job)
count = 0
crunch()
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]
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'>, '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'>, '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'>, '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'>, 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.simulate.ReInit(*arg, **kwarg)

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

NAME = 'reinit'
PARAM = <schrodinger.utils.sea.sea.Map object>
collect_inputfile()

Called from cmj.collect_inputfile() during startup. :return: List of input file names.

CFG_SIM_NAME = 'mdsim'
DESMOND_CMD = '/Users/young/builds/2023-1/build/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
crunch()
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'>, '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'>, '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'>, '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'>, 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()