diff --git a/README.md b/README.md index 7299284..3ebdc2d 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,13 @@ ## Installation -Clone the repository, then install the necessary libraries with `pip`: +With `pip`: + +``` +pip install DockQ +``` + +Or, if you want the latest commit: clone the repository and run `pip` within the repo directory: ``` git clone https://github.com/bjornwallner/DockQ/ @@ -47,33 +53,30 @@ Total DockQ over 3 native interfaces: 0.653 with BAC:ABC model:native mapping Native chains: A, B Model chains: B, A DockQ: 0.994 - irms: 0.000 - Lrms: 0.000 + iRMSD: 0.000 + LRMSD: 0.000 fnat: 0.983 fnonnat: 0.008 - clashes: 0.000 F1: 0.987 - DockQ_F1: 0.996 + clashes: 0 Native chains: A, C Model chains: B, C DockQ: 0.511 - irms: 1.237 - Lrms: 6.864 + iRMSD: 1.237 + LRMSD: 6.864 fnat: 0.333 fnonnat: 0.000 - clashes: 0.000 F1: 0.500 - DockQ_F1: 0.567 + clashes: 0 Native chains: B, C Model chains: A, C DockQ: 0.453 - irms: 2.104 - Lrms: 8.131 + iRMSD: 2.104 + LRMSD: 8.131 fnat: 0.500 fnonnat: 0.107 - clashes: 0.000 - F1: 0.641 - DockQ_F1: 0.500 + F1: 0.641 + clashes: 0 ``` A more compact output option is available with the flag `--short`: @@ -81,10 +84,16 @@ A more compact output option is available with the flag `--short`: ``` $ DockQ examples/1A2K_r_l_b.model.pdb examples/1A2K_r_l_b.pdb --short -DockQ 0.994 DockQ_F1 0.996 Fnat 0.983 iRMS 0.000 LRMS 0.000 Fnonnat 0.008 clashes 0 mapping BA:AB examples/1A2K_r_l_b.model.pdb B A -> examples/1A2K_r_l_b.pdb A B -DockQ 0.511 DockQ_F1 0.567 Fnat 0.333 iRMS 1.237 LRMS 6.864 Fnonnat 0.000 clashes 0 mapping BC:AC examples/1A2K_r_l_b.model.pdb B C -> examples/1A2K_r_l_b.pdb A C -DockQ 0.453 DockQ_F1 0.500 Fnat 0.500 iRMS 2.104 LRMS 8.131 Fnonnat 0.107 clashes 0 mapping AC:BC examples/1A2K_r_l_b.model.pdb A C -> examples/1A2K_r_l_b.pdb B C +Total DockQ over 3 native interfaces: 0.653 with BAC:ABC model:native mapping +DockQ 0.994 iRMSD 0.000 LRMSD 0.000 fnat 0.983 fnonnat 0.008 F1 0.987 clashes 0 mapping BA:AB examples/1A2K_r_l_b.model.pdb B A -> examples/1A2K_r_l_b.pdb A B +DockQ 0.511 iRMSD 1.237 LRMSD 6.864 fnat 0.333 fnonnat 0.000 F1 0.500 clashes 0 mapping BC:AC examples/1A2K_r_l_b.model.pdb B C -> examples/1A2K_r_l_b.pdb A C +DockQ 0.453 iRMSD 2.104 LRMSD 8.131 fnat 0.500 fnonnat 0.107 F1 0.641 clashes 0 mapping AC:BC examples/1A2K_r_l_b.model.pdb A C -> examples/1A2K_r_l_b.pdb B C +``` + +A dictionary containing the complete results data can be dumped in JSON format with the `--json filename.json` flag: +``` +$ DockQ examples/1A2K_r_l_b.model.pdb examples/1A2K_r_l_b.pdb --json filename.json ``` ## Model/Native chain mapping @@ -156,10 +165,10 @@ Small molecules in PDB or mmCIF files can be scored and the mapping optimized in $ DockQ examples/1HHO_hem.cif examples/2HHB_hem.cif --small_molecule --mapping :ABEFG --short Total DockQ-small_molecules over 4 native interfaces: 0.659 with ABDCF:ABEFG model:native mapping -DockQ 0.950 irms 0.455 Lrms 1.451 fnat 0.964 fnonnat 0.070 clashes 0.000 F1 0.946 DockQ_F1 0.945 mapping AB:AB examples/1HHO_hem.cif A B -> examples/2HHB_hem.cif A B -Lrms 0.585 mapping AD:AE (HEM) examples/1HHO_hem.cif A D -> examples/2HHB_hem.cif A E -Lrms 28.096 mapping BC:BF (PO4) examples/1HHO_hem.cif B C -> examples/2HHB_hem.cif B F -Lrms 1.311 mapping BF:BG (HEM) examples/1HHO_hem.cif B F -> examples/2HHB_hem.cif B G +DockQ 0.950 iRMSD 0.455 LRMSD 1.451 fnat 0.964 fnonnat 0.070 clashes 0.000 F1 0.946 DockQ_F1 0.945 mapping AB:AB examples/1HHO_hem.cif A B -> examples/2HHB_hem.cif A B +LRMSD 0.585 mapping AD:AE (HEM) examples/1HHO_hem.cif A D -> examples/2HHB_hem.cif A E +LRMSD 28.096 mapping BC:BF (PO4) examples/1HHO_hem.cif B C -> examples/2HHB_hem.cif B F +LRMSD 1.311 mapping BF:BG (HEM) examples/1HHO_hem.cif B F -> examples/2HHB_hem.cif B G ``` Only LRMSD is reported for small molecules. @@ -170,7 +179,7 @@ Only LRMSD is reported for small molecules. Interfaces involving nucleic acids are seamlessly scored along with protein interfaces. The DockQ score is calculated for protein-NA or NA-NA interfaces in the same way as for protein-protein interfaces (two DockQ scores are reported for double helix chains). -**Other uses** +## Other uses Run DockQ with `-h/--help` to see a list of the available flags: @@ -218,8 +227,8 @@ run_on_all_native_interfaces(model, native, chain_map=chain_map) ({('A', 'B'): {'DockQ_F1': 0.9437927182141027, 'DockQ': 0.9425398964102757, - 'irms': 0.3753064373774967, - 'Lrms': 0.5535111803522507, + 'iRMSD': 0.3753064373774967, + 'LRMSD': 0.5535111803522507, 'fnat': 0.8907563025210085, 'nat_correct': 106, 'nat_total': 119, @@ -241,6 +250,16 @@ run_on_all_native_interfaces(model, native, chain_map=chain_map) See issue [#33](https://github.com/bjornwallner/DockQ/issues/33) if you want to merge multiple chains (e.g. heavy and light antibody chains) into a single receptor or ligand +## Legend of outputs + +* `DockQ`: DockQ score as defined in the [original DockQ paper](https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0161879) +* `iRMSD`: RMSD of interfacial residues +* `LRMSD`: Ligand RMSD +* `fnat`: Fraction of retrieved native contacts (same as Recall or TPR) +* `fnonnat`: Fraction of predicted contacts that are not native (same as FPR) +* `F1`: Harmonic mean of the precision and recall in predicted interfacial contacts +* `clashes`: number of clashing interfacial residues in model (distance between residues below 2Å) + ## Citing DockQ v2 If you use DockQ v2, please cite the preprint: https://doi.org/10.1101/2024.05.28.596225 diff --git a/pyproject.toml b/pyproject.toml index 773d651..6d7818a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,23 +1,23 @@ [build-system] -requires = ["setuptools>=68", "cython", "numpy ~= 1.21",] +requires = ["setuptools>=68", "cython", "numpy < 2.0"] build-backend = "setuptools.build_meta" [project] name = "dockq" -version = "2.1" +version = "2.1.2" authors = [ { name="Claudio Mirabello", email="claudio.mirabello@scilifelab.se" }, { name="Bjorn Wallner", email="bjorn.wallner@liu.se" }, ] description = "A Quality Measure for Protein, Nucleic Acids and Small Ligand Docking Models" readme = "README.md" -requires-python = ">=3.9" +requires-python = ">=3.8" classifiers = [ "Programming Language :: Python :: 3", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ] -dependencies = ["biopython >= 1.79", "networkx", "parallelbar"] +dependencies = ["numpy < 2.0", "biopython >= 1.79", "networkx", "parallelbar"] [project.urls] Homepage = "https://github.com/bjornwallner/DockQ" diff --git a/run_test.sh b/run_test.sh index 047f6df..6ce07d0 100644 --- a/run_test.sh +++ b/run_test.sh @@ -3,10 +3,12 @@ set -euo pipefail rm -f test .coverage +PYTHON=${1:-"python"} + if command -v coverage &> /dev/null; then binary="coverage run --parallel-mode -m DockQ.DockQ " else - binary="DockQ" + binary="$PYTHON -m DockQ.DockQ" fi $binary examples/1A2K_r_l_b.model.pdb examples/1A2K_r_l_b.pdb > test @@ -49,9 +51,11 @@ diff <(grep -v "*" test) <(grep -v "*" testdata/6q2n_peptide.dockq) $binary examples/1HHO_hem.cif examples/2HHB_hem.cif --small_molecule --mapping :ABEFG > test # Test that cython version behaves the same as nocython -python src/DockQ/DockQ.py examples/1A2K_r_l_b.model.pdb examples/1A2K_r_l_b.pdb > test +$PYTHON src/DockQ/DockQ.py examples/1A2K_r_l_b.model.pdb examples/1A2K_r_l_b.pdb > test diff <(grep -v "*" test) <(grep -v "*" testdata/1A2K.dockq) -python src/DockQ/DockQ.py examples/1A2K_r_l_b.model.pdb examples/1A2K_r_l_b.pdb --no_align > test +$PYTHON src/DockQ/DockQ.py examples/1A2K_r_l_b.model.pdb examples/1A2K_r_l_b.pdb --no_align > test diff <(grep -v "*" test) <(grep -v "*" testdata/1A2K.dockq) -coverage combine +if command -v coverage &> /dev/null; then + coverage combine +fi diff --git a/setup.cfg b/setup.cfg index e506d1c..48082e0 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = DockQ -version = 2.1 +version = 2.1.2 [options] package_dir = @@ -10,7 +10,7 @@ install_requires = setuptools cython parallelbar - numpy~=1.21 + numpy<2.0 biopython>=1.79 networkx diff --git a/src/DockQ/DockQ.py b/src/DockQ/DockQ.py index 89dfdb1..de47f54 100755 --- a/src/DockQ/DockQ.py +++ b/src/DockQ/DockQ.py @@ -1,10 +1,12 @@ #!/usr/bin/env python import sys +import json import gzip import math -import warnings +import logging import itertools +import traceback from collections import Counter from argparse import ArgumentParser from functools import lru_cache, partial @@ -20,9 +22,8 @@ from .parsers import PDBParser, MMCIFParser from .constants import * except ImportError: - warnings.warn( - """WARNING: It looks like cython is not working, - falling back on native python. This will make DockQ slower""" + logging.warning( + """Invoking DockQ as script rather than binary. This will slow down computations.""" ) from operations_nocy import residue_distances, get_fnat_stats from parsers import PDBParser, MMCIFParser @@ -53,12 +54,14 @@ def parse_args(): parser.add_argument( "--short", default=False, action="store_true", help="Short output" ) + parser.add_argument( + "--json", default=None, metavar="out.json", help="Write outputs to a chosen json file" + ) parser.add_argument( "--verbose", "-v", default=False, action="store_true", help="Verbose output" ) parser.add_argument( "--no_align", - # default=False, action="store_true", help="Do not align native and model using sequence alignments, but use the numbering of residues instead", ) @@ -76,12 +79,6 @@ def parse_args(): metavar="CHUNK", help="Maximum size of chunks given to the cores, actual chunksize is min(max_chunk,combos/cpus)", ) - parser.add_argument( - "--optDockQF1", - default=False, - action="store_true", - help="Optimize on DockQ_F1 instead of DockQ", - ) parser.add_argument( "--allowed_mismatches", default=0, @@ -255,11 +252,10 @@ def calc_sym_corrected_lrmsd( if lrms < min_lrms: best_mapping = isomorphism min_lrms = lrms - dockq_f1 = dockq = dockq_formula(0, 0, min_lrms) + dockq = dockq_formula(0, 0, min_lrms) info = { - "DockQ_F1": dockq_f1, "DockQ": dockq, - "Lrms": min_lrms, + "LRMSD": min_lrms, "mapping": best_mapping, "is_het": sample_ligand.is_het, } @@ -379,14 +375,13 @@ def calc_DockQ( info = {} F1 = f1(nat_correct, nonnat_count, nat_total) - info["DockQ_F1"] = dockq_formula(F1, irms, lrms) info["DockQ"] = dockq_formula(fnat, irms, lrms) if low_memory: return info info["F1"] = F1 - info["irms"] = irms - info["Lrms"] = lrms + info["iRMSD"] = irms + info["LRMSD"] = lrms info["fnat"] = fnat info["nat_correct"] = nat_correct info["nat_total"] = nat_total @@ -632,7 +627,6 @@ def run_on_all_native_interfaces( no_align=False, capri_peptide=False, low_memory=False, - optDockQF1=False, ): """Given a native-model chain map, finds all non-null native interfaces and runs DockQ for each native-model pair of interfaces""" @@ -667,14 +661,13 @@ def run_on_all_native_interfaces( chain_map[chain_pair[1]], ) info["chain_map"] = chain_map # diagnostics - result_mapping[chain_pair] = info + result_mapping["".join(chain_pair)] = info total_dockq = sum( [ - result["DockQ_F1" if optDockQF1 else "DockQ"] + result["DockQ"] for result in result_mapping.values() ] ) - return result_mapping, total_dockq @@ -717,9 +710,24 @@ def group_chains( chain_clusters = {chain: [] for chain in ref_chains} for query_chain, ref_chain in alignment_targets: - qc = query_structure[query_chain] - rc = ref_structure[ref_chain] - + try: + qc = query_structure[query_chain] + except KeyError: + logging.error(f"""The specified model chain {query_chain} is not found in the PDB structure. +This is possibly due to using the wrong chain identifier in --mapping, +or forgetting to specify --small_molecule if this is a HETATM chain. +If working with mmCIF files, make sure you use the right chain identifier. + """) + print(traceback.format_exc()) + sys.exit(1) + try: + rc = ref_structure[ref_chain] + except KeyError: + logging.error(f"""The specified native chain {ref_chain} is not found in the PDB structure. +This is possibly due to using the wrong chain identifier in --mapping, +or forgetting to specify --small_molecule if this is a HETATM chain. +If working with mmCIF files, make sure you use the right chain identifier. + """) het_qc = qc.is_het het_rc = rc.is_het @@ -740,16 +748,21 @@ def group_chains( chain_clusters[ref_chain].append(query_chain) elif het_qc and het_rc and het_qc == het_rc: chain_clusters[ref_chain].append(query_chain) - chains_without_match = [ chain for chain in chain_clusters if not chain_clusters[chain] ] + if mismatch_dict: + logging.warning(f"""Some chains have a limited number of sequence mismatches and are treated as non-homologous. +Try increasing the --allowed_mismatches for the following: {", ".join(f"Model chain {c[1]}, native chain {c[0]}: {m} mismatches" for c, m in mismatch_dict.items())} +if they should be treated as homologous.""") + if chains_without_match: - print( - f"For these chains {chains_without_match} no match was found between model and native, try increasing the --allowed_mismatches from {allowed_mismatches}" + logging.error( + f"For chains {chains_without_match} no identical corresponding chain was found between in the native." ) - print(f"Current number of alignments with 1-10 mismatches: {mismatch_dict}") + sys.exit(1) + return chain_clusters, reverse_map @@ -763,7 +776,7 @@ def format_mapping(mapping_str, small_molecule=None): model_mapping, native_mapping = mapping_str.split(":") if not native_mapping: - print("When using --mapping, native chains must be set (e.g. ABC:ABC or :ABC)") + logging.error("When using --mapping, native chains must be set (e.g. ABC:ABC or :ABC)") sys.exit() else: # :ABC or *:ABC only use those natives chains, permute model chains @@ -812,13 +825,18 @@ def product_without_dupl(*args, repeat=1): def count_chain_combinations(chain_clusters): - clusters = [tuple(li) for li in chain_clusters.values()] - number_of_combinations = np.prod( - [ - int(math.factorial(len(a)) / math.factorial(len(a) - b)) - for a, b in Counter(clusters).items() - ] - ) + try: + clusters = [tuple(li) for li in chain_clusters.values()] + number_of_combinations = np.prod( + [ + int(math.factorial(len(a)) / math.factorial(len(a) - b)) + for a, b in Counter(clusters).items() + ] + ) + except ValueError: + logging.error("""Couldn't find a match between each model-native chain specified in the mapping. +Make sure that all chains in your model have a homologous chain in the native, or specify the right subset of chains with --mapping""") + sys.exit() return number_of_combinations @@ -959,6 +977,10 @@ def main(): best_mapping = next(chain_maps) best_result, best_dockq = run_chain_map(best_mapping) + if not best_result: + logging.error("Could not find interfaces in the native model. Please double check the inputs or select different chains with the --mapping flag.") + sys.exit(1) + info = dict() info["model"] = args.model info["native"] = args.native @@ -967,6 +989,11 @@ def main(): info["GlobalDockQ"] = best_dockq / len(best_result) info["best_mapping"] = best_mapping info["best_mapping_str"] = f"{format_mapping_string(best_mapping)}" + + if args.json: + with open(args.json, "w") as fp: + json.dump(info, fp) + print_results( info, args.short, args.verbose, args.capri_peptide, args.small_molecule ) @@ -991,20 +1018,19 @@ def print_results( reported_measures = ( [ "DockQ", - "irms", - "Lrms", + "iRMSD", + "LRMSD", "fnat", "fnonnat", - "clashes", "F1", - "DockQ_F1", + "clashes", ] if not results["is_het"] - else ["Lrms"] + else ["LRMSD"] ) hetname = f" ({results['is_het']})" if results["is_het"] else "" score_str = " ".join( - [f"{item} {results[item]:.3f}" for item in reported_measures] + [f"{item} {results[item]:.3f}" if item != "clashes" else f"{item} {results[item]}" for item in reported_measures] ) print( f"{score_str} mapping {results['chain1']}{results['chain2']}:{chains[0]}{chains[1]}{hetname} {info['model']} {results['chain1']} {results['chain2']} -> {info['native']} {chains[0]} {chains[1]}" @@ -1020,23 +1046,22 @@ def print_results( reported_measures = ( [ "DockQ", - "irms", - "Lrms", + "iRMSD", + "LRMSD", "fnat", "fnonnat", - "clashes", "F1", - "DockQ_F1", + "clashes", ] if not results["is_het"] - else ["Lrms"] + else ["LRMSD"] ) hetname = f" ({results['is_het']})" if results["is_het"] else "" print(f"Native chains: {chains[0]}, {chains[1]}{hetname}") print(f"\tModel chains: {results['chain1']}, {results['chain2']}") print( "\n".join( - [f"\t{item}: {results[item]:.3f}" for item in reported_measures] + [f"\t{item}: {results[item]:.3f}" if item != "clashes" else f"\t{item}: {results[item]}" for item in reported_measures] ) ) @@ -1065,7 +1090,7 @@ def print_header(verbose=False, capri_peptide=False): notice = ( "* For the record: *\n" f"* Definition of contact <{'5A' if not capri_peptide else '4A'} (Fnat) *\n" - f"* Definition of interface <{'10A all heavy atoms (iRMS) ' if not capri_peptide else '8A CB (iRMS) '} *\n" + f"* Definition of interface <{'10A all heavy atoms (iRMSD) ' if not capri_peptide else '8A CB (iRMSD) '} *\n" "****************************************************************" ) else: diff --git a/testdata/1A2K.dockq b/testdata/1A2K.dockq index ea05b54..0fe273c 100644 --- a/testdata/1A2K.dockq +++ b/testdata/1A2K.dockq @@ -17,30 +17,27 @@ Total DockQ over 3 native interfaces: 0.653 with BAC:ABC model:native mapping Native chains: A, B Model chains: B, A DockQ: 0.994 - irms: 0.000 - Lrms: 0.000 + iRMSD: 0.000 + LRMSD: 0.000 fnat: 0.983 fnonnat: 0.008 - clashes: 0.000 F1: 0.987 - DockQ_F1: 0.996 + clashes: 0 Native chains: A, C Model chains: B, C DockQ: 0.511 - irms: 1.237 - Lrms: 6.864 + iRMSD: 1.237 + LRMSD: 6.864 fnat: 0.333 fnonnat: 0.000 - clashes: 0.000 F1: 0.500 - DockQ_F1: 0.567 + clashes: 0 Native chains: B, C Model chains: A, C DockQ: 0.453 - irms: 2.104 - Lrms: 8.131 + iRMSD: 2.104 + LRMSD: 8.131 fnat: 0.500 fnonnat: 0.107 - clashes: 0.000 F1: 0.641 - DockQ_F1: 0.500 + clashes: 0 diff --git a/testdata/1A2K.dockq2 b/testdata/1A2K.dockq2 new file mode 100644 index 0000000..4acd852 --- /dev/null +++ b/testdata/1A2K.dockq2 @@ -0,0 +1,46 @@ +**************************************************************** +* DockQ * +* Scoring function for protein-protein docking models * +* Statistics on CAPRI data: * +* 0.00 <= DockQ < 0.23 - Incorrect * +* 0.23 <= DockQ < 0.49 - Acceptable quality * +* 0.49 <= DockQ < 0.80 - Medium quality * +* DockQ >= 0.80 - High quality * +* Ref: S. Basu and B. Wallner, DockQ: A quality measure for * +* protein-protein docking models * +* doi:10.1371/journal.pone.0161879 * +* For comments, please email: bjorn.wallner@.liu.se * +**************************************************************** +Model : examples/1A2K_r_l_b.model.pdb +Native : examples/1A2K_r_l_b.pdb +Total DockQ over 3 native interfaces: 0.653 with BAC:ABC model:native mapping +Native chains: A, B + Model chains: B, A + DockQ: 0.994 + iRMSD: 0.000 + LRMSD: 0.000 + fnat: 0.983 + fnonnat: 0.008 + clashes: 0.000 + F1: 0.987 + DockQ_F1: 0.996 +Native chains: A, C + Model chains: B, C + DockQ: 0.511 + iRMSD: 1.237 + LRMSD: 6.864 + fnat: 0.333 + fnonnat: 0.000 + clashes: 0.000 + F1: 0.500 + DockQ_F1: 0.567 +Native chains: B, C + Model chains: A, C + DockQ: 0.453 + iRMSD: 2.104 + LRMSD: 8.131 + fnat: 0.500 + fnonnat: 0.107 + clashes: 0.000 + F1: 0.641 + DockQ_F1: 0.500 diff --git a/testdata/1EXB.dockq b/testdata/1EXB.dockq index 2e7f40e..fc27a57 100644 --- a/testdata/1EXB.dockq +++ b/testdata/1EXB.dockq @@ -1,17 +1,17 @@ Total DockQ over 16 native interfaces: 0.852 with BACDFHEG:ABDCEGFH model:native mapping -DockQ 1.000 irms 0.000 Lrms 0.000 fnat 1.000 fnonnat 0.000 clashes 0.000 F1 1.000 DockQ_F1 1.000 mapping BC:AD examples/1EXB_r_l_b.model.pdb B C -> examples/1EXB_r_l_b.pdb A D -DockQ 0.995 irms 0.000 Lrms 0.000 fnat 0.985 fnonnat 0.000 clashes 0.000 F1 0.993 DockQ_F1 0.998 mapping BD:AC examples/1EXB_r_l_b.model.pdb B D -> examples/1EXB_r_l_b.pdb A C -DockQ 0.552 irms 1.458 Lrms 3.757 fnat 0.304 fnonnat 0.000 clashes 0.000 F1 0.467 DockQ_F1 0.606 mapping BF:AE examples/1EXB_r_l_b.model.pdb B F -> examples/1EXB_r_l_b.pdb A E -DockQ 0.694 irms 0.793 Lrms 2.831 fnat 0.400 fnonnat 0.000 clashes 0.000 F1 0.571 DockQ_F1 0.751 mapping BH:AG examples/1EXB_r_l_b.model.pdb B H -> examples/1EXB_r_l_b.pdb A G -DockQ 0.995 irms 0.000 Lrms 0.000 fnat 0.985 fnonnat 0.000 clashes 0.000 F1 0.993 DockQ_F1 0.998 mapping AC:BD examples/1EXB_r_l_b.model.pdb A C -> examples/1EXB_r_l_b.pdb B D -DockQ 0.995 irms 0.000 Lrms 0.000 fnat 0.985 fnonnat 0.000 clashes 0.000 F1 0.993 DockQ_F1 0.998 mapping AD:BC examples/1EXB_r_l_b.model.pdb A D -> examples/1EXB_r_l_b.pdb B C -DockQ 0.742 irms 0.850 Lrms 3.426 fnat 0.609 fnonnat 0.176 clashes 0.000 F1 0.700 DockQ_F1 0.772 mapping AE:BF examples/1EXB_r_l_b.model.pdb A E -> examples/1EXB_r_l_b.pdb B F -DockQ 0.824 irms 0.625 Lrms 3.994 fnat 0.800 fnonnat 0.000 clashes 0.000 F1 0.889 DockQ_F1 0.853 mapping AG:BH examples/1EXB_r_l_b.model.pdb A G -> examples/1EXB_r_l_b.pdb B H -DockQ 0.687 irms 1.161 Lrms 3.757 fnat 0.600 fnonnat 0.000 clashes 0.000 F1 0.750 DockQ_F1 0.737 mapping CF:DE examples/1EXB_r_l_b.model.pdb C F -> examples/1EXB_r_l_b.pdb D E -DockQ 0.477 irms 1.425 Lrms 3.994 fnat 0.087 fnonnat 0.000 clashes 0.000 F1 0.160 DockQ_F1 0.502 mapping CG:DH examples/1EXB_r_l_b.model.pdb C G -> examples/1EXB_r_l_b.pdb D H -DockQ 0.775 irms 0.711 Lrms 2.831 fnat 0.609 fnonnat 0.125 clashes 0.000 F1 0.718 DockQ_F1 0.812 mapping DH:CG examples/1EXB_r_l_b.model.pdb D H -> examples/1EXB_r_l_b.pdb C G -DockQ 0.914 irms 0.547 Lrms 3.426 fnat 1.000 fnonnat 0.000 clashes 0.000 F1 1.000 DockQ_F1 0.914 mapping DE:CF examples/1EXB_r_l_b.model.pdb D E -> examples/1EXB_r_l_b.pdb C F -DockQ 0.992 irms 0.001 Lrms 0.000 fnat 0.976 fnonnat 0.000 clashes 0.000 F1 0.988 DockQ_F1 0.996 mapping FH:EG examples/1EXB_r_l_b.model.pdb F H -> examples/1EXB_r_l_b.pdb E G -DockQ 0.992 irms 0.001 Lrms 0.000 fnat 0.976 fnonnat 0.000 clashes 0.000 F1 0.988 DockQ_F1 0.996 mapping FG:EH examples/1EXB_r_l_b.model.pdb F G -> examples/1EXB_r_l_b.pdb E H -DockQ 0.992 irms 0.001 Lrms 0.001 fnat 0.976 fnonnat 0.000 clashes 0.000 F1 0.988 DockQ_F1 0.996 mapping HE:GF examples/1EXB_r_l_b.model.pdb H E -> examples/1EXB_r_l_b.pdb G F -DockQ 1.000 irms 0.001 Lrms 0.001 fnat 1.000 fnonnat 0.024 clashes 0.000 F1 0.988 DockQ_F1 0.996 mapping EG:FH examples/1EXB_r_l_b.model.pdb E G -> examples/1EXB_r_l_b.pdb F H +DockQ 1.000 iRMSD 0.000 LRMSD 0.000 fnat 1.000 fnonnat 0.000 F1 1.000 clashes 0 mapping BC:AD examples/1EXB_r_l_b.model.pdb B C -> examples/1EXB_r_l_b.pdb A D +DockQ 0.995 iRMSD 0.000 LRMSD 0.000 fnat 0.985 fnonnat 0.000 F1 0.993 clashes 0 mapping BD:AC examples/1EXB_r_l_b.model.pdb B D -> examples/1EXB_r_l_b.pdb A C +DockQ 0.552 iRMSD 1.458 LRMSD 3.757 fnat 0.304 fnonnat 0.000 F1 0.467 clashes 0 mapping BF:AE examples/1EXB_r_l_b.model.pdb B F -> examples/1EXB_r_l_b.pdb A E +DockQ 0.694 iRMSD 0.793 LRMSD 2.831 fnat 0.400 fnonnat 0.000 F1 0.571 clashes 0 mapping BH:AG examples/1EXB_r_l_b.model.pdb B H -> examples/1EXB_r_l_b.pdb A G +DockQ 0.995 iRMSD 0.000 LRMSD 0.000 fnat 0.985 fnonnat 0.000 F1 0.993 clashes 0 mapping AC:BD examples/1EXB_r_l_b.model.pdb A C -> examples/1EXB_r_l_b.pdb B D +DockQ 0.995 iRMSD 0.000 LRMSD 0.000 fnat 0.985 fnonnat 0.000 F1 0.993 clashes 0 mapping AD:BC examples/1EXB_r_l_b.model.pdb A D -> examples/1EXB_r_l_b.pdb B C +DockQ 0.742 iRMSD 0.850 LRMSD 3.426 fnat 0.609 fnonnat 0.176 F1 0.700 clashes 0 mapping AE:BF examples/1EXB_r_l_b.model.pdb A E -> examples/1EXB_r_l_b.pdb B F +DockQ 0.824 iRMSD 0.625 LRMSD 3.994 fnat 0.800 fnonnat 0.000 F1 0.889 clashes 0 mapping AG:BH examples/1EXB_r_l_b.model.pdb A G -> examples/1EXB_r_l_b.pdb B H +DockQ 0.687 iRMSD 1.161 LRMSD 3.757 fnat 0.600 fnonnat 0.000 F1 0.750 clashes 0 mapping CF:DE examples/1EXB_r_l_b.model.pdb C F -> examples/1EXB_r_l_b.pdb D E +DockQ 0.477 iRMSD 1.425 LRMSD 3.994 fnat 0.087 fnonnat 0.000 F1 0.160 clashes 0 mapping CG:DH examples/1EXB_r_l_b.model.pdb C G -> examples/1EXB_r_l_b.pdb D H +DockQ 0.775 iRMSD 0.711 LRMSD 2.831 fnat 0.609 fnonnat 0.125 F1 0.718 clashes 0 mapping DH:CG examples/1EXB_r_l_b.model.pdb D H -> examples/1EXB_r_l_b.pdb C G +DockQ 0.914 iRMSD 0.547 LRMSD 3.426 fnat 1.000 fnonnat 0.000 F1 1.000 clashes 0 mapping DE:CF examples/1EXB_r_l_b.model.pdb D E -> examples/1EXB_r_l_b.pdb C F +DockQ 0.992 iRMSD 0.001 LRMSD 0.000 fnat 0.976 fnonnat 0.000 F1 0.988 clashes 0 mapping FH:EG examples/1EXB_r_l_b.model.pdb F H -> examples/1EXB_r_l_b.pdb E G +DockQ 0.992 iRMSD 0.001 LRMSD 0.000 fnat 0.976 fnonnat 0.000 F1 0.988 clashes 0 mapping FG:EH examples/1EXB_r_l_b.model.pdb F G -> examples/1EXB_r_l_b.pdb E H +DockQ 0.992 iRMSD 0.001 LRMSD 0.001 fnat 0.976 fnonnat 0.000 F1 0.988 clashes 0 mapping HE:GF examples/1EXB_r_l_b.model.pdb H E -> examples/1EXB_r_l_b.pdb G F +DockQ 1.000 iRMSD 0.001 LRMSD 0.001 fnat 1.000 fnonnat 0.024 F1 0.988 clashes 0 mapping EG:FH examples/1EXB_r_l_b.model.pdb E G -> examples/1EXB_r_l_b.pdb F H diff --git a/testdata/1EXB_.ABC.dockq b/testdata/1EXB_.ABC.dockq index 803de58..ffd2ecf 100644 --- a/testdata/1EXB_.ABC.dockq +++ b/testdata/1EXB_.ABC.dockq @@ -1,3 +1,3 @@ Total DockQ over 2 native interfaces: 0.998 with ABC:ABC model:native mapping -DockQ 0.995 irms 0.000 Lrms 0.000 fnat 0.985 fnonnat 0.000 clashes 0.000 F1 0.993 DockQ_F1 0.998 mapping AC:AC examples/1EXB_r_l_b.model.pdb A C -> examples/1EXB_r_l_b.pdb A C -DockQ 1.000 irms 0.000 Lrms 0.000 fnat 1.000 fnonnat 0.000 clashes 0.000 F1 1.000 DockQ_F1 1.000 mapping BC:BC examples/1EXB_r_l_b.model.pdb B C -> examples/1EXB_r_l_b.pdb B C +DockQ 0.995 iRMSD 0.000 LRMSD 0.000 fnat 0.985 fnonnat 0.000 F1 0.993 clashes 0 mapping AC:AC examples/1EXB_r_l_b.model.pdb A C -> examples/1EXB_r_l_b.pdb A C +DockQ 1.000 iRMSD 0.000 LRMSD 0.000 fnat 1.000 fnonnat 0.000 F1 1.000 clashes 0 mapping BC:BC examples/1EXB_r_l_b.model.pdb B C -> examples/1EXB_r_l_b.pdb B C diff --git a/testdata/1EXB_AB.BA.dockq b/testdata/1EXB_AB.BA.dockq index 7525ac5..265ffed 100644 --- a/testdata/1EXB_AB.BA.dockq +++ b/testdata/1EXB_AB.BA.dockq @@ -1,17 +1,17 @@ Total DockQ over 16 native interfaces: 0.852 with ABCDFHEG:BADCEGFH model:native mapping -DockQ 0.995 irms 0.000 Lrms 0.000 fnat 0.985 fnonnat 0.000 clashes 0.000 F1 0.993 DockQ_F1 0.998 mapping AC:BD examples/1EXB_r_l_b.model.pdb A C -> examples/1EXB_r_l_b.pdb B D -DockQ 0.995 irms 0.000 Lrms 0.000 fnat 0.985 fnonnat 0.000 clashes 0.000 F1 0.993 DockQ_F1 0.998 mapping AD:BC examples/1EXB_r_l_b.model.pdb A D -> examples/1EXB_r_l_b.pdb B C -DockQ 0.742 irms 0.850 Lrms 3.426 fnat 0.609 fnonnat 0.176 clashes 0.000 F1 0.700 DockQ_F1 0.772 mapping AE:BF examples/1EXB_r_l_b.model.pdb A E -> examples/1EXB_r_l_b.pdb B F -DockQ 0.824 irms 0.625 Lrms 3.994 fnat 0.800 fnonnat 0.000 clashes 0.000 F1 0.889 DockQ_F1 0.853 mapping AG:BH examples/1EXB_r_l_b.model.pdb A G -> examples/1EXB_r_l_b.pdb B H -DockQ 1.000 irms 0.000 Lrms 0.000 fnat 1.000 fnonnat 0.000 clashes 0.000 F1 1.000 DockQ_F1 1.000 mapping BC:AD examples/1EXB_r_l_b.model.pdb B C -> examples/1EXB_r_l_b.pdb A D -DockQ 0.995 irms 0.000 Lrms 0.000 fnat 0.985 fnonnat 0.000 clashes 0.000 F1 0.993 DockQ_F1 0.998 mapping BD:AC examples/1EXB_r_l_b.model.pdb B D -> examples/1EXB_r_l_b.pdb A C -DockQ 0.552 irms 1.458 Lrms 3.757 fnat 0.304 fnonnat 0.000 clashes 0.000 F1 0.467 DockQ_F1 0.606 mapping BF:AE examples/1EXB_r_l_b.model.pdb B F -> examples/1EXB_r_l_b.pdb A E -DockQ 0.694 irms 0.793 Lrms 2.831 fnat 0.400 fnonnat 0.000 clashes 0.000 F1 0.571 DockQ_F1 0.751 mapping BH:AG examples/1EXB_r_l_b.model.pdb B H -> examples/1EXB_r_l_b.pdb A G -DockQ 0.687 irms 1.161 Lrms 3.757 fnat 0.600 fnonnat 0.000 clashes 0.000 F1 0.750 DockQ_F1 0.737 mapping CF:DE examples/1EXB_r_l_b.model.pdb C F -> examples/1EXB_r_l_b.pdb D E -DockQ 0.477 irms 1.425 Lrms 3.994 fnat 0.087 fnonnat 0.000 clashes 0.000 F1 0.160 DockQ_F1 0.502 mapping CG:DH examples/1EXB_r_l_b.model.pdb C G -> examples/1EXB_r_l_b.pdb D H -DockQ 0.775 irms 0.711 Lrms 2.831 fnat 0.609 fnonnat 0.125 clashes 0.000 F1 0.718 DockQ_F1 0.812 mapping DH:CG examples/1EXB_r_l_b.model.pdb D H -> examples/1EXB_r_l_b.pdb C G -DockQ 0.914 irms 0.547 Lrms 3.426 fnat 1.000 fnonnat 0.000 clashes 0.000 F1 1.000 DockQ_F1 0.914 mapping DE:CF examples/1EXB_r_l_b.model.pdb D E -> examples/1EXB_r_l_b.pdb C F -DockQ 0.992 irms 0.001 Lrms 0.000 fnat 0.976 fnonnat 0.000 clashes 0.000 F1 0.988 DockQ_F1 0.996 mapping FH:EG examples/1EXB_r_l_b.model.pdb F H -> examples/1EXB_r_l_b.pdb E G -DockQ 0.992 irms 0.001 Lrms 0.000 fnat 0.976 fnonnat 0.000 clashes 0.000 F1 0.988 DockQ_F1 0.996 mapping FG:EH examples/1EXB_r_l_b.model.pdb F G -> examples/1EXB_r_l_b.pdb E H -DockQ 0.992 irms 0.001 Lrms 0.001 fnat 0.976 fnonnat 0.000 clashes 0.000 F1 0.988 DockQ_F1 0.996 mapping HE:GF examples/1EXB_r_l_b.model.pdb H E -> examples/1EXB_r_l_b.pdb G F -DockQ 1.000 irms 0.001 Lrms 0.001 fnat 1.000 fnonnat 0.024 clashes 0.000 F1 0.988 DockQ_F1 0.996 mapping EG:FH examples/1EXB_r_l_b.model.pdb E G -> examples/1EXB_r_l_b.pdb F H +DockQ 0.995 iRMSD 0.000 LRMSD 0.000 fnat 0.985 fnonnat 0.000 F1 0.993 clashes 0 mapping AC:BD examples/1EXB_r_l_b.model.pdb A C -> examples/1EXB_r_l_b.pdb B D +DockQ 0.995 iRMSD 0.000 LRMSD 0.000 fnat 0.985 fnonnat 0.000 F1 0.993 clashes 0 mapping AD:BC examples/1EXB_r_l_b.model.pdb A D -> examples/1EXB_r_l_b.pdb B C +DockQ 0.742 iRMSD 0.850 LRMSD 3.426 fnat 0.609 fnonnat 0.176 F1 0.700 clashes 0 mapping AE:BF examples/1EXB_r_l_b.model.pdb A E -> examples/1EXB_r_l_b.pdb B F +DockQ 0.824 iRMSD 0.625 LRMSD 3.994 fnat 0.800 fnonnat 0.000 F1 0.889 clashes 0 mapping AG:BH examples/1EXB_r_l_b.model.pdb A G -> examples/1EXB_r_l_b.pdb B H +DockQ 1.000 iRMSD 0.000 LRMSD 0.000 fnat 1.000 fnonnat 0.000 F1 1.000 clashes 0 mapping BC:AD examples/1EXB_r_l_b.model.pdb B C -> examples/1EXB_r_l_b.pdb A D +DockQ 0.995 iRMSD 0.000 LRMSD 0.000 fnat 0.985 fnonnat 0.000 F1 0.993 clashes 0 mapping BD:AC examples/1EXB_r_l_b.model.pdb B D -> examples/1EXB_r_l_b.pdb A C +DockQ 0.552 iRMSD 1.458 LRMSD 3.757 fnat 0.304 fnonnat 0.000 F1 0.467 clashes 0 mapping BF:AE examples/1EXB_r_l_b.model.pdb B F -> examples/1EXB_r_l_b.pdb A E +DockQ 0.694 iRMSD 0.793 LRMSD 2.831 fnat 0.400 fnonnat 0.000 F1 0.571 clashes 0 mapping BH:AG examples/1EXB_r_l_b.model.pdb B H -> examples/1EXB_r_l_b.pdb A G +DockQ 0.687 iRMSD 1.161 LRMSD 3.757 fnat 0.600 fnonnat 0.000 F1 0.750 clashes 0 mapping CF:DE examples/1EXB_r_l_b.model.pdb C F -> examples/1EXB_r_l_b.pdb D E +DockQ 0.477 iRMSD 1.425 LRMSD 3.994 fnat 0.087 fnonnat 0.000 F1 0.160 clashes 0 mapping CG:DH examples/1EXB_r_l_b.model.pdb C G -> examples/1EXB_r_l_b.pdb D H +DockQ 0.775 iRMSD 0.711 LRMSD 2.831 fnat 0.609 fnonnat 0.125 F1 0.718 clashes 0 mapping DH:CG examples/1EXB_r_l_b.model.pdb D H -> examples/1EXB_r_l_b.pdb C G +DockQ 0.914 iRMSD 0.547 LRMSD 3.426 fnat 1.000 fnonnat 0.000 F1 1.000 clashes 0 mapping DE:CF examples/1EXB_r_l_b.model.pdb D E -> examples/1EXB_r_l_b.pdb C F +DockQ 0.992 iRMSD 0.001 LRMSD 0.000 fnat 0.976 fnonnat 0.000 F1 0.988 clashes 0 mapping FH:EG examples/1EXB_r_l_b.model.pdb F H -> examples/1EXB_r_l_b.pdb E G +DockQ 0.992 iRMSD 0.001 LRMSD 0.000 fnat 0.976 fnonnat 0.000 F1 0.988 clashes 0 mapping FG:EH examples/1EXB_r_l_b.model.pdb F G -> examples/1EXB_r_l_b.pdb E H +DockQ 0.992 iRMSD 0.001 LRMSD 0.001 fnat 0.976 fnonnat 0.000 F1 0.988 clashes 0 mapping HE:GF examples/1EXB_r_l_b.model.pdb H E -> examples/1EXB_r_l_b.pdb G F +DockQ 1.000 iRMSD 0.001 LRMSD 0.001 fnat 1.000 fnonnat 0.024 F1 0.988 clashes 0 mapping EG:FH examples/1EXB_r_l_b.model.pdb E G -> examples/1EXB_r_l_b.pdb F H diff --git a/testdata/1EXB_ABCDEFGH.BADCFEHG.dockq b/testdata/1EXB_ABCDEFGH.BADCFEHG.dockq index 24e9bb4..0e67f96 100644 --- a/testdata/1EXB_ABCDEFGH.BADCFEHG.dockq +++ b/testdata/1EXB_ABCDEFGH.BADCFEHG.dockq @@ -1,17 +1,17 @@ Total DockQ over 16 native interfaces: 0.852 with ABCDEFGH:BADCFEHG model:native mapping -DockQ 0.995 irms 0.000 Lrms 0.000 fnat 0.985 fnonnat 0.000 clashes 0.000 F1 0.993 DockQ_F1 0.998 mapping AC:BD examples/1EXB_r_l_b.model.pdb A C -> examples/1EXB_r_l_b.pdb B D -DockQ 0.995 irms 0.000 Lrms 0.000 fnat 0.985 fnonnat 0.000 clashes 0.000 F1 0.993 DockQ_F1 0.998 mapping AD:BC examples/1EXB_r_l_b.model.pdb A D -> examples/1EXB_r_l_b.pdb B C -DockQ 0.742 irms 0.850 Lrms 3.426 fnat 0.609 fnonnat 0.176 clashes 0.000 F1 0.700 DockQ_F1 0.772 mapping AE:BF examples/1EXB_r_l_b.model.pdb A E -> examples/1EXB_r_l_b.pdb B F -DockQ 0.824 irms 0.625 Lrms 3.994 fnat 0.800 fnonnat 0.000 clashes 0.000 F1 0.889 DockQ_F1 0.853 mapping AG:BH examples/1EXB_r_l_b.model.pdb A G -> examples/1EXB_r_l_b.pdb B H -DockQ 1.000 irms 0.000 Lrms 0.000 fnat 1.000 fnonnat 0.000 clashes 0.000 F1 1.000 DockQ_F1 1.000 mapping BC:AD examples/1EXB_r_l_b.model.pdb B C -> examples/1EXB_r_l_b.pdb A D -DockQ 0.995 irms 0.000 Lrms 0.000 fnat 0.985 fnonnat 0.000 clashes 0.000 F1 0.993 DockQ_F1 0.998 mapping BD:AC examples/1EXB_r_l_b.model.pdb B D -> examples/1EXB_r_l_b.pdb A C -DockQ 0.552 irms 1.458 Lrms 3.757 fnat 0.304 fnonnat 0.000 clashes 0.000 F1 0.467 DockQ_F1 0.606 mapping BF:AE examples/1EXB_r_l_b.model.pdb B F -> examples/1EXB_r_l_b.pdb A E -DockQ 0.694 irms 0.793 Lrms 2.831 fnat 0.400 fnonnat 0.000 clashes 0.000 F1 0.571 DockQ_F1 0.751 mapping BH:AG examples/1EXB_r_l_b.model.pdb B H -> examples/1EXB_r_l_b.pdb A G -DockQ 0.687 irms 1.161 Lrms 3.757 fnat 0.600 fnonnat 0.000 clashes 0.000 F1 0.750 DockQ_F1 0.737 mapping CF:DE examples/1EXB_r_l_b.model.pdb C F -> examples/1EXB_r_l_b.pdb D E -DockQ 0.477 irms 1.425 Lrms 3.994 fnat 0.087 fnonnat 0.000 clashes 0.000 F1 0.160 DockQ_F1 0.502 mapping CG:DH examples/1EXB_r_l_b.model.pdb C G -> examples/1EXB_r_l_b.pdb D H -DockQ 0.914 irms 0.547 Lrms 3.426 fnat 1.000 fnonnat 0.000 clashes 0.000 F1 1.000 DockQ_F1 0.914 mapping DE:CF examples/1EXB_r_l_b.model.pdb D E -> examples/1EXB_r_l_b.pdb C F -DockQ 0.775 irms 0.711 Lrms 2.831 fnat 0.609 fnonnat 0.125 clashes 0.000 F1 0.718 DockQ_F1 0.812 mapping DH:CG examples/1EXB_r_l_b.model.pdb D H -> examples/1EXB_r_l_b.pdb C G -DockQ 1.000 irms 0.001 Lrms 0.001 fnat 1.000 fnonnat 0.024 clashes 0.000 F1 0.988 DockQ_F1 0.996 mapping EG:FH examples/1EXB_r_l_b.model.pdb E G -> examples/1EXB_r_l_b.pdb F H -DockQ 0.992 irms 0.001 Lrms 0.001 fnat 0.976 fnonnat 0.000 clashes 0.000 F1 0.988 DockQ_F1 0.996 mapping EH:FG examples/1EXB_r_l_b.model.pdb E H -> examples/1EXB_r_l_b.pdb F G -DockQ 0.992 irms 0.001 Lrms 0.000 fnat 0.976 fnonnat 0.000 clashes 0.000 F1 0.988 DockQ_F1 0.996 mapping FG:EH examples/1EXB_r_l_b.model.pdb F G -> examples/1EXB_r_l_b.pdb E H -DockQ 0.992 irms 0.001 Lrms 0.000 fnat 0.976 fnonnat 0.000 clashes 0.000 F1 0.988 DockQ_F1 0.996 mapping FH:EG examples/1EXB_r_l_b.model.pdb F H -> examples/1EXB_r_l_b.pdb E G +DockQ 0.995 iRMSD 0.000 LRMSD 0.000 fnat 0.985 fnonnat 0.000 F1 0.993 clashes 0 mapping AC:BD examples/1EXB_r_l_b.model.pdb A C -> examples/1EXB_r_l_b.pdb B D +DockQ 0.995 iRMSD 0.000 LRMSD 0.000 fnat 0.985 fnonnat 0.000 F1 0.993 clashes 0 mapping AD:BC examples/1EXB_r_l_b.model.pdb A D -> examples/1EXB_r_l_b.pdb B C +DockQ 0.742 iRMSD 0.850 LRMSD 3.426 fnat 0.609 fnonnat 0.176 F1 0.700 clashes 0 mapping AE:BF examples/1EXB_r_l_b.model.pdb A E -> examples/1EXB_r_l_b.pdb B F +DockQ 0.824 iRMSD 0.625 LRMSD 3.994 fnat 0.800 fnonnat 0.000 F1 0.889 clashes 0 mapping AG:BH examples/1EXB_r_l_b.model.pdb A G -> examples/1EXB_r_l_b.pdb B H +DockQ 1.000 iRMSD 0.000 LRMSD 0.000 fnat 1.000 fnonnat 0.000 F1 1.000 clashes 0 mapping BC:AD examples/1EXB_r_l_b.model.pdb B C -> examples/1EXB_r_l_b.pdb A D +DockQ 0.995 iRMSD 0.000 LRMSD 0.000 fnat 0.985 fnonnat 0.000 F1 0.993 clashes 0 mapping BD:AC examples/1EXB_r_l_b.model.pdb B D -> examples/1EXB_r_l_b.pdb A C +DockQ 0.552 iRMSD 1.458 LRMSD 3.757 fnat 0.304 fnonnat 0.000 F1 0.467 clashes 0 mapping BF:AE examples/1EXB_r_l_b.model.pdb B F -> examples/1EXB_r_l_b.pdb A E +DockQ 0.694 iRMSD 0.793 LRMSD 2.831 fnat 0.400 fnonnat 0.000 F1 0.571 clashes 0 mapping BH:AG examples/1EXB_r_l_b.model.pdb B H -> examples/1EXB_r_l_b.pdb A G +DockQ 0.687 iRMSD 1.161 LRMSD 3.757 fnat 0.600 fnonnat 0.000 F1 0.750 clashes 0 mapping CF:DE examples/1EXB_r_l_b.model.pdb C F -> examples/1EXB_r_l_b.pdb D E +DockQ 0.477 iRMSD 1.425 LRMSD 3.994 fnat 0.087 fnonnat 0.000 F1 0.160 clashes 0 mapping CG:DH examples/1EXB_r_l_b.model.pdb C G -> examples/1EXB_r_l_b.pdb D H +DockQ 0.914 iRMSD 0.547 LRMSD 3.426 fnat 1.000 fnonnat 0.000 F1 1.000 clashes 0 mapping DE:CF examples/1EXB_r_l_b.model.pdb D E -> examples/1EXB_r_l_b.pdb C F +DockQ 0.775 iRMSD 0.711 LRMSD 2.831 fnat 0.609 fnonnat 0.125 F1 0.718 clashes 0 mapping DH:CG examples/1EXB_r_l_b.model.pdb D H -> examples/1EXB_r_l_b.pdb C G +DockQ 1.000 iRMSD 0.001 LRMSD 0.001 fnat 1.000 fnonnat 0.024 F1 0.988 clashes 0 mapping EG:FH examples/1EXB_r_l_b.model.pdb E G -> examples/1EXB_r_l_b.pdb F H +DockQ 0.992 iRMSD 0.001 LRMSD 0.001 fnat 0.976 fnonnat 0.000 F1 0.988 clashes 0 mapping EH:FG examples/1EXB_r_l_b.model.pdb E H -> examples/1EXB_r_l_b.pdb F G +DockQ 0.992 iRMSD 0.001 LRMSD 0.000 fnat 0.976 fnonnat 0.000 F1 0.988 clashes 0 mapping FG:EH examples/1EXB_r_l_b.model.pdb F G -> examples/1EXB_r_l_b.pdb E H +DockQ 0.992 iRMSD 0.001 LRMSD 0.000 fnat 0.976 fnonnat 0.000 F1 0.988 clashes 0 mapping FH:EG examples/1EXB_r_l_b.model.pdb F H -> examples/1EXB_r_l_b.pdb E G diff --git a/testdata/1EXB_DH.AE.dockq b/testdata/1EXB_DH.AE.dockq index 7c374d0..59dbee1 100644 --- a/testdata/1EXB_DH.AE.dockq +++ b/testdata/1EXB_DH.AE.dockq @@ -17,10 +17,9 @@ Total DockQ over 1 native interfaces: 0.775 with DH:AE model:native mapping Native chains: A, E Model chains: D, H DockQ: 0.775 - irms: 0.711 - Lrms: 2.831 + iRMSD: 0.711 + LRMSD: 2.831 fnat: 0.609 fnonnat: 0.125 - clashes: 0.000 F1: 0.718 - DockQ_F1: 0.812 + clashes: 0 diff --git a/testdata/1EXB_DH.AE_cif.dockq b/testdata/1EXB_DH.AE_cif.dockq index b734d70..10fe5d3 100644 --- a/testdata/1EXB_DH.AE_cif.dockq +++ b/testdata/1EXB_DH.AE_cif.dockq @@ -17,10 +17,9 @@ Total DockQ over 1 native interfaces: 0.775 with DH:AE model:native mapping Native chains: A, E Model chains: D, H DockQ: 0.775 - irms: 0.711 - Lrms: 2.831 + iRMSD: 0.711 + LRMSD: 2.831 fnat: 0.609 fnonnat: 0.125 - clashes: 0.000 F1: 0.718 - DockQ_F1: 0.812 + clashes: 0 diff --git a/testdata/6q2n_peptide.dockq b/testdata/6q2n_peptide.dockq index 497aec6..5f9fe51 100644 --- a/testdata/6q2n_peptide.dockq +++ b/testdata/6q2n_peptide.dockq @@ -15,10 +15,9 @@ Total DockQ-capri_peptide over 1 native interfaces: 0.872 with AF:BG model:nativ Native chains: B, G Model chains: A, F DockQ: 0.872 - irms: 0.588 - Lrms: 0.982 + iRMSD: 0.588 + LRMSD: 0.982 fnat: 0.762 fnonnat: 0.158 - clashes: 0.000 F1: 0.800 - DockQ_F1: 0.885 + clashes: 0 diff --git a/testdata/dimer_dimer.dockq b/testdata/dimer_dimer.dockq index 553d642..f259f5e 100644 --- a/testdata/dimer_dimer.dockq +++ b/testdata/dimer_dimer.dockq @@ -1,5 +1,5 @@ Total DockQ over 4 native interfaces: 1.000 with ABLH:ABLH model:native mapping -DockQ 1.000 irms 0.000 Lrms 0.000 fnat 1.000 fnonnat 0.000 clashes 0.000 F1 1.000 DockQ_F1 1.000 mapping AB:AB examples/dimer_dimer.model.pdb A B -> examples/dimer_dimer.pdb A B -DockQ 1.000 irms 0.000 Lrms 0.000 fnat 1.000 fnonnat 0.000 clashes 0.000 F1 1.000 DockQ_F1 1.000 mapping AL:AL examples/dimer_dimer.model.pdb A L -> examples/dimer_dimer.pdb A L -DockQ 1.000 irms 0.000 Lrms 0.000 fnat 1.000 fnonnat 0.000 clashes 0.000 F1 1.000 DockQ_F1 1.000 mapping AH:AH examples/dimer_dimer.model.pdb A H -> examples/dimer_dimer.pdb A H -DockQ 1.000 irms 0.000 Lrms 0.000 fnat 1.000 fnonnat 0.000 clashes 0.000 F1 1.000 DockQ_F1 1.000 mapping LH:LH examples/dimer_dimer.model.pdb L H -> examples/dimer_dimer.pdb L H +DockQ 1.000 iRMSD 0.000 LRMSD 0.000 fnat 1.000 fnonnat 0.000 F1 1.000 clashes 0 mapping AB:AB examples/dimer_dimer.model.pdb A B -> examples/dimer_dimer.pdb A B +DockQ 1.000 iRMSD 0.000 LRMSD 0.000 fnat 1.000 fnonnat 0.000 F1 1.000 clashes 0 mapping AL:AL examples/dimer_dimer.model.pdb A L -> examples/dimer_dimer.pdb A L +DockQ 1.000 iRMSD 0.000 LRMSD 0.000 fnat 1.000 fnonnat 0.000 F1 1.000 clashes 0 mapping AH:AH examples/dimer_dimer.model.pdb A H -> examples/dimer_dimer.pdb A H +DockQ 1.000 iRMSD 0.000 LRMSD 0.000 fnat 1.000 fnonnat 0.000 F1 1.000 clashes 0 mapping LH:LH examples/dimer_dimer.model.pdb L H -> examples/dimer_dimer.pdb L H diff --git a/testdata/model.dockq b/testdata/model.dockq index 9c7b0aa..368468b 100644 --- a/testdata/model.dockq +++ b/testdata/model.dockq @@ -17,10 +17,9 @@ Total DockQ over 1 native interfaces: 0.700 with AB:AB model:native mapping Native chains: A, B Model chains: A, B DockQ: 0.700 - irms: 1.232 - Lrms: 1.516 + iRMSD: 1.232 + LRMSD: 1.516 fnat: 0.533 fnonnat: 0.238 - clashes: 2.000 F1: 0.627 - DockQ_F1: 0.731 + clashes: 2