OpenStructure
|
Inherits LigandScorer.
:class:`LigandScorer` implementing lDDT-PLI. lDDT-PLI is an lDDT score considering contacts between ligand and receptor. Where receptor consists of protein and nucleic acid chains that pass the criteria for :class:`chain mapping <ost.mol.alg.chain_mapping>`. This means ignoring other ligands, waters, short polymers as well as any incorrectly connected chains that may be in proximity. :class:`LDDTPLIScorer` computes a score for a specific pair of target/model ligands. Given a target/model ligand pair, all possible mappings of model chains onto their chemically equivalent target chains are enumerated. For each of these enumerations, all possible symmetries, i.e. atom-atom assignments of the ligand as given by :class:`LigandScorer`, are evaluated and an lDDT-PLI score is computed. The best possible lDDT-PLI score is returned. By default, classic lDDT is computed. That means, contacts within *lddt_pli_radius* are identified in the target and checked if they're conserved in the model. Added contacts are not penalized. That means if the ligand is nicely placed in the correct pocket, but that pocket now suddenly interacts with MORE residues in the model, you still get a high score. You can penalize for these added contacts with the *add_mdl_contacts* flag. This additionally considers contacts within *lddt_pli_radius* in the model but only if the involved atoms can be mapped to the target. This is a requirement to 1) extract the respective reference distance from the target 2) avoid usage of contacts for which we have no experimental evidence. One special case are contacts from chains that are NOT mapped to the target binding site. It is very well possible that we have experimental evidence for this chain though its just too far away from the target binding site. We therefore try to map these contacts to the chain in the target with equivalent sequence that is closest to the target binding site. If the respective atoms can be mapped there, the contact is considered not fulfilled and added as penalty. Populates :attr:`LigandScorer.aux_data` with following :class:`dict` keys: * lddt_pli: The score * lddt_pli_n_contacts: Number of contacts considered in lDDT computation * target_ligand: The actual target ligand for which the score was computed * model_ligand: The actual model ligand for which the score was computed * bs_ref_res: :class:`set` of residues with potentially non-zero contribution to score. That is every residue with at least one atom within *lddt_pli_radius* + max(*lddt_pli_thresholds*) of the ligand. * bs_mdl_res: Same for model :param model: Passed to parent constructor - see :class:`LigandScorer`. :type model: :class:`ost.mol.EntityHandle`/:class:`ost.mol.EntityView` :param target: Passed to parent constructor - see :class:`LigandScorer`. :type target: :class:`ost.mol.EntityHandle`/:class:`ost.mol.EntityView` :param model_ligands: Passed to parent constructor - see :class:`LigandScorer`. :type model_ligands: :class:`list` :param target_ligands: Passed to parent constructor - see :class:`LigandScorer`. :type target_ligands: :class:`list` :param resnum_alignments: Passed to parent constructor - see :class:`LigandScorer`. :type resnum_alignments: :class:`bool` :param rename_ligand_chain: Passed to parent constructor - see :class:`LigandScorer`. :type rename_ligand_chain: :class:`bool` :param substructure_match: Passed to parent constructor - see :class:`LigandScorer`. :type substructure_match: :class:`bool` :param coverage_delta: Passed to parent constructor - see :class:`LigandScorer`. :type coverage_delta: :class:`float` :param max_symmetries: Passed to parent constructor - see :class:`LigandScorer`. :type max_symmetries: :class:`int` :param lddt_pli_radius: lDDT inclusion radius for lDDT-PLI. :type lddt_pli_radius: :class:`float` :param add_mdl_contacts: Whether to add mdl contacts. :type add_mdl_contacts: :class:`bool` :param lddt_pli_thresholds: Distance difference thresholds for lDDT. :type lddt_pli_thresholds: :class:`list` of :class:`float` :param lddt_pli_binding_site_radius: Pro param - dont use. Providing a value Restores behaviour from previous implementation that first extracted a binding site with strict distance threshold and computed lDDT-PLI only on those target residues whereas the current implementation includes every atom within *lddt_pli_radius*. :type lddt_pli_binding_site_radius: :class:`float`
Definition at line 12 of file ligand_scoring_lddtpli.py.
def __init__ | ( | self, | |
model, | |||
target, | |||
model_ligands = None , |
|||
target_ligands = None , |
|||
resnum_alignments = False , |
|||
rename_ligand_chain = False , |
|||
substructure_match = False , |
|||
coverage_delta = 0.2 , |
|||
max_symmetries = 1e5 , |
|||
lddt_pli_radius = 6.0 , |
|||
add_mdl_contacts = False , |
|||
lddt_pli_thresholds = [0.5, 1.0, 2.0, 4.0] , |
|||
lddt_pli_binding_site_radius = None |
|||
) |
Definition at line 102 of file ligand_scoring_lddtpli.py.
add_mdl_contacts |
Definition at line 119 of file ligand_scoring_lddtpli.py.
lddt_pli_binding_site_radius |
Definition at line 121 of file ligand_scoring_lddtpli.py.
lddt_pli_radius |
Definition at line 118 of file ligand_scoring_lddtpli.py.
lddt_pli_thresholds |
Definition at line 120 of file ligand_scoring_lddtpli.py.