From fd39e14188814a6c041b0282e2a923dac8cb623f Mon Sep 17 00:00:00 2001 From: Alex Morehead Date: Tue, 24 Sep 2024 15:45:55 -0500 Subject: [PATCH] Update plots --- .../casp15_inference_results_plotting.ipynb | 35 +-- ...method_interaction_analysis_plotting.ipynb | 2 + .../dockgen_inference_results_plotting.ipynb | 121 +++++---- ...ers_astex_inference_results_plotting.ipynb | 230 ++++++++++-------- ...cket_only_inference_results_plotting.ipynb | 137 ++++++----- 5 files changed, 299 insertions(+), 226 deletions(-) diff --git a/notebooks/casp15_inference_results_plotting.ipynb b/notebooks/casp15_inference_results_plotting.ipynb index 013dfbd..2aad799 100644 --- a/notebooks/casp15_inference_results_plotting.ipynb +++ b/notebooks/casp15_inference_results_plotting.ipynb @@ -75,6 +75,7 @@ " \"neuralplexer\",\n", " \"neuralplexer_no_ilcl\",\n", " \"rfaa\",\n", + " \"chai-lab\",\n", " \"tulip\",\n", " \"vina_diffdock\",\n", " \"vina_p2rank\",\n", @@ -90,6 +91,7 @@ " \"neuralplexer\": \"NeuralPLexer\",\n", " \"neuralplexer_no_ilcl\": \"NeuralPLexer w/o ILCL\",\n", " \"rfaa\": \"RoseTTAFold-AA\",\n", + " \"chai-lab\": \"Chai-1\",\n", " \"tulip\": \"TULIP\",\n", " \"vina_diffdock\": \"DiffDock-L-Vina\",\n", " \"vina_p2rank\": \"P2Rank-Vina\",\n", @@ -103,6 +105,7 @@ " \"neuralplexer\": \"DL-based blind\",\n", " \"neuralplexer_no_ilcl\": \"DL-based blind\",\n", " \"rfaa\": \"DL-based blind\",\n", + " \"chai-lab\": \"DL-based blind\",\n", " \"tulip\": \"Conventional blind\",\n", " \"vina_diffdock\": \"Conventional blind\",\n", " \"vina_p2rank\": \"Conventional blind\",\n", @@ -136,11 +139,11 @@ " \"casp15\",\n", " f\"top_{method}{'' if 'ensemble' in method else '_ensemble'}_predictions_{repeat_index}\",\n", " )\n", - " globals()[f\"{method}{config}_scoring_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[f\"{method}_output_dir_{repeat_index}\"] + config,\n", - " \"scoring_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"{method}{config}_scoring_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[f\"{method}_output_dir_{repeat_index}\"] + config,\n", + " \"scoring_results.csv\",\n", " )\n", " globals()[f\"{method}{config}_bust_results_csv_filepath_{repeat_index}\"] = os.path.join(\n", " globals()[f\"{method}_output_dir_{repeat_index}\"] + config,\n", @@ -523,7 +526,7 @@ "colors = [\"#FB8072\", \"#BEBADA\"]\n", "\n", "bar_width = 0.75\n", - "r1 = [item - 0.25 for item in range(2, 22, 2)]\n", + "r1 = [item - 0.25 for item in range(2, 24, 2)]\n", "r2 = [x + bar_width for x in r1]\n", "\n", "for complex_type in [\"single\", \"multi\"]:\n", @@ -716,7 +719,7 @@ " # add labels, titles, ticks, etc.\n", " axis.set_xlabel(f\"{complex_type.title()}-ligand blind docking ({complex_license})\")\n", " axis.set_ylabel(\"Percentage of predictions\")\n", - " axis.set_xlim(1, 21 + 0.1)\n", + " axis.set_xlim(1, 23 + 0.1)\n", " axis.set_ylim(0, 100)\n", "\n", " axis.bar_label(casp15_rmsd_lt2_bar, fmt=\"{:,.1f}%\", label_type=\"center\")\n", @@ -729,17 +732,18 @@ " axis.grid(axis=\"y\", color=\"#EAEFF8\")\n", " axis.set_axisbelow(True)\n", "\n", - " axis.set_xticks([2, 4, 6, 7, 8, 10, 12, 14, 16, 16 + 1e-3, 18, 20, 20 + 1e-3])\n", + " axis.set_xticks([2, 4, 6, 8, 8 + 1e-3, 10, 12, 14, 16, 18, 18 + 1e-3, 20, 22, 22 + 1e-3])\n", " axis.set_xticks([1 + 0.1], minor=True)\n", " axis.set_xticklabels(\n", " [\n", " \"DiffDock-L\",\n", " \"DiffDock w/o SCT\",\n", " \"DynamicBind\",\n", - " \"DL-based blind\",\n", " \"NeuralPLexer\",\n", + " \"DL-based blind\",\n", " \"NeuralPLexer w/o ILCL\",\n", " \"RoseTTAFold-AA\",\n", + " \"Chai-1\",\n", " \"TULIP\",\n", " \"DiffDock-L-Vina\",\n", " \"Conventional blind\",\n", @@ -757,7 +761,7 @@ " axis.tick_params(axis=\"y\", which=\"major\", left=\"off\", right=\"on\", color=\"#EAEFF8\")\n", "\n", " # vertical alignment of xtick labels\n", - " vert_alignments = [0.0, 0.0, 0.0, -0.1, 0.0, 0.0, 0.0, 0.0, 0.0, -0.1, 0.0, 0.0, -0.1]\n", + " vert_alignments = [0.0, 0.0, 0.0, 0.0, -0.1, 0.0, 0.0, 0.0, 0.0, 0.0, -0.1, 0.0, 0.0, -0.1]\n", " for tick, y in zip(axis.get_xticklabels(), vert_alignments):\n", " tick.set_y(y)\n", "\n", @@ -852,7 +856,7 @@ "colors = [\"#FB8072\", \"#BEBADA\"]\n", "\n", "bar_width = 0.75\n", - "r1 = [item - 0.25 for item in range(2, 22, 2)]\n", + "r1 = [item - 0.25 for item in range(2, 24, 2)]\n", "r2 = [x + bar_width for x in r1]\n", "\n", "for complex_type in [\"single\", \"multi\"]:\n", @@ -1035,7 +1039,7 @@ " # add labels, titles, ticks, etc.\n", " axis.set_xlabel(f\"{complex_type.title()}-ligand blind docking ({complex_license})\")\n", " axis.set_ylabel(\"Percentage of complex predictions\")\n", - " axis.set_xlim(1, 21 + 0.1)\n", + " axis.set_xlim(1, 23 + 0.1)\n", " axis.set_ylim(0, 100)\n", "\n", " axis.bar_label(casp15_pb_valid_bar, fmt=\"{:,.1f}%\", label_type=\"center\")\n", @@ -1048,17 +1052,18 @@ " axis.grid(axis=\"y\", color=\"#EAEFF8\")\n", " axis.set_axisbelow(True)\n", "\n", - " axis.set_xticks([2, 4, 6, 7, 8, 10, 12, 14, 16, 16 + 1e-3, 18, 20, 20 + 1e-3])\n", + " axis.set_xticks([2, 4, 6, 8, 8 + 1e-3, 10, 12, 14, 16, 18, 18 + 1e-3, 20, 22, 22 + 1e-3])\n", " axis.set_xticks([1 + 0.1], minor=True)\n", " axis.set_xticklabels(\n", " [\n", " \"DiffDock-L\",\n", " \"DiffDock w/o SCT\",\n", " \"DynamicBind\",\n", - " \"DL-based blind\",\n", " \"NeuralPLexer\",\n", + " \"DL-based blind\",\n", " \"NeuralPLexer w/o ILCL\",\n", " \"RoseTTAFold-AA\",\n", + " \"Chai-1\",\n", " \"TULIP\",\n", " \"DiffDock-L-Vina\",\n", " \"Conventional blind\",\n", @@ -1076,7 +1081,7 @@ " axis.tick_params(axis=\"y\", which=\"major\", left=\"off\", right=\"on\", color=\"#EAEFF8\")\n", "\n", " # vertical alignment of xtick labels\n", - " vert_alignments = [0.0, 0.0, 0.0, -0.1, 0.0, 0.0, 0.0, 0.0, 0.0, -0.1, 0.0, 0.0, -0.1]\n", + " vert_alignments = [0.0, 0.0, 0.0, 0.0, -0.1, 0.0, 0.0, 0.0, 0.0, 0.0, -0.1, 0.0, 0.0, -0.1]\n", " for tick, y in zip(axis.get_xticklabels(), vert_alignments):\n", " tick.set_y(y)\n", "\n", diff --git a/notebooks/casp15_method_interaction_analysis_plotting.ipynb b/notebooks/casp15_method_interaction_analysis_plotting.ipynb index 2984186..76ee92b 100644 --- a/notebooks/casp15_method_interaction_analysis_plotting.ipynb +++ b/notebooks/casp15_method_interaction_analysis_plotting.ipynb @@ -76,6 +76,7 @@ " \"neuralplexer\",\n", " \"neuralplexer_no_ilcl\",\n", " \"rfaa\",\n", + " \"chai-lab\",\n", " \"tulip\",\n", " \"vina_diffdock\",\n", " \"vina_p2rank\",\n", @@ -103,6 +104,7 @@ " \"neuralplexer\": \"NeuralPLexer\",\n", " \"neuralplexer_no_ilcl\": \"NeuralPLexer w/o ILCL\",\n", " \"rfaa\": \"RoseTTAFold-AA\",\n", + " \"chai-lab\": \"Chai-1\",\n", " \"tulip\": \"TULIP\",\n", " \"vina_diffdock\": \"DiffDock-L-Vina\",\n", " \"vina_p2rank\": \"P2Rank-Vina\",\n", diff --git a/notebooks/dockgen_inference_results_plotting.ipynb b/notebooks/dockgen_inference_results_plotting.ipynb index 28ad53a..9792165 100644 --- a/notebooks/dockgen_inference_results_plotting.ipynb +++ b/notebooks/dockgen_inference_results_plotting.ipynb @@ -68,6 +68,7 @@ " \"dynamicbind\",\n", " \"neuralplexer\",\n", " \"rfaa\",\n", + " \"chai-lab\",\n", " \"vina_diffdock\",\n", " \"vina_p2rank\",\n", " \"consensus_ensemble\",\n", @@ -83,6 +84,7 @@ ")\n", "globals()[\"neuralplexer_output_dir\"] = os.path.join(\"..\", \"forks\", \"NeuralPLexer\", \"inference\")\n", "globals()[\"rfaa_output_dir\"] = os.path.join(\"..\", \"forks\", \"RoseTTAFold-All-Atom\", \"inference\")\n", + "globals()[\"chai-lab_output_dir\"] = os.path.join(\"..\", \"forks\", \"chai-lab\", \"inference\")\n", "globals()[\"vina_output_dir\"] = os.path.join(\"..\", \"forks\", \"Vina\", \"inference\")\n", "for repeat_index in range(1, max_num_repeats_per_method + 1):\n", " # DiffDock results\n", @@ -98,12 +100,12 @@ " )\n", "\n", " # DiffDock (relaxed-protein) results\n", - " globals()[f\"diffdock_relaxed_protein_dockgen_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"diffdock_output_dir\"],\n", - " f\"diffdock_dockgen_output_{repeat_index}\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"diffdock_relaxed_protein_dockgen_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"diffdock_output_dir\"],\n", + " f\"diffdock_dockgen_output_{repeat_index}\",\n", + " \"bust_results.csv\",\n", " )\n", " globals()[\n", " f\"diffdock_relaxed_protein_dockgen_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", @@ -119,12 +121,12 @@ " f\"diffdock_dockgen_output_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"diffdockv1_dockgen_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"diffdockv1_output_dir\"],\n", - " f\"diffdock_dockgen_output_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"diffdockv1_dockgen_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"diffdockv1_output_dir\"],\n", + " f\"diffdock_dockgen_output_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", "\n", " # FABind results\n", @@ -145,12 +147,12 @@ " f\"dockgen_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"dynamicbind_dockgen_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"dynamicbind_output_dir\"],\n", - " f\"dockgen_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"dynamicbind_dockgen_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"dynamicbind_output_dir\"],\n", + " f\"dockgen_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", "\n", " # NeuralPLexer results\n", @@ -159,12 +161,12 @@ " f\"neuralplexer_dockgen_outputs_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"neuralplexer_dockgen_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"neuralplexer_output_dir\"],\n", - " f\"neuralplexer_dockgen_outputs_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"neuralplexer_dockgen_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"neuralplexer_output_dir\"],\n", + " f\"neuralplexer_dockgen_outputs_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", "\n", " # RoseTTAFold-All-Atom results\n", @@ -179,18 +181,30 @@ " \"bust_results.csv\",\n", " )\n", "\n", + " # Chai-1 results\n", + " globals()[f\"chai-lab_dockgen_bust_results_csv_filepath_{repeat_index}\"] = os.path.join(\n", + " globals()[\"chai-lab_output_dir\"],\n", + " f\"chai-lab_dockgen_outputs_{repeat_index}\",\n", + " \"bust_results.csv\",\n", + " )\n", + " globals()[f\"chai-lab_dockgen_relaxed_bust_results_csv_filepath_{repeat_index}\"] = os.path.join(\n", + " globals()[\"chai-lab_output_dir\"],\n", + " f\"chai-lab_dockgen_outputs_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", + " )\n", + "\n", " # DiffDock-L-Vina results\n", " globals()[f\"vina_diffdock_dockgen_bust_results_csv_filepath_{repeat_index}\"] = os.path.join(\n", " globals()[\"vina_output_dir\"],\n", " f\"vina_diffdock_dockgen_outputs_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"vina_diffdock_dockgen_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"vina_output_dir\"],\n", - " f\"vina_diffdock_dockgen_outputs_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"vina_diffdock_dockgen_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"vina_output_dir\"],\n", + " f\"vina_diffdock_dockgen_outputs_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", "\n", " # P2Rank-Vina results\n", @@ -199,28 +213,28 @@ " f\"vina_p2rank_dockgen_outputs_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"vina_p2rank_dockgen_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"vina_output_dir\"],\n", - " f\"vina_p2rank_dockgen_outputs_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"vina_p2rank_dockgen_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"vina_output_dir\"],\n", + " f\"vina_p2rank_dockgen_outputs_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", "\n", " # Consensus ensemble results\n", - " globals()[f\"consensus_ensemble_dockgen_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " os.path.join(\"..\", \"data\", \"test_cases\", \"dockgen\"),\n", - " f\"top_consensus_ensemble_predictions_{repeat_index}\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"consensus_ensemble_dockgen_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " os.path.join(\"..\", \"data\", \"test_cases\", \"dockgen\"),\n", + " f\"top_consensus_ensemble_predictions_{repeat_index}\",\n", + " \"bust_results.csv\",\n", " )\n", - " globals()[f\"consensus_ensemble_dockgen_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " os.path.join(\"..\", \"data\", \"test_cases\", \"dockgen\"),\n", - " f\"top_consensus_ensemble_predictions_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"consensus_ensemble_dockgen_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " os.path.join(\"..\", \"data\", \"test_cases\", \"dockgen\"),\n", + " f\"top_consensus_ensemble_predictions_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", "\n", "# Mappings\n", @@ -232,6 +246,7 @@ " \"dynamicbind\": \"DynamicBind\",\n", " \"neuralplexer\": \"NeuralPLexer\",\n", " \"rfaa\": \"RoseTTAFold-AA\",\n", + " \"chai-lab\": \"Chai-1\",\n", " \"vina_diffdock\": \"DiffDock-L-Vina\",\n", " \"vina_p2rank\": \"P2Rank-Vina\",\n", " \"consensus_ensemble\": \"Ensemble (Con)\",\n", @@ -245,6 +260,7 @@ " \"dynamicbind\": \"DL-based blind\",\n", " \"neuralplexer\": \"DL-based blind\",\n", " \"rfaa\": \"DL-based blind\",\n", + " \"chai-lab\": \"DL-based blind\",\n", " \"vina_diffdock\": \"Conventional blind\",\n", " \"vina_p2rank\": \"Conventional blind\",\n", " \"consensus_ensemble\": \"Hybrid blind\",\n", @@ -482,7 +498,7 @@ "colors = [\"#FB8072\", \"#BEBADA\"]\n", "\n", "bar_width = 0.5\n", - "r1 = [item - 0.25 for item in range(2, 22, 2)]\n", + "r1 = [item - 0.25 for item in range(2, 24, 2)]\n", "r2 = [x + bar_width for x in r1]\n", "\n", "(\n", @@ -720,7 +736,7 @@ "\n", "# add labels, titles, ticks, etc.\n", "axis.set_ylabel(\"Percentage of predictions\")\n", - "axis.set_xlim(1, 21 + 0.1)\n", + "axis.set_xlim(1, 23 + 0.1)\n", "axis.set_ylim(0, 100)\n", "\n", "axis.bar_label(dockgen_rmsd_lt_2_bar, fmt=\"{:,.1f}%\", label_type=\"edge\")\n", @@ -737,7 +753,7 @@ "axis.grid(axis=\"y\", color=\"#EAEFF8\")\n", "axis.set_axisbelow(True)\n", "\n", - "axis.set_xticks([2, 4, 6, 8, 8 + 1e-3, 10, 12, 14, 16, 17, 18, 20, 20 + 1e-3])\n", + "axis.set_xticks([2, 4, 6, 8, 9, 10, 12, 14, 16, 18, 18 + 1e-3, 20, 21, 22])\n", "axis.set_xticks([1 + 0.1], minor=True)\n", "axis.set_xticklabels(\n", " [\n", @@ -749,6 +765,7 @@ " \"DynamicBind\",\n", " \"NeuralPLexer\",\n", " \"RoseTTAFold-AA\",\n", + " \"Chai-1\",\n", " \"DiffDock-L-Vina\",\n", " \"Conventional blind\",\n", " \"P2Rank-Vina\",\n", @@ -765,7 +782,7 @@ "axis.tick_params(axis=\"y\", which=\"major\", left=\"off\", right=\"on\", color=\"#EAEFF8\")\n", "\n", "# vertical alignment of xtick labels\n", - "vert_alignments = [0.0, 0.0, 0.0, 0.0, -0.1, 0.0, 0.0, 0.0, 0.0, -0.1, 0.0, 0.0, -0.1]\n", + "vert_alignments = [0.0, 0.0, 0.0, 0.0, -0.1, 0.0, 0.0, 0.0, 0.0, 0.0, -0.1, 0.0, 0.0, -0.1]\n", "for tick, y in zip(axis.get_xticklabels(), vert_alignments):\n", " tick.set_y(y)\n", "\n", diff --git a/notebooks/posebusters_astex_inference_results_plotting.ipynb b/notebooks/posebusters_astex_inference_results_plotting.ipynb index a504b0c..4308232 100644 --- a/notebooks/posebusters_astex_inference_results_plotting.ipynb +++ b/notebooks/posebusters_astex_inference_results_plotting.ipynb @@ -67,6 +67,7 @@ " \"dynamicbind\",\n", " \"neuralplexer\",\n", " \"rfaa\",\n", + " \"chai-lab\",\n", " \"tulip\",\n", " \"vina_diffdock\",\n", " \"vina_p2rank\",\n", @@ -83,6 +84,7 @@ ")\n", "globals()[\"neuralplexer_output_dir\"] = os.path.join(\"..\", \"forks\", \"NeuralPLexer\", \"inference\")\n", "globals()[\"rfaa_output_dir\"] = os.path.join(\"..\", \"forks\", \"RoseTTAFold-All-Atom\", \"inference\")\n", + "globals()[\"chai-lab_output_dir\"] = os.path.join(\"..\", \"forks\", \"chai-lab\", \"inference\")\n", "globals()[\"tulip_output_dir\"] = os.path.join(\"..\", \"forks\", \"TULIP\", \"inference\")\n", "globals()[\"vina_output_dir\"] = os.path.join(\"..\", \"forks\", \"Vina\", \"inference\")\n", "for repeat_index in range(1, max_num_repeats_per_method + 1):\n", @@ -102,12 +104,12 @@ " f\"diffdock_posebusters_benchmark_output_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"diffdock_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"diffdock_output_dir\"],\n", - " f\"diffdock_posebusters_benchmark_output_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"diffdock_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"diffdock_output_dir\"],\n", + " f\"diffdock_posebusters_benchmark_output_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", "\n", " # DiffDock w/o structural cluster training (SCT) results\n", @@ -126,12 +128,12 @@ " f\"diffdock_posebusters_benchmark_output_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"diffdockv1_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"diffdockv1_output_dir\"],\n", - " f\"diffdock_posebusters_benchmark_output_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"diffdockv1_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"diffdockv1_output_dir\"],\n", + " f\"diffdock_posebusters_benchmark_output_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", "\n", " # FABind results\n", @@ -150,36 +152,36 @@ " f\"fabind_posebusters_benchmark_output_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"fabind_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"fabind_output_dir\"],\n", - " f\"fabind_posebusters_benchmark_output_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"fabind_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"fabind_output_dir\"],\n", + " f\"fabind_posebusters_benchmark_output_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", "\n", " # DynamicBind results\n", " globals()[f\"dynamicbind_astex_bust_results_csv_filepath_{repeat_index}\"] = os.path.join(\n", " globals()[\"dynamicbind_output_dir\"], f\"astex_diverse_{repeat_index}\", \"bust_results.csv\"\n", " )\n", - " globals()[f\"dynamicbind_astex_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"dynamicbind_output_dir\"],\n", - " f\"astex_diverse_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"dynamicbind_astex_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"dynamicbind_output_dir\"],\n", + " f\"astex_diverse_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", " globals()[f\"dynamicbind_posebusters_bust_results_csv_filepath_{repeat_index}\"] = os.path.join(\n", " globals()[\"dynamicbind_output_dir\"],\n", " f\"posebusters_benchmark_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"dynamicbind_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"dynamicbind_output_dir\"],\n", - " f\"posebusters_benchmark_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"dynamicbind_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"dynamicbind_output_dir\"],\n", + " f\"posebusters_benchmark_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", "\n", " # NeuralPLexer results\n", @@ -188,24 +190,24 @@ " f\"neuralplexer_astex_diverse_outputs_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"neuralplexer_astex_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"neuralplexer_output_dir\"],\n", - " f\"neuralplexer_astex_diverse_outputs_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"neuralplexer_astex_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"neuralplexer_output_dir\"],\n", + " f\"neuralplexer_astex_diverse_outputs_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", " globals()[f\"neuralplexer_posebusters_bust_results_csv_filepath_{repeat_index}\"] = os.path.join(\n", " globals()[\"neuralplexer_output_dir\"],\n", " f\"neuralplexer_posebusters_benchmark_outputs_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"neuralplexer_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"neuralplexer_output_dir\"],\n", - " f\"neuralplexer_posebusters_benchmark_outputs_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"neuralplexer_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"neuralplexer_output_dir\"],\n", + " f\"neuralplexer_posebusters_benchmark_outputs_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", "\n", " # RoseTTAFold-All-Atom results\n", @@ -230,6 +232,30 @@ " \"bust_results.csv\",\n", " )\n", "\n", + " # Chai-1 results\n", + " globals()[f\"chai-lab_astex_bust_results_csv_filepath_{repeat_index}\"] = os.path.join(\n", + " globals()[\"chai-lab_output_dir\"],\n", + " f\"chai-lab_astex_diverse_outputs_{repeat_index}\",\n", + " \"bust_results.csv\",\n", + " )\n", + " globals()[f\"chai-lab_astex_relaxed_bust_results_csv_filepath_{repeat_index}\"] = os.path.join(\n", + " globals()[\"chai-lab_output_dir\"],\n", + " f\"chai-lab_astex_diverse_outputs_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", + " )\n", + " globals()[f\"chai-lab_posebusters_bust_results_csv_filepath_{repeat_index}\"] = os.path.join(\n", + " globals()[\"chai-lab_output_dir\"],\n", + " f\"chai-lab_posebusters_benchmark_outputs_{repeat_index}\",\n", + " \"bust_results.csv\",\n", + " )\n", + " globals()[\n", + " f\"chai-lab_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"chai-lab_output_dir\"],\n", + " f\"chai-lab_posebusters_benchmark_outputs_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", + " )\n", + "\n", " # TULIP results\n", " globals()[f\"tulip_astex_bust_results_csv_filepath_{repeat_index}\"] = os.path.join(\n", " globals()[\"tulip_output_dir\"],\n", @@ -246,12 +272,12 @@ " f\"tulip_posebusters_benchmark_outputs_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"tulip_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"tulip_output_dir\"],\n", - " f\"tulip_posebusters_benchmark_outputs_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"tulip_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"tulip_output_dir\"],\n", + " f\"tulip_posebusters_benchmark_outputs_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", "\n", " # DiffDock-L-Vina results\n", @@ -260,26 +286,26 @@ " f\"vina_diffdock_astex_diverse_outputs_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"vina_diffdock_astex_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"vina_output_dir\"],\n", - " f\"vina_diffdock_astex_diverse_outputs_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"vina_diffdock_astex_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"vina_output_dir\"],\n", + " f\"vina_diffdock_astex_diverse_outputs_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", - " globals()[f\"vina_diffdock_posebusters_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"vina_output_dir\"],\n", - " f\"vina_diffdock_posebusters_benchmark_outputs_{repeat_index}\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"vina_diffdock_posebusters_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"vina_output_dir\"],\n", + " f\"vina_diffdock_posebusters_benchmark_outputs_{repeat_index}\",\n", + " \"bust_results.csv\",\n", " )\n", - " globals()[f\"vina_diffdock_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"vina_output_dir\"],\n", - " f\"vina_diffdock_posebusters_benchmark_outputs_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"vina_diffdock_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"vina_output_dir\"],\n", + " f\"vina_diffdock_posebusters_benchmark_outputs_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", "\n", " # P2Rank-Vina results\n", @@ -288,24 +314,24 @@ " f\"vina_p2rank_astex_diverse_outputs_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"vina_p2rank_astex_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"vina_output_dir\"],\n", - " f\"vina_p2rank_astex_diverse_outputs_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"vina_p2rank_astex_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"vina_output_dir\"],\n", + " f\"vina_p2rank_astex_diverse_outputs_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", " globals()[f\"vina_p2rank_posebusters_bust_results_csv_filepath_{repeat_index}\"] = os.path.join(\n", " globals()[\"vina_output_dir\"],\n", " f\"vina_p2rank_posebusters_benchmark_outputs_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"vina_p2rank_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"vina_output_dir\"],\n", - " f\"vina_p2rank_posebusters_benchmark_outputs_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"vina_p2rank_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"vina_output_dir\"],\n", + " f\"vina_p2rank_posebusters_benchmark_outputs_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", "\n", " # Ensemble (consensus) results\n", @@ -314,19 +340,19 @@ " f\"top_consensus_ensemble_predictions_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"consensus_ensemble_astex_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " os.path.join(\"..\", \"data\", \"test_cases\", \"astex_diverse\"),\n", - " f\"top_consensus_ensemble_predictions_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"consensus_ensemble_astex_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " os.path.join(\"..\", \"data\", \"test_cases\", \"astex_diverse\"),\n", + " f\"top_consensus_ensemble_predictions_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", - " globals()[f\"consensus_ensemble_posebusters_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " os.path.join(\"..\", \"data\", \"test_cases\", \"posebusters_benchmark\"),\n", - " f\"top_consensus_ensemble_predictions_{repeat_index}\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"consensus_ensemble_posebusters_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " os.path.join(\"..\", \"data\", \"test_cases\", \"posebusters_benchmark\"),\n", + " f\"top_consensus_ensemble_predictions_{repeat_index}\",\n", + " \"bust_results.csv\",\n", " )\n", " globals()[\n", " f\"consensus_ensemble_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", @@ -344,6 +370,7 @@ " \"dynamicbind\": \"DynamicBind\",\n", " \"neuralplexer\": \"NeuralPLexer\",\n", " \"rfaa\": \"RoseTTAFold-AA\",\n", + " \"chai-lab\": \"Chai-1\",\n", " \"tulip\": \"TULIP\",\n", " \"vina_diffdock\": \"DiffDock-L-Vina\",\n", " \"vina_p2rank\": \"P2Rank-Vina\",\n", @@ -357,6 +384,7 @@ " \"dynamicbind\": \"DL-based blind\",\n", " \"neuralplexer\": \"DL-based blind\",\n", " \"rfaa\": \"DL-based blind\",\n", + " \"chai-lab\": \"DL-based blind\",\n", " \"tulip\": \"Conventional blind\",\n", " \"vina_diffdock\": \"Conventional blind\",\n", " \"vina_p2rank\": \"Conventional blind\",\n", @@ -695,7 +723,7 @@ "colors = [\"#8DD3C7\", \"#FB8072\"]\n", "\n", "bar_width = 0.5\n", - "r1 = [item - 0.25 for item in range(2, 22, 2)]\n", + "r1 = [item - 0.25 for item in range(2, 24, 2)]\n", "r2 = [x + bar_width for x in r1]\n", "\n", "(\n", @@ -930,7 +958,7 @@ "\n", "# add labels, titles, ticks, etc.\n", "axis.set_ylabel(\"Percentage of predictions\")\n", - "axis.set_xlim(1, 21 + 0.1)\n", + "axis.set_xlim(1, 23 + 0.1)\n", "axis.set_ylim(0, 100)\n", "\n", "axis.bar_label(astex_rmsd_lt_2_bar, fmt=\"{:,.1f}%\", label_type=\"edge\")\n", @@ -947,17 +975,18 @@ "axis.grid(axis=\"y\", color=\"#EAEFF8\")\n", "axis.set_axisbelow(True)\n", "\n", - "axis.set_xticks([2, 4, 6, 7, 8, 10, 12, 14, 16, 16 + 1e-3, 18, 20, 20 + 1e-3])\n", + "axis.set_xticks([2, 4, 6, 8, 8 + 1e-3, 10, 12, 14, 16, 18, 18 + 1e-3, 20, 22, 22 + 1e-3])\n", "axis.set_xticks([1 + 0.1], minor=True)\n", "axis.set_xticklabels(\n", " [\n", " \"DiffDock-L\",\n", " \"DiffDock w/o SCT\",\n", " \"FABind\",\n", - " \"DL-based blind\",\n", " \"DynamicBind\",\n", + " \"DL-based blind\",\n", " \"NeuralPLexer\",\n", " \"RoseTTAFold-AA\",\n", + " \"Chai-1\",\n", " \"TULIP\",\n", " \"DiffDock-L-Vina\",\n", " \"Conventional blind\",\n", @@ -975,7 +1004,7 @@ "axis.tick_params(axis=\"y\", which=\"major\", left=\"off\", right=\"on\", color=\"#EAEFF8\")\n", "\n", "# vertical alignment of xtick labels\n", - "vert_alignments = [0.0, 0.0, 0.0, -0.1, 0.0, 0.0, 0.0, 0.0, 0.0, -0.1, 0.0, 0.0, -0.1]\n", + "vert_alignments = [0.0, 0.0, 0.0, 0.0, -0.1, 0.0, 0.0, 0.0, 0.0, 0.0, -0.1, 0.0, 0.0, -0.1]\n", "for tick, y in zip(axis.get_xticklabels(), vert_alignments):\n", " tick.set_y(y)\n", "\n", @@ -1015,7 +1044,7 @@ "colors = [\"#FB8072\", \"#BEBADA\"]\n", "\n", "bar_width = 0.5\n", - "r1 = [item - 0.25 for item in range(2, 22, 2)]\n", + "r1 = [item - 0.25 for item in range(2, 24, 2)]\n", "r2 = [x + bar_width for x in r1]\n", "\n", "(\n", @@ -1259,7 +1288,7 @@ "\n", "# add labels, titles, ticks, etc.\n", "axis.set_ylabel(\"Percentage of predictions\")\n", - "axis.set_xlim(1, 21 + 0.1)\n", + "axis.set_xlim(1, 23 + 0.1)\n", "axis.set_ylim(0, 100)\n", "\n", "axis.bar_label(posebusters_rmsd_lt_2_bar, fmt=\"{:,.1f}%\", label_type=\"edge\")\n", @@ -1278,17 +1307,18 @@ "axis.grid(axis=\"y\", color=\"#EAEFF8\")\n", "axis.set_axisbelow(True)\n", "\n", - "axis.set_xticks([2, 4, 6, 7, 8, 10, 12, 14, 16, 16 + 1e-3, 18, 20, 20 + 1e-3])\n", + "axis.set_xticks([2, 4, 6, 8, 8 + 1e-3, 10, 12, 14, 16, 18, 18 + 1e3, 20, 22, 22 + 1e-3])\n", "axis.set_xticks([1 + 0.1], minor=True)\n", "axis.set_xticklabels(\n", " [\n", " \"DiffDock-L\",\n", " \"DiffDock w/o SCT\",\n", " \"FABind\",\n", - " \"DL-based blind\",\n", " \"DynamicBind\",\n", + " \"DL-based blind\",\n", " \"NeuralPLexer\",\n", " \"RoseTTAFold-AA\",\n", + " \"Chai-1\",\n", " \"TULIP\",\n", " \"DiffDock-L-Vina\",\n", " \"Conventional blind\",\n", @@ -1306,7 +1336,7 @@ "axis.tick_params(axis=\"y\", which=\"major\", left=\"off\", right=\"on\", color=\"#EAEFF8\")\n", "\n", "# vertical alignment of xtick labels\n", - "vert_alignments = [0.0, 0.0, 0.0, -0.1, 0.0, 0.0, 0.0, 0.0, 0.0, -0.1, 0.0, 0.0, -0.1]\n", + "vert_alignments = [0.0, 0.0, 0.0, 0.0, -0.1, 0.0, 0.0, 0.0, 0.0, 0.0, -0.1, 0.0, 0.0, -0.1]\n", "for tick, y in zip(axis.get_xticklabels(), vert_alignments):\n", " tick.set_y(y)\n", "\n", diff --git a/notebooks/posebusters_pocket_only_inference_results_plotting.ipynb b/notebooks/posebusters_pocket_only_inference_results_plotting.ipynb index 4ae1d6f..30d407a 100644 --- a/notebooks/posebusters_pocket_only_inference_results_plotting.ipynb +++ b/notebooks/posebusters_pocket_only_inference_results_plotting.ipynb @@ -67,6 +67,7 @@ " \"dynamicbind\",\n", " \"neuralplexer\",\n", " \"rfaa\",\n", + " \"chai-lab\",\n", " \"vina_diffdock\",\n", " \"vina_p2rank\",\n", " \"consensus_ensemble\",\n", @@ -83,6 +84,7 @@ ")\n", "globals()[\"neuralplexer_output_dir\"] = os.path.join(\"..\", \"forks\", \"NeuralPLexer\", \"inference\")\n", "globals()[\"rfaa_output_dir\"] = os.path.join(\"..\", \"forks\", \"RoseTTAFold-All-Atom\", \"inference\")\n", + "globals()[\"chai-lab_output_dir\"] = os.path.join(\"..\", \"forks\", \"chai-lab\", \"inference\")\n", "globals()[\"vina_output_dir\"] = os.path.join(\"..\", \"forks\", \"Vina\", \"inference\")\n", "for repeat_index in range(1, max_num_repeats_per_method + 1):\n", " # DiffDock results\n", @@ -91,12 +93,12 @@ " f\"diffdock{pocket_suffix}_posebusters_benchmark_output_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"diffdock_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"diffdock_output_dir\"],\n", - " f\"diffdock{pocket_suffix}_posebusters_benchmark_output_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"diffdock_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"diffdock_output_dir\"],\n", + " f\"diffdock{pocket_suffix}_posebusters_benchmark_output_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", "\n", " # DiffDock w/o structural cluster training (SCT) results\n", @@ -105,12 +107,12 @@ " f\"diffdock{pocket_suffix}_posebusters_benchmark_output_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"diffdockv1_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"diffdockv1_output_dir\"],\n", - " f\"diffdock{pocket_suffix}_posebusters_benchmark_output_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"diffdockv1_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"diffdockv1_output_dir\"],\n", + " f\"diffdock{pocket_suffix}_posebusters_benchmark_output_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", "\n", " # FABind results\n", @@ -119,12 +121,12 @@ " f\"fabind{pocket_suffix}_posebusters_benchmark_output_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"fabind_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"fabind_output_dir\"],\n", - " f\"fabind{pocket_suffix}_posebusters_benchmark_output_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"fabind_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"fabind_output_dir\"],\n", + " f\"fabind{pocket_suffix}_posebusters_benchmark_output_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", "\n", " # DynamicBind results\n", @@ -133,12 +135,12 @@ " f\"posebusters_benchmark{pocket_suffix}_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"dynamicbind_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"dynamicbind_output_dir\"],\n", - " f\"posebusters_benchmark{pocket_suffix}_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"dynamicbind_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"dynamicbind_output_dir\"],\n", + " f\"posebusters_benchmark{pocket_suffix}_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", "\n", " # NeuralPLexer results\n", @@ -147,12 +149,12 @@ " f\"neuralplexer{pocket_suffix}_posebusters_benchmark_outputs_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"neuralplexer_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"neuralplexer_output_dir\"],\n", - " f\"neuralplexer{pocket_suffix}_posebusters_benchmark_outputs_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"neuralplexer_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"neuralplexer_output_dir\"],\n", + " f\"neuralplexer{pocket_suffix}_posebusters_benchmark_outputs_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", "\n", " # RoseTTAFold-All-Atom results\n", @@ -167,20 +169,34 @@ " \"bust_results.csv\",\n", " )\n", "\n", + " # Chai-1 results\n", + " globals()[f\"chai-lab_posebusters_bust_results_csv_filepath_{repeat_index}\"] = os.path.join(\n", + " globals()[\"chai-lab_output_dir\"],\n", + " f\"chai-lab{pocket_suffix}_posebusters_benchmark_outputs_{repeat_index}\",\n", + " \"bust_results.csv\",\n", + " )\n", + " globals()[\n", + " f\"chai-lab_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"chai-lab_output_dir\"],\n", + " f\"chai-lab{pocket_suffix}_posebusters_benchmark_outputs_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", + " )\n", + "\n", " # DiffDock-L-Vina results\n", - " globals()[f\"vina_diffdock_posebusters_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"vina_output_dir\"],\n", - " f\"vina{pocket_suffix}_diffdock_posebusters_benchmark_outputs_{repeat_index}\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"vina_diffdock_posebusters_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"vina_output_dir\"],\n", + " f\"vina{pocket_suffix}_diffdock_posebusters_benchmark_outputs_{repeat_index}\",\n", + " \"bust_results.csv\",\n", " )\n", - " globals()[f\"vina_diffdock_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"vina_output_dir\"],\n", - " f\"vina{pocket_suffix}_diffdock_posebusters_benchmark_outputs_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"vina_diffdock_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"vina_output_dir\"],\n", + " f\"vina{pocket_suffix}_diffdock_posebusters_benchmark_outputs_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", "\n", " # P2Rank-Vina results\n", @@ -189,21 +205,21 @@ " f\"vina{pocket_suffix}_p2rank_posebusters_benchmark_outputs_{repeat_index}\",\n", " \"bust_results.csv\",\n", " )\n", - " globals()[f\"vina_p2rank_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " globals()[\"vina_output_dir\"],\n", - " f\"vina{pocket_suffix}_p2rank_posebusters_benchmark_outputs_{repeat_index}_relaxed\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"vina_p2rank_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " globals()[\"vina_output_dir\"],\n", + " f\"vina{pocket_suffix}_p2rank_posebusters_benchmark_outputs_{repeat_index}_relaxed\",\n", + " \"bust_results.csv\",\n", " )\n", "\n", " # Consensus ensemble results\n", - " globals()[f\"consensus_ensemble_posebusters_bust_results_csv_filepath_{repeat_index}\"] = (\n", - " os.path.join(\n", - " os.path.join(\"..\", \"data\", \"test_cases\", \"posebusters_benchmark\"),\n", - " f\"top_consensus{pocket_suffix}_ensemble_predictions_{repeat_index}\",\n", - " \"bust_results.csv\",\n", - " )\n", + " globals()[\n", + " f\"consensus_ensemble_posebusters_bust_results_csv_filepath_{repeat_index}\"\n", + " ] = os.path.join(\n", + " os.path.join(\"..\", \"data\", \"test_cases\", \"posebusters_benchmark\"),\n", + " f\"top_consensus{pocket_suffix}_ensemble_predictions_{repeat_index}\",\n", + " \"bust_results.csv\",\n", " )\n", " globals()[\n", " f\"consensus_ensemble_posebusters_relaxed_bust_results_csv_filepath_{repeat_index}\"\n", @@ -221,6 +237,7 @@ " \"dynamicbind\": \"DynamicBind\",\n", " \"neuralplexer\": \"NeuralPLexer\",\n", " \"rfaa\": \"RoseTTAFold-AA\",\n", + " \"chai-lab\": \"Chai-1\",\n", " \"vina_diffdock\": \"DiffDock-L-Vina\",\n", " \"vina_p2rank\": \"P2Rank-Vina\",\n", " \"consensus_ensemble\": \"Ensemble (Con)\",\n", @@ -233,6 +250,7 @@ " \"dynamicbind\": \"DL-based blind\",\n", " \"neuralplexer\": \"DL-based blind\",\n", " \"rfaa\": \"DL-based blind\",\n", + " \"chai-lab\": \"DL-based blind\",\n", " \"vina_diffdock\": \"Conventional blind\",\n", " \"vina_p2rank\": \"Conventional blind\",\n", " \"consensus_ensemble\": \"Hybrid blind\",\n", @@ -473,7 +491,7 @@ "colors = [\"#FB8072\", \"#BEBADA\"]\n", "\n", "bar_width = 0.5\n", - "r1 = [item - 0.25 for item in range(2, 20, 2)]\n", + "r1 = [item - 0.25 for item in range(2, 22, 2)]\n", "r2 = [x + bar_width for x in r1]\n", "\n", "(\n", @@ -717,7 +735,7 @@ "\n", "# add labels, titles, ticks, etc.\n", "axis.set_ylabel(\"Percentage of predictions\")\n", - "axis.set_xlim(1, 19 + 0.1)\n", + "axis.set_xlim(1, 21 + 0.1)\n", "axis.set_ylim(0, 100)\n", "\n", "axis.bar_label(posebusters_rmsd_lt_2_bar, fmt=\"{:,.1f}%\", label_type=\"edge\")\n", @@ -736,17 +754,18 @@ "axis.grid(axis=\"y\", color=\"#EAEFF8\")\n", "axis.set_axisbelow(True)\n", "\n", - "axis.set_xticks([2, 4, 6, 7, 8, 10, 12, 14, 15, 16, 18, 18 + 1e-3])\n", + "axis.set_xticks([2, 4, 6, 8, 8 + 1e-3, 10, 12, 14, 16, 17, 18, 20, 20 + 1e-3])\n", "axis.set_xticks([1 + 0.1], minor=True)\n", "axis.set_xticklabels(\n", " [\n", " \"DiffDock-L\",\n", " \"DiffDock w/o SCT\",\n", " \"FABind\",\n", - " \"DL-based blind\",\n", " \"DynamicBind\",\n", + " \"DL-based blind\",\n", " \"NeuralPLexer\",\n", " \"RoseTTAFold-AA\",\n", + " \"Chai-1\",\n", " \"DiffDock-L-Vina\",\n", " \"Conventional blind\",\n", " \"P2Rank-Vina\",\n", @@ -763,7 +782,7 @@ "axis.tick_params(axis=\"y\", which=\"major\", left=\"off\", right=\"on\", color=\"#EAEFF8\")\n", "\n", "# vertical alignment of xtick labels\n", - "vert_alignments = [0.0, 0.0, 0.0, -0.1, 0.0, 0.0, 0.0, 0.0, -0.1, 0.0, 0.0, -0.1]\n", + "vert_alignments = [0.0, 0.0, 0.0, 0.0, -0.1, 0.0, 0.0, 0.0, 0.0, -0.1, 0.0, 0.0, -0.1]\n", "for tick, y in zip(axis.get_xticklabels(), vert_alignments):\n", " tick.set_y(y)\n", "\n",