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

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

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

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

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

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

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

NAME = 'ramd'
CFG_SIM_NAME = 'ramd'
PARAM = <schrodinger.utils.sea.sea.Map object>
crunch()
class schrodinger.application.desmond.stage.app.kinetics.RamdGenerateUnbindingPath(should_pack=True)

Bases: schrodinger.application.desmond.cmj.StageBase

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

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

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

class schrodinger.application.desmond.stage.app.kinetics.ValidateStability(should_pack=True)

Bases: schrodinger.application.desmond.cmj.StageBase

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

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

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

class schrodinger.application.desmond.stage.app.kinetics.RamdSetup(should_pack=True)

Bases: schrodinger.application.desmond.cmj.StageBase

Setup a specified number of replicas for RAMD job.

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

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

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

class schrodinger.application.desmond.stage.app.kinetics.RamdCleanup(should_pack=True)

Bases: schrodinger.application.desmond.cmj.StageBase

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

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

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

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

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

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

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

NAME = 'path_unbinding'
PARAM = <schrodinger.utils.sea.sea.Map object>
crunch()
class schrodinger.application.desmond.stage.app.kinetics.PathUnbindingAnalysis(should_pack=True)

Bases: schrodinger.application.desmond.cmj.StageBase

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

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

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

class schrodinger.application.desmond.stage.app.kinetics.PathUnbindingCleanup(should_pack=True)

Bases: schrodinger.application.desmond.cmj.StageBase

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

This should be a final stage of the Kinetics workflow.

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

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

poststage()

copy the results image and data file