OpenStructure
|
Data Fields | |
resnum_alignments | |
cad_score_exec | |
usalign_exec | |
lddt_no_stereochecks | |
n_max_naive | |
oum | |
min_pep_length | |
min_nuc_length | |
Helper class to access the various scores available from ost.mol.alg Deals with structure cleanup, chain mapping, interface identification etc. Intermediate results are available as attributes. :param model: Model structure - a deep copy is available as :attr:`model`. Additionally, :func:`ost.mol.alg.Molck` using *molck_settings* is applied. :type model: :class:`ost.mol.EntityHandle`/:class:`ost.mol.EntityView` :param target: Target structure - a deep copy is available as :attr:`target`. Additionally, :func:`ost.mol.alg.Molck` using *molck_settings* is applied. :type target: :class:`ost.mol.EntityHandle`/:class:`ost.mol.EntityView` :param resnum_alignments: Whether alignments between chemically equivalent chains in *model* and *target* can be computed based on residue numbers. This can be assumed in benchmarking setups such as CAMEO/CASP. :type resnum_alignments: :class:`bool` :param molck_settings: Settings used for Molck on *model* and *target*, if set to None, a default object is constructed by setting everything except rm_zero_occ_atoms and colored to True in :class:`ost.mol.alg.MolckSettings` constructor. :type molck_settings: :class:`ost.mol.alg.MolckSettings` :param cad_score_exec: Explicit path to voronota-cadscore executable from voronota installation from https://github.com/kliment-olechnovic/voronota. If not given, voronota-cadscore must be in PATH if any of the CAD score related attributes is requested. :type cad_score_exec: :class:`str` :param custom_mapping: Provide custom chain mapping between *model* and *target*. Dictionary with target chain names as key and model chain names as value. :type custom_mapping: :class:`dict` :param usalign_exec: Explicit path to USalign executable used to compute TM-score. If not given, TM-score will be computed with OpenStructure internal copy of USalign code. :type usalign_exec: :class:`str` :param lddt_no_stereochecks: Whether to compute lDDT without stereochemistry checks :type lddt_no_stereochecks: :class:`bool` :param n_max_naive: Parameter for chain mapping. If the number of possible mappings is <= *n_max_naive*, the full mapping solution space is enumerated to find the the optimum. A heuristic is used otherwise. The default of 40320 corresponds to an octamer (8! = 40320). A structure with stoichiometry A6B2 would be 6!*2! = 1440 etc. :type n_max_naive: :class:`int` :param oum: Override USalign Mapping. Inject mapping of :class:`Scorer` object into USalign to compute TM-score. Experimental feature with limitations. :type oum: :class:`bool` :param min_pep_length: Relevant parameter if short peptides are involved in scoring. Minimum peptide length for a chain in the target structure to be considered in chain mapping. The chain mapping algorithm first performs an all vs. all pairwise sequence alignment to identify \"equal\" chains within the target structure. We go for simple sequence identity there. Short sequences can be problematic as they may produce high sequence identity alignments by pure chance. :type min_pep_length: :class:`int` :param min_nuc_length: Relevant parameter if short nucleotides are involved in scoring. Minimum nucleotide length for a chain in the target structure to be considered in chain mapping. The chain mapping algorithm first performs an all vs. all pairwise sequence alignment to identify \"equal\" chains within the target structure. We go for simple sequence identity there. Short sequences can be problematic as they may produce high sequence identity alignments by pure chance. :type min_nuc_length: :class:`int`
Definition at line 90 of file scoring.py.
def __init__ | ( | self, | |
model, | |||
target, | |||
resnum_alignments = False , |
|||
molck_settings = None , |
|||
cad_score_exec = None , |
|||
custom_mapping = None , |
|||
usalign_exec = None , |
|||
lddt_no_stereochecks = False , |
|||
n_max_naive = 40320 , |
|||
oum = False , |
|||
min_pep_length = 6 , |
|||
min_nuc_length = 4 |
|||
) |
Definition at line 170 of file scoring.py.
def aln | ( | self | ) |
Alignments of :attr:`model`/:attr:`target` chains Alignments for each pair of chains mapped in :attr:`mapping`. First sequence is target sequence, second sequence the model sequence. :type: :class:`list` of :class:`ost.seq.AlignmentHandle`
Definition at line 380 of file scoring.py.
def bb_lddt | ( | self | ) |
Backbone only global lDDT score in range [0.0, 1.0] Computed based on :attr:`~model` on backbone atoms only. This is CA for peptides and C3' for nucleotides. No stereochecks are performed. In case of oligomers, :attr:`~mapping` is used. :type: :class:`float`
Definition at line 638 of file scoring.py.
def bb_lddt_scorer | ( | self | ) |
Backbone only lDDT scorer for :attr:`~target` No stereochecks applied for bb only lDDT which considers CA atoms for peptides and C3' atoms for nucleotides. :type: :class:`ost.mol.alg.lddt.lDDTScorer`
Definition at line 575 of file scoring.py.
def bb_local_lddt | ( | self | ) |
Backbone only per residue lDDT scores in range [0.0, 1.0] Computed based on :attr:`~model` on backbone atoms only. This is CA for peptides and C3' for nucleotides. No stereochecks are performed. If a residue is not covered by the target or is in a chain skipped by the chain mapping procedure (happens for super short chains), the respective score is set to None. In case of oligomers, :attr:`~mapping` is used. :type: :class:`dict`
Definition at line 652 of file scoring.py.
def cad_score | ( | self | ) |
The global CAD atom-atom (AA) score Computed based on :attr:`~model`. In case of oligomers, :attr:`~mapping` is used. :type: :class:`float`
Definition at line 1268 of file scoring.py.
def chain_mapper | ( | self | ) |
Chain mapper object for given :attr:`target` :type: :class:`ost.mol.alg.chain_mapping.ChainMapper`
Definition at line 509 of file scoring.py.
def contact_model_interfaces | ( | self | ) |
Interfaces in :class:`model` which have at least one contact Contact as defined in :attr:`~native_contacts`, chain names are lexicographically sorted. :type: :class:`list` of :class:`tuple` with 2 elements each (mdl_ch1, mdl_ch2)
Definition at line 809 of file scoring.py.
def contact_scorer | ( | self | ) |
Definition at line 601 of file scoring.py.
def contact_target_interfaces | ( | self | ) |
Interfaces in :class:`target` which have at least one contact Contact as defined in :attr:`~native_contacts`, chain names are lexicographically sorted. :type: :class:`list` of :class:`tuple` with 2 elements each (trg_ch1, trg_ch2)
Definition at line 793 of file scoring.py.
def dockq_ave | ( | self | ) |
Average of DockQ scores in :attr:`dockq_scores` In its original implementation, DockQ only operates on single interfaces. Thus the requirement to combine scores for higher order oligomers. :type: :class:`float`
Definition at line 1098 of file scoring.py.
def dockq_ave_full | ( | self | ) |
Same as :attr:`~dockq_ave` but penalizing for missing interfaces Interfaces that are not covered in model are added as 0.0 in average computation. :type: :class:`float`
Definition at line 1122 of file scoring.py.
def dockq_interfaces | ( | self | ) |
Interfaces in :attr:`dockq_target_interfaces` that can be mapped to model Target chain names are lexicographically sorted :type: :class:`list` of :class:`tuple` with 4 elements each: (trg_ch1, trg_ch2, mdl_ch1, mdl_ch2)
Definition at line 994 of file scoring.py.
def dockq_scores | ( | self | ) |
DockQ scores for interfaces in :attr:`~dockq_interfaces` :class:`list` of :class:`float`
Definition at line 1014 of file scoring.py.
def dockq_target_interfaces | ( | self | ) |
Interfaces in :attr:`target` that are relevant for DockQ In principle a subset of :attr:`~contact_target_interfaces` that only contains peptide sequences. Chain names are lexicographically sorted. :type: :class:`list` of :class:`tuple` with 2 elements each: (trg_ch1, trg_ch2)
Definition at line 976 of file scoring.py.
def dockq_wave | ( | self | ) |
Same as :attr:`dockq_ave`, weighted by native contacts :type: :class:`float`
Definition at line 1112 of file scoring.py.
def dockq_wave_full | ( | self | ) |
Same as :attr:`~dockq_ave_full`, but weighted Interfaces that are not covered in model are added as 0.0 in average computations and the respective weights are derived from number of contacts in respective target interface.
Definition at line 1135 of file scoring.py.
def fnat | ( | self | ) |
fnat scores for interfaces in :attr:`~dockq_interfaces` fnat: Fraction of native contacts that are also present in model :class:`list` of :class:`float`
Definition at line 1024 of file scoring.py.
def fnonnat | ( | self | ) |
fnonnat scores for interfaces in :attr:`~dockq_interfaces` fnat: Fraction of model contacts that are not present in target :class:`list` of :class:`float`
Definition at line 1056 of file scoring.py.
def gdtha | ( | self | ) |
GDT with thresholds: 4.0A, 2.0A, 1.0A and 0.5A Computed on :attr:`~transformed_mapped_model_pos` and :attr:`mapped_target_pos` :type: :class:`float`
Definition at line 1234 of file scoring.py.
def gdtts | ( | self | ) |
GDT with thresholds: 8.0A, 4.0A, 2.0A and 1.0A Computed on :attr:`~transformed_mapped_model_pos` and :attr:`mapped_target_pos` :type: :class:`float`
Definition at line 1214 of file scoring.py.
def ics | ( | self | ) |
ICS (Interface Contact Similarity) score Combination of :attr:`~ics_precision` and :attr:`~ics_recall` using the F1-measure :type: :class:`float`
Definition at line 845 of file scoring.py.
def ics_precision | ( | self | ) |
Fraction of model contacts that are also present in target :type: :class:`float`
Definition at line 825 of file scoring.py.
def ics_recall | ( | self | ) |
Fraction of target contacts that are correctly reproduced in model :type: :class:`float`
Definition at line 835 of file scoring.py.
def ips | ( | self | ) |
IPS (Interface Patch Similarity) score Jaccard coefficient of interface residues in target and their mapped counterparts in model :type: :class:`float`
Definition at line 922 of file scoring.py.
def ips_precision | ( | self | ) |
Fraction of model interface residues that are also interface residues in target :type: :class:`float`
Definition at line 900 of file scoring.py.
def ips_recall | ( | self | ) |
Fraction of target interface residues that are also interface residues in model :type: :class:`float`
Definition at line 911 of file scoring.py.
def irmsd | ( | self | ) |
irmsd scores for interfaces in :attr:`~dockq_interfaces` irmsd: RMSD of interface (RMSD computed on N, CA, C, O atoms) which consists of each residue that has at least one heavy atom within 10A of other chain. :class:`list` of :class:`float`
Definition at line 1068 of file scoring.py.
def lddt | ( | self | ) |
Global lDDT score in range [0.0, 1.0] Computed based on :attr:`~stereochecked_model`. In case of oligomers, :attr:`~mapping` is used. :type: :class:`float`
Definition at line 608 of file scoring.py.
def lddt_scorer | ( | self | ) |
lDDT scorer for :attr:`~stereochecked_target` (default parameters) :type: :class:`ost.mol.alg.lddt.lDDTScorer`
Definition at line 562 of file scoring.py.
def local_cad_score | ( | self | ) |
The per-residue CAD atom-atom (AA) scores Computed based on :attr:`~model`. In case of oligomers, :attr:`~mapping` is used. :type: :class:`dict`
Definition at line 1281 of file scoring.py.
def local_lddt | ( | self | ) |
Per residue lDDT scores in range [0.0, 1.0] Computed based on :attr:`~stereochecked_model` but scores for all residues in :attr:`~model` are reported. If a residue has been removed by stereochemistry checks, the respective score is set to 0.0. If a residue is not covered by the target or is in a chain skipped by the chain mapping procedure (happens for super short chains), the respective score is set to None. In case of oligomers, :attr:`~mapping` is used. :type: :class:`dict`
Definition at line 621 of file scoring.py.
def lrmsd | ( | self | ) |
lrmsd scores for interfaces in :attr:`~dockq_interfaces` lrmsd: The interfaces are superposed based on the receptor (rigid min RMSD superposition) and RMSD for the ligand is reported. Superposition and RMSD are based on N, CA, C and O positions, receptor is the chain contributing to the interface with more residues in total. :class:`list` of :class:`float`
Definition at line 1082 of file scoring.py.
def mapped_model_pos | ( | self | ) |
Mapped representative positions in model Thats CA positions for peptide residues and C3' positions for nucleotides. Has same length as :attr:`~mapped_target_pos` and mapping is based on :attr:`~mapping`. :type: :class:`ost.geom.Vec3List`
Definition at line 1161 of file scoring.py.
def mapped_target_pos | ( | self | ) |
Mapped representative positions in target Thats CA positions for peptide residues and C3' positions for nucleotides. Has same length as :attr:`~mapped_model_pos` and mapping is based on :attr:`~mapping`. :type: :class:`ost.geom.Vec3List`
Definition at line 1147 of file scoring.py.
def mapping | ( | self | ) |
Full chain mapping result for :attr:`target`/:attr:`model` :type: :class:`ost.mol.alg.chain_mapping.MappingResult`
Definition at line 523 of file scoring.py.
def model | ( | self | ) |
Model with Molck cleanup :type: :class:`ost.mol.EntityHandle`
Definition at line 348 of file scoring.py.
def model_bad_angles | ( | self | ) |
Model angles with unexpected stereochemistry :type: :class:`list` of :class:`ost.mol.alg.stereochemistry.AngleViolationInfo`
Definition at line 456 of file scoring.py.
def model_bad_bonds | ( | self | ) |
Model bonds with unexpected stereochemistry :type: :class:`list` of :class:`ost.mol.alg.stereochemistry.BondViolationInfo`
Definition at line 445 of file scoring.py.
def model_clashes | ( | self | ) |
Clashing model atoms :type: :class:`list` of :class:`ost.mol.alg.stereochemistry.ClashInfo`
Definition at line 435 of file scoring.py.
def model_contacts | ( | self | ) |
Same for model
Definition at line 785 of file scoring.py.
def model_interface_residues | ( | self | ) |
Interface residues in :attr:`~model` Thats all residues having a contact with at least one residue from another chain (CB-CB distance <= 8A, CA in case of Glycine) :type: :class:`dict` with chain names as key and and :class:`list` with residue numbers of the respective interface residues.
Definition at line 535 of file scoring.py.
def model_orig | ( | self | ) |
The original model passed at object construction :type: :class:`ost.mol.EntityHandle`/:class:`ost.mol.EntityView`
Definition at line 356 of file scoring.py.
def n_target_not_mapped | ( | self | ) |
Number of target residues which have no mapping to model :type: :class:`int`
Definition at line 1187 of file scoring.py.
def native_contacts | ( | self | ) |
Native contacts A contact is a pair or residues from distinct chains that have a minimal heavy atom distance < 5A. Contacts are specified as :class:`tuple` with two strings in format: <cname>.<rnum>.<ins_code> :type: :class:`list` of :class:`tuple`
Definition at line 770 of file scoring.py.
def nmdl | ( | self | ) |
N model contacts for interfaces in :attr:`~dockq_interfaces` :class:`list` of :class:`int`
Definition at line 1046 of file scoring.py.
def nnat | ( | self | ) |
N native contacts for interfaces in :attr:`~dockq_interfaces` :class:`list` of :class:`int`
Definition at line 1036 of file scoring.py.
def patch_dockq | ( | self | ) |
Same as :attr:`patch_qs` but for DockQ scores
Definition at line 1326 of file scoring.py.
def patch_qs | ( | self | ) |
Patch QS-scores for each residue in :attr:`model_interface_residues` Representative patches for each residue r in chain c are computed as follows: * mdl_patch_one: All residues in c with CB (CA for GLY) positions within 8A of r and within 12A of residues from any other chain. * mdl_patch_two: Closest residue x to r in any other chain gets identified. Patch is then constructed by selecting all residues from any other chain within 8A of x and within 12A from any residue in c. * trg_patch_one: Chain name and residue number based mapping from mdl_patch_one * trg_patch_two: Chain name and residue number based mapping from mdl_patch_two Results are stored in the same manner as :attr:`model_interface_residues`, with corresponding scores instead of residue numbers. Scores for residues which are not :class:`mol.ChemType.AMINOACIDS` are set to None. Additionally, interface patches are derived from :attr:`model`. If they contain residues which are not covered by :attr:`target`, the score is set to None too. :type: :class:`dict` with chain names as key and and :class:`list` with scores of the respective interface residues.
Definition at line 1294 of file scoring.py.
def pepnuc_aln | ( | self | ) |
Alignments of :attr:`model_orig`/:attr:`target_orig` chains Selects for peptide and nucleotide residues before sequence extraction. Includes residues that would be removed by molck in structure preprocessing. :type: :class:`list` of :class:`ost.seq.AlignmentHandle`
Definition at line 405 of file scoring.py.
def per_interface_ics | ( | self | ) |
Per-interface ICS (Interface Contact Similarity) score :attr:`~ics` for each interface in :attr:`~contact_target_interfaces` :type: :class:`float`
Definition at line 885 of file scoring.py.
def per_interface_ics_precision | ( | self | ) |
Per-interface ICS precision :attr:`~ics_precision` for each interface in :attr:`~contact_target_interfaces` :type: :class:`list` of :class:`float`
Definition at line 858 of file scoring.py.
def per_interface_ics_recall | ( | self | ) |
Per-interface ICS recall :attr:`~ics_recall` for each interface in :attr:`~contact_target_interfaces` :type: :class:`list` of :class:`float`
Definition at line 872 of file scoring.py.
def per_interface_ips | ( | self | ) |
Per-interface IPS (Interface Patch Similarity) score :attr:`~ips` for each interface in :attr:`~contact_target_interfaces` :type: :class:`list` of :class:`float`
Definition at line 962 of file scoring.py.
def per_interface_ips_precision | ( | self | ) |
Per-interface IPS precision :attr:`~ips_precision` for each interface in :attr:`~contact_target_interfaces` :type: :class:`list` of :class:`float`
Definition at line 935 of file scoring.py.
def per_interface_ips_recall | ( | self | ) |
Per-interface IPS recall :attr:`~ips_recall` for each interface in :attr:`~contact_target_interfaces` :type: :class:`list` of :class:`float`
Definition at line 949 of file scoring.py.
def per_interface_qs_best | ( | self | ) |
QS-score for each interface in :attr:`qs_interfaces` Only computed on aligned residues :type: :class:`list` of :class:`float`
Definition at line 758 of file scoring.py.
def per_interface_qs_global | ( | self | ) |
QS-score for each interface in :attr:`qs_interfaces` :type: :class:`list` of :class:`float`
Definition at line 748 of file scoring.py.
def qs_best | ( | self | ) |
Global QS-score - only computed on aligned residues Computed based on :attr:`model` using :attr:`mapping`. The QS-score computation only considers contacts between residues with a mapping between target and model. As a result, the score won't be lowered in case of additional chains/residues in any of the structures. :type: :class:`float`
Definition at line 680 of file scoring.py.
def qs_global | ( | self | ) |
Global QS-score Computed based on :attr:`model` using :attr:`mapping` :type: :class:`float`
Definition at line 668 of file scoring.py.
def qs_interfaces | ( | self | ) |
Interfaces in :attr:`~qs_target_interfaces` that can be mapped to :attr:`~model`. Target chain names are lexicographically sorted. :type: :class:`list` of :class:`tuple` with 4 elements each: (trg_ch1, trg_ch2, mdl_ch1, mdl_ch2)
Definition at line 728 of file scoring.py.
def qs_model_interfaces | ( | self | ) |
Interfaces in :attr:`~model` with non-zero contribution to :attr:`~qs_global`/:attr:`~qs_best` Chain names are lexicographically sorted. :type: :class:`list` of :class:`tuple` with 2 elements each: (mdl_ch1, mdl_ch2)
Definition at line 711 of file scoring.py.
def qs_scorer | ( | self | ) |
QS scorer constructed from :attr:`~mapping` The scorer object is constructed with default parameters and relates to :attr:`~model` and :attr:`~target` (no stereochecks). :type: :class:`ost.mol.alg.qsscore.QSScorer`
Definition at line 588 of file scoring.py.
def qs_target_interfaces | ( | self | ) |
Interfaces in :attr:`~target` with non-zero contribution to :attr:`~qs_global`/:attr:`~qs_best` Chain names are lexicographically sorted. :type: :class:`list` of :class:`tuple` with 2 elements each: (trg_ch1, trg_ch2)
Definition at line 695 of file scoring.py.
def rmsd | ( | self | ) |
RMSD Computed on :attr:`~transformed_mapped_model_pos` and :attr:`mapped_target_pos` :type: :class:`float`
Definition at line 1254 of file scoring.py.
def stereochecked_aln | ( | self | ) |
Stereochecked equivalent of :attr:`aln` The alignments may differ, as stereochecks potentially remove residues :type: :class:`list` of :class:`ost.seq.AlignmentHandle`
Definition at line 393 of file scoring.py.
def stereochecked_model | ( | self | ) |
View of :attr:`~model` that has stereochemistry checks applied First, a selection for peptide/nucleotide residues is performed, secondly peptide sidechains with stereochemical irregularities are removed (full residue if backbone atoms are involved). Irregularities are clashes or bond lengths/angles more than 12 standard deviations from expected values. :type: :class:`ost.mol.EntityView`
Definition at line 419 of file scoring.py.
def stereochecked_target | ( | self | ) |
Same as :attr:`~stereochecked_model` for :attr:`~target` :type: :class:`ost.mol.EntityView`
Definition at line 467 of file scoring.py.
def target | ( | self | ) |
Target with Molck cleanup :type: :class:`ost.mol.EntityHandle`
Definition at line 364 of file scoring.py.
def target_bad_angles | ( | self | ) |
Target angles with unexpected stereochemistry :type: :class:`list` of :class:`ost.mol.alg.stereochemistry.AngleViolationInfo`
Definition at line 498 of file scoring.py.
def target_bad_bonds | ( | self | ) |
Target bonds with unexpected stereochemistry :type: :class:`list` of :class:`ost.mol.alg.stereochemistry.BondViolationInfo`
Definition at line 487 of file scoring.py.
def target_clashes | ( | self | ) |
Clashing target atoms :type: :class:`list` of :class:`ost.mol.alg.stereochemistry.ClashInfo`
Definition at line 477 of file scoring.py.
def target_interface_residues | ( | self | ) |
Same as :attr:`~model_interface_residues` for :attr:`~target` :type: :class:`dict` with chain names as key and and :class:`list` with residue numbers of the respective interface residues.
Definition at line 550 of file scoring.py.
def target_orig | ( | self | ) |
The original target passed at object construction :type: :class:`ost.mol.EntityHandle`/:class:`ost.mol.EntityView`
Definition at line 372 of file scoring.py.
def tm_score | ( | self | ) |
TM-score computed with USalign USalign executable can be specified with usalign_exec kwarg at Scorer construction, an OpenStructure internal copy of the USalign code is used otherwise. :type: :class:`float`
Definition at line 1334 of file scoring.py.
def transform | ( | self | ) |
Transform: :attr:`~mapped_model_pos` onto :attr:`~mapped_target_pos` Computed using Kabsch minimal rmsd algorithm :type: :class:`ost.geom.Mat4`
Definition at line 1197 of file scoring.py.
def transformed_mapped_model_pos | ( | self | ) |
:attr:`~mapped_model_pos` with :attr:`~transform` applied :type: :class:`ost.geom.Vec3List`
Definition at line 1175 of file scoring.py.
def usalign_mapping | ( | self | ) |
Mapping computed with USalign Dictionary with target chain names as key and model chain names as values. No guarantee that all chains are mapped. USalign executable can be specified with usalign_exec kwarg at Scorer construction, an OpenStructure internal copy of the USalign code is used otherwise. :type: :class:`dict`
Definition at line 1348 of file scoring.py.
cad_score_exec |
Definition at line 250 of file scoring.py.
lddt_no_stereochecks |
Definition at line 252 of file scoring.py.
min_nuc_length |
Definition at line 256 of file scoring.py.
min_pep_length |
Definition at line 255 of file scoring.py.
n_max_naive |
Definition at line 253 of file scoring.py.
oum |
Definition at line 254 of file scoring.py.
resnum_alignments |
Definition at line 249 of file scoring.py.
usalign_exec |
Definition at line 251 of file scoring.py.