schrodinger.application.livedesign.ld_glide_utils module¶
LiveDesign Glide protocol utils
Copyright Schrodinger, LLC. All rights reserved.
- schrodinger.application.livedesign.ld_glide_utils.write_result_row(st: structure.Structure, lig_file: str, prot_file: str, status: str, lid_file: str, show_strain: bool, is_reflig: bool) dict[str, str] ¶
Write a result row
- Parameters
st – Ligand structure for properties
lig_file – Ligand MAE file
prot_file – Protein MAE file
status – Status string
lid_file – LID PNG/SVG file
show_strain – Whether to show the docking strain
is_reflig – Whether the input is a reference ligand
- Returns
A dict of the result row
- schrodinger.application.livedesign.ld_glide_utils.parse_glide_results(glide_outfile: str, glide_keywords: schrodinger.application.glide.glide.Dock, poses_per_ligand: int, ref_st_file: str, remaining_corp_ids: set, show_reflig: bool, backend: schrodinger.job.jobcontrol._Backend, sch_ver: str) tuple[list[dict[str, str]], set] ¶
Parse the Glide PV structure file, extract the desired properties and create a Maestro file and LID for each ligand
- Parameters
glide_outfile – Filename of the Glide PV structure file
glide_keywords – All Glide keywords
poses_per_ligand – Number of poses to keep per ligand title
ref_st_file – File containing a reference structure
remaining_corp_ids – Set of corporate IDs after LigPrep/LigFilter stages
show_reflig – Include the reference ligand in the results
backend – the _Backend object of Jobcontrol
sch_ver – Schrodinger suite version
- Returns
List of dictionaries containing the results for each input ligand and a set of compound IDs that failed the Glide stage
- schrodinger.application.livedesign.ld_glide_utils.filter_glide_results(glide_pv_file: str, dedup_pv_file: str, poses_per_ligand: int) None ¶
Run glide_blocksort on the input PV file and sort/filter based on the number of poses to keep for each title
- Parameters
glide_pv_file – Maestro PV file
dedup_pv_file – Maestro PV file that has been filtered
poses_per_ligand – Number of poses to keep per ligand title
- schrodinger.application.livedesign.ld_glide_utils.get_optimal_atom_mapping(smarts: str, ref_st: structure.Structure, lig_st: structure.Structure) tuple[list[int], list[int]] ¶
For a SMARTS for a substructure that is common to two structures, return atom mapping for a common match between the structures.
SMARTS patterns can return multiple matches for a given structure and relying on the first SMARTS match can result in incorrect atom mappings between a ligand and reference. This in turn, can given rise to incorrect LIDs. The function identifies the optimal mapping between the reference and ligand atoms that match the SMARTS pattern by identifying the mapping that has the lowest RMSD
- Parameters
smarts – RDKit SMARTS string
ref_st – Reference structure
lig_st – Ligand structure
- Returns
List of atom indices for the ligand and reference structure in their optimal order for mapping
- schrodinger.application.livedesign.ld_glide_utils.create_implicit_smarts(glide_smarts: str) str ¶
The implicit SMARTS are need to generate the optimal heavy-atom mapping between the ligand and reference molecules in order to create an aligned LID. Using the SMARTS pattern from the docking, create a RDKit RWMol, remove all hyrdogens and generate am implicit, heavy-atom only SMARTS.
- Parameters
glide_smarts – SMARTS pattern from Glide
- Returns
Implicit SMARTS string for the Glide substructure
- schrodinger.application.livedesign.ld_glide_utils.create_lid(rec_st: schrodinger.structure._structure.Structure, lig_st: schrodinger.structure._structure.Structure, glide_keywords: schrodinger.application.glide.glide.Dock, ref_st: schrodinger.structure._structure.Structure) PyQt6.QtGui.QImage ¶
Create a LID for each docking pose. If specified, use the reference structure to align the LID using the alignment settings from Glide
- Parameters
rec_st – Receptor structure
lig_st – Docked pose
glide_keywords – All Glide keywords
ref_st – Reference structure
- Returns
LID image