schrodinger.application.desmond.stage.app.lambda_dynamics module

class schrodinger.application.desmond.stage.app.lambda_dynamics.LambdaDynamicsStructure(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: enum.StrEnum

Structure types for the lambda dynamics workflow.

If a mutation_chain_asl is provided then the input structure is some sort of binding complex that needs to be split into the complex (the original input structure) and the mutation chain (the protein that can be mutated).

COMPLEX = 'complex'
MUTATION_CHAIN = 'mutation_chain'
class schrodinger.application.desmond.stage.app.lambda_dynamics.LambdaDynamicsSplitReceptor(should_pack=True)

Bases: schrodinger.application.desmond.cmj.StageBase

Split the input structure into a complex structure and a mutation chain structure dependent on the provided mutation chain ASL and generate the job threads for the complex and mutation chain structures which will each undergo lambda dynamics simulations.

If no mutation chain ASL is provided, the input structure is just a single mutatable protein and will be written to the mutation chain structure file and a single job will be created that will be carried through the remainder of the workflow.

If a mutaiton chain ASL is provided, the input structure will be split into a complex structure containing the original protein system and a mutation chain structure containing just the protein that is to be mutated. Two jobs will be created that will be carried through the remainder of the workflow.

NAME = 'lambda_dynamics_split_receptor'
PARAM = <schrodinger.utils.sea.sea.Map object>
run(jobname: str, input_fname: str) Optional[List[str]]
crunch()

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

class schrodinger.application.desmond.stage.app.lambda_dynamics.LambdaDynamicsMapper(*args, **kwargs)

Bases: schrodinger.application.desmond.cmj.StructureStageBase

Generate the mutant proteins and map the forcefield terms to prepare for lambda dynamics simulations.

This stage expects a mutations file as well as a cms file to be passed from a previous stage that has run through both the build_geometry and assign_forcefield stages. The output file from this stage will be a cms file with the original protein system and additional lambda dynamics information stored in the s_fep_TITRATION_STATES property.

NAME = 'lambda_dynamics_mapper'
PARAM = <schrodinger.utils.sea.sea.Map object>
collect_inputfile() List[str]

Return the input file needed from the launch directory.

run(jobname: str, input_fname: str) Optional[str]
Parameters
  • jobname – Jobname for this stage.

  • input_fname – Filename for the input structure.

Returns

Filename for the output structure or None if there was an error generating the output.

class schrodinger.application.desmond.stage.app.lambda_dynamics.LambdaDynamicsMdLauncher(should_pack=True)

Bases: schrodinger.application.desmond.stage.launcher.Multisim

Generate the adaptive pmf coefficients to be added to the md subjob msj and launch the md subjob for the lambda dynamics workflow.

This stage expects a lambda dynamics cms produced from the LambdaDynamicsMapper stage to be passed from a previous stage. The output of this stage will be a .yaml file containing the adaptive pmf coefficients for the job, the completed md subjob msj, and the output from the md subjob.

NAME = 'lambda_dynamics_md_launcher'
PARAM = <schrodinger.utils.sea.sea.Map object>
collect_inputfile() List[str]

Return the input file needed from the launch directory.

crunch()

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

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