schrodinger.application.glide.docking_report module

APIs for creating a glide docking report.

Copyright Schrodinger, LLC. All rights reserved.

class schrodinger.application.glide.docking_report.JobData(grid: GridArchive, config: Config, input_settings: str, receptor: Structure, reference: Structure | None, datafiles: DataFiles)

Bases: object

grid: GridArchive
config: Config
input_settings: str
receptor: Structure
reference: Structure | None
datafiles: DataFiles
__init__(grid: GridArchive, config: Config, input_settings: str, receptor: Structure, reference: Structure | None, datafiles: DataFiles) None
class schrodinger.application.glide.docking_report.FunnelData(ligand: glide.Ligand, ligand_constraint_data: glide.LigandConstraintData = None, conf_ens: glide.ConformerEnsemble = None, rough_pose_ens: glide.RoughPoseEnsemble = None, refined_pose_ens: glide.RefinedPoseEnsemble = None, minimized_pose_ens: glide.RefinedPoseEnsemble = None, resampled_pose_ens: glide.RefinedPoseEnsemble = None, poses: list[glide.Pose] = <factory>, scored_pose_sts: list[schrodinger.structure._structure.Structure] = <factory>, output_sts: list[schrodinger.structure._structure.Structure] = <factory>, skip_reason: str = None, skip_message: str = None)

Bases: object

ligand: Ligand
ligand_constraint_data: LigandConstraintData = None
conf_ens: ConformerEnsemble = None
rough_pose_ens: RoughPoseEnsemble = None
refined_pose_ens: RefinedPoseEnsemble = None
minimized_pose_ens: RefinedPoseEnsemble = None
resampled_pose_ens: RefinedPoseEnsemble = None
poses: list[Pose]
scored_pose_sts: list[Structure]
output_sts: list[Structure]
skip_reason: str = None
skip_message: str = None
__init__(ligand: ~glide.Ligand, ligand_constraint_data: ~glide.LigandConstraintData = None, conf_ens: ~glide.ConformerEnsemble = None, rough_pose_ens: ~glide.RoughPoseEnsemble = None, refined_pose_ens: ~glide.RefinedPoseEnsemble = None, minimized_pose_ens: ~glide.RefinedPoseEnsemble = None, resampled_pose_ens: ~glide.RefinedPoseEnsemble = None, poses: list[glide.Pose] = <factory>, scored_pose_sts: list[schrodinger.structure._structure.Structure] = <factory>, output_sts: list[schrodinger.structure._structure.Structure] = <factory>, skip_reason: str = None, skip_message: str = None) None
class schrodinger.application.glide.docking_report.LigandPriorityQueue(property: str, max_funnel_data: int, max_skipped_ligands: int)

Bases: object

Implements a max-heap based priority queue to keep track of the best ligands by a structure property. Tie breaks between equal properties are done by keeping the ligand seen first. Also stores the skipped ligands up to SKIPPED_LIGANDS and they are placed at the end of the sorted output list.

__init__(property: str, max_funnel_data: int, max_skipped_ligands: int)
add(funnel_data: FunnelData)

Add a FunnelData object to the heap if there’s space or if it’s better than the previous worst ligand. Any failed ligands get added to the skipped list if theres space. If none of the above apply, do nothing.

get_sorted_ligand_funnel_data() list
class schrodinger.application.glide.docking_report.PoseData(properties: dict, score_terms: dict)

Bases: object

properties: dict
score_terms: dict
__init__(properties: dict, score_terms: dict) None
class schrodinger.application.glide.docking_report.ConformerData(ligand_rotatable_bonds_diagram: str = None, conformer_energy_histogram: str = None, conformer_score_histogram: str = None, conformer_rmsd_histogram: str = None, rotatable_bond_graph: str = None)

Bases: object

ligand_rotatable_bonds_diagram: str = None
conformer_energy_histogram: str = None
conformer_score_histogram: str = None
conformer_rmsd_histogram: str = None
rotatable_bond_graph: str = None
__init__(ligand_rotatable_bonds_diagram: str = None, conformer_energy_histogram: str = None, conformer_score_histogram: str = None, conformer_rmsd_histogram: str = None, rotatable_bond_graph: str = None) None
class schrodinger.application.glide.docking_report.EmodelEnergyHistograms(emodel_histogram: str, energy_histogram: str)

Bases: object

emodel_histogram: str
energy_histogram: str
__init__(emodel_histogram: str, energy_histogram: str) None
class schrodinger.application.glide.docking_report.PDMData(properties: dict)

Bases: object

properties: dict
__init__(properties: dict) None
class schrodinger.application.glide.docking_report.LigandData(title: str, ligand_diagram: str, pose_data: list[PoseData] = None, conformer_data: ConformerData = None, funnel_rmsd_graph: str = None, rough_docking_histogram: str = None, refinement_histogram: str = None, minimized_data: EmodelEnergyHistograms = None, sampling_data: EmodelEnergyHistograms = None, interaction_diagram: str = None, pdm_data: list[PDMData] = None, skip_reason: str = None, skip_message: str = None)

Bases: object

title: str
ligand_diagram: str
pose_data: list[PoseData] = None
conformer_data: ConformerData = None
funnel_rmsd_graph: str = None
rough_docking_histogram: str = None
refinement_histogram: str = None
minimized_data: EmodelEnergyHistograms = None
sampling_data: EmodelEnergyHistograms = None
interaction_diagram: str = None
pdm_data: list[PDMData] = None
skip_reason: str = None
skip_message: str = None
__init__(title: str, ligand_diagram: str, pose_data: list[PoseData] = None, conformer_data: ConformerData = None, funnel_rmsd_graph: str = None, rough_docking_histogram: str = None, refinement_histogram: str = None, minimized_data: EmodelEnergyHistograms = None, sampling_data: EmodelEnergyHistograms = None, interaction_diagram: str = None, pdm_data: list[PDMData] = None, skip_reason: str = None, skip_message: str = None) None
schrodinger.application.glide.docking_report.get_pdb_string(st: Structure) str

Write out the structure as a pdb file and then read it back in as a string. The string representation is used by 3Dmol.js to render the structure.

Returns:

Stringified PDB format of the structure

schrodinger.application.glide.docking_report.format_no_negative_zero(value)

Formats a float to 2 decimals, avoiding negative zero.

schrodinger.application.glide.docking_report.get_report_template(template_name: str)

Find and return the template with the name under glide data files.

Returns:

Jinja2 loaded template.

Return type:

jinja2.Template

schrodinger.application.glide.docking_report.terms_as_dict(terms: ScoreTerms) dict

Convert the score terms to a dictionary.

schrodinger.application.glide.docking_report.get_pose_data(poses: list[Pose], output_sts: list[Structure], job_data: JobData) list[PoseData]

Gets the pose data for all output poses for the ligand if the job completed successfully. Re-computes the scoring terms.

schrodinger.application.glide.docking_report.get_rotatable_bond_data(template: ConformerTemplate) tuple[list[list[float]], list[tuple[int]], tuple[float]]

Get rotatable bond data like energies, atoms and energy range to create torsion profiles.

Returns:

A tuple of list of rotatable bond energies for each rotatable bond, pairs of atoms defining each rotatable bond, and the y_limit.

schrodinger.application.glide.docking_report.get_conformer_data(ligand: Ligand, conf_ens: ConformerEnsemble | None, config: Config) ConformerData | None

Gets the conformer data for the ligand if conformers were successfully created. Highlights rotatable bonds and aggregates the data to create histograms.

Returns None when the ligand was skipped before or during confgen.

schrodinger.application.glide.docking_report.get_funnel_rmsd_graph(lig_st: Structure, data: FunnelData, config: Config)

Gets the funnel RMSD graph for the ligand and its intermediate structures for any stages that were successfully complete with data. Uses the median and minimum RMSD from each successful stage.

Returns:

HTML encoded string. The graph itself is an svg.

Return type:

str

schrodinger.application.glide.docking_report.get_rough_docking_data(lig_st: Structure, rough_pose_ens: RoughPoseEnsemble, lcd: LigandConstraintData, config: Config)

Gets the RMSD and Score joint plot or a simple histogram of the Scores for the rough poses.

Returns:

HTML encoded string if a graph is created. The graph is an svg. If no graph can be created, it will be a simple string message.

Return type:

str

schrodinger.application.glide.docking_report.get_refinement_data(lig_st: Structure, pose_ens: RefinedPoseEnsemble, config: Config)
schrodinger.application.glide.docking_report.get_emodel_and_energy_histograms(lig_st: Structure, pose_ens: RefinedPoseEnsemble, stage: str, config: Config)
schrodinger.application.glide.docking_report.get_lig_interaction_diagram(lig: Structure, recep: Structure)

Wrapper around generate_lid_as_html.

Throw RuntimeError:

If a qapplication instance is not created.

Returns:

HTML encoded string. The diagram itself is an svg.

Return type:

str

schrodinger.application.glide.docking_report.get_pdm_data(sts: list[Structure])

Get the post docking minimization data to create a property table in the docking report.

Returns:

List of PDMData objects that contain all the st properties.

Return type:

list[PDMData]

schrodinger.application.glide.docking_report.get_base64_encoded_image(image_path: str)

Base64 encode an image so that it can be embeded directly into the html.

Parameters:

image_path – Path to image.

Returns:

Base64 encoded string with the full URI prefix.

Return type:

str

schrodinger.application.glide.docking_report.write_report(job_data: JobData, funnel_data: list[FunnelData])

Render a jinja2 template as a docking report with data from all stages in the docking funnel.

Parameters:
  • job_data – Data related to the entire docking job.

  • funnel_data – All funnel data for each ligand in the docking job.