diff --git a/modules/doc/actions.rst b/modules/doc/actions.rst index 81813ef34e8c25076fda96bc0e45ee5d13f91a61..fb2f882d86d64700652cdf26921ecbd133ec277a 100644 --- a/modules/doc/actions.rst +++ b/modules/doc/actions.rst @@ -44,8 +44,10 @@ The output file has following format: "<MODEL NAME>": { # Model name extracted from the file name "<REFERENCE NAME>": { # Reference name extracted from the file name "info": { - "residue_names_consistent": <Are the residue numbers consistent? true or false>, - "mapping": <Mapping of chains eg. {"A": "B", "B": "A"}>, + "residue_names_consistent": <Are the residue numbers consistent? true or false>, + "mapping": { + "chain_mapping": <Mapping of chains eg. {"A": "B", "B": "A"}>, + "chain_mapping_scheme": <Scheme used to get mapping, check mapping manually if "permissive" or "extensive">, "alignments": <list of chain-chain alignments in FASTA format> } }, @@ -72,10 +74,10 @@ The output file has following format: "per_residue_scores": [ # per-residue lDDT scores - calculated when --save-per-residue-scores (-spr) option is selected { "total_contacts": <total number of contacts between model and reference>, - "residue_name": <three letter code of the residue>, + "residue_name": <three letter code of the residue in reference chain>, "lddt": <residue lDDT score>, "conserved_contacts": <number of conserved contacts between model and reference for given residue>, - "residue_number": <total number of contacts between model and reference for given residue> + "residue_number": <residue number in reference chain> }, . . @@ -164,51 +166,57 @@ Example usage: ################################################################################ Performing structural checks --> for reference(s) - Checking + Checking reference.pdb Checking stereo-chemistry - Average Z-Score for bond lengths: -nan - Bonds outside of tolerance range: 0 out of 0 + Average Z-Score for bond lengths: 0.13694 + Bonds outside of tolerance range: 0 out of 2654 Bond Avg Length Avg zscore Num Bonds - Average Z-Score angle widths: 0.00000 - Angles outside of tolerance range: 0 out of 1 + C-C 1.50876 0.09299 1501 + C-N 1.42978 0.17690 635 + C-O 1.25079 0.21528 518 + Average Z-Score angle widths: 0.07562 + Angles outside of tolerance range: 0 out of 2941 Filtering non-bonded clashes 0 non-bonded short-range distances shorter than tolerance distance Distances shorter than tolerance are on average shorter by: 0.00000 --> for model(s) - Checking + Checking model.pdb Checking stereo-chemistry - Average Z-Score for bond lengths: -nan - Bonds outside of tolerance range: 0 out of 0 + Average Z-Score for bond lengths: -0.22524 + Bonds outside of tolerance range: 0 out of 2774 Bond Avg Length Avg zscore Num Bonds - Average Z-Score angle widths: 0.00000 - Angles outside of tolerance range: 0 out of 1 + C-C 1.50225 -0.20158 1558 + C-N 1.42294 -0.12261 666 + C-O 1.24232 -0.42115 546 + C-S 1.80215 0.20858 4 + Average Z-Score angle widths: -0.06767 + Angles outside of tolerance range: 0 out of 3079 Filtering non-bonded clashes 0 non-bonded short-range distances shorter than tolerance distance Distances shorter than tolerance are on average shorter by: 0.00000 ################################################################################ - Comparing to - Chains removed from : _ - Chains in : AB - Chains in : AB - Chemically equivalent chain-groups in pdb_1: [['B', 'A']] - Chemically equivalent chain-groups in pdb_2: [['A', 'B']] + Comparing model.pdb to reference.pdb + Chains in reference.pdb: AB + Chains in model.pdb: AB + Chemically equivalent chain-groups in reference.pdb: [['B', 'A']] + Chemically equivalent chain-groups in model.pdb: [['A', 'B']] Chemical chain-groups mapping: {('B', 'A'): ('A', 'B')} Identifying Symmetry Groups... - Symmetry threshold 0.1 used for angles of pdb_1 - Symmetry threshold 0.1 used for axis of pdb_1 - Symmetry threshold 0.1 used for angles of pdb_2 - Symmetry threshold 0.1 used for axis of pdb_2 + Symmetry threshold 0.1 used for angles of reference.pdb + Symmetry threshold 0.1 used for axis of reference.pdb + Symmetry threshold 0.1 used for angles of model.pdb + Symmetry threshold 0.1 used for axis of model.pdb Selecting Symmetry Groups... - Symmetry-groups used in pdb_1: [('B',), ('A',)] - Symmetry-groups used in pdb_2: [('A',), ('B',)] + Symmetry-groups used in reference.pdb: [('B',), ('A',)] + Symmetry-groups used in model.pdb: [('A',), ('B',)] Closed Symmetry with strict parameters Mapping found: {'A': 'B', 'B': 'A'} -------------------------------------------------------------------------------- - Checking consistency between and + Checking consistency between model.pdb and reference.pdb Consistency check: OK -------------------------------------------------------------------------------- Computing QS-score - QSscore pdb_1, pdb_2: best: 0.90, global: 0.90 + QSscore reference.pdb, model.pdb: best: 0.90, global: 0.90 -------------------------------------------------------------------------------- Computing lDDT scores lDDT settings: @@ -226,8 +234,8 @@ Example usage: Global LDDT score: 0.7854 (904568 conserved distances out of 1151664 checked, over 4 thresholds) --> Computing oligomeric lDDT score - Reference pdb_1 has: 2 chains - Model pdb_2 has: 2 chains + Reference reference.pdb has: 2 chains + Model model.pdb has: 2 chains Coverage: 1 (384 out of 384 residues) Oligo lDDT score: 0.8025 --> Computing weighted lDDT score @@ -251,8 +259,8 @@ In the example above the output file looks as follows: "chain_mapping": { "A": "B", "B": "A" - }, - "chain_mapping_scheme": "strict", + }, + "chain_mapping_scheme": "strict", "alignments": [ ">reference:A\n-PGLFLTLEGLDGSGKTTQARRLAAFLEAQGRPVLLTREPGGGLPEVRSL---QELSPEAEYLLFSADRAEHVRKVILPGLAAGKVVISDRYLDSSLAYQGYGRGLPLPWLREVAREATRGLKPRLTFLLDLPPEAALRRVR-------LGLEFFRRVREGYLALARAEPGRFVVLDATLPEEEIARAIQAHLRPLLP\n>model:B\nMPGLFLTLEGLDGSGKTTQARRLAAFLEAQGRPVLLTREPGGGLPEVRSLLLTQELSPEAEYLLFSADRAEHVRKVILPGLAAGKVVISDRYLDSSLAYQGYGRGLPLPWLREVAREATRGLKPRLTFLLDLPPEAALRRVRRPDRLEGLGLEFFRRVREGYLALARAEPGRFVVLDATLPEEEIARAIQAHLRPLLP", ">reference:B\n-PGLFLTLEGLDGSGKTTQARRLAAFLEAQGRPVLLTREPGGGLPEVRSLLLTQELSPEAEYLLFSADRAEHVRKVILPGLAAGKVVISDRYLDSSLAYQGYGRGLPLPWLREVAREATRGLKPRLTFLLDLPPEAALRRVRRPDRLEGLGLEFFRRVREGYLALARAEPGRFVVLDATLPEEEIARAIQAHLRPLLP\n>model:A\nMPGLFLTLEGLDGSGKTTQARRLAAFLEAQGRPVLLTREPGGGLPEVRSLLLTQELSPEAEYLLFSADRAEHVRKVILPGLAAGKVVISDRYLDSSLAYQGYGRGLPLPWLREVAREATRGLKPRLTFLLDLPPEAALRRVRRPDRLEGLGLEFFRRVREGYLALARAEPGRFVVLDATLPEEEIARAIQAHLRPLLP" @@ -262,7 +270,7 @@ In the example above the output file looks as follows: "lddt": { "oligo_lddt": { "status": "SUCCESS", - "global_score": 0.8025223016738892, + "global_score": 0.8025223275721413, "error": "" }, "weighted_lddt": { @@ -312,6 +320,7 @@ In the example above the output file looks as follows: "save_per_residue_scores": false, "fault_tolerant": false, "reference_selection": "", + "qs_rmsd": false, "cwd": "CWD", "inclusion_radius": 15.0, "angle_tolerance": 15.0, diff --git a/modules/mol/alg/pymod/qsscoring.py b/modules/mol/alg/pymod/qsscoring.py index b67746f6f2f2b8357288a607023277e008116601..228fbb43208b9fee2b1b763275636e6a64849945 100644 --- a/modules/mol/alg/pymod/qsscoring.py +++ b/modules/mol/alg/pymod/qsscoring.py @@ -208,9 +208,8 @@ class QSscorer: :attr:`qs_ent_1` and value = :class:`tuple` of chain names in :attr:`qs_ent_2`. - :raises: :class:`QSscoreError` if we end up having less than 2 chains for - either entity in the mapping (can happen if chains do not have CA - atoms). + :raises: :class:`QSscoreError` if we end up having no chains for either + entity in the mapping (can happen if chains do not have CA atoms). """ if self._chem_mapping is None: self._chem_mapping = _GetChemGroupsMapping(self.qs_ent_1, self.qs_ent_2) @@ -389,8 +388,7 @@ class QSscorer: :getter: Computed with :attr:`chain_mapping` on first use (cached) :type: :class:`str` - :raises: :class:`QSscoreError` if there are too many combinations to check - to find a chain mapping. + :raises: :class:`QSscoreError` as in :attr:`chain_mapping`. """ if self._chain_mapping_scheme is None: # default: user provided @@ -455,6 +453,7 @@ class QSscorer: :getter: Computed on first use (cached) :type: :class:`float` + :raises: :class:`QSscoreError` if only one chain is mapped """ if self._global_score is None: self._ComputeScores() @@ -470,6 +469,7 @@ class QSscorer: :getter: Computed on first use (cached) :type: :class:`float` + :raises: :class:`QSscoreError` if only one chain is mapped """ if self._best_score is None: self._ComputeScores() @@ -1339,7 +1339,7 @@ class MappedLDDTScorer(object): existing in model and reference: - "residue_number": Residue number in reference chain - - "residue_name": Residue number in reference chain + - "residue_name": Residue name in reference chain - "lddt": local lDDT - "conserved_contacts": number of conserved contacts - "total_contacts": total number of contacts