diff --git a/.gitignore b/.gitignore index e7db7413..bd5aec0e 100644 --- a/.gitignore +++ b/.gitignore @@ -206,50 +206,51 @@ marimo/_static/ marimo/_lsp/ __marimo__/ -# Git-lfs -/test_scores/** - -# Generated outputs in test_data -test_data/**/interfaces.csv - # Ignore all test_data by default, then include only what's required for tests test_data/** !test_data/ +!test_data/af2/positive_dimers/CCP4_benchmarks.csv # AF2 positive dimers used in tests !test_data/af2/ -!test_data/af2/pos_dimers/ -!test_data/af2/pos_dimers/Q13148+Q92900/ -!test_data/af2/pos_dimers/Q13148+Q92900/ranking_debug.json -!test_data/af2/pos_dimers/Q13148+Q92900/pae_model_*.json -!test_data/af2/pos_dimers/Q13148+Q92900/ranked_0.cif -!test_data/af2/pos_dimers/Q13148+Q92900/ranked_0.pdb -!test_data/af2/pos_dimers/Q13148+Q92900/unrelaxed_model_*.pdb +!test_data/af2/positive_dimers/ +!test_data/af2/positive_dimers/Q13148+Q92900/ +!test_data/af2/positive_dimers/Q13148+Q92900/ranking_debug.json +!test_data/af2/positive_dimers/Q13148+Q92900/pae_model_*.json +!test_data/af2/positive_dimers/Q13148+Q92900/ranked_0.cif +!test_data/af2/positive_dimers/Q13148+Q92900/ranked_0.pdb +!test_data/af2/positive_dimers/Q13148+Q92900/unrelaxed_model_*.pdb -!test_data/af2/pos_dimers/Q9BUL8+Q13033/ -!test_data/af2/pos_dimers/Q9BUL8+Q13033/** +!test_data/af2/positive_dimers/Q9BUL8+Q13033/ +!test_data/af2/positive_dimers/Q9BUL8+Q13033/** # AF2 negative dimer sample -!test_data/af2/neg_dimers/ -!test_data/af2/neg_dimers/Q14974+Q13033/ -!test_data/af2/neg_dimers/Q14974+Q13033/** +!test_data/af2/negative_dimers/ +!test_data/af2/negative_dimers/Q14974+Q13033/ +!test_data/af2/negative_dimers/Q14974+Q13033/** + +!test_data/af2/negative_dimers/P46937+P09496/ +!test_data/af2/negative_dimers/P46937+P09496/** # AF3 positive dimers used in tests !test_data/af3/ -!test_data/af3/pos_dimers/ -!test_data/af3/pos_dimers/Q13148+Q92900/ -!test_data/af3/pos_dimers/Q13148+Q92900/ranking_scores.csv -!test_data/af3/pos_dimers/Q13148+Q92900/ranked_0_summary_confidences.json -!test_data/af3/pos_dimers/Q13148+Q92900/ranked_0_model.cif -!test_data/af3/pos_dimers/Q13148+Q92900/seed-*/ -!test_data/af3/pos_dimers/Q13148+Q92900/seed-*/confidences.json -!test_data/af3/pos_dimers/Q13148+Q92900/seed-*/summary_confidences.json -!test_data/af3/pos_dimers/Q13148+Q92900/seed-*/model.cif - -!test_data/af3/pos_dimers/Q9BUL8+Q13033/ -!test_data/af3/pos_dimers/Q9BUL8+Q13033/** +!test_data/af3/positive_dimers/ +!test_data/af3/positive_dimers/Q13148+Q92900/ +!test_data/af3/positive_dimers/Q13148+Q92900/ranking_scores.csv +!test_data/af3/positive_dimers/Q13148+Q92900/ranked_0_summary_confidences.json +!test_data/af3/positive_dimers/Q13148+Q92900/ranked_0_model.cif +!test_data/af3/positive_dimers/Q13148+Q92900/seed-*/ +!test_data/af3/positive_dimers/Q13148+Q92900/seed-*/confidences.json +!test_data/af3/positive_dimers/Q13148+Q92900/seed-*/summary_confidences.json +!test_data/af3/positive_dimers/Q13148+Q92900/seed-*/model.cif + +!test_data/af3/positive_dimers/Q9BUL8+Q13033/ +!test_data/af3/positive_dimers/Q9BUL8+Q13033/** # AF3 negative dimer sample -!test_data/af3/neg_dimers/ -!test_data/af3/neg_dimers/Q14974+Q13033/ -!test_data/af3/neg_dimers/Q14974+Q13033/** +!test_data/af3/negative_dimers/ +!test_data/af3/negative_dimers/Q14974+Q13033/ +!test_data/af3/negative_dimers/Q14974+Q13033/** + +!test_data/af3/negative_dimers/Q13976+Q00534 +!test_data/af3/negative_dimers/Q13976+Q00534/** diff --git a/environment.yaml b/environment.yaml index 2baedfa2..7528fba0 100644 --- a/environment.yaml +++ b/environment.yaml @@ -7,6 +7,7 @@ dependencies: - biopython>=1.83 - pip - pytest + - polars - pytest-xdist - pip: - -e . diff --git a/pyproject.toml b/pyproject.toml index 399f1065..17483f79 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ name = "alphajudge" version = "0.2.0" requires-python = ">=3.10" -dependencies = ["biopython", "numpy", "matplotlib"] +dependencies = ["biopython", "numpy", "matplotlib", "polars"] [project.scripts] alphajudge = "alphajudge.cli:main" diff --git a/test/test_comparison.py b/test/test_comparison.py new file mode 100644 index 00000000..49cac61b --- /dev/null +++ b/test/test_comparison.py @@ -0,0 +1,194 @@ +import pytest +import polars as pl +from pathlib import Path +import csv + +from alphajudge.runner import process_many + +# Column mapping: Defendant -> Acquitted +COLUMN_MAPPING = { + "jobs": "complex", + "iptm_ptm": "iptm_ptm", + "iptm": "iptm", + "pDockQ/mpDockQ": "pDockQ/mpDockQ", + "average_interface_pae": "average_interface_pae", + "interface_average_plddt": "average_interface_plddt", + "interface_num_intf_residues": "Num_intf_residues", + "interface_polar": "Polar", + "interface_hydrophobic": "Hydrophobic", + "interface_charged": "Charged", + "interface_contact_pairs": "contact_pairs", + "interface_sc": "sc", + "interface_hb": "hb", + "interface_sb": "sb", + "interface_solv_en": "int_solv_en", + "interface_area": "int_area", + "interface_score": "pi_score" +} + +# Define per-column tolerances. Defaults to 1e-6 if not specified. +TOLERANCE_MAP = { + # Large magnitude / lower resolution values + "interface_area": 1e-2, # Values > 1000, 2 decimal places often sufficient + "interface_solv_en": 1e-2, # Energy values + "interface_score": 1e-2, # Score complex + "average_interface_pae": 1e-3, # 0-30 range + "interface_average_plddt": 1e-3,# 0-100 range + + # 0-1 scores where precision matters + "iptm": 1e-6, + "ptm": 1e-6, + "iptm_ptm": 1e-6, + "pDockQ/mpDockQ": 1e-6, + "confidence_score": 1e-6, +} + +@pytest.fixture(scope="module") +def benchmark_csv_path() -> Path: + """Path to the authoritative benchmark CSV.""" + return Path("test_data/af2/positive_dimers/CCP4_benchmarks.csv") + +@pytest.fixture(scope="module") +def model_input_paths() -> list[str]: + """List of paths to input models for the test.""" + base = Path("test_data/af2/positive_dimers/") + # You can customize this to be more specific if needed + return [str(p) for p in base.iterdir() if p.is_dir() and p.name not in ["data", "features"]] + +def test_generated_results_vs_benchmark(benchmark_csv_path, model_input_paths, tmp_path): + """ + Runs process_many on the input models and compares the output summary CSV + against the provided benchmark CSV. + """ + if not benchmark_csv_path.exists(): + pytest.skip(f"Benchmark file not found at {benchmark_csv_path}") + + # 1. Run process_many to generate new results + generated_summary_csv = tmp_path / "AJ_summary.csv" + + result_path = process_many( + paths=model_input_paths, + contact_thresh=8.0, + pae_filter=100.0, + models_to_analyse="best", + recursive=False, + summary_csv=str(generated_summary_csv), + ) + + assert result_path is not None, "process_many returned None" + assert generated_summary_csv.exists(), "Summary CSV was not created" + + # 2. Compare generated results with benchmark + _compare_dataframes(generated_summary_csv, benchmark_csv_path) + +def _compare_dataframes(generated_path: Path, benchmark_path: Path): + """ + Helper to compare two CSVs using Polars. + generated_path: Path to the newly generated CSV. + benchmark_path: Path to the reference CSV. + """ + df_generated = pl.read_csv(generated_path) + df_benchmark = pl.read_csv(benchmark_path) + + # Validate mapping keys exist in generated data + for gen_col in COLUMN_MAPPING.keys(): + if gen_col not in df_generated.columns: + pytest.fail(f"Expected column '{gen_col}' not found in generated output.") + + # Select and rename columns from Benchmark to match Generated names (reverse mapping) + # We want to compare Generated[Col] vs Benchmark[MappedCol] + + # Prepare benchmark DF for join: Keep only relevant columns and rename them to match generated + # This makes joining and comparing easier + + # Prepare benchmark DF for join: Keep only relevant columns and rename them to match generated + # This makes joining and comparing easier + + # 1. Identify which mapped columns actually exist in the benchmark + valid_mapping = {k: v for k, v in COLUMN_MAPPING.items() if v in df_benchmark.columns} + + # Check for missing columns and warn + missing_bench_cols = [v for v in COLUMN_MAPPING.values() if v not in df_benchmark.columns] + if missing_bench_cols: + print(f"Benchmark CSV missing valid columns (skipping these): {missing_bench_cols}") + + # Ensure the Key ID column ('complex' -> 'jobs') is present + if COLUMN_MAPPING["jobs"] not in df_benchmark.columns: + pytest.fail(f"Critical benchmark column '{COLUMN_MAPPING['jobs']}' is missing. Cannot join.") + + # Create a mapping for renaming benchmark columns -> generated column names + # Mapping is {GeneratedName: BenchmarkName} -> we want {BenchmarkName: GeneratedName} + bench_rename_map = {v: k for k, v in valid_mapping.items()} + + # Select only the columns we care about + rename them + df_benchmark_clean = df_benchmark.select( + list(bench_rename_map.keys()) + ).rename(bench_rename_map) + + # "jobs" is our join key. Ensure it's present and unique-ish if possible. + assert "jobs" in df_benchmark_clean.columns + assert "jobs" in df_generated.columns + + # Join on 'jobs' + # suffix="_bench" will be applied to columns from the benchmark DF where names collide + joined = df_generated.join( + df_benchmark_clean, + on="jobs", + how="inner", + suffix="_bench" + ) + + if joined.height == 0: + pytest.fail("Inner join of generated results and benchmark resulted in 0 rows. Check 'jobs'/'complex' identifiers.") + + cols_to_check = [c for c in valid_mapping.keys() if c != "jobs"] + + failures = [] + + for col in cols_to_check: + col_bench = f"{col}_bench" + + # Numeric comparison with tolerance + # We filter for valid (non-null) pairs + valid_mask = joined.select( + pl.col(col).is_not_null() & pl.col(col_bench).is_not_null() + ).to_series() + + if not valid_mask.any(): + continue + + diffs = joined.filter(valid_mask).select( + (pl.col(col) - pl.col(col_bench)).abs().alias("diff") + ) + + max_diff = diffs.select(pl.col("diff").max()).item() + + # Determine tolerance for this column + tol = TOLERANCE_MAP.get(col, 1e-6) + + if max_diff > tol: + # Collect details on failing rows + failing_rows = joined.filter( + valid_mask & ((pl.col(col) - pl.col(col_bench)).abs() > tol) + ).select(["jobs", col, col_bench]) + + failures.append(f"Column '{col}' mismatch. Max diff: {max_diff} > tol {tol}. {failing_rows.height} failing rows.") + + # Check Correlation (Spearman) + # Only meaningful if we have enough distinct values + n_unique = joined.select(pl.col(col).n_unique()).item() + if n_unique > 1: + try: + corr = joined.select( + pl.corr(col, col_bench, method="spearman") + ).item() + + # If valid correlation, strict check + if corr is not None and corr < 0.99: + failures.append(f"Column '{col}' Spearman correlation too low: {corr:.4f}") + except Exception as e: + # Polars might error on edge cases + pass + + if failures: + pytest.fail("\n".join(failures)) diff --git a/test/test_parsers_and_runner.py b/test/test_parsers_and_runner.py index 0929fa99..8b6d7031 100644 --- a/test/test_parsers_and_runner.py +++ b/test/test_parsers_and_runner.py @@ -15,43 +15,43 @@ @pytest.fixture(scope="module") def af2_dir() -> Path: """Single AF2 positive dimer used for detailed score checks.""" - return Path("test_data/af2/pos_dimers/Q13148+Q92900") + return Path("test_data/af2/positive_dimers/Q13148+Q92900") @pytest.fixture(scope="module") def af3_dir() -> Path: """Single AF3 positive dimer used for detailed score checks.""" - return Path("test_data/af3/pos_dimers/Q13148+Q92900") + return Path("test_data/af3/positive_dimers/Q13148+Q92900") @pytest.fixture(scope="module") def af2_pos_sample() -> list[Path]: """Small AF2 positive-dimer sample to keep tests fast.""" return [ - Path("test_data/af2/pos_dimers/Q13148+Q92900"), - Path("test_data/af2/pos_dimers/Q9BUL8+Q13033"), + Path("test_data/af2/positive_dimers/Q13148+Q92900"), + Path("test_data/af2/positive_dimers/Q9BUL8+Q13033"), ] @pytest.fixture(scope="module") def af2_neg_sample() -> list[Path]: """Single AF2 negative dimer for regression checks.""" - return [Path("test_data/af2/neg_dimers/Q14974+Q13033")] + return [Path("test_data/af2/negative_dimers/Q14974+Q13033")] @pytest.fixture(scope="module") def af3_pos_sample() -> list[Path]: """Small AF3 positive-dimer sample to keep tests fast.""" return [ - Path("test_data/af3/pos_dimers/Q13148+Q92900"), - Path("test_data/af3/pos_dimers/Q9BUL8+Q13033"), + Path("test_data/af3/positive_dimers/Q13148+Q92900"), + Path("test_data/af3/positive_dimers/Q9BUL8+Q13033"), ] @pytest.fixture(scope="module") def af3_neg_sample() -> list[Path]: """Single AF3 negative dimer for regression checks.""" - return [Path("test_data/af3/neg_dimers/Q14974+Q13033")] + return [Path("test_data/af3/negative_dimers/Q14974+Q13033")] def read_csv_rows(path: Path): diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/analysis.csv b/test_data/af2/negative_dimers/Q14974+Q13033/analysis.csv similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/analysis.csv rename to test_data/af2/negative_dimers/Q14974+Q13033/analysis.csv diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/completed_fold.txt b/test_data/af2/negative_dimers/Q14974+Q13033/completed_fold.txt similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/completed_fold.txt rename to test_data/af2/negative_dimers/Q14974+Q13033/completed_fold.txt diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/confidence_model_1_multimer_v3_pred_0.json b/test_data/af2/negative_dimers/Q14974+Q13033/confidence_model_1_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/confidence_model_1_multimer_v3_pred_0.json rename to test_data/af2/negative_dimers/Q14974+Q13033/confidence_model_1_multimer_v3_pred_0.json diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/confidence_model_2_multimer_v3_pred_0.json b/test_data/af2/negative_dimers/Q14974+Q13033/confidence_model_2_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/confidence_model_2_multimer_v3_pred_0.json rename to test_data/af2/negative_dimers/Q14974+Q13033/confidence_model_2_multimer_v3_pred_0.json diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/confidence_model_3_multimer_v3_pred_0.json b/test_data/af2/negative_dimers/Q14974+Q13033/confidence_model_3_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/confidence_model_3_multimer_v3_pred_0.json rename to test_data/af2/negative_dimers/Q14974+Q13033/confidence_model_3_multimer_v3_pred_0.json diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/confidence_model_4_multimer_v3_pred_0.json b/test_data/af2/negative_dimers/Q14974+Q13033/confidence_model_4_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/confidence_model_4_multimer_v3_pred_0.json rename to test_data/af2/negative_dimers/Q14974+Q13033/confidence_model_4_multimer_v3_pred_0.json diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/confidence_model_5_multimer_v3_pred_0.json b/test_data/af2/negative_dimers/Q14974+Q13033/confidence_model_5_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/confidence_model_5_multimer_v3_pred_0.json rename to test_data/af2/negative_dimers/Q14974+Q13033/confidence_model_5_multimer_v3_pred_0.json diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/interfaces.csv b/test_data/af2/negative_dimers/Q14974+Q13033/interfaces.csv similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/interfaces.csv rename to test_data/af2/negative_dimers/Q14974+Q13033/interfaces.csv diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/pae_model_1_multimer_v3_pred_0.json b/test_data/af2/negative_dimers/Q14974+Q13033/pae_model_1_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/pae_model_1_multimer_v3_pred_0.json rename to test_data/af2/negative_dimers/Q14974+Q13033/pae_model_1_multimer_v3_pred_0.json diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/pae_model_2_multimer_v3_pred_0.json b/test_data/af2/negative_dimers/Q14974+Q13033/pae_model_2_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/pae_model_2_multimer_v3_pred_0.json rename to test_data/af2/negative_dimers/Q14974+Q13033/pae_model_2_multimer_v3_pred_0.json diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/pae_model_3_multimer_v3_pred_0.json b/test_data/af2/negative_dimers/Q14974+Q13033/pae_model_3_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/pae_model_3_multimer_v3_pred_0.json rename to test_data/af2/negative_dimers/Q14974+Q13033/pae_model_3_multimer_v3_pred_0.json diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/pae_model_3_multimer_v3_pred_0.png b/test_data/af2/negative_dimers/Q14974+Q13033/pae_model_3_multimer_v3_pred_0.png similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/pae_model_3_multimer_v3_pred_0.png rename to test_data/af2/negative_dimers/Q14974+Q13033/pae_model_3_multimer_v3_pred_0.png diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/pae_model_4_multimer_v3_pred_0.json b/test_data/af2/negative_dimers/Q14974+Q13033/pae_model_4_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/pae_model_4_multimer_v3_pred_0.json rename to test_data/af2/negative_dimers/Q14974+Q13033/pae_model_4_multimer_v3_pred_0.json diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/pae_model_5_multimer_v3_pred_0.json b/test_data/af2/negative_dimers/Q14974+Q13033/pae_model_5_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/pae_model_5_multimer_v3_pred_0.json rename to test_data/af2/negative_dimers/Q14974+Q13033/pae_model_5_multimer_v3_pred_0.json diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/pae_plot_ranked_0.png b/test_data/af2/negative_dimers/Q14974+Q13033/pae_plot_ranked_0.png similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/pae_plot_ranked_0.png rename to test_data/af2/negative_dimers/Q14974+Q13033/pae_plot_ranked_0.png diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/pae_plot_ranked_1.png b/test_data/af2/negative_dimers/Q14974+Q13033/pae_plot_ranked_1.png similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/pae_plot_ranked_1.png rename to test_data/af2/negative_dimers/Q14974+Q13033/pae_plot_ranked_1.png diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/pae_plot_ranked_2.png b/test_data/af2/negative_dimers/Q14974+Q13033/pae_plot_ranked_2.png similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/pae_plot_ranked_2.png rename to test_data/af2/negative_dimers/Q14974+Q13033/pae_plot_ranked_2.png diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/pae_plot_ranked_3.png b/test_data/af2/negative_dimers/Q14974+Q13033/pae_plot_ranked_3.png similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/pae_plot_ranked_3.png rename to test_data/af2/negative_dimers/Q14974+Q13033/pae_plot_ranked_3.png diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/pae_plot_ranked_4.png b/test_data/af2/negative_dimers/Q14974+Q13033/pae_plot_ranked_4.png similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/pae_plot_ranked_4.png rename to test_data/af2/negative_dimers/Q14974+Q13033/pae_plot_ranked_4.png diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/ranked_0.cif b/test_data/af2/negative_dimers/Q14974+Q13033/ranked_0.cif similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/ranked_0.cif rename to test_data/af2/negative_dimers/Q14974+Q13033/ranked_0.cif diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/ranked_0.pdb b/test_data/af2/negative_dimers/Q14974+Q13033/ranked_0.pdb similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/ranked_0.pdb rename to test_data/af2/negative_dimers/Q14974+Q13033/ranked_0.pdb diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/ranked_1.cif b/test_data/af2/negative_dimers/Q14974+Q13033/ranked_1.cif similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/ranked_1.cif rename to test_data/af2/negative_dimers/Q14974+Q13033/ranked_1.cif diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/ranked_1.pdb b/test_data/af2/negative_dimers/Q14974+Q13033/ranked_1.pdb similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/ranked_1.pdb rename to test_data/af2/negative_dimers/Q14974+Q13033/ranked_1.pdb diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/ranked_2.cif b/test_data/af2/negative_dimers/Q14974+Q13033/ranked_2.cif similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/ranked_2.cif rename to test_data/af2/negative_dimers/Q14974+Q13033/ranked_2.cif diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/ranked_2.pdb b/test_data/af2/negative_dimers/Q14974+Q13033/ranked_2.pdb similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/ranked_2.pdb rename to test_data/af2/negative_dimers/Q14974+Q13033/ranked_2.pdb diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/ranked_3.cif b/test_data/af2/negative_dimers/Q14974+Q13033/ranked_3.cif similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/ranked_3.cif rename to test_data/af2/negative_dimers/Q14974+Q13033/ranked_3.cif diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/ranked_3.pdb b/test_data/af2/negative_dimers/Q14974+Q13033/ranked_3.pdb similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/ranked_3.pdb rename to test_data/af2/negative_dimers/Q14974+Q13033/ranked_3.pdb diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/ranked_4.cif b/test_data/af2/negative_dimers/Q14974+Q13033/ranked_4.cif similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/ranked_4.cif rename to test_data/af2/negative_dimers/Q14974+Q13033/ranked_4.cif diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/ranked_4.pdb b/test_data/af2/negative_dimers/Q14974+Q13033/ranked_4.pdb similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/ranked_4.pdb rename to test_data/af2/negative_dimers/Q14974+Q13033/ranked_4.pdb diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/ranking_debug.json b/test_data/af2/negative_dimers/Q14974+Q13033/ranking_debug.json similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/ranking_debug.json rename to test_data/af2/negative_dimers/Q14974+Q13033/ranking_debug.json diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/result_model_1_multimer_v3_pred_0.pkl b/test_data/af2/negative_dimers/Q14974+Q13033/result_model_1_multimer_v3_pred_0.pkl similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/result_model_1_multimer_v3_pred_0.pkl rename to test_data/af2/negative_dimers/Q14974+Q13033/result_model_1_multimer_v3_pred_0.pkl diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/result_model_2_multimer_v3_pred_0.pkl b/test_data/af2/negative_dimers/Q14974+Q13033/result_model_2_multimer_v3_pred_0.pkl similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/result_model_2_multimer_v3_pred_0.pkl rename to test_data/af2/negative_dimers/Q14974+Q13033/result_model_2_multimer_v3_pred_0.pkl diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/result_model_3_multimer_v3_pred_0.pkl b/test_data/af2/negative_dimers/Q14974+Q13033/result_model_3_multimer_v3_pred_0.pkl similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/result_model_3_multimer_v3_pred_0.pkl rename to test_data/af2/negative_dimers/Q14974+Q13033/result_model_3_multimer_v3_pred_0.pkl diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/result_model_4_multimer_v3_pred_0.pkl b/test_data/af2/negative_dimers/Q14974+Q13033/result_model_4_multimer_v3_pred_0.pkl similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/result_model_4_multimer_v3_pred_0.pkl rename to test_data/af2/negative_dimers/Q14974+Q13033/result_model_4_multimer_v3_pred_0.pkl diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/result_model_5_multimer_v3_pred_0.pkl b/test_data/af2/negative_dimers/Q14974+Q13033/result_model_5_multimer_v3_pred_0.pkl similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/result_model_5_multimer_v3_pred_0.pkl rename to test_data/af2/negative_dimers/Q14974+Q13033/result_model_5_multimer_v3_pred_0.pkl diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/timings.json b/test_data/af2/negative_dimers/Q14974+Q13033/timings.json similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/timings.json rename to test_data/af2/negative_dimers/Q14974+Q13033/timings.json diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/unrelaxed_model_1_multimer_v3_pred_0.pdb b/test_data/af2/negative_dimers/Q14974+Q13033/unrelaxed_model_1_multimer_v3_pred_0.pdb similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/unrelaxed_model_1_multimer_v3_pred_0.pdb rename to test_data/af2/negative_dimers/Q14974+Q13033/unrelaxed_model_1_multimer_v3_pred_0.pdb diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/unrelaxed_model_2_multimer_v3_pred_0.pdb b/test_data/af2/negative_dimers/Q14974+Q13033/unrelaxed_model_2_multimer_v3_pred_0.pdb similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/unrelaxed_model_2_multimer_v3_pred_0.pdb rename to test_data/af2/negative_dimers/Q14974+Q13033/unrelaxed_model_2_multimer_v3_pred_0.pdb diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/unrelaxed_model_3_multimer_v3_pred_0.pdb b/test_data/af2/negative_dimers/Q14974+Q13033/unrelaxed_model_3_multimer_v3_pred_0.pdb similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/unrelaxed_model_3_multimer_v3_pred_0.pdb rename to test_data/af2/negative_dimers/Q14974+Q13033/unrelaxed_model_3_multimer_v3_pred_0.pdb diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/unrelaxed_model_4_multimer_v3_pred_0.pdb b/test_data/af2/negative_dimers/Q14974+Q13033/unrelaxed_model_4_multimer_v3_pred_0.pdb similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/unrelaxed_model_4_multimer_v3_pred_0.pdb rename to test_data/af2/negative_dimers/Q14974+Q13033/unrelaxed_model_4_multimer_v3_pred_0.pdb diff --git a/test_data/af2/neg_dimers/Q14974+Q13033/unrelaxed_model_5_multimer_v3_pred_0.pdb b/test_data/af2/negative_dimers/Q14974+Q13033/unrelaxed_model_5_multimer_v3_pred_0.pdb similarity index 100% rename from test_data/af2/neg_dimers/Q14974+Q13033/unrelaxed_model_5_multimer_v3_pred_0.pdb rename to test_data/af2/negative_dimers/Q14974+Q13033/unrelaxed_model_5_multimer_v3_pred_0.pdb diff --git a/test_data/af2/positive_dimers/CCP4_benchmarks.csv b/test_data/af2/positive_dimers/CCP4_benchmarks.csv new file mode 100644 index 00000000..e4d3eb0b --- /dev/null +++ b/test_data/af2/positive_dimers/CCP4_benchmarks.csv @@ -0,0 +1,217 @@ +complex,interface_name,int_area,pvalue,int_solv_en,hb,sb +O00189+Q9UPM8,7_8,2102.27,0.23,-21.94,7,4 +O00212+Q9HAD4,9_A,892.16,0.23,-10.97,4,1 +O00541+Q14684,9_A,182.98,0.49,-1.5,0,0 +O14544+Q86XK2,7_8,2850.76,0.5,-18.04,24,14 +O14641+P10515,A_B,3097.67,0.45,-24.4,38,2 +O14641+Q13501,8_9,3805.98,0.72,-29.04,25,22 +O14976+Q13470,7_8,3574.86,0.68,-23.32,27,17 +O15294+P60228,A_B,1351.09,0.17,-12.57,3,4 +O43264+Q9UFG5,9_A,2187.67,0.08,-35.99,11,10 +O43402+P36776,9_A,565.73,0.61,-0.85,3,0 +O43463+O75558,9_A,2356.01,0.48,-6.84,22,18 +O43660+O43172,9_A,2537.91,0.37,-15.47,22,2 +O43663+Q13242,A_B,505.14,0.83,4.48,5,6 +O43747+Q10589,9_A,113.43,0.79,1.65,1,0 +O43752+Q8N5G2,7_8,4509.01,0.14,-64.73,18,8 +O60508+Q15393,7_8,496.09,0.27,-2.72,0,3 +O60566+Q16610,9_A,2200.23,0.52,-12.03,27,14 +O60763+Q8WVM8,A_B,1552.55,0.65,-5.9,13,4 +O75069+Q3B820,8_9,4599.7,0.12,-61.88,33,11 +O75528+Q6P2E9,6_7,2907.27,0.52,-26.37,23,8 +O75570+Q8N442,9_A,1137.48,0.78,3.88,10,0 +O75582+Q9UNM6,A_B,1410.48,0.25,-11.95,3,6 +O75787+P36543,6_7,402.37,0.46,-4.25,0,1 +O75791+Q9ULH1,9_A,1879.97,0.35,-12.15,9,6 +O94972+Q6UWP8,7_8,2220.19,0.62,-12.09,15,5 +O94992+O95347,A_B,2599.54,0.59,-6.47,33,7 +O94992+Q8NFW8,A_B,1046.06,0.45,-5.86,4,5 +O95235+Q16576,A_B,2453.79,0.58,-10.57,14,11 +O95817+P04424,8_9,104.86,0.38,-1.77,0,0 +O95900+P08559,8_9,268.6,0.65,0.53,2,0 +P01375+P41273,A_B,899.78,0.51,-10.74,1,0 +P02545+Q9BX63,8_9,2266.8,0.38,-14.02,22,3 +P04629+Q92974,A_B,4708.37,0.61,-29.01,43,7 +P07919+P11177,8_9,245.3,0.19,-5.02,0,0 +P07949+P49757,8_9,4845.05,0.74,-35.53,27,9 +P08133+P30084,A_B,300.75,0.29,-0.79,3,0 +P09496+P42566,A_B,2002.14,0.73,-15.04,11,2 +P09874+Q92973,A_B,5839.8,0.79,-5.82,69,22 +P11177+Q8IUR7,8_9,517.19,0.61,-0.37,3,1 +P12821+P68400,6_7,2510.64,0.0,-34.85,29,1 +P12956+Q9UI36,6_7,954.7,0.58,-7.87,3,7 +P13569+O75477,A_B,353.88,0.96,5.74,0,7 +P14616+Q16543,7_8,521.04,0.67,-0.06,1,5 +P14866+P56545,8_9,1496.16,0.6,-4.94,12,2 +P14866+P56945,A_B,2955.32,0.27,-30.58,9,4 +P14866+Q86X10,8_9,2589.66,0.46,-17.01,25,3 +P19021+Q92574,7_8,2665.8,0.57,-22.04,12,0 +P20290+P83731,8_9,698.01,0.76,1.18,3,0 +P23497+P51570,8_9,516.7,0.54,-0.62,4,0 +P23508+P33991,9_A,228.84,0.72,0.45,1,0 +P24539+Q9UII2,6_7,1345.79,0.34,-15.74,2,6 +P25786+Q9P2A4,9_A,513.93,0.69,-2.09,3,1 +P31943+A8MQ27,A_B,4145.93,0.6,-27.93,58,16 +P32971+P51956,7_8,1510.05,0.52,-14.48,3,2 +P33991+Q9UQE7,8_9,430.66,0.33,-3.23,7,0 +P35228+Q96A44,7_8,1139.42,0.04,-16.24,3,0 +P35240+Q6ZNE9,8_9,3476.89,0.0,-62.35,7,16 +P36957+Q96L03,A_B,237.14,0.49,-1.73,1,0 +P40855+Q08379,7_8,1450.4,0.66,-10.36,12,0 +P41279+Q9Y4K3,A_B,910.65,0.43,-6.56,3,5 +P42695+P53350,8_9,3163.83,0.11,-28.27,21,1 +P43034+Q15555,8_9,2430.54,0.01,-36.95,11,10 +P46934+Q9P1Z2,A_B,3101.54,0.88,-5.37,21,3 +P49257+P09972,6_7,640.86,0.61,-0.37,3,4 +P49257+Q9H6T3,6_7,5443.21,0.22,-57.57,46,11 +P49736+P28331,7_8,90.82,0.6,-0.09,0,2 +P50542+Q49A88,7_8,5216.61,0.76,-36.8,39,4 +P51955+Q5T7B8,7_8,2674.04,0.57,-14.61,19,5 +P53041+Q99683,7_8,2614.37,0.56,-6.63,32,0 +P55072+P0DPB3,7_8,898.99,0.46,-3.84,4,4 +P55072+Q6UXN9,6_7,1064.0,0.68,2.51,16,1 +P55072+Q9GZT3,6_7,1026.24,0.75,4.37,3,10 +P56945+Q92882,8_9,2329.9,0.67,-8.85,14,20 +P56962+Q14764,9_A,231.27,0.25,-3.64,0,0 +P57078+Q00688,9_A,1677.35,0.89,6.05,13,12 +P57081+Q96PK6,A_B,861.8,0.66,-3.12,6,4 +P60468+Q9NZJ5,9_A,895.6,0.65,-9.1,6,0 +P61764+Q53S33,A_B,1242.55,0.52,-6.94,7,4 +P61964+P11177,7_8,876.52,0.45,-6.71,4,0 +P78317+Q8IZL8,8_9,2029.92,0.59,-14.42,27,3 +P78317+Q96RQ1,9_A,1444.87,0.06,-21.64,14,0 +Q00653+O14920,6_7,1694.5,0.21,-18.93,18,0 +Q01804+Q9HB71,7_8,2887.6,0.33,-24.94,28,10 +Q01804+Q9UPR3,A_B,5146.63,0.14,-41.67,33,7 +Q02241+P33897,A_B,1240.36,0.37,-12.31,11,5 +Q12933+O95816,8_9,363.15,0.88,6.05,0,2 +Q13033+Q14BN4,A_B,5818.7,0.5,-46.39,45,16 +Q13148+Q92900,9_A,2114.03,0.83,-3.68,16,5 +Q13263+P18074,9_A,1600.44,0.59,-6.86,12,4 +Q13263+P53621,9_A,676.68,0.88,3.1,3,9 +Q13617+P22061,8_9,846.97,0.28,-7.71,4,0 +Q13637+Q14134,8_9,691.74,0.41,-5.79,3,1 +Q13751+Q9UBB4,A_B,1858.84,0.52,-12.23,7,4 +Q13825+Q15118,9_A,641.81,0.66,-2.51,5,1 +Q14258+Q8IWX8,9_A,2286.56,0.55,-15.36,18,3 +Q14258+Q9Y3Z3,A_B,1563.75,0.51,-7.61,12,4 +Q15006+Q8IWX8,8_9,2736.22,0.41,-13.27,19,11 +Q15020+P49720,A_B,565.42,0.62,-1.19,3,12 +Q15029+P55209,8_9,375.8,0.88,5.18,3,1 +Q15051+P28066,A_B,706.74,0.75,1.72,4,1 +Q15118+P08559,8_9,191.16,0.62,0.14,1,0 +Q15118+P27144,7_8,1240.75,0.8,1.37,9,4 +Q15170+Q9Y4C1,8_9,3867.22,0.18,-31.4,24,10 +Q15287+Q9UPV0,7_8,1691.04,0.31,-10.37,10,3 +Q16513+Q07065,8_9,2764.79,0.58,-15.19,20,17 +Q16659+Q99797,8_9,6647.76,0.28,-49.49,46,14 +Q18PE1+O15146,9_A,3196.3,0.69,-19.79,25,4 +Q27J81+Q9UL15,A_B,2275.2,0.63,-1.41,26,8 +Q32MZ4+P35250,9_A,483.15,0.81,2.11,2,7 +Q4G0J3+Q96GA3,8_9,3076.34,0.49,-18.15,26,11 +Q5HYJ3+Q8NDT2,7_8,1097.68,0.41,-6.05,2,5 +Q5T4F4+Q9UII2,8_9,1787.91,0.51,-16.06,15,7 +Q5T8D3+Q9NSV4,7_8,3736.8,0.5,-27.97,27,10 +Q5XPI4+Q5T4F4,7_8,2130.14,0.51,-11.77,14,3 +Q5XPI4+Q6IPM2,9_A,2690.59,0.8,-6.29,9,6 +Q676U5+P55884,8_9,1721.96,0.2,-10.84,21,8 +Q6IQ23+P23588,9_A,1562.32,0.49,-4.23,7,5 +Q6NVH7+Q3MIN7,6_7,1792.45,0.26,-18.45,8,15 +Q6P4A8+Q96EP0,A_B,1560.7,0.42,-14.22,6,0 +Q6XE24+Q9BYN8,8_9,481.84,0.65,-2.87,4,0 +Q7Z2W4+O95900,6_7,383.77,0.64,0.09,0,4 +Q7Z699+Q8WVD3,9_A,1603.45,0.64,-0.39,7,9 +Q7Z7C8+Q92750,A_B,1493.3,0.69,-15.02,11,1 +Q86TG7+O95751,7_8,3579.4,0.31,-39.58,18,20 +Q86UY6+Q76FK4,9_A,1769.02,0.14,-20.08,8,8 +Q86UY6+Q9NRZ9,8_9,1152.33,0.8,2.6,2,4 +Q86UY6+Q9UHX1,6_7,1979.17,0.4,-17.98,14,16 +Q86V48+P04792,7_8,951.59,0.56,-5.7,3,3 +Q86V81+Q9BYN8,6_7,701.11,0.53,-3.87,3,5 +Q86VM9+O14654,9_A,4947.86,0.85,2.56,30,19 +Q86WT6+Q8N9S9,7_8,106.35,0.82,1.59,0,0 +Q86YT6+Q15050,8_9,224.09,0.73,1.33,1,2 +Q8IUW3+P54252,A_B,2188.76,0.54,-17.98,19,2 +Q8IXM3+Q6P1L8,7_8,195.11,0.81,0.26,0,0 +Q8IY18+Q96SB8,9_A,5535.32,0.83,17.43,45,39 +Q8IY31+O00471,9_A,1919.48,0.0,-37.38,4,3 +Q8IY31+Q9NYP9,A_B,1448.55,0.34,-23.08,8,5 +Q8N465+Q9P253,7_8,155.99,0.42,-0.56,1,0 +Q8N5H7+P04792,A_B,2703.02,0.3,-37.04,9,8 +Q8N684+Q9NRA8,A_B,3429.37,0.82,-16.48,18,4 +Q8NA56+Q70UQ0,A_B,1753.44,0.51,-16.16,15,2 +Q8NFZ5+Q96BD8,9_A,1940.41,0.52,-14.73,9,7 +Q8NHH9+Q8TEH3,7_8,1348.67,0.67,-6.25,6,1 +Q8NHQ8+P41743,A_B,2752.66,0.74,-6.39,19,18 +Q8TAP6+P83731,6_7,1087.05,0.38,-8.29,4,0 +Q8TB24+Q4G0F5,9_A,2030.31,0.41,-11.98,8,1 +Q8TEA7+Q9ULJ8,8_9,2129.38,0.36,-16.45,11,6 +Q8TEW0+Q96ST8,8_9,5318.46,0.6,-25.88,39,14 +Q8WV28+Q9Y5K6,9_A,3009.13,0.37,-28.21,19,21 +Q92615+Q9UN86,A_B,2966.99,0.51,-19.26,21,6 +Q92769+Q9P270,6_7,3366.11,0.15,-32.4,25,5 +Q96DX7+Q86WT6,A_B,4402.5,0.0,-82.57,10,12 +Q96EP0+Q01804,7_8,5746.31,0.49,-45.84,40,12 +Q96EP0+Q14677,7_8,3834.18,0.43,-40.1,34,1 +Q96G01+Q86W92,A_B,1510.61,0.66,-4.54,3,0 +Q96G30+Q9NP58,8_9,2099.37,0.16,-30.95,6,0 +Q96GG9+Q16531,8_9,1728.3,0.43,-5.11,9,4 +Q96JB5+P04792,8_9,1374.73,0.1,-22.18,1,2 +Q96JK2+P61758,7_8,2265.49,0.17,-22.89,14,12 +Q96K19+O75477,9_A,1213.18,0.15,-23.08,3,3 +Q96K80+O75400,A_B,2291.0,0.76,-7.74,9,15 +Q96KS9+Q9H6D7,8_9,928.4,0.57,-10.08,5,9 +Q96NL6+Q9NX08,A_B,36.4,0.86,1.1,0,0 +Q96PC5+Q9Y4K3,8_9,4234.31,0.19,-48.3,24,14 +Q96ST3+P12755,8_9,3896.38,0.32,-41.33,25,0 +Q99440+Q99871,7_8,1686.97,0.17,-29.55,2,0 +Q99558+Q14974,A_B,7865.11,0.67,-49.6,52,29 +Q99759+Q9GZV5,7_8,4681.41,0.26,-56.1,22,6 +Q99871+P28331,A_B,961.7,0.82,-1.52,7,8 +Q9BQ67+Q14692,6_7,1569.43,0.68,-1.88,4,10 +Q9BST9+Q6ZW31,7_8,2378.11,0.08,-38.99,8,5 +Q9BUL8+Q13033,7_8,2717.28,0.18,-30.22,17,3 +Q9BXW6+Q8NHP6,A_B,2767.17,0.35,-20.46,43,17 +Q9BYF1+Q6ZVF9,7_8,5687.18,0.49,-41.37,42,6 +Q9C0B0+Q17RY0,A_B,3148.05,0.77,-21.34,17,22 +Q9H1I8+P22314,A_B,7197.32,0.17,-44.32,56,28 +Q9H270+O15116,7_8,110.14,0.72,0.7,1,1 +Q9H4L7+P35250,7_8,223.81,0.4,-0.77,1,0 +Q9H4M7+P33992,9_A,603.76,0.32,-6.12,1,4 +Q9H4M7+Q99567,A_B,1704.51,0.68,-11.62,6,8 +Q9H5K3+Q9NTJ3,8_9,857.7,0.31,-8.77,3,1 +Q9H6U6+Q8IUH5,A_B,4477.03,0.46,-41.44,19,9 +Q9H8V3+Q96MY7,A_B,4652.26,0.27,-45.0,19,9 +Q9H967+P18615,9_A,1931.19,0.81,1.45,7,15 +Q9HBD1+P60228,A_B,1671.95,0.39,-13.51,2,3 +Q9HBD1+Q14137,A_B,2804.0,0.66,-12.84,13,21 +Q9HC77+Q9H3R5,9_A,4286.92,0.09,-54.59,10,17 +Q9HCD5+Q07666,6_7,2098.24,0.64,-10.01,21,0 +Q9HCE1+P34947,8_9,2978.49,0.15,-18.95,36,7 +Q9NP66+Q9UBU8,9_A,1781.06,0.13,-19.25,10,0 +Q9NQW6+P62826,A_B,2995.27,0.49,-15.18,15,15 +Q9NQW6+Q9ULJ8,A_B,6228.75,0.76,-31.28,49,17 +Q9NQY0+Q8WTW3,A_B,981.81,0.01,-20.91,5,0 +Q9NQY0+Q9NYB9,6_7,1201.03,0.37,-16.59,4,0 +Q9NR56+Q9UDY2,8_9,5153.09,0.52,-19.55,66,9 +Q9NRC1+Q16880,7_8,921.48,0.04,-21.16,4,0 +Q9NRD5+Q96LK0,9_A,470.62,0.48,-3.32,2,0 +Q9NS91+O94906,A_B,2275.11,0.84,-0.52,14,18 +Q9NV06+Q96QC0,7_8,2250.4,0.51,-15.75,18,5 +Q9NVC6+Q14C86,9_A,1678.67,0.5,-9.9,12,6 +Q9NWD9+P42773,A_B,1276.58,0.07,-12.21,5,5 +Q9NX55+Q14457,A_B,1237.19,0.36,-14.12,6,2 +Q9NZQ3+P19174,7_8,629.27,0.55,-0.72,3,0 +Q9P0P0+O43684,8_9,1569.28,0.52,-5.71,7,2 +Q9P253+Q8NCE0,7_8,387.93,0.22,-5.32,0,0 +Q9P2E8+Q9NP78,7_8,460.46,0.4,-6.08,1,0 +Q9UBF6+Q8WVD3,8_9,1069.26,0.72,1.19,10,4 +Q9UER7+P27037,6_7,1566.08,0.33,-10.77,16,5 +Q9UJT2+Q9UPT5,9_A,2550.06,0.01,-51.3,15,8 +Q9UKA1+Q96T76,7_8,2112.41,0.45,-17.27,13,3 +Q9UNK0+Q12981,8_9,2866.5,0.13,-46.82,10,2 +Q9UQ80+P06400,8_9,1689.45,0.45,-6.7,6,5 +Q9UQB8+O14910,8_9,688.14,0.73,-1.63,6,0 +Q9Y2D8+Q96JH7,A_B,6598.27,0.63,-40.99,50,24 +Q9Y3C5+Q86Y13,9_A,2626.83,0.57,-20.72,15,5 +Q9Y3D6+Q5T8D3,6_7,691.94,0.26,-9.94,3,1 diff --git a/test_data/af2/pos_dimers/Q13148+Q92900/pae_model_1_multimer_v3_pred_0.json b/test_data/af2/positive_dimers/Q13148+Q92900/pae_model_1_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/pos_dimers/Q13148+Q92900/pae_model_1_multimer_v3_pred_0.json rename to test_data/af2/positive_dimers/Q13148+Q92900/pae_model_1_multimer_v3_pred_0.json diff --git a/test_data/af2/pos_dimers/Q13148+Q92900/pae_model_2_multimer_v3_pred_0.json b/test_data/af2/positive_dimers/Q13148+Q92900/pae_model_2_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/pos_dimers/Q13148+Q92900/pae_model_2_multimer_v3_pred_0.json rename to test_data/af2/positive_dimers/Q13148+Q92900/pae_model_2_multimer_v3_pred_0.json diff --git a/test_data/af2/pos_dimers/Q13148+Q92900/pae_model_3_multimer_v3_pred_0.json b/test_data/af2/positive_dimers/Q13148+Q92900/pae_model_3_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/pos_dimers/Q13148+Q92900/pae_model_3_multimer_v3_pred_0.json rename to test_data/af2/positive_dimers/Q13148+Q92900/pae_model_3_multimer_v3_pred_0.json diff --git a/test_data/af2/pos_dimers/Q13148+Q92900/pae_model_4_multimer_v3_pred_0.json b/test_data/af2/positive_dimers/Q13148+Q92900/pae_model_4_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/pos_dimers/Q13148+Q92900/pae_model_4_multimer_v3_pred_0.json rename to test_data/af2/positive_dimers/Q13148+Q92900/pae_model_4_multimer_v3_pred_0.json diff --git a/test_data/af2/pos_dimers/Q13148+Q92900/pae_model_5_multimer_v3_pred_0.json b/test_data/af2/positive_dimers/Q13148+Q92900/pae_model_5_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/pos_dimers/Q13148+Q92900/pae_model_5_multimer_v3_pred_0.json rename to test_data/af2/positive_dimers/Q13148+Q92900/pae_model_5_multimer_v3_pred_0.json diff --git a/test_data/af2/pos_dimers/Q13148+Q92900/ranked_0.cif b/test_data/af2/positive_dimers/Q13148+Q92900/ranked_0.cif similarity index 100% rename from test_data/af2/pos_dimers/Q13148+Q92900/ranked_0.cif rename to test_data/af2/positive_dimers/Q13148+Q92900/ranked_0.cif diff --git a/test_data/af2/pos_dimers/Q13148+Q92900/ranked_0.pdb b/test_data/af2/positive_dimers/Q13148+Q92900/ranked_0.pdb similarity index 100% rename from test_data/af2/pos_dimers/Q13148+Q92900/ranked_0.pdb rename to test_data/af2/positive_dimers/Q13148+Q92900/ranked_0.pdb diff --git a/test_data/af2/pos_dimers/Q13148+Q92900/ranking_debug.json b/test_data/af2/positive_dimers/Q13148+Q92900/ranking_debug.json similarity index 100% rename from test_data/af2/pos_dimers/Q13148+Q92900/ranking_debug.json rename to test_data/af2/positive_dimers/Q13148+Q92900/ranking_debug.json diff --git a/test_data/af2/pos_dimers/Q13148+Q92900/unrelaxed_model_1_multimer_v3_pred_0.pdb b/test_data/af2/positive_dimers/Q13148+Q92900/unrelaxed_model_1_multimer_v3_pred_0.pdb similarity index 100% rename from test_data/af2/pos_dimers/Q13148+Q92900/unrelaxed_model_1_multimer_v3_pred_0.pdb rename to test_data/af2/positive_dimers/Q13148+Q92900/unrelaxed_model_1_multimer_v3_pred_0.pdb diff --git a/test_data/af2/pos_dimers/Q13148+Q92900/unrelaxed_model_2_multimer_v3_pred_0.pdb b/test_data/af2/positive_dimers/Q13148+Q92900/unrelaxed_model_2_multimer_v3_pred_0.pdb similarity index 100% rename from test_data/af2/pos_dimers/Q13148+Q92900/unrelaxed_model_2_multimer_v3_pred_0.pdb rename to test_data/af2/positive_dimers/Q13148+Q92900/unrelaxed_model_2_multimer_v3_pred_0.pdb diff --git a/test_data/af2/pos_dimers/Q13148+Q92900/unrelaxed_model_3_multimer_v3_pred_0.pdb b/test_data/af2/positive_dimers/Q13148+Q92900/unrelaxed_model_3_multimer_v3_pred_0.pdb similarity index 100% rename from test_data/af2/pos_dimers/Q13148+Q92900/unrelaxed_model_3_multimer_v3_pred_0.pdb rename to test_data/af2/positive_dimers/Q13148+Q92900/unrelaxed_model_3_multimer_v3_pred_0.pdb diff --git a/test_data/af2/pos_dimers/Q13148+Q92900/unrelaxed_model_4_multimer_v3_pred_0.pdb b/test_data/af2/positive_dimers/Q13148+Q92900/unrelaxed_model_4_multimer_v3_pred_0.pdb similarity index 100% rename from test_data/af2/pos_dimers/Q13148+Q92900/unrelaxed_model_4_multimer_v3_pred_0.pdb rename to test_data/af2/positive_dimers/Q13148+Q92900/unrelaxed_model_4_multimer_v3_pred_0.pdb diff --git a/test_data/af2/pos_dimers/Q13148+Q92900/unrelaxed_model_5_multimer_v3_pred_0.pdb b/test_data/af2/positive_dimers/Q13148+Q92900/unrelaxed_model_5_multimer_v3_pred_0.pdb similarity index 100% rename from test_data/af2/pos_dimers/Q13148+Q92900/unrelaxed_model_5_multimer_v3_pred_0.pdb rename to test_data/af2/positive_dimers/Q13148+Q92900/unrelaxed_model_5_multimer_v3_pred_0.pdb diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/analysis.csv b/test_data/af2/positive_dimers/Q9BUL8+Q13033/analysis.csv similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/analysis.csv rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/analysis.csv diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/completed_fold.txt b/test_data/af2/positive_dimers/Q9BUL8+Q13033/completed_fold.txt similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/completed_fold.txt rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/completed_fold.txt diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/confidence_model_1_multimer_v3_pred_0.json b/test_data/af2/positive_dimers/Q9BUL8+Q13033/confidence_model_1_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/confidence_model_1_multimer_v3_pred_0.json rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/confidence_model_1_multimer_v3_pred_0.json diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/confidence_model_2_multimer_v3_pred_0.json b/test_data/af2/positive_dimers/Q9BUL8+Q13033/confidence_model_2_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/confidence_model_2_multimer_v3_pred_0.json rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/confidence_model_2_multimer_v3_pred_0.json diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/confidence_model_3_multimer_v3_pred_0.json b/test_data/af2/positive_dimers/Q9BUL8+Q13033/confidence_model_3_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/confidence_model_3_multimer_v3_pred_0.json rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/confidence_model_3_multimer_v3_pred_0.json diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/confidence_model_4_multimer_v3_pred_0.json b/test_data/af2/positive_dimers/Q9BUL8+Q13033/confidence_model_4_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/confidence_model_4_multimer_v3_pred_0.json rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/confidence_model_4_multimer_v3_pred_0.json diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/confidence_model_5_multimer_v3_pred_0.json b/test_data/af2/positive_dimers/Q9BUL8+Q13033/confidence_model_5_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/confidence_model_5_multimer_v3_pred_0.json rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/confidence_model_5_multimer_v3_pred_0.json diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/interfaces.csv b/test_data/af2/positive_dimers/Q9BUL8+Q13033/interfaces.csv similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/interfaces.csv rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/interfaces.csv diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_model_1_multimer_v3_pred_0.json b/test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_model_1_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_model_1_multimer_v3_pred_0.json rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_model_1_multimer_v3_pred_0.json diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_model_2_multimer_v3_pred_0.json b/test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_model_2_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_model_2_multimer_v3_pred_0.json rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_model_2_multimer_v3_pred_0.json diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_model_3_multimer_v3_pred_0.json b/test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_model_3_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_model_3_multimer_v3_pred_0.json rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_model_3_multimer_v3_pred_0.json diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_model_4_multimer_v3_pred_0.json b/test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_model_4_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_model_4_multimer_v3_pred_0.json rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_model_4_multimer_v3_pred_0.json diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_model_4_multimer_v3_pred_0.png b/test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_model_4_multimer_v3_pred_0.png similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_model_4_multimer_v3_pred_0.png rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_model_4_multimer_v3_pred_0.png diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_model_5_multimer_v3_pred_0.json b/test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_model_5_multimer_v3_pred_0.json similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_model_5_multimer_v3_pred_0.json rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_model_5_multimer_v3_pred_0.json diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_plot_ranked_0.png b/test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_plot_ranked_0.png similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_plot_ranked_0.png rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_plot_ranked_0.png diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_plot_ranked_1.png b/test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_plot_ranked_1.png similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_plot_ranked_1.png rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_plot_ranked_1.png diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_plot_ranked_2.png b/test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_plot_ranked_2.png similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_plot_ranked_2.png rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_plot_ranked_2.png diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_plot_ranked_3.png b/test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_plot_ranked_3.png similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_plot_ranked_3.png rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_plot_ranked_3.png diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_plot_ranked_4.png b/test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_plot_ranked_4.png similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/pae_plot_ranked_4.png rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/pae_plot_ranked_4.png diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/ranked_0.cif b/test_data/af2/positive_dimers/Q9BUL8+Q13033/ranked_0.cif similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/ranked_0.cif rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/ranked_0.cif diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/ranked_0.pdb b/test_data/af2/positive_dimers/Q9BUL8+Q13033/ranked_0.pdb similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/ranked_0.pdb rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/ranked_0.pdb diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/ranked_1.cif b/test_data/af2/positive_dimers/Q9BUL8+Q13033/ranked_1.cif similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/ranked_1.cif rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/ranked_1.cif diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/ranked_1.pdb b/test_data/af2/positive_dimers/Q9BUL8+Q13033/ranked_1.pdb similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/ranked_1.pdb rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/ranked_1.pdb diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/ranked_2.cif b/test_data/af2/positive_dimers/Q9BUL8+Q13033/ranked_2.cif similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/ranked_2.cif rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/ranked_2.cif diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/ranked_2.pdb b/test_data/af2/positive_dimers/Q9BUL8+Q13033/ranked_2.pdb similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/ranked_2.pdb rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/ranked_2.pdb diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/ranked_3.cif b/test_data/af2/positive_dimers/Q9BUL8+Q13033/ranked_3.cif similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/ranked_3.cif rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/ranked_3.cif diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/ranked_3.pdb b/test_data/af2/positive_dimers/Q9BUL8+Q13033/ranked_3.pdb similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/ranked_3.pdb rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/ranked_3.pdb diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/ranked_4.cif b/test_data/af2/positive_dimers/Q9BUL8+Q13033/ranked_4.cif similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/ranked_4.cif rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/ranked_4.cif diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/ranked_4.pdb b/test_data/af2/positive_dimers/Q9BUL8+Q13033/ranked_4.pdb similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/ranked_4.pdb rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/ranked_4.pdb diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/ranking_debug.json b/test_data/af2/positive_dimers/Q9BUL8+Q13033/ranking_debug.json similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/ranking_debug.json rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/ranking_debug.json diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/result_model_1_multimer_v3_pred_0.pkl b/test_data/af2/positive_dimers/Q9BUL8+Q13033/result_model_1_multimer_v3_pred_0.pkl similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/result_model_1_multimer_v3_pred_0.pkl rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/result_model_1_multimer_v3_pred_0.pkl diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/result_model_2_multimer_v3_pred_0.pkl b/test_data/af2/positive_dimers/Q9BUL8+Q13033/result_model_2_multimer_v3_pred_0.pkl similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/result_model_2_multimer_v3_pred_0.pkl rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/result_model_2_multimer_v3_pred_0.pkl diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/result_model_3_multimer_v3_pred_0.pkl b/test_data/af2/positive_dimers/Q9BUL8+Q13033/result_model_3_multimer_v3_pred_0.pkl similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/result_model_3_multimer_v3_pred_0.pkl rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/result_model_3_multimer_v3_pred_0.pkl diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/result_model_4_multimer_v3_pred_0.pkl b/test_data/af2/positive_dimers/Q9BUL8+Q13033/result_model_4_multimer_v3_pred_0.pkl similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/result_model_4_multimer_v3_pred_0.pkl rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/result_model_4_multimer_v3_pred_0.pkl diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/result_model_5_multimer_v3_pred_0.pkl b/test_data/af2/positive_dimers/Q9BUL8+Q13033/result_model_5_multimer_v3_pred_0.pkl similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/result_model_5_multimer_v3_pred_0.pkl rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/result_model_5_multimer_v3_pred_0.pkl diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/timings.json b/test_data/af2/positive_dimers/Q9BUL8+Q13033/timings.json similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/timings.json rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/timings.json diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/unrelaxed_model_1_multimer_v3_pred_0.pdb b/test_data/af2/positive_dimers/Q9BUL8+Q13033/unrelaxed_model_1_multimer_v3_pred_0.pdb similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/unrelaxed_model_1_multimer_v3_pred_0.pdb rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/unrelaxed_model_1_multimer_v3_pred_0.pdb diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/unrelaxed_model_2_multimer_v3_pred_0.pdb b/test_data/af2/positive_dimers/Q9BUL8+Q13033/unrelaxed_model_2_multimer_v3_pred_0.pdb similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/unrelaxed_model_2_multimer_v3_pred_0.pdb rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/unrelaxed_model_2_multimer_v3_pred_0.pdb diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/unrelaxed_model_3_multimer_v3_pred_0.pdb b/test_data/af2/positive_dimers/Q9BUL8+Q13033/unrelaxed_model_3_multimer_v3_pred_0.pdb similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/unrelaxed_model_3_multimer_v3_pred_0.pdb rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/unrelaxed_model_3_multimer_v3_pred_0.pdb diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/unrelaxed_model_4_multimer_v3_pred_0.pdb b/test_data/af2/positive_dimers/Q9BUL8+Q13033/unrelaxed_model_4_multimer_v3_pred_0.pdb similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/unrelaxed_model_4_multimer_v3_pred_0.pdb rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/unrelaxed_model_4_multimer_v3_pred_0.pdb diff --git a/test_data/af2/pos_dimers/Q9BUL8+Q13033/unrelaxed_model_5_multimer_v3_pred_0.pdb b/test_data/af2/positive_dimers/Q9BUL8+Q13033/unrelaxed_model_5_multimer_v3_pred_0.pdb similarity index 100% rename from test_data/af2/pos_dimers/Q9BUL8+Q13033/unrelaxed_model_5_multimer_v3_pred_0.pdb rename to test_data/af2/positive_dimers/Q9BUL8+Q13033/unrelaxed_model_5_multimer_v3_pred_0.pdb diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/TERMS_OF_USE.md b/test_data/af3/negative_dimers/Q14974+Q13033/TERMS_OF_USE.md similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/TERMS_OF_USE.md rename to test_data/af3/negative_dimers/Q14974+Q13033/TERMS_OF_USE.md diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/analysis.csv b/test_data/af3/negative_dimers/Q14974+Q13033/analysis.csv similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/analysis.csv rename to test_data/af3/negative_dimers/Q14974+Q13033/analysis.csv diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/completed_fold.txt b/test_data/af3/negative_dimers/Q14974+Q13033/completed_fold.txt similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/completed_fold.txt rename to test_data/af3/negative_dimers/Q14974+Q13033/completed_fold.txt diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/interfaces.csv b/test_data/af3/negative_dimers/Q14974+Q13033/interfaces.csv similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/interfaces.csv rename to test_data/af3/negative_dimers/Q14974+Q13033/interfaces.csv diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/pae_seed-3973414446_sample-0.png b/test_data/af3/negative_dimers/Q14974+Q13033/pae_seed-3973414446_sample-0.png similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/pae_seed-3973414446_sample-0.png rename to test_data/af3/negative_dimers/Q14974+Q13033/pae_seed-3973414446_sample-0.png diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/ranked_0_confidences.json b/test_data/af3/negative_dimers/Q14974+Q13033/ranked_0_confidences.json similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/ranked_0_confidences.json rename to test_data/af3/negative_dimers/Q14974+Q13033/ranked_0_confidences.json diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/ranked_0_data.json b/test_data/af3/negative_dimers/Q14974+Q13033/ranked_0_data.json similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/ranked_0_data.json rename to test_data/af3/negative_dimers/Q14974+Q13033/ranked_0_data.json diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/ranked_0_model.cif b/test_data/af3/negative_dimers/Q14974+Q13033/ranked_0_model.cif similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/ranked_0_model.cif rename to test_data/af3/negative_dimers/Q14974+Q13033/ranked_0_model.cif diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/ranked_0_summary_confidences.json b/test_data/af3/negative_dimers/Q14974+Q13033/ranked_0_summary_confidences.json similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/ranked_0_summary_confidences.json rename to test_data/af3/negative_dimers/Q14974+Q13033/ranked_0_summary_confidences.json diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/ranking_scores.csv b/test_data/af3/negative_dimers/Q14974+Q13033/ranking_scores.csv similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/ranking_scores.csv rename to test_data/af3/negative_dimers/Q14974+Q13033/ranking_scores.csv diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-0/confidences.json b/test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-0/confidences.json similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-0/confidences.json rename to test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-0/confidences.json diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-0/model.cif b/test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-0/model.cif similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-0/model.cif rename to test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-0/model.cif diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-0/summary_confidences.json b/test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-0/summary_confidences.json similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-0/summary_confidences.json rename to test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-0/summary_confidences.json diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-1/confidences.json b/test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-1/confidences.json similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-1/confidences.json rename to test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-1/confidences.json diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-1/model.cif b/test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-1/model.cif similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-1/model.cif rename to test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-1/model.cif diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-1/summary_confidences.json b/test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-1/summary_confidences.json similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-1/summary_confidences.json rename to test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-1/summary_confidences.json diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-2/confidences.json b/test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-2/confidences.json similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-2/confidences.json rename to test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-2/confidences.json diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-2/model.cif b/test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-2/model.cif similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-2/model.cif rename to test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-2/model.cif diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-2/summary_confidences.json b/test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-2/summary_confidences.json similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-2/summary_confidences.json rename to test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-2/summary_confidences.json diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-3/confidences.json b/test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-3/confidences.json similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-3/confidences.json rename to test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-3/confidences.json diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-3/model.cif b/test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-3/model.cif similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-3/model.cif rename to test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-3/model.cif diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-3/summary_confidences.json b/test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-3/summary_confidences.json similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-3/summary_confidences.json rename to test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-3/summary_confidences.json diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-4/confidences.json b/test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-4/confidences.json similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-4/confidences.json rename to test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-4/confidences.json diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-4/model.cif b/test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-4/model.cif similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-4/model.cif rename to test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-4/model.cif diff --git a/test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-4/summary_confidences.json b/test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-4/summary_confidences.json similarity index 100% rename from test_data/af3/neg_dimers/Q14974+Q13033/seed-3973414446_sample-4/summary_confidences.json rename to test_data/af3/negative_dimers/Q14974+Q13033/seed-3973414446_sample-4/summary_confidences.json diff --git a/test_data/af3/pos_dimers/Q13148+Q92900/ranked_0_model.cif b/test_data/af3/positive_dimers/Q13148+Q92900/ranked_0_model.cif similarity index 100% rename from test_data/af3/pos_dimers/Q13148+Q92900/ranked_0_model.cif rename to test_data/af3/positive_dimers/Q13148+Q92900/ranked_0_model.cif diff --git a/test_data/af3/pos_dimers/Q13148+Q92900/ranked_0_summary_confidences.json b/test_data/af3/positive_dimers/Q13148+Q92900/ranked_0_summary_confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q13148+Q92900/ranked_0_summary_confidences.json rename to test_data/af3/positive_dimers/Q13148+Q92900/ranked_0_summary_confidences.json diff --git a/test_data/af3/pos_dimers/Q13148+Q92900/ranking_scores.csv b/test_data/af3/positive_dimers/Q13148+Q92900/ranking_scores.csv similarity index 100% rename from test_data/af3/pos_dimers/Q13148+Q92900/ranking_scores.csv rename to test_data/af3/positive_dimers/Q13148+Q92900/ranking_scores.csv diff --git a/test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-0/confidences.json b/test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-0/confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-0/confidences.json rename to test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-0/confidences.json diff --git a/test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-0/model.cif b/test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-0/model.cif similarity index 100% rename from test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-0/model.cif rename to test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-0/model.cif diff --git a/test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-0/summary_confidences.json b/test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-0/summary_confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-0/summary_confidences.json rename to test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-0/summary_confidences.json diff --git a/test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-1/confidences.json b/test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-1/confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-1/confidences.json rename to test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-1/confidences.json diff --git a/test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-1/model.cif b/test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-1/model.cif similarity index 100% rename from test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-1/model.cif rename to test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-1/model.cif diff --git a/test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-1/summary_confidences.json b/test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-1/summary_confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-1/summary_confidences.json rename to test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-1/summary_confidences.json diff --git a/test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-2/confidences.json b/test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-2/confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-2/confidences.json rename to test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-2/confidences.json diff --git a/test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-2/model.cif b/test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-2/model.cif similarity index 100% rename from test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-2/model.cif rename to test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-2/model.cif diff --git a/test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-2/summary_confidences.json b/test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-2/summary_confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-2/summary_confidences.json rename to test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-2/summary_confidences.json diff --git a/test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-3/confidences.json b/test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-3/confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-3/confidences.json rename to test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-3/confidences.json diff --git a/test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-3/model.cif b/test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-3/model.cif similarity index 100% rename from test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-3/model.cif rename to test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-3/model.cif diff --git a/test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-3/summary_confidences.json b/test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-3/summary_confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-3/summary_confidences.json rename to test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-3/summary_confidences.json diff --git a/test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-4/confidences.json b/test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-4/confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-4/confidences.json rename to test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-4/confidences.json diff --git a/test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-4/model.cif b/test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-4/model.cif similarity index 100% rename from test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-4/model.cif rename to test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-4/model.cif diff --git a/test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-4/summary_confidences.json b/test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-4/summary_confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q13148+Q92900/seed-19698302_sample-4/summary_confidences.json rename to test_data/af3/positive_dimers/Q13148+Q92900/seed-19698302_sample-4/summary_confidences.json diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/TERMS_OF_USE.md b/test_data/af3/positive_dimers/Q9BUL8+Q13033/TERMS_OF_USE.md similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/TERMS_OF_USE.md rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/TERMS_OF_USE.md diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/analysis.csv b/test_data/af3/positive_dimers/Q9BUL8+Q13033/analysis.csv similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/analysis.csv rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/analysis.csv diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/completed_fold.txt b/test_data/af3/positive_dimers/Q9BUL8+Q13033/completed_fold.txt similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/completed_fold.txt rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/completed_fold.txt diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/interfaces.csv b/test_data/af3/positive_dimers/Q9BUL8+Q13033/interfaces.csv similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/interfaces.csv rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/interfaces.csv diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/pae_seed-3538734707_sample-1.png b/test_data/af3/positive_dimers/Q9BUL8+Q13033/pae_seed-3538734707_sample-1.png similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/pae_seed-3538734707_sample-1.png rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/pae_seed-3538734707_sample-1.png diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/ranked_0_confidences.json b/test_data/af3/positive_dimers/Q9BUL8+Q13033/ranked_0_confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/ranked_0_confidences.json rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/ranked_0_confidences.json diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/ranked_0_data.json b/test_data/af3/positive_dimers/Q9BUL8+Q13033/ranked_0_data.json similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/ranked_0_data.json rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/ranked_0_data.json diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/ranked_0_model.cif b/test_data/af3/positive_dimers/Q9BUL8+Q13033/ranked_0_model.cif similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/ranked_0_model.cif rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/ranked_0_model.cif diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/ranked_0_summary_confidences.json b/test_data/af3/positive_dimers/Q9BUL8+Q13033/ranked_0_summary_confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/ranked_0_summary_confidences.json rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/ranked_0_summary_confidences.json diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/ranking_scores.csv b/test_data/af3/positive_dimers/Q9BUL8+Q13033/ranking_scores.csv similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/ranking_scores.csv rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/ranking_scores.csv diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-0/confidences.json b/test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-0/confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-0/confidences.json rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-0/confidences.json diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-0/model.cif b/test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-0/model.cif similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-0/model.cif rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-0/model.cif diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-0/summary_confidences.json b/test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-0/summary_confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-0/summary_confidences.json rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-0/summary_confidences.json diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-1/confidences.json b/test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-1/confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-1/confidences.json rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-1/confidences.json diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-1/model.cif b/test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-1/model.cif similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-1/model.cif rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-1/model.cif diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-1/summary_confidences.json b/test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-1/summary_confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-1/summary_confidences.json rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-1/summary_confidences.json diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-2/confidences.json b/test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-2/confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-2/confidences.json rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-2/confidences.json diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-2/model.cif b/test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-2/model.cif similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-2/model.cif rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-2/model.cif diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-2/summary_confidences.json b/test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-2/summary_confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-2/summary_confidences.json rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-2/summary_confidences.json diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-3/confidences.json b/test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-3/confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-3/confidences.json rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-3/confidences.json diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-3/model.cif b/test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-3/model.cif similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-3/model.cif rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-3/model.cif diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-3/summary_confidences.json b/test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-3/summary_confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-3/summary_confidences.json rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-3/summary_confidences.json diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-4/confidences.json b/test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-4/confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-4/confidences.json rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-4/confidences.json diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-4/model.cif b/test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-4/model.cif similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-4/model.cif rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-4/model.cif diff --git a/test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-4/summary_confidences.json b/test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-4/summary_confidences.json similarity index 100% rename from test_data/af3/pos_dimers/Q9BUL8+Q13033/seed-3538734707_sample-4/summary_confidences.json rename to test_data/af3/positive_dimers/Q9BUL8+Q13033/seed-3538734707_sample-4/summary_confidences.json