Pose Analysis MD
Pose-analysis MD accepts selectable small-molecule, protein, and water force fields. Mean and medoid structures are available through the same result helpers as protein MD.
Pose-analysis MD workflow - molecular dynamics simulations for ligand-protein complexes.
TrajectoryResult
dataclass
TrajectoryResult(uuid: str, ligand_rmsd: list[float], contacts: list[BindingPoseContact], sasa: list[float | None], polar_sasa: list[float | None], isotropic_radius_of_gyration: list[float], cluster_centroid_indices: list[int], cluster_indices_by_frame: list[int], protein_rmsd: list[float] = list(), rmsf: list[float] = list(), potential_energy: list[float] = list(), mmgbsa_scores: list[float | None] = list(), mean_structure_uuid: str | None = None, median_structure_frame_index: int | None = None)
Results from a single MD trajectory replicate.
Attributes:
| Name | Type | Description |
|---|---|---|
uuid |
str
|
UUID of the trajectory calculation |
ligand_rmsd |
list[float]
|
ligand RMSD values over time (Angstrom) |
contacts |
list[BindingPoseContact]
|
ligand-protein contacts with occupancy over the trajectory |
sasa |
list[float | None]
|
solvent-accessible surface area per analyzed frame (populated when analysis_interval_ps is set) |
polar_sasa |
list[float | None]
|
polar solvent-accessible surface area per analyzed frame (populated when analysis_interval_ps is set) |
isotropic_radius_of_gyration |
list[float]
|
radius of gyration per analyzed frame |
cluster_centroid_indices |
list[int]
|
frame indices of the cluster centroids (populated when clustering is set) |
cluster_indices_by_frame |
list[int]
|
cluster assignment for each frame (populated when clustering is set) |
protein_rmsd |
list[float]
|
per-frame Cα RMSD from the first frame, in angstrom |
rmsf |
list[float]
|
per-Cα RMSF from the mean structure, in angstrom |
potential_energy |
list[float]
|
per-frame potential energy of the simulated system, in Hartree |
mmgbsa_scores |
list[float | None]
|
per-frame MM/GBSA interaction energy, in kcal/mol |
mean_structure_uuid |
str | None
|
UUID of the coordinate-averaged structure |
median_structure_frame_index |
int | None
|
frame index of the medoid structure |
PoseAnalysisMDResult
dataclass
PoseAnalysisMDResult(workflow_data: dict[str, Any], workflow_type: str, workflow_uuid: str, complete: bool = True)
Bases: _MolecularDynamicsResult
Result from a Pose-Analysis Molecular Dynamics (MD) workflow.
trajectories
property
Results from each trajectory replicate.
Each trajectory contains RMSD values, contact analysis, and cluster assignments.
hydration_sites
property
Hydration sites identified across all trajectories.
average_rmsds
property
Average ligand RMSD per trajectory (Angstrom).
submit_pose_analysis_md_workflow
submit_pose_analysis_md_workflow(protein: Protein | ProteinUUID, initial_smiles: str, num_trajectories: int = 4, small_molecule_ff: Literal['off_sage_2_0_0', 'off_sage_2_2_1', 'off_sage_2_3_0', 'mango_1_0_0'] = 'off_sage_2_3_0', protein_ff: ProteinForceField | str = ProteinForceField.FF14SB, water_ff: WaterForceField | str = WaterForceField.TIP3P, equilibration_time_ns: float = 0.5, simulation_time_ns: float = 10, temperature: float = 300, pressure_atm: float = 1.0, langevin_timescale_ps: float = 1.0, timestep_fs: float = 4, hydrogen_mass: float = 3, constrain_hydrogens: bool = True, nonbonded_cutoff: float = 8.0, ionic_strength_M: float = 0.0, water_buffer: float = 8.0, ligand_residue_name: str = 'LIG', protein_restraint_cutoff: float | None = 7.0, protein_restraint_constant: float = 100, save_solvent: bool = False, num_solvent_to_save: int | None = None, analysis_interval_ps: float | None = None, clustering: KMeansClusteringSettings | GreedyClusteringSettings | None = None, validate_forcefield: bool = True, name: str = 'Pose-Analysis MD Workflow', folder_uuid: str | None = None, folder: Folder | None = None, max_credits: int | None = None, webhook_url: str | None = None, is_draft: bool = False) -> Workflow[PoseAnalysisMDResult]
Submits a Pose-Analysis Molecular Dynamics (MD) workflow to the API.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
protein
|
Protein | ProteinUUID
|
Holo protein on which MD will be run. Can be input as a UUID or a Protein object |
required |
initial_smiles
|
str
|
SMILES for the ligand |
required |
num_trajectories
|
int
|
number of trajectories to run |
4
|
small_molecule_ff
|
Literal['off_sage_2_0_0', 'off_sage_2_2_1', 'off_sage_2_3_0', 'mango_1_0_0']
|
force field for the ligand |
'off_sage_2_3_0'
|
protein_ff
|
ProteinForceField | str
|
force field for proteins |
FF14SB
|
water_ff
|
WaterForceField | str
|
force field for water |
TIP3P
|
equilibration_time_ns
|
float
|
equilibration time per trajectory, in ns |
0.5
|
simulation_time_ns
|
float
|
simulation time per trajectory, in ns |
10
|
temperature
|
float
|
temperature, in K |
300
|
pressure_atm
|
float
|
pressure, in atm |
1.0
|
langevin_timescale_ps
|
float
|
timescale for the Langevin integrator, in ps⁻¹ |
1.0
|
timestep_fs
|
float
|
timestep, in femtoseconds |
4
|
hydrogen_mass
|
float
|
hydrogen mass, in atomic mass units |
3
|
ligand_residue_name
|
str
|
name of the residue corresponding to the ligand |
'LIG'
|
constrain_hydrogens
|
bool
|
whether to use SHAKE to freeze bonds to hydrogen |
True
|
nonbonded_cutoff
|
float
|
nonbonded cutoff for particle-mesh Ewald, in Å |
8.0
|
ionic_strength_M
|
float
|
ionic strength of the solution, in M (molar) |
0.0
|
water_buffer
|
float
|
amount of water to add around the protein, in Å |
8.0
|
protein_restraint_cutoff
|
float | None
|
cutoff past which alpha-carbons will be constrained, in Å, measured from the ligand. None applies no restraints |
7.0
|
protein_restraint_constant
|
float
|
force constant for backbone restraints, in kcal/mol/Ų |
100
|
save_solvent
|
bool
|
whether to save solvent molecules |
False
|
num_solvent_to_save
|
int | None
|
number of solvent molecules to save (the N nearest the ligand each frame). None saves all solvent when save_solvent is True |
None
|
analysis_interval_ps
|
float | None
|
interval at which to compute per-frame SASA and polar SASA, in ps. None disables those analyses |
None
|
clustering
|
KMeansClusteringSettings | GreedyClusteringSettings | None
|
how to cluster trajectory frames. None disables clustering; pass a KMeansClusteringSettings (num_clusters) or GreedyClusteringSettings (cutoff_angstrom) |
None
|
validate_forcefield
|
bool
|
validate the protein forcefield compatibility before submitting. Raises an error early if the protein cannot be parameterized or has clashing residues |
True
|
name
|
str
|
name of the workflow |
'Pose-Analysis MD Workflow'
|
folder_uuid
|
str | None
|
UUID of the folder to place the workflow in |
None
|
folder
|
Folder | None
|
destination folder |
None
|
max_credits
|
int | None
|
maximum credits for the workflow |
None
|
webhook_url
|
str | None
|
URL that Rowan will POST to when the workflow completes |
None
|
is_draft
|
bool
|
save as a draft without starting execution |
False
|
Returns:
| Type | Description |
|---|---|
Workflow[PoseAnalysisMDResult]
|
submitted workflow |
Raises:
| Type | Description |
|---|---|
HTTPStatusError
|
request to the API fails |