{ "cells": [ { "cell_type": "markdown", "id": "fc1b8581", "metadata": { "language": "markdown" }, "source": [ "# TCRen potential & contact-statistics analysis\n", "\n", "Reproduces the core TCRen-manuscript analyses from the committed contact data\n", "(`data/contact_maps_PDB.csv` + `data/summary_PDB_structures.csv`):\n", "\n", "- the TCRen potential (re-derived) and its agreement with the published values;\n", "- the Miyazawa-Jernigan and Keskin reference potentials;\n", "- the distribution of TCR-peptide contacts per structure and per TCR region;\n", "- how contacts distribute over peptide and CDR3 positions as a function of length." ] }, { "cell_type": "code", "execution_count": 1, "id": "20a57c9e", "metadata": { "execution": { "iopub.execute_input": "2026-06-12T07:24:11.181863Z", "iopub.status.busy": "2026-06-12T07:24:11.181788Z", "iopub.status.idle": "2026-06-12T07:24:11.917509Z", "shell.execute_reply": "2026-06-12T07:24:11.917273Z" }, "language": "python" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "python 3.12.12 | polars 1.39.3 | tcren 0.1.0\n" ] }, { "data": { "text/html": [ "
\n", "shape: (5, 8)
pdb.idchain.type.fromregion.type.fromresidue.aa.fromresidue.aa.topeptide_pospeptide_lencdr3_len
strstrstrstrstri64u32u32
"5m01""TRA""CDR3""Y""K"0912
"5m01""TRA""CDR3""Y""K"0912
"5m01""TRA""CDR3""Y""A"1912
"5m01""TRA""CDR3""Y""A"1912
"5m01""TRA""CDR3""G""A"3912
" ], "text/plain": [ "shape: (5, 8)\n", "\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n", "\u2502 pdb.id \u2506 chain.type. \u2506 region.typ \u2506 residue.aa \u2506 residue.aa \u2506 peptide_po \u2506 peptide_le \u2506 cdr3_len \u2502\n", "\u2502 --- \u2506 from \u2506 e.from \u2506 .from \u2506 .to \u2506 s \u2506 n \u2506 --- \u2502\n", "\u2502 str \u2506 --- \u2506 --- \u2506 --- \u2506 --- \u2506 --- \u2506 --- \u2506 u32 \u2502\n", "\u2502 \u2506 str \u2506 str \u2506 str \u2506 str \u2506 i64 \u2506 u32 \u2506 \u2502\n", "\u255e\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561\n", "\u2502 5m01 \u2506 TRA \u2506 CDR3 \u2506 Y \u2506 K \u2506 0 \u2506 9 \u2506 12 \u2502\n", "\u2502 5m01 \u2506 TRA \u2506 CDR3 \u2506 Y \u2506 K \u2506 0 \u2506 9 \u2506 12 \u2502\n", "\u2502 5m01 \u2506 TRA \u2506 CDR3 \u2506 Y \u2506 A \u2506 1 \u2506 9 \u2506 12 \u2502\n", "\u2502 5m01 \u2506 TRA \u2506 CDR3 \u2506 Y \u2506 A \u2506 1 \u2506 9 \u2506 12 \u2502\n", "\u2502 5m01 \u2506 TRA \u2506 CDR3 \u2506 G \u2506 A \u2506 3 \u2506 9 \u2506 12 \u2502\n", "\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Environment + load the manuscript contact data\n", "%matplotlib inline\n", "import sys, numpy as np, polars as pl, matplotlib.pyplot as plt, tcren\n", "from tcren import analysis as an\n", "from tcren.potential import tcren as load_tcren, mj, keskin, derive_tcren\n", "print('python', sys.version.split()[0], '| polars', pl.__version__, '| tcren', tcren.__version__)\n", "\n", "CONTACTS, SUMMARY = 'legacy/data/contact_maps_PDB.csv', 'legacy/data/summary_PDB_structures.csv'\n", "import os\n", "if not os.path.exists(CONTACTS): # allow running from notebooks/\n", " CONTACTS, SUMMARY = '../' + CONTACTS, '../' + SUMMARY\n", "df = an.load_interface_contacts(CONTACTS, SUMMARY)\n", "df.select('pdb.id', 'chain.type.from', 'region.type.from', 'residue.aa.from', 'residue.aa.to', 'peptide_pos', 'peptide_len', 'cdr3_len').head()" ] }, { "cell_type": "code", "execution_count": 2, "id": "dfd0efd0", "metadata": { "execution": { "iopub.execute_input": "2026-06-12T07:24:11.918651Z", "iopub.status.busy": "2026-06-12T07:24:11.918557Z", "iopub.status.idle": "2026-06-12T07:24:11.920557Z", "shell.execute_reply": "2026-06-12T07:24:11.920381Z" }, "language": "python" }, "outputs": [], "source": [ "# Helper: plot a pairwise potential as a heatmap\n", "def plot_potential(ax, potential, title, cmap='RdBu_r', vlim=None):\n", " m, froms, tos = an.potential_matrix(potential)\n", " vlim = vlim or np.nanmax(np.abs(m))\n", " im = ax.imshow(m, cmap=cmap, vmin=-vlim, vmax=vlim, aspect='equal')\n", " ax.set_xticks(range(len(tos))); ax.set_xticklabels(tos, fontsize=6)\n", " ax.set_yticks(range(len(froms))); ax.set_yticklabels(froms, fontsize=6)\n", " ax.set_xlabel('antigen residue'); ax.set_ylabel('TCR residue'); ax.set_title(title)\n", " return im" ] }, { "cell_type": "code", "execution_count": 3, "id": "5647f78a", "metadata": { "execution": { "iopub.execute_input": "2026-06-12T07:24:11.921556Z", "iopub.status.busy": "2026-06-12T07:24:11.921481Z", "iopub.status.idle": "2026-06-12T07:24:12.263748Z", "shell.execute_reply": "2026-06-12T07:24:12.263486Z" }, "language": "python" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "max |derived - published| = 0.0\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABdEAAAGnCAYAAABYYR7FAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAC0rUlEQVR4nOzdeXgUVdbH8V91IB22hE2SgIGgww5iZA0IxEECqLiBgCgqAo6DG6LixBXUMSNuEVAcHDWyqMwQERcGATWAAygIuIuoYAImIggJICQkXe8fmH5pspBOVS9Jfz8+93no6rqnT3UST9ftW7cM0zRNAQAAAAAAAACAUhyBTgAAAAAAAAAAgGDFIDoAAAAAAAAAAOVgEB0AAAAAAAAAgHIwiA4AAAAAAAAAQDkYRAcAAAAAAAAAoBwMogMAAAAAAAAAUA4G0QEAAAAAAAAAKAeD6AAAAAAAAAAAlINBdAAAAAAAAAAAysEgOgAAAAAAAAAA5WAQHQAAAAAAAACC0Jo1azRs2DA1b95chmHozTff9OnrHTx4UJMnT1arVq1Up04d9enTRxs3bvTpa1YHDKIDAAAAAAAAQBA6fPiwunbtqtmzZ/vl9SZMmKCVK1dq/vz5+uKLL5ScnKzzzz9fu3fv9svrByvDNE0z0EkAAAAAAAAAAMpnGIaWLFmiSy+91L2tsLBQ9913nxYuXKgDBw6oc+fOeuyxx5SUlOR1/CNHjqhBgwZaunSpLrzwQvf2s88+WxdddJEeeeQRG46ieqoV6AQAAAAAAAAAAN4bN26cdu7cqddff13NmzfXkiVLNGTIEH3xxRdq06aNV7GKiopUXFysiIgIj+116tTRRx99ZGfa1Q4z0QEAAAAAAAAgyJ08E/2HH35QmzZttGvXLjVv3ty93/nnn6+ePXvq0Ucf9fo1+vTpo/DwcL366quKjo7Wa6+9pmuuuUZt2rTRtm3b7DqUaoc10QEAAAAAAACgmtm8ebNM01Tbtm1Vv359d1u9erV++OEHSdLOnTtlGEaF7eabb3bHnD9/vkzTVIsWLeR0OjVz5kyNGTNGYWFhgTrMoMAgOmxzqj/IkpaZmSlJ+uWXX/S3v/1NXbp0Uf369RUREaE2bdrotttu0/bt291xp02b5tG/du3aatmypSZOnKjc3NwAHe1xAwcO1I033hjQHEreH7slJSVVaf0sOxiGoWnTprkfv/jii2rRooUOHz4ckHwAoCajfvtGZmamDMPQ4sWLT7lvWbW8KnU4PT1dhmFo06ZNXvWriuuuu07x8fHux/v371fDhg315ptv+vy1AQDWlVV74uPjdd1113ls27JliwYMGKCoqCgZhqG0tDRJ0vvvv6/u3burXr16MgyD//9Lmjdvnk477TQdPHjQlnirVq1SYmKi6tatq6ZNm+q6667Tnj17PPZ5//33Vb9+/ZC/4WMoc7lcCgsL06effqqtW7e62zfffKNnnnlGktSiRQt98803Fbb777/fHfPMM8/U6tWrdejQIWVnZ+uTTz7RsWPH1Lp160AdZlBgTXTYZv369R6PH374YX344Yf64IMPPLZ37NhRn3zyiS666CKZpqmbb75ZiYmJCg8P17Zt27RgwQL17NlT+/fv9+i3fPlyRUVF6dChQ1qxYoWefPJJrVu3Tlu3blXt2rV9fnwnW7p0qf73v/9p3rx5fn9tf3juuecCnYLbtddeq8cee0wzZszQ9OnTA50OANQo1O/gFEx1uDIaNWqk22+/XXfddZcuuOAChYeHBzolAICXlixZosjISI9t119/vQ4fPqzXX39djRo1Unx8vEzT1MiRI9W2bVu99dZbqlevntq1axegrIPD77//rnvuuUd33323GjRoYDne6tWrNXToUF144YVaunSp9uzZo7vvvlsDBw7Upk2b5HQ6JR2fGNCzZ0/dc889euWVVyy/LqqfhIQEFRcXa8+ePerXr1+Z+9SuXVvt27f3Ona9evVUr1497d+/X++9955mzJhhNd1qjUF02KZ3794ej0877TQ5HI5S2/Pz83XJJZcoIiJC69at0+mnn+5+LikpSX/5y1/KnLXVrVs3NW3aVNLxtZ327t2rl19+WR999JHOO+88HxxRxR599FFddtllatGiRYX7HTlyRBERET6ZLe4Lv//+u+rWrauOHTsGOhW3WrVq6S9/+Ysefvhh3X333apbt26gUwKAGoP6HZyCqQ5X1o033qhHHnlEixcv1pgxYwKdDgDASwkJCaW2ffnll5o4caKGDh3q3rZ792799ttvuuyyyzRw4EBbXvvYsWMyDEO1alXPYapXXnlF+/bt04QJE2yJd9ddd6lt27ZavHix+z1p3bq1+vbtq5deekl//etf3fvedNNNGjVqlB555BHFxcXZ8voILocOHdL333/vfrxjxw5t3bpVjRs3Vtu2bXXVVVfpmmuu0ZNPPqmEhATt3btXH3zwgbp06aILLrjA69d77733ZJqm2rVrp++//1533XWX2rVrp3Hjxtl5WNUOy7nA71544QXl5uZqxowZHifgJxoxYsQp43Tv3l3S8cvKT7Rq1SoNHDhQkZGRqlu3rvr27av333/fY5+SS9e++uorXXnllYqKilJ0dLSuv/565eXlnfK1t2zZok8++URjx4712F5yGfWKFSt0/fXX67TTTlPdunVVUFAgSVq0aJESExNVr1491a9fX4MHD9aWLVtO+Xol3n33XZ199tlyOp1q3bq1nnjiiTL3M01Tzz33nM4++2zVqVNHjRo10ogRI/Tjjz967JeUlKTOnTtrzZo16tOnj+rWravrr7/e/VzJZeTHjh1Ts2bNSh2vJB04cEB16tTRlClT3Nvy8/N15513qnXr1goPD1eLFi00efLkUsux5Ofna+LEiWrSpInq16+vIUOG6LvvvivzmK666irl5+fr9ddfr/T7BQCwTyjU75UrV2rcuHFq3Lix6tWrp2HDhpWqnWVd6i6Vv/zK0aNHNWXKFMXExKhOnToaMGBApWp/WfHmzJmjrl27qn79+mrQoIHat2+ve+65p1TfgwcP6q9//auaNm2qJk2a6PLLL9fPP/9car/Kfi5JT09Xu3bt5HQ61aFDh3Jn8UdHR2vQoEF6/vnnT3l8AAD/qex55Ik1rqQ2FhUVac6cOe7l2aZNm+b+HHD33XfLMAyP5b22b9+uMWPGqFmzZu668eyzz3q8TsmSZ/Pnz9cdd9zhXne5ZJDQ7s8ELpdLs2bNcp8fN2zYUL1799Zbb73lsZ+V8/U5c+Zo2LBhatiwYaX2r8ju3bu1ceNGjR071uNLhT59+qht27ZasmSJx/7Dhg1T/fr19cILL1h+bQSnTZs2KSEhwf1F15QpU5SQkKAHHnhAkvTyyy/rmmuu0R133KF27drp4osv1scff1zlL1Xy8vJ00003qX379rrmmmt07rnnasWKFQG5ijSYMIgOv1uxYoXCwsI0bNgwS3F27NghSWrbtq1724IFC5ScnKzIyEi98sor+ve//63GjRtr8ODBpYquJA0fPlxt27ZVRkaG/va3v+nVV1/V7bfffsrXfueddxQWFqb+/fuX+fz111+v2rVra/78+Vq8eLFq166tRx99VFdeeaU6duyof//735o/f74OHjyofv366euvvz7la77//vu65JJL1KBBA73++ut6/PHH9e9//1svv/xyqX3/8pe/aPLkyTr//PP15ptv6rnnntNXX32lPn36lBq0yMnJ0dVXX60xY8Zo2bJlmjRpUql4tWvX1tVXX62MjAzl5+d7PPfaa6/p6NGj7m8kf//9dw0YMECvvPKKbr31Vv33v//V3XffrfT0dF188cUyTVPS8YH+Sy+91P3BacmSJerdu7fHDIcTxcTEqH379nr33XdP+V4BAOwXCvV7/PjxcjgcevXVV5WWlqZPPvlESUlJOnDgQNUOVtI999yjH3/8Uf/617/0r3/9Sz///LOSkpJKDc6fyuuvv65JkyZpwIABWrJkid58803dfvvtZd4vZMKECapdu7ZeffVVzZgxQ5mZmbr66qs99qns55L09HSNGzdOHTp0UEZGhu677z49/PDDpZb7KZGUlKT//e9/lt4zAIB9vDmPPNGFF17oXvJtxIgRWr9+vdavX68JEybojTfekCTdcsstWr9+vXtQ9+uvv1aPHj305Zdf6sknn9Q777yjCy+8ULfeemuZy3KmpKQoKytLzz//vN5++201a9bMJ58JrrvuOt12223q0aOHFi1apNdff10XX3yxdu7c6d7Hyvn6rl279MUXX9h2hd2XX34pSTrrrLNKPXfWWWe5ny8RHh6uPn36cK5cgyUlJck0zVItPT1d0vExm+nTp2vHjh0qLCxUTk6O3njjDXXp0qVKrzdy5Ej98MMPKigoUE5OjmbPnq2oqKgq579mzRoNGzZMzZs3r/Q9FFavXq1u3bopIiJCZ5xxRpmTNDIyMtSxY0c5nU517Nix1BdMtjMBH7n22mvNevXqldrevn17MyYmptJxHnzwQVOSmZubax47dszcv3+/+e9//9usV6+eeeWVV7r3O3z4sNm4cWNz2LBhHv2Li4vNrl27mj179iwVc8aMGR77Tpo0yYyIiDBdLleFOQ0dOtRs3759qe0vv/yyKcm85pprPLZnZWWZtWrVMm+55RaP7QcPHjRjYmLMkSNHVvwmmKbZq1cvs3nz5uaRI0fc2/Lz883GjRubJ/4pr1+/3pRkPvnkkx79s7OzzTp16phTp051bxswYIApyXz//fdLvd6AAQPMAQMGuB9//vnnpiRz7ty5Hvv17NnT7Natm/txamqq6XA4zI0bN3rst3jxYlOSuWzZMtM0TfO///2vKcl85plnPPb7+9//bkoyH3zwwVI5XXXVVWZ0dHSp7QAA+4Ry/b7ssss8tv/vf/8zJZmPPPKIe1urVq3Ma6+9tlSMk+vmhx9+aEoyzznnHI+8du7cadauXducMGFCqeOqKN7NN99sNmzYsMLjKzmOSZMmeWyfMWOGKcnMyckxTbPyn0uKi4vN5s2bl3sMrVq1KpXDypUrTUnmf//73wpzBQD4R2XPI02z7Bonybzppps8tu3YscOUZD7++OMe2wcPHmyefvrpZl5ensf2m2++2YyIiDB/++030zT/v0b279/fYz9ffCZYs2aNKcm89957y3x/TNP6+fqiRYtMSeaGDRsq3K8iR48edf974cKFpiRz/fr1pfa74YYbzPDw8FLb7733XtPhcJiHDh2qcg6Aryxbtsy89957zYyMDFOSuWTJkgr3//HHH826deuat912m/n111+bL7zwglm7dm1z8eLF7n3WrVtnhoWFmY8++qj5zTffmI8++qhZq1YtS3+Hp8JMdFQbMTExql27tho1aqSRI0eqW7duHjfOWLdunX777Tdde+21KioqcjeXy6UhQ4Zo48aNpWZrXXzxxR6PzzrrLB09erTUHa9P9vPPP6tZs2blPj98+HCPx++9956Kiop0zTXXeOQWERGhAQMGKDMzU9Lx2dknPl9UVCRJOnz4sDZu3KjLL79cERER7rgNGjQoNSPwnXfekWEYuvrqqz3ixMTEqGvXru7XKtGoUSP9+c9/rvB4JalLly7q1q2bx4yFb775Rp988ol7CZiS1+/cubPOPvtsj9cfPHiwDMNwv/6HH34o6fgyLSeqaA3VZs2aac+ePe73BTXX0aNHlZ+fb7kdPXo00IcChLzqVL9Prkl9+vRRq1at3DWrKsaMGeNxX5RWrVqpT58+Xsfs2bOnDhw4oCuvvFJLly7V3r17y923rPdHkn766SdJlf9csm3bNv3888/lHkNZSt7f3bt3e3V8qL7sqtnUbcB+3pxHWnX06FG9//77uuyyy1S3bl2P+nLBBRfo6NGj2rBhg0efk8+bffGZ4L///a+k4+uGl6eydbE8JUumlfUZIzs7WzfccIOio6PdN3e84447tGbNGuXn5ysrK0upqallrqVe3n3VytrerFkzuVwu5ebmVpgrYFfdzsvLK7WtZCnjkw0dOlSPPPKILr/88krl+Pzzz6tly5ZKS0tThw4dNGHCBF1//fUeS1GlpaVp0KBBSklJUfv27ZWSkqKBAwcqLS3NjrepTNXzjg2o1lq2bKnt27fr8OHDqlevXqX7rVq1SlFRUfrtt980d+5cZWRk6JZbbnFf0lGyTElF67H+9ttvHq/ZpEkTj+dL7nB95MiRCnM5cuSIoqOjy30+NjbW43FJbj169Chzf4fj+PdZq1evLnUJ2I4dO1SrVi25XC7FxMSU6nvytl9++UWmaZab3xlnnFFhrhW5/vrrddNNN+nbb79V+/bt9fLLL8vpdOrKK6/0eP3vv/++3LWySk769+3bp1q1apX6GZR1jCUiIiJkmqaOHj2q+vXrVzpvVC9Hjx5Vkzr19buKLceKiYnRjh07PE4aAFRNKNTv8ursvn37KoxbkfJifvbZZ17FGTt2rIqKivTCCy9o+PDhcrlc6tGjhx555BENGjTIY99TvT+V/VxSctzlHcOJl8GXKPn/7al+FqgZ7KzZEnUbsNv+/fsrfR5p1b59+1RUVKRZs2Zp1qxZZe5z8hfA5Z032/mZ4Ndff1VYWFiFx1vZuliektcq6/9d48aNU4sWLfTSSy+pXr16+vTTT7V06VI988wzKi4+/v/OPn366Mknnyx1TGV9/vjtt9/UuHHjUtupv6iMo0ePqn7jeio+4rIcq379+jp06JDHtgcffFDTpk2zHHv9+vVKTk722DZ48GC9+OKLOnbsmGrXrq3169eXWrpp8ODBDKKjZhk8eLBWrFiht99+W6NHj650v65du6pp06aSpEGDBmnw4MGaO3euxo8frx49erifmzVrlnr37l1mjIpOnL3RtGlT/fbbb+U+f/I3wyW5LV68WK1atSq3X7du3bRx40aPbc2bN3ffqbysb5VP3ta0aVMZhqG1a9e6P0Cc6ORt5X27XZYrr7xSU6ZMUXp6uv7+979r/vz5uvTSS9WoUSOP169Tp45eeumlMmOUvBdNmjRRUVGR9u3b5/HBp6Jvzn/77Tc5nU4G0Gu4wsJC/a5iXaUWCrdw645CubQwd7cKCws5GQdsEAr1u7w6+6c//cn9OCIiosxZNnv37nUfS2VinnzSXxnjxo3TuHHjdPjwYa1Zs0YPPvigLrroIn333XcVfr44WWU/l5TkWJnPHyVK3t+y3gvUPHbVbIm6DfhCo0aNKn0eacdrhYWFaezYseXO+m7durXH4/LOm+38THDaaaepuLhYubm55U4gq2xdLE9J/99++63Ua7z00ktq2bKl+3FSUpLuuOMO5eXladeuXYqLi1NkZKRHn86dO0uSvvjiC11wwQUez33xxRfu509E/UVlFBYWqviIS2dc2UyO2pUfCzqZ65ipH1/bo+zsbI/f37LGoKoiNze31N96dHS0ioqKtHfvXsXGxpa7jy+vxmAQHX43fvx4Pf7445o6dar69eunFi1alNrnjTfeqPAyD8Mw9Oyzz6pjx46677779N5776lv375q2LChvv76a918882+PAS1b9++UjdCKDF48GDVqlVLP/zwQ6lL1k7UoEEDde/evdT28PBw9ezZU2+88YYef/xx94nFwYMH9fbbb3vse9FFF+kf//iHdu/erZEjR1Y6x8po1KiRLr30Us2bN0+JiYnKzc31WMql5PUfffRRNWnSpNSHpBOdd955mjFjhhYuXKhbb73Vvf3VV18tt8+PP/6ojh07Wj8QVAt15FC4UfUT8jDTxmQAhET9XrhwoUedXrdunX766SePS6zj4+P1+eefe/T77rvvtG3btjJPXF977TVNmTLFPVDw008/ad26dbrmmmuqfBz16tXT0KFDVVhYqEsvvVRfffWVVyf9lf1c0q5dO8XGxpZ7DM2bNy/Vp+SGqdTr0GK1ZkvUbcAX6tWrV+nzSKvq1q2r8847T1u2bNFZZ52l8PBwr2P44jPB0KFDlZqaqjlz5uihhx4qc5/K1sXytG/fXpL0ww8/qFOnTh7PnTiAfqKoqKhyb9TYokUL9ezZUwsWLNCdd96psLAwSdKGDRu0bds2TZ48uVSfH3/8UU2aNLFt4gFqtjCnobDwqtftYsfxmeyRkZGlvgSyy8lfspmmWWp7Wft4M1HUWwyiw++ioqK0dOlSXXTRRUpISNDNN9+sxMREhYeHa/v27VqwYIE+++yzU66V1KZNG91www167rnn9NFHH+ncc8/VrFmzdO211+q3337TiBEj1KxZM/3666/67LPP9Ouvv2rOnDm2HENSUpJeeuklfffdd2rbtu0p94+Pj9dDDz2ke++9Vz/++KOGDBmiRo0a6ZdfftEnn3yievXqlXm38hM9/PDDGjJkiAYNGqQ77rhDxcXFeuyxx1SvXj2PWXV9+/bVDTfcoHHjxmnTpk3q37+/6tWrp5ycHH300Ufq0qWL/vrXv1b52K+//notWrRIN998s04//XSdf/75Hs9PnjxZGRkZ6t+/v26//XadddZZcrlcysrK0ooVK3THHXeoV69eSk5OVv/+/TV16lQdPnxY3bt31//+9z/Nnz+/zNd1uVz65JNPNH78+CrnjuolzDAUZqEAhsmQOCEHbBMK9XvTpk2aMGGCrrjiCmVnZ+vee+9VixYtNGnSJPc+Y8eO1dVXX61JkyZp+PDh+umnnzRjxgyddtppZb7mnj17dNlll2nixInKy8vTgw8+qIiICKWkpHiV+8SJE1WnTh317dvXPfsmNTVVUVFR5V5+Xp7Kfi5xOBx6+OGHNWHCBPcxHDhwQNOmTSv3svgNGzaoSZMm6tKli1c5oXqzWrMl6jbgK5U9j7TDM888o3PPPVf9+vXTX//6V8XHx+vgwYP6/vvv9fbbb+uDDz6osH/9+vVt/0zQr18/jR07Vo888oh++eUXXXTRRXI6ndqyZYvq1q2rW265xfL5eq9evVSnTh1t2LCh1BrtVfXYY49p0KBBuuKKKzRp0iTt2bNHf/vb39S5c2eNGzeu1P4bNmzQgAEDfDqAiJrD4TDkcFT9d8W00LcyYmJiSs0o37Nnj8eSwOXt48svkrixKAKiZ8+e+uKLL3T99dfr3//+ty699FINHjxYjz32mNq3b6+1a9dWKs6DDz6o+vXr64EHHpAkXX311frwww916NAh/eUvf9H555+v2267TZs3b9bAgQNty/+SSy5R/fr1tXTp0kr3SUlJ0eLFi/Xdd9/p2muv1eDBgzV16lT99NNP6t+//yn7Dxo0SG+++aby8/M1atQoTZkyRcOHDy81E1yS/vnPf2r27Nlas2aNRo8erQsvvFAPPPCADh8+rJ49e3p1rCc7//zzFRcXp127dunaa68ttT5cvXr1tHbtWl133XWaO3euLrzwQo0cOVIzZ87U6aefrvj4eEnH15V76623dNVVV2nGjBm69NJLtW7dOi1btqzM183MzFReXl6pm74BAPynptfvF198UYWFhRo9erRuvfVWde/eXZmZmR5rj44ZM0YzZszQe++9p4suukhz5szRnDlzyv1S/dFHH1WrVq00btw4XX/99YqNjdWHH36oM88806vc+/Xrpy+//FK33XabBg0apNtvv11t27bV2rVryx3Ar0hlP5eMHz9e//rXv/T111/r8ssv10MPPaR77rmnzJuSm6apt956q9SNSAEAgePNeaRVHTt21ObNm9W5c2fdd999Sk5O1vjx47V48eJK13NffCZIT0/XU089pXXr1mnEiBEaOXKkli5d6nHltJXz9fDwcI0YMcKr8YFTSUpK0rJly5STk6Nhw4bplltu0Xnnnaf333+/1JIZP/zwg7744gvOlVFjJCYmauXKlR7bVqxYoe7du7vvv1fePn369PFZXoZZMh8egFduueUWvf/++/rqq684UfSDsWPH6scff9T//ve/QKcCH8vPz1dUVJT+6mgpp4VLwwtMl+a4spSXl+ezS8wAVD9l1e/09HSNGzdOGzduLHNZNVTO+++/r+TkZH311VfuS9tRs9lVsyXqNoDqbdOmTerRo4c2bNigXr16+fW177//fs2bN08//PCDatViwQmUr6Rutx8fY205l0KXvn0xt9I1+9ChQ/r+++8lSQkJCXrqqad03nnnqXHjxmrZsqVSUlK0e/duzZs3T5K0Y8cOde7cWX/5y180ceJErV+/XjfeeKNee+0195JL69atU//+/fX3v/9dl1xyiZYuXar77rtPH330kc/+BpmJDlTRfffdp927dysjIyPQqdR4P/zwgxYtWqTHHnss0KnAj0ouDbfSAOBk1G/feeSRR3T99dczgB6C7KjZ1G0A1Vn37t01cuRIPfzww3593QMHDujZZ5/Vo48+ygA6Ks3hsN68sWnTJiUkJCghIUGSNGXKFCUkJLivSs3JyVFWVpZ7/9atW2vZsmXKzMzU2WefrYcfflgzZ870uGdBnz599Prrr+vll1/WWWedpfT0dC1atMinX2LxFwZUUXR0tBYuXKj9+/cHOpUaLysrS7Nnz9a5554b6FTgR2HG8Vbl/valAqAGoX77xv79+zVgwACP9eMROqzWbIm6DaD6e/LJJ/Xiiy/q4MGDatCggV9ec8eOHUpJSdGYMWP88nqoGQyHIcPCuube9k1KSlJFC6Gkp6eX2jZgwABt3ry5wrgjRozQiBEjvMrFCpZzAQAElZJLzG6r1cryci7PFP3EZeEAAPiIXTVbom4DAOBrJXW7019iLS/n8tU/c0KuZjMTHQAQlKxe2h0mLgsHAMAf7FiOhboNAIB/OAzvl2Q5kRmiJZtB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4k3Kqth30qRJmjRpUpnPpaenezyeOnWqpk6dWqXXAQCgxrBas0tieImaDQCA947fWLTqdbukb8n9SyrDm5uBn+i1117TtGnTtHTpUjVr1sy9vXfv3urd+/8nIvXt21fnnHOOZs2apZkzZ1YqJ28xiA4ACEpGWJiMMAuXmFnoCwAAKs9qzS6JAQAAfM9hhMlhVL3uetPXys3AFy1apPHjx+s///mPzj///IpzcjjUo0cPn94wnBuLAgAAAAAAAABsVdWbgb/22mu67rrr9Oqrr+rCCy885euYpqmtW7f69IbhzEQHAAQnR5jFG4syow0AAL+wWrNLYgAAAJ/z50x0yfubgb/22mu65ppr9Mwzz6h3797uWex16tRRVFSUJGn69Onq3bu32rRpo/z8fM2cOVNbt27Vs88+W+XjOhVLg+hHjx5VRESEXbkAAPD/GES3FTUbAOAzDKIDAFBtGHLIkIWlU71c2MTbm4H/85//VFFRkW666SbddNNN7u3XXnut+54nBw4c0A033KDc3FxFRUUpISFBa9asUc+ePat8XKfi9XIuLpdLDz/8sFq0aKH69evrxx9/lCTdf//9evHFF6uUxM6dOzVixAhJ0rZt29S9e3ft2rWrSrEAADWD4XBYbqGOmg0A8Ac7ajZ1GwAA/yiZiW6leWvSpEnauXOnCgoK9Omnn6p///7u59LT05WZmel+nJmZKdM0S7UTbxr+9NNP66efflJBQYH27Nmj9957T4mJiVbellPy+pPKI488ovT0dM2YMUPh4eHu7V26dNG//vUvS8ns2rVLV199tV599VWdfvrplmIBABDqqNkAAAAAAFjn9SD6vHnzNHfuXF111VUKO+EO6meddZa+/fbbKify22+/acSIEXr++efVtm3bMvcpKChQfn6+RwMA1FBG2P9fHl6VZmGNt5qCmg0A8AurNZu6DQCA3wRiJnpN4PUg+u7du/WnP/2p1HaXy6Vjx45VOZHNmzfrtNNOU7du3crdJzU1VVFRUe4WFxdX5dcDAAQ5w5AMh4VmBPoIAo6aDQDwC8s1m7oNAIC/HF8T3VoLRV4fdadOnbR27dpS2//zn/8oISGhyomcf/75io+P14MPPljuPikpKcrLy3O37OzsKr8eAAA1HTUbAAAAAADrannb4cEHH9TYsWO1e/duuVwuvfHGG9q2bZvmzZund955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qtmzZ5f5/IwZM/TUU09p9uzZ2rhxo2JiYjRo0CAdPHiw3Jjr16/XqFGjNHbsWH322WcaO3asRo4c6a7dAAAYpmm5hSLbBtFzcnJ08803V6lvx44dNWPGjFPuV1BQoPz8fI8GAAC8Q80GACDwhg4dqkceeUSXX355qedM01RaWpruvfdeXX755ercubNeeeUV/f7773r11VfLjZmWlqZBgwYpJSVF7du3V0pKigYOHKi0tLRy+1CzAQA4Na8G0b/++ms9++yzmjt3rg4cOCBJ2rt3r26//XadccYZ+uCDD6qURIcOHVRUVKRvv/22wv1SU1MVFRXlbnFxcVV6PQBA8HOZ1lsoo2YDAPzFjpod6nX7ZDt27FBubq6Sk5Pd25xOpwYMGKB169aV22/9+vUefSRp8ODBFfahZgNACDIttBBV6UH0d955RwkJCbrlllt04403qnv37vrwww/VoUMHbd26Vf/5z3/09ddfVzmRu+66S48//niF+6SkpCgvL8/dsrOzq/x6AIDgZpqm5RaqqNkAAH+yo2aHct0uS25uriQpOjraY3t0dLT7ufL6eduHmg0AIcbKAHoID6RXehD973//u2688Ubl5+friSee0I8//qgbb7xRGRkZ+vDDD3XRRRdZSuTcc8/Vjh07tHv37nL3cTqdioyM9GgAgJqJG5RVHTUbAOBP3FjUdwzD8HhsmmapbVb7ULMBIMRwI5MqqfQg+jfffKObbrpJ9evX16233iqHw6G0tDT179/ftmQmT55c4VptAADg1KjZAABUbzExMZJUagb5nj17Ss00P7mft30AAMCpVXoQPT8/Xw0bNpQk1apVS3Xq1FHbtm1tTWbYsGEqLi62NSYAoHoyZfHL8UAfQABRswEA/mS5Zod43S5L69atFRMTo5UrV7q3FRYWavXq1erTp0+5/RITEz36SNKKFSsq7AMACC2Gab2Folre7Pz111+7v9U2TVPbtm3T4cOHPfY566yzvEogPj5eixcvlnT8sjMra7QCAGoOl2nKZeEyMSt9awJqNgDAX6zW7JIYoebQoUP6/vvv3Y937NihrVu3qnHjxmrZsqUmT56sRx99VG3atFGbNm306KOPqm7duhozZoy7zzXXXKMWLVooNTVVknTbbbepf//+euyxx3TJJZdo6dKlWrVqlT766CO/Hx8AIEhZXdc89Eq2JC8H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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# TCRen potential: re-derived from the non-redundant set, vs the published values, + difference\n", "nonred = pl.read_csv(SUMMARY).filter(pl.col('nonred'))['pdb.id'].to_list()\n", "derived = derive_tcren(pl.read_csv(CONTACTS), include=nonred)\n", "cmp = an.compare_potentials(derived, load_tcren())\n", "print('max |derived - published| =', round(cmp['diff'].abs().max(), 12))\n", "\n", "fig, axes = plt.subplots(1, 3, figsize=(15, 5))\n", "im0 = plot_potential(axes[0], derived, 'TCRen (re-derived)')\n", "im1 = plot_potential(axes[1], load_tcren(), 'TCRen (published)')\n", "# difference heatmap\n", "diff = derived.matrix.join(load_tcren().matrix, on=['residue.aa.from','residue.aa.to'], suffix='_pub')\n", "froms = sorted(diff['residue.aa.from'].unique().to_list()); tos = sorted(diff['residue.aa.to'].unique().to_list())\n", "M = np.full((len(froms), len(tos)), np.nan)\n", "fi = {a:i for i,a in enumerate(froms)}; ti = {a:i for i,a in enumerate(tos)}\n", "for r in diff.iter_rows(named=True): M[fi[r['residue.aa.from']], ti[r['residue.aa.to']]] = r['value']-r['value_pub']\n", "im2 = axes[2].imshow(M, cmap='PiYG', vmin=-1e-9, vmax=1e-9); axes[2].set_title('difference (~0)')\n", "fig.colorbar(im0, ax=axes[0], fraction=0.046); fig.colorbar(im1, ax=axes[1], fraction=0.046)\n", "fig.colorbar(im2, ax=axes[2], fraction=0.046); plt.tight_layout()" ] }, { "cell_type": "code", "execution_count": 4, "id": "d7c6d5ce", "metadata": { "execution": { "iopub.execute_input": "2026-06-12T07:24:12.264913Z", "iopub.status.busy": "2026-06-12T07:24:12.264830Z", "iopub.status.idle": "2026-06-12T07:24:12.464787Z", "shell.execute_reply": "2026-06-12T07:24:12.464547Z" }, "language": "python" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABEEAAAHoCAYAAACmSvFVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB4LElEQVR4nO3dd3hUZfr/8c9MyiQxjU6AkNBFEAsIgmgiIEVFRbHhqqjrrousIj9lNzbAVaOILmtF14JdVxBdAVEEA6jAAoqICCtKCUhHEuqkzPn9wZdZIwFT7mQmOe/XdZ1L5+TMZ+7UuXnOc57jcRzHEQAAAAAAQC3nDXUBAAAAAAAA1YFBEAAAAAAA4AoMggAAAAAAAFdgEAQAAAAAALgCgyAAAAAAAMAVGAQBAAAAAACuwCAIAAAAAABwBQZBAAAAAACAKzAIAgAAAAAAXIFBENRYkyZNksfjkcfjUU5OzhEfdxxHrVu3lsfjUWZmZnC/x+PRmDFjqq3OmmrdunXyeDwaP358yGpIT0/X0KFDQ/b6AAC40eEea8mSJSX279ixQ126dFF8fLxmzZpl9npjxoyRx+PRjh07jnnc0KFDlZ6ebva6ANwpMtQFAJWVkJCgF154ocRAhyTNnTtXP/zwgxISEkrsX7BggZo1a1aNFaKipk6dqsTExFCXAQCA623cuFHnnHOOtm7dqk8++USnn356tddwzz336NZbb6321wVQuzAIghrv8ssv1+uvv66nnnqqxD+YX3jhBXXv3l35+fkljg/Fmzak4uJiFRUVyefzlfk5p5xyShVWBAAAyuL7779Xnz59VFhYqLlz5+rEE08MSR2tWrUKyesCqF24HAY13pVXXilJevPNN4P78vLyNGXKFF1//fVHHP/Ly2HWrVunyMhIZWdnH3HcvHnz5PF49M4770iS1qxZo+uuu05t2rRRXFycmjZtqoEDB+qbb74p8bzMzMzgZTq/3iZNmiRJ2r59u4YNG6YTTjhB8fHxatiwoXr16qX58+eXyDrttNN03nnnldh34oknyuPxaPHixcF97777rjweT7CWstZaEVu2bNEf//hHNWvWTNHR0WrRooXGjh2roqKi4DGHL6UZN26c7r//frVo0UI+n0+ffvppcMrrt99+qyuvvFJJSUlq1KiRrr/+euXl5ZV4rdIuh/n222/Vt29fxcXFqUGDBrr55ps1ffr0Iy6LmjVrli688EI1a9ZMMTExat26tf74xz8eMdW2PPUAAOA2y5YtU8+ePRUZGanPPvusxADI999/ryFDhqhhw4by+Xxq3769nnrqqRLPDwQCuv/++9WuXTvFxsYqOTlZnTp10j/+8Y9jvu6qVavUsmVLdevWTdu2bZNU+uUwHo9Hw4cP16uvvqr27dsrLi5OJ510kqZNm2bzBQBQ6zAIghovMTFRgwcP1osvvhjc9+abb8rr9eryyy8/5nPT09N1wQUXaOLEiSouLi7xsSeffFJNmjTRoEGDJEk//fST6tWrp4ceekgzZ87UU089pcjISHXr1k2rV68OPu/pp5/WggULSmx9+vRRRESE2rVrJ0natWuXJGn06NGaPn26XnrpJbVs2VKZmZkl/iHfp08fzZs3T4WFhZKkrVu3asWKFYqNjS1xLe4nn3yiRo0aBRuTstZaXlu2bFHXrl310Ucf6d5779WHH36oG264QdnZ2brxxhuPOP7xxx/XnDlzNH78eH344Yc6/vjjgx+75JJL1LZtW02ZMkV//etf9cYbb+i222475utv3rxZGRkZWr16tZ555hm98sor2rNnj4YPH37EsT/88IO6d++uZ555Rh9//LHuvfdeLVq0SD179gx+PX+pIvUAAFCbffbZZ8rMzFTDhg312WefqWXLlsGPrVy5UqeddppWrFihRx99VNOmTdN5552nW265RWPHjg0eN27cOI0ZM0ZXXnmlpk+frrfffls33HCDdu/efdTXnTt3rnr06KFOnTrp008/VcOGDY9Z5/Tp0/Xkk0/qvvvu05QpU1S3bl0NGjRIP/74Y6W/BgBqIQeooV566SVHkrN48WLn008/dSQ5K1ascBzHcU477TRn6NChjuM4TocOHZyMjIzg8yQ5o0ePDj4+/NypU6cG923atMmJjIx0xo4de9TXLyoqcgoKCpw2bdo4t91221GPe+SRRxxJznPPPXfMrMLCQqd3797OoEGDgvs/+eQTR5Izb948x3Ec57XXXnMSEhKcYcOGOWeffXbwuDZt2jhDhgypdK2/tHbtWkeS88gjjwT3/fGPf3Ti4+Od9evXlzh2/PjxjiTn22+/LfHcVq1aOQUFBSWOHT16tCPJGTduXIn9w4YNc2JiYpxAIBDcl5aW5lx77bXBx3fccYfj8XiCr3NYv379HEnOp59+WurnEggEnMLCQmf9+vWOJOf999+vUD0AALjB4R5LkpOUlORs27btiGP69evnNGvWzMnLyyuxf/jw4U5MTIyza9cux3Ec5/zzz3dOPvnkY77e4ffi7du3O6+++qoTHR3t3HLLLU5xcXGJ46699lonLS2txD5JTqNGjZz8/Pzgvi1btjher9fJzs4uz6cNwCWYCYJaISMjQ61atdKLL76ob775RosXLy71UpjSZGZm6qSTTioxfXPixInyeDz6wx/+ENxXVFSkBx98UCeccIKio6MVGRmp6Ohoff/99/ruu+9KzX7zzTc1atQo3X333UfMlJg4caJOPfVUxcTEKDIyUlFRUZo9e3aJrDPOOEMxMTH65JNPJB26xCMzM1P9+/fXF198of379ys3Nzd4rW55az28TsfhLRAIHPNrNW3aNJ199tlq0qRJiecNGDBA0qEzN790wQUXKCoqqtSsCy64oMTjTp066eDBg8Epr6WZO3euOnbsqBNOOKHE/sOXRP3Stm3bdNNNNyk1NTX49U1LS5OkUr9fFakHAIDa7IILLlBeXp5GjBhRYsbswYMHNXv2bA0aNEhxcXEleoJzzz1XBw8e1MKFCyVJXbt21ddff61hw4bpo48+OmKttl964IEHNHToUD300EP6xz/+Ia+3bP9UOfvss0sshN+oUSM1bNhQ69evr+BnDqA2YxAEtYLH49F1112n1157TRMnTlTbtm115plnlvn5t9xyi2bPnq3Vq1ersLBQ//znPzV48GA1btw4eMzIkSN1zz336KKLLtIHH3ygRYsWafHixTrppJN04MCBIzI//fRTDR06VNdcc43+9re/lfjYY489pj/96U/q1q2bpkyZooULF2rx4sXq379/iayYmBidccYZwUGQ2bNn65xzzlFmZqaKi4s1f/784GUxvxwEKWutrVq1UlRUVHC77777jvl12rp1qz744IMSz4mKilKHDh0k6Yj1NlJSUo6aVa9evRKPDy+YWtrX8rCdO3eqUaNGR+z/9b5AIKC+ffvq3Xff1ahRozR79mz95z//CTZkpb1GReoBAKA2u+eee3TvvffqjTfe0O9+97vgQMjOnTtVVFSkJ5544oie4Nxzz5X0v54gKytL48eP18KFCzVgwADVq1dPvXv3PuL2u5L02muvqWnTprriiivKVeev38OlQ+/jvIcDKA13h0GtMXToUN17772aOHGiHnjggXI9d8iQIfrLX/6ip556Sqeffrq2bNmim2++ucQxr732mq655ho9+OCDJfbv2LFDycnJJfYtX75cF110kTIyMvTPf/7ziNd77bXXlJmZqWeeeabE/j179hxxbO/evXXvvffqP//5T/D2dAkJCTrttNM0a9Ys/fTTT2rbtq1SU1PLXesHH3wgv98ffNykSZPSv0D/p379+urUqdNRv76/fr7H4zlmXnnVq1dPW7duPWL/li1bSjxesWKFvv76a02aNEnXXnttcP+aNWtM6wEAoLYbO3asPB6Pxo4dq0AgoNdff1116tRRRESErr766iP6pcNatGghSYqMjNTIkSM1cuRI7d69W5988onuvPNO9evXT7m5uYqLiws+Z+bMmbr88st15plnavbs2cEZnABgiUEQ1BpNmzbVHXfcoVWrVpX4h29ZxMTE6A9/+IOefPJJffHFFzr55JN1xhlnlDjG4/EccXvX6dOna9OmTWrdunVw34YNGzRgwAC1bNlSU6ZMKfVykNKyli9frgULFpQYzJAOzfC48847dc8996hZs2bBxUX79Omjf//739qyZYsuueSSCtVa3lvcnX/++ZoxY4ZatWqlOnXqlOu5FjIyMjR+/HitXLmyxCUxb731VonjDg++/Ppr8Oyzz1Z9kQAA1DJjxoyR1+vV6NGj5TiO3njjDZ199tn66quv1KlTJ0VHR5cpJzk5WYMHD9amTZs0YsQIrVu3rsT7eVpamubPn68+ffoEB0LatGlTVZ8WAJdiEAS1ykMPPVTh5w4bNkzjxo3T0qVL9fzzzx/x8fPPP1+TJk3S8ccfr06dOmnp0qV65JFH1KxZsxLHDRgwQLt379aTTz6pb7/9tsTHWrVqpQYNGuj888/X3/72N40ePTp4t5P77rtPLVq0KHGrWUnq3Lmz6tSpo48//ljXXXddcH+fPn2Cl9n88lKY8tRaFr+czXHfffdp1qxZ6tGjh2655Ra1a9dOBw8e1Lp16zRjxgxNnDixQq9RViNGjNCLL76oAQMG6L777lOjRo30xhtvaNWqVZIUvHb4+OOPV6tWrfTXv/5VjuOobt26+uCDD0rcUQcAAJTdvffeK6/Xq3vuuUeO4+jRRx9VZmamzjzzTP3pT39Senq69uzZozVr1uiDDz7QnDlzJEkDBw5Ux44d1aVLFzVo0EDr16/XhAkTlJaWVuoAR0pKiubOnat+/frprLPO0qxZs9SxY8fq/nQB1GIMggD/p2nTpurZs6eWL1+uIUOGHPHxf/zjH4qKilJ2drb27t2rU089Ve+++67uvvvuEsetXLlSknTxxRcfkfHSSy9p6NChuuuuu7R//3698MILGjdunE444QRNnDhRU6dOLXGLXOnQP+wzMzM1derUEoMd3bt313HHHacDBw7o7LPPrlCtx7J//35JJWdTpKSkaMmSJfrb3/6mRx55RBs3blRCQoJatGih/v37V/nskCZNmmju3LkaMWKEbrrpJsXFxWnQoEG67777dO211wYv9YmKitIHH3ygW2+9VX/84x8VGRmpPn366JNPPlHz5s2rtEYAAGqru+++W16vV3fddZcCgYAWLVqkhx56SHfffbe2bdum5ORktWnTJrguiHRo0dIpU6bo+eefV35+vho3bqxzzjlH99xzz1EXT69fv77mzJmj8847TxkZGfroo4/UpUuX6vo0AdRyHsdxnFAXAYSDbdu2KS0tTX/+8581bty4UJcTclOnTtXFF1+s6dOnl2hmwtEf/vAHvfnmm9q5c2eZp+QCAAAAcB9mgsD1Nm7cqB9//FGPPPKIvF6vbr311lCXFFI//PCDli1bpjvvvFONGzdWr169Ql1SCffdd5+aNGmili1bau/evZo2bZqef/553X333QyAAAAAADgmBkHges8//7zuu+8+paen6/XXX1fTpk1DXVJI/e1vf9O//vUvdevWTW+//bZiYmJCXVIJUVFRwUtxioqK1KZNGz322GOuH7wCAAAA8Nu4HAYAgBA4ePCgCgoKTDOjo6PDbuASAACEN7f1JMwEAQCgmh08eFD1YuO1X8WmuY0bN9batWvDtukAAADhxY09CYMgAABUs4KCAu1Xsa5SU0XLa5OpgF7fskkFBQVh2XAAAIDw48aehEEQAABCJFZeRXtsGo4ILm4FAAAV5KaepEYPggQCAf30009KSEiQx+MJdTkAgFrEcRzt2bNHTZo0kddr0xSg9qInAQBUFXoSWzV6EOSnn35SampqqMsAANRiubm5atasWZVkR3g8ijD6B3OEPFKYn3mpzehJAABVjZ7ERo0eBElISJB06IchMTExxNUAgHsU/vRf07yoJm1N8yzk5+crNTU1+F5TFbweKcJo0oBXCuuGo7aj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kpSTk6PrrrtOeXl58ng88ng8GjNmjKQjp56uWrVKPXv2VExMjE444QR98skn8ng8eu+994LHbNq0SZdffrnq1KmjevXq6cILL9S6deuCHx86dKguuugijR8/XikpKapXr55uvvlmFRYWHvVzPDwF9MUXX1TLli3l8/nkOI7y8vL0hz/8QQ0bNlRiYqJ69eqlr7/+Ovi8r7/+WmeffbYSEhKUmJiozp07a8mSJZJKP9P00EMPqVGjRkpISNANN9yggwcPlvh4ZmamRowYUWLfRRddpKFDhwYfFxQUaNSoUWratKmOO+44devWTTk5OUf93AAAqC3oSehJANhhEAQ4in379mnkyJFavHixZs+eLa/Xq0GDBikQCJQ47q677tLtt9+uZcuWqW3btrryyitVVFSkHj16aMKECUpMTNTmzZu1efNm3X777Ue8TiAQ0EUXXaS4uDgtWrRIzz33nO66664Sx+zfv19nn3224uPjNW/ePH322WeKj49X//79VVBQEDzu008/1Q8//KBPP/1UL7/8siZNmqRJkyYd8/Ncs2aN/vWvf2nKlClatmyZJOm8887Tli1bNGPGDC1dulSnnnqqevfurV27dkmSrrrqKjVr1kyLFy/W0qVL9de//vWoZ2v+9a9/afTo0XrggQe0ZMkSpaSk6Omnn/6tL/8RrrvuOn3++ed66623tHz5cl166aXq37+/vv/++3JnAQBQk9CT0JMAMOQAKJNt27Y5kpxvvvnGcRzHWbt2rSPJef7554PHfPvtt44k57vvvnMcx3FeeuklJykp6YistLQ05+9//7vjOI7z4YcfOpGRkc7mzZuDH581a5YjyZk6darjOI7zwgsvOO3atXMCgUDwGL/f78TGxjofffSR4ziOc+211zppaWlOUVFR8JhLL73Uufzyy4/6OY0ePdqJiopytm3bFtw3e/ZsJzEx0Tl48GCJY1u1auU8++yzjuM4TkJCgjNp0qRSM3/9OXfv3t256aabShzTrVs356STTgo+zsjIcG699dYSx1x44YXOtdde6ziO46xZs8bxeDzOpk2bShzTu3dvJysr66ifHwAAtRE9CT0JgIpjJghwFD/88IOGDBmili1bKjExUS1atJAkbdiwocRxnTp1Cv5/SkqKJGnbtm1lfp3Vq1crNTVVjRs3Du7r2rVriWOWLl2qNWvWKCEhQfHx8YqPj1fdunV18ODBEtNhO3TooIiIiBL1/FYtaWlpJa4HXrp0qfbu3at69eoFXys+Pl5r164NvtbIkSP1+9//Xn369NFDDz1UooZf++6779S9e/cS+379+Ld8+eWXchxHbdu2LVHT3Llzj/naAADUBvQk9CQA7LAwKnAUAwcOVGpqqv75z3+qSZMmCgQC6tixY4mpnpJKTLn0eDySdMT01GNxHCf4vKMJBALq3LmzXn/99SM+9stm4dfTPz0ez2/Wctxxxx3xWikpKaVe23r4utoxY8ZoyJAhmj59uj788EONHj1ab731lgYNGnTM1zoar9crx3FK7PvldcOBQEARERFaunRpiYZKkuLj4yv0mgAA1BT0JDlHHEtPAqCiGAQBSrFz50599913evbZZ3XmmWdKkj777LNy50RHR6u4uPiYxxx//PHasGGDtm7dqkaNGkk6dLu6Xzr11FP19ttvBxcFq0qnnnqqtmzZosjISKWnpx/1uLZt26pt27a67bbbdOWVV+qll14qteFo3769Fi5cqGuuuSa4b+HChSWOadCggTZv3hx8XFxcrBUrVujss8+WJJ1yyikqLi7Wtm3bgt8PAADcgJ6EngSALS6HAUpxeLXz5557TmvWrNGcOXM0cuTIcuekp6dr7969mj17tnbs2KH9+/cfccw555yjVq1a6dprr9Xy5cv1+eefBxchO3w25qqrrlL9+vV14YUXav78+Vq7dq3mzp2rW2+9VRs3bqzcJ/srffr0Uffu3XXRRRfpo48+0rp16/TFF1/o7rvv1pIlS3TgwAENHz5cOTk5Wr9+vT7//HMtXrxY7du3LzXv1ltv1YsvvqgXX3xR//3vfzV69Gh9++23JY7p1auXpk+frunTp2vVqlUaNmyYdu/eHfx427ZtddVVV+maa67Ru+++q7Vr12rx4sV6+OGHNWPGDNPPHwCAcEJPQk8CwBaDIEApvF6v3nrrLS1dulQdO3bUbbfdpkceeaTcOT169NBNN92kyy+/XA0aNNC4ceOOOCYiIkLvvfee9u7dq9NOO02///3vdffdd0uSYmJiJElxcXGaN2+emjdvrosvvljt27fX9ddfrwMHDpifhfF4PJoxY4bOOussXX/99Wrbtq2uuOIKrVu3To0aNVJERIR27typa665Rm3bttVll12mAQMGaOzYsaXmXX755br33nv1l7/8RZ07d9b69ev1pz/9qcQx119/va699lpdc801ysjIUIsWLYJnXA576aWXdM011+j//b//p3bt2umCCy7QokWLlJqaavr5AwAQTuhJ6EkA2PI4v77oDUDIff755+rZs6fWrFmjVq1ahbocAADgUvQkAGobBkGAMDB16lTFx8erTZs2WrNmjW699VbVqVOnQtf8AgAAVBQ9CYDajoVRgTCwZ88ejRo1Srm5uapfv7769OmjRx99NNRlAQAAl6EnAVDbMRMEAAAAAAC4AgujAgAAAAAAV2AQBAAAAAAAuAKDIAAAAAAAwBUYBAEAAAAAAK7AIAgAAAAAAHAFBkEAAAAAAIArMAgCAAAAAABcgUEQAAAAAADgCgyCAAAAAAAAV/j/w+wpDz4rceQAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Reference potentials: Miyazawa-Jernigan and Keskin\n", "fig, axes = plt.subplots(1, 2, figsize=(11, 5))\n", "for ax, pot, name in zip(axes, [mj(), keskin()], ['Miyazawa-Jernigan', 'Keskin']):\n", " im = plot_potential(ax, pot, name)\n", " fig.colorbar(im, ax=ax, fraction=0.046)\n", "plt.tight_layout()" ] }, { "cell_type": "code", "execution_count": 5, "id": "05697518", "metadata": { "execution": { "iopub.execute_input": "2026-06-12T07:24:12.465962Z", "iopub.status.busy": "2026-06-12T07:24:12.465881Z", "iopub.status.idle": "2026-06-12T07:24:12.545022Z", "shell.execute_reply": "2026-06-12T07:24:12.544791Z" }, "language": "python" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArIAAAGGCAYAAACHemKmAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA7p0lEQVR4nO3dfVxUZf7/8fegOOINGCp3aUCi5l1omoLlXRZGW3lb1Fbi9l3NslLRtaUytTK62ZIssywV3da08qY2K8EWb0prw6DMzKxQqYVIW8WbRIXr90c/Zh0ZbsRhhhOv5+NxHg/nOtc553OuOdXbq3PO2IwxRgAAAIDF+Hi7AAAAAKAmCLIAAACwJIIsAAAALIkgCwAAAEsiyAIAAMCSCLIAAACwJIIsAAAALIkgCwAAAEtq6O0C6qLS0lL95z//UfPmzWWz2bxdDgAAQL1hjNHhw4cVFhYmH5/K51wJsi785z//Udu2bb1dBgAAQL2Vl5enNm3aVNqHIOtC8+bNJf02gP7+/l6uBgAAoP4oKipS27ZtHXmsMgRZF8puJ/D39yfIAgAAeEF1bu/kYS8AAABYEkEWAAAAlkSQBQAAgCVxjywAAIAblJSU6OTJk94uo87z9fVVgwYN3LIvgiwAAMA5MMaooKBABw8e9HYpltGiRQuFhISc8/v6CbIAAADnoCzEBgUFqUmTJvyYUiWMMTp27JgKCwslSaGhoee0P4IsAABADZWUlDhCbMuWLb1djiX4+flJkgoLCxUUFHROtxnwsBcAAEANld0T26RJEy9XYi1l43Wu9xQTZAEAAM4RtxOcHXeNF0EWAAAAlkSQBQAAgCXxsBcAAEAtuOONzz12rJduiK5236r+t35iYqLS0tKc+jVt2lTt2rXT5MmTNWbMmHLbLFu2TLfddpvGjh2rF198sdq1nCtmZAEAAOqR/Px8x5Kamip/f3+ntmeffdbRd/HixcrPz9fnn3+uhIQE/elPf9K6devK7XPRokWaNm2ali9frmPHjnnsXJiRBQA4WbC9yOPHHNfN3+PHBOqrkJAQx58DAgJks9mc2k5X9sMFknT//ffr6aefVnp6uoYMGeLos2fPHm3ZskUrV65UZmam3nzzTY0ePbp2T+L/Y0YWAAAAlSopKdHrr7+uX375Rb6+vk7rFi1apD/84Q8KCAjQrbfeqoULF3qsLoIsAAAAXLr55pvVrFkz2e12JSQkKDAwUH/+858d60tLS5WWlqZbb71VknTTTTdp69at+vbbbz1SH0EWAAAALs2ZM0c5OTnKyMhQ9+7dNWfOHEVFRTnWp6en6+jRo4qPj5cktWrVSnFxcVq0aJFH6vNqkN20aZOuu+46hYWFyWazac2aNU7rbTaby+Wpp56qcJ9lT9mduRw/fryWzwYAAOD3JSQkRFFRURo0aJDeeOMNTZgwQV999ZVj/aJFi/TLL7+oSZMmatiwoRo2bKh3331XS5YsUUlJSa3X59Uge/ToUUVHR+v55593uf70J+jy8/O1aNEi2Ww2jRw5stL9nvn0XX5+vho3blwbpwAAAFAvREVFaeTIkUpOTpYkHThwQG+99ZaWL1+unJwcp+XIkSN67733ar0mr761ID4+3jEV7cqZT9C99dZbGjRokC688MJK91vZ03cAAAComSlTpig6OlpZWVn68MMP1bJlS91www3y8XGeG7322mu1cOFCXXvttbVaj2Vev/XTTz9p7dq1WrJkSZV9jxw5ovDwcJWUlKh79+565JFH1KNHjwr7FxcXq7i42PG5qMjzr54BAACo67p166Yrr7xSDz30kH744QcNHz68XIiVpJEjRyohIUE//fSTgoODa60eywTZJUuWqHnz5hoxYkSl/S666CKlpaWpW7duKioq0rPPPqvLLrtMn3/+udq3b+9ym5SUFM2aNas2ygYAAPXU2fzalreMGTPG5S91SZIxxmV7enp6lfsdMWKETp48eS6lVYtl3lqwaNEi3XLLLVXe6xoTE6Nbb71V0dHR6tevn15//XV16NBBzz33XIXbJCcn69ChQ44lLy/P3eUDAADAzSwxI7t582bt2rVLK1asOOttfXx8dOmll2r37t0V9rHb7bLb7edSIgAAADzMEjOyCxcuVM+ePRUdffZT9MYY5eTkKDQ0tBYqAwAAgLd4dUb2yJEjTr/8kJubq5ycHAUGBuqCCy6Q9NuDV2+88Yaefvppl/sYPXq0zj//fKWkpEiSZs2apZiYGLVv315FRUWaO3eucnJyNG/evNo/IQAAAHiMV4NsVlaWBg0a5PiclJQkSUpMTFRaWpokafny5TLG6Oabb3a5j3379jk9LXfw4EGNGzdOBQUFCggIUI8ePbRp0yb17t279k4EAAAAHmczFT2SVo8VFRUpICBAhw4d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vtLtp0yZopdeekk//vhjpf3mzZun1atX6+uvv9aECRP03//+1/HAzYQJE/TLL7/o5ptv1r///W99//33Sk9P1+233+4UEvLy8pSUlKRdu3bptdde03PPPaeJEyc61kdERGjTpk368ccftX//fpd1TJw4UYsWLdKiRYv0zTffaMaMGdqxY4dTn5kzZyolJUXPPvusvvnmG23fvl2LFy/WM88843KfjRs31n333adp06Zp6dKl+u677/Txxx9r4cKFkqRbbrlFjRs3VmJior788ktlZmbqnnvu0W233eZ46Ko6XJ1fVFSUMjIytGXLFu3cuVN33HGHCgoKql1bUFCQ/Pz8HA9fHTp0SLm5uUpOTtbWrVu1d+9epaen65tvvlGnTp0qrc8d33FVqqotIiJCubm5ysnJ0f79+1VcXFzhvvr06aMmTZro/vvv17fffqtly5Y5Hq4rM2PGDL322muaMWOGdu7cqe3btzv9pc/VdzJw4ED9/PPPevLJJ/Xdd99p3rx5eu+996o8t1tuuUWtWrXS0KFDtXnzZuXm5mrjxo2aOHGifvjhh2qPEfC75dU7dAF4nauHW8p8+umnZsSIEaZ169bGbrebqKgoM27cOLN7925jjOuHgowxprS01HTs2NHceeedLvdbtt2yZctMnz59TKNGjUynTp3MBx984NTvm2++McOHDzctWrQwfn5+5qKLLjKTJk1yer3WXXfdZcaPH2/8/f3NeeedZ/761786PRizdetWc/HFFxu73V7p67dmz55tWrVqZZo1a2YSExPNtGnTyj2c849//MN0797dNGrUyJx33nmmf//+ZtWqVRWObUlJiXn00UdNeHi48fX1NRdccIF57LHHHOur+/qt002cONHxOqyKzu/AgQNm6NChplmzZiYoKMg8+OCDZvTo0U77qqq2l19+2bRt29b4+PiYAQMGmIKCAjNs2DATGhpqGjVqZMLDw81DDz1kSkpKXJ67O7/jiRMnVjjGxpgqazt+/LgZOXKkadGiRbnXb61evbrc/lavXm2ioqJM48aNzbXXXmsWLFhQ7vVbK1eudFwLrVq1MiNGjKj0OzHGmPnz55u2bduapk2bmtGjR5vZs2e7fP3WmfLz883o0aNNq1atjN1uNxdeeKEZO3asOXToUKXjAtQHNmPO8qkOADhHe/bsUWRkpLKzs8/pF5cGDhyo7t278ytKdZC7vmMAqAy3FgAAAMCSCLIAAACwJG4tAAAAgCUxIwsAAABLIsgCAADAkgiyAAAAsCSCLAAAACyJIAsAAABLIsgCAADAkgiyAAAAsCSCLAAAACyJIAsAAABL+n9zg+6k+wwcawAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Distribution of TCR-peptide contacts per structure (TRA vs TRB)\n", "cps = an.contacts_per_structure(df)\n", "fig, ax = plt.subplots(figsize=(7, 4))\n", "for chain, color in [('TRA', '#0072B2'), ('TRB', '#56B4E9')]:\n", " vals = cps.filter(pl.col('chain.type.from') == chain)['n_contacts'].to_list()\n", " ax.hist(vals, bins=range(0, 40, 2), alpha=0.6, label=chain, color=color)\n", "ax.set_xlabel('TCR-peptide contacts per structure'); ax.set_ylabel('structures'); ax.legend(); plt.tight_layout()" ] }, { "cell_type": "code", "execution_count": 6, "id": "0b313638", "metadata": { "execution": { "iopub.execute_input": "2026-06-12T07:24:12.546184Z", "iopub.status.busy": "2026-06-12T07:24:12.546103Z", "iopub.status.idle": "2026-06-12T07:24:12.598088Z", "shell.execute_reply": "2026-06-12T07:24:12.597798Z" }, "language": "python" }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Contacts by TCR region and chain (CDR3 dominates; TRB > TRA)\n", "reg = an.region_contact_counts(df)\n", "order = ['FR1', 'CDR1', 'FR2', 'CDR2', 'FR3', 'CDR3']\n", "fig, ax = plt.subplots(figsize=(7, 4))\n", "x = np.arange(len(order)); w = 0.4\n", "for k, (chain, color) in enumerate([('TRA', '#0072B2'), ('TRB', '#56B4E9')]):\n", " d = {r['region.type.from']: r['n_contacts'] for r in reg.filter(pl.col('chain.type.from')==chain).iter_rows(named=True)}\n", " ax.bar(x + (k-0.5)*w, [d.get(r, 0) for r in order], w, label=chain, color=color)\n", "ax.set_xticks(x); ax.set_xticklabels(order); ax.set_ylabel('contacts'); ax.legend(); plt.tight_layout()" ] }, { "cell_type": "code", "execution_count": 7, "id": "3d258ec1", "metadata": { "execution": { "iopub.execute_input": "2026-06-12T07:24:12.599358Z", "iopub.status.busy": "2026-06-12T07:24:12.599271Z", "iopub.status.idle": "2026-06-12T07:24:12.807276Z", "shell.execute_reply": "2026-06-12T07:24:12.807030Z" }, "language": "python" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABc8AAAGGCAYAAACt9nkNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAACg6ElEQVR4nOzde1xVVf7/8fcB5KAoNHgDElDLW1lIaF5LLcXIyDTTcn7e0sqhm9JlJDPRSrpMRmVaTSY2lfFt8lZZSlOKpjWCUk03tTDIQNJKxAso7N8fDmc6chEOx3PZvp6Px3o82muvvc7noPlhr732WhbDMAwBAAAAAAAAAAAbH3cHAAAAAAAAAACAp2HwHAAAAAAAAACAUzB4DgAAAAAAAADAKRg8BwAAAAAAAADgFAyeAwAAAAAAAABwCgbPAQAAAAAAAAA4BYPnAAAAAAAAAACcgsFzAAAAAAAAAABOweA5AAAAAAAAAACnYPAcqMX8+fO1atWqavUbNmyQxWLRhg0bTtvHpEmT1L59e6fH5mqLFi1Senq6aT4HAOAeX3zxhSZPnqwOHTooICBAzZs31yWXXKInnnhCv/76q63doEGDZLFYZLFY5OPjoxYtWuj888/XDTfcoH/+85+qrKys1nf79u1t11gsFgUGBuqSSy7RwoULZRiGXduCggKNHDlSHTt2VGBgoIKDgxUTE6OFCxfqxIkTZ/zn4ArkbgCAs3lrHv/HP/6h6OhoBQYGKjQ0VNdee62+/PJL5/+AnOTIkSNKSUmp15iDN3wO4O0YPAdqUdvg+SWXXKKtW7fqkksucX1QbsINOACgsf7+978rNjZW27Zt03333acPPvhAK1eu1A033KAXXnhBU6ZMsWvfsWNHbd26VVu2bNGqVas0c+ZMHT16VDfccIMGDRqkgwcPVvuM/v37a+vWrdq6dav+8Y9/qFmzZrrzzjuVmppq1+7w4cMKCgrS7NmztWbNGr355psaMGCA7rzzTk2bNu2M/hxchdwNAHAmb83j69ev14QJE9SuXTu9/fbbevHFF1VQUKCrr75aZWVlzv9BOcGRI0c0d+5clwyeu+JzAG/n5+4AAG8TFBSkPn36uDsMAAC8xtatW/WXv/xFQ4cO1apVq2S1Wm3nhg4dqnvuuUcffPCB3TVNmzatlm+nTp2qpUuX6uabb9att96qjIwMu/PnnHOO3TVDhgxRZGSkXnzxRT3wwAO2+q5du2rZsmV218bHx6u4uFjLli3T888/bxcjAABnM2/O42+++aaaNm2qjIwMNW/eXJJksVg0YsQIffPNN+rRo4fjPxgAZwVmnsNjpaSkyGKxaMeOHRo1apSCgoIUHBys//f//p9++eWXau0zMjLUt29fBQYGqnnz5ho2bJh27Nhh12bSpElq3ry5vvrqK1155ZUKDAxU69atdccdd+jIkSO2dhaLRYcPH9ayZctsr40NGjRIUu3LtqSnp6tLly6yWq3q1q2bXn311Rq/V3l5uR555BF17dpVVqtVrVu31uTJk2v8TjX57LPPlJCQoJYtWyogIEDnnXeepk+fbtdm8+bNuvLKK9WiRQs1a9ZM/fr103vvvVctXovFoo8//lh/+ctf1KpVK7Vs2VKjRo3Szz//bGvXvn17ffXVV9q4caPtZ1G1FM2xY8d0zz33qEePHgoODlZISIj69u2r1atXV4u7srJSzz33nHr06KGmTZvafjFas2bNaT+nsrJSjzzyiLp06WK79uKLL9YzzzxTr58ZAMC95s+fL4vFopdeeqnGQWl/f39de+219epr8uTJuvrqq/XWW2/pxx9/rLNtUFCQOnfurH379tWr79atW8vHx0e+vr62OsMw9OSTT6pjx44KCAjQxRdfrHfeeUfl5eUKCQmp16xrcje5GwC8mTfn8fz8fEVGRtoGziXZcmaTJk3q1e8bb7yhvn37qnnz5mrevLl69OihJUuW2LV55ZVXFB0drYCAAIWEhGjkyJH65ptv7NpUjUfs3r1bV199tZo3b66IiAjdc889tlnwe/bsUevWrSVJc+fOteXXSZMmSZJ2796tyZMnq1OnTmrWrJnOPfdcJSQk1LgMze+//6577rlHHTt2lNVqVZs2bXT11Vfr22+/Pe3n/PLLL7r11lsVERFhG7fo37+/Pvzww3r9zAAzYeY5PN7IkSM1ZswYTZs2TV999ZVmz56tr7/+Wp999pkt2c2fP18PPvigJk+erAcffFDl5eV68sknddlll+nf//63LrjgAlt/x48f19VXX63bbrtNM2fO1JYtW/TII4/oxx9/1DvvvCPp5JP1K664QoMHD9bs2bMlnUzctUlPT9fkyZM1YsQIPfXUUzp48KBSUlJUVlYmH5//PaOqrKzUiBEjtGnTJt1///3q16+ffvzxR82ZM0eDBg1Sdna2mjZtWuvnrFu3TgkJCerWrZsWLFigyMhI7dmzR+vXr7e12bhxo4YOHaqLL75YS5YskdVq1aJFi5SQkKDly5dr7Nixdn1OnTpVw4cP1xtvvKGCggLdd999+n//7//po48+kiStXLlSo0ePVnBwsBYtWiRJtl+YysrK9Ouvv+ree+/Vueeeq/Lycn344YcaNWqUli5dqgkTJtg+Z9KkSXrttdc0ZcoUzZs3T/7+/tq+fbv27Nlz2s954oknlJKSogcffFCXX365jh8/rm+//Va///57rT8rAIBnqKio0EcffaTY2FhFREQ4pc9rr71Wa9eu1aZNmxQVFVVruxMnTqigoECdO3eu8bxhGKqoqNChQ4e0fv16paen65577pGf3/9+RZ4xY4aeffZZPfDAAxo4cKD+/ve/a/To0XryySdVWlqqESNG1BkruZvcDQDezNvz+IkTJ2zHv/zyi7KysvTQQw/p4osvthsnqM1DDz2khx9+WKNGjdI999yj4OBg/ec//7Eb+E9NTdUDDzygm266SampqTpw4IBSUlLUt29fbdu2TZ06dbK1PX78uK699lpNmTJF99xzj7KysvTwww8rODhYDz30kMLCwvTBBx/oqquu0pQpUzR16lRJsg10//zzz2rZsqUee+wxtW7dWr/++quWLVum3r17a8eOHerSpYsk6dChQxowYID27Nmjv/71r+rdu7dKS0uVlZWlwsJC9evXr87PGT9+vLZv365HH31UnTt31u+//67t27frwIEDp/2ZAaZjAB5qzpw5hiRjxowZdvWvv/66Icl47bXXDMMwjPz8fMPPz8+488477dodOnTICA0NNcaMGWOrmzhxoiHJeOaZZ+zaPvroo4YkY/Pmzba6wMBAY+LEidXi+vjjjw1Jxscff2wYhmFUVFQY4eHhxiWXXGJUVlba2u3Zs8do0qSJERUVZatbvny5Icl4++237frctm2bIclYtGhRnT+T8847zzjvvPOMo0eP1tqmT58+Rps2bYxDhw7Z6k6cOGF0797daNeunS3GpUuXGpKMxMREu+ufeOIJQ5JRWFhoq7vwwguNgQMH1hlb1eccP37cmDJlihETE2Orz8rKMiQZs2bNqvP62j7nmmuuMXr06HHazwcAeJ6ioiJDknHjjTfW+5qBAwcaF154Ya3n33//fUOS8fjjj9vqoqKijKuvvto4fvy4cfz4cePHH380brnlFqNJkybGu+++W2M/qamphiRDkmGxWKrlqaKiIsPX19cYO3asre7YsWPGn/70JyMgIMCIj48/7XchdwMAvJk35/E/xpKXl2dr26RJE+O999477ff44YcfDF9fX+PPf/5zrW1+++03o2nTpsbVV19tV5+fn29YrVZj3Lhxtrqq8Yj/+7//s2t79dVXG126dLEd//LLL4YkY86cOaeN8cSJE0Z5ebnRqVMnu7GTefPmGZKMzMzMWq+t63OaN29uTJ8+/bSfD5wNWLYFHu/Pf/6z3fGYMWPk5+enjz/+WNLJGV0nTpzQhAkTdOLECVsJCAjQwIEDa9z84tQ+x40bJ0m2Phviu+++088//6xx48bJYrHY6qOiotSvXz+7tu+++67OOeccJSQk2MXao0cPhYaG1rlRx86dO/X9999rypQpCggIqLHN4cOH9dlnn2n06NF2r6X5+vpq/Pjx+umnn/Tdd9/ZXXPq63UXX3yxJJ32Fboqb731lvr376/mzZvLz89PTZo00ZIlS+xeUXv//fclSbfffnu9+jzVpZdeqs8//1yJiYlat26dSkpKHOoHAGAOhmHUWL927Vo1adJETZo0UVRUlP7+97/rueee0/Dhw2tsP2nSJG3btk3r1q3T/fffryeffFJ33nmn7fy///1vVVRUaNSoUbY6q9WqgQMH6tixYxozZkydcZK7yd0AgOpclcf/KDw8XP/617+0dOlSXX755brmmmv0/PPP1xlnZmamKioq6syFW7du1dGjR23LnVSJiIjQFVdcoX/961929RaLRQkJCXZ1F198cb1z+IkTJzR//nxdcMEF8vf3l5+fn/z9/bVr165qebxz584aMmRIvfo91aWXXqr09HQ98sgj+vTTT3X8+HGH+gHMgMFzeLzQ0FC7Yz8/P7Vs2dL2ulDV+me9evWyJdqqkpGRof3799d4fU2f4cgrSFXXnBpnTXX79u3T77//Ln9//2qxFhUVVYv1j6rWRG/Xrl2tbX777TcZhqGwsLBq58LDw+3irXLqz6LqdeujR4/W+jlVVqxYoTFjxujcc8/Va6+9pq1bt2rbtm26+eabdezYMbvYfX19a/wZ1UdycrL+9re/6dNPP1V8fLxatmypK6+8UtnZ2Q71BwBwnVatWqlZs2bKy8tzWp9VN5hVua3KgAEDtG3bNn366af6xz/+ofbt2+uOO+7Q5s2ba+wnNDRUPXv2VFxcnB577DHNmzdPCxcutO2ZcujQIUnSueeea3fdJZdcoiZNmpx2yRZyN7kbALydN+fxP/L399cVV1yhSZMmKTMzU0OHDtX9999f56BwffJ4VY6uLY+fmsObNWtW7YG61Wq1y8F1SUpK0uzZs3XdddfpnXfe0WeffaZt27YpOjra7veAX375pc64TycjI0MTJ07Uyy+/rL59+yokJEQTJkxQUVGRw30C3oo1z+HxioqK7G5aT5w4oQMHDthuHFu1aiVJ+uc//1nnemm1XV/1GVL1m9H6qLqmpiRyal3Vxl6n7kRepUWLFrV+TtXaYz/99FOtbf70pz/Jx8dHhYWF1c5VbYpS9fNyhtdee00dOnRQRkaG3az7qs1OqrRu3VoVFRUqKiqq8ZeK0/Hz81NSUpKSkpL0+++/68MPP9QDDzygYcOGqaCgQM2aNWv0dwEAnBm+vr668sor9f777+unn35q1I1clTVr1shisejyyy+3qw8ODlbPnj0lSb1791bv3r0VHR2txMRE5ebm2u1DUpNLL71U0skZ4zExMbab+lPX6c7Ly5OPj0+d+6FI5G5yNwB4P2/O47WxWCzq16+f1q9fr4MHD9aaZ/+Yx2tb771qPKC2PO7MHC6dzOMTJkzQ/Pnz7er379+vc845x3bcunXrOn//OJ1WrVopLS1NaWlpys/P15o1azRz5kwVFxfXOp4BmBUzz+HxXn/9dbvj//u//9OJEyc0aNAgSdKwYcPk5+en77//Xj179qyxnK7PN954Q5JsfUonn/7WZwZXly5dFBYWpuXLl9u9fvbjjz9qy5Ytdm2vueYaHThwQBUVFTXGWbW5R006d+6s8847T6+88kq1G9wqgYGB6t27t1asWGEXe2VlpV577TW1a9eu1s1W6lLbz8Jiscjf39/u5ruoqEirV6+2axcfHy9JWrx4sUOf80fnnHOORo8erdtvv12//vqrbdMyAIDnSk5OlmEYuuWWW1ReXl7t/PHjx22bdp/O0qVL9f777+umm25SZGRknW07deqk+++/X19++aUyMjJO23fV8m3nn3++JKl79+6yWq365JNPbG0OHz6sFStWqKysrNpyKqcid59E7gYA7+atebzK/v37bW+TVfn8888VFBRU5+B2XFycfH1968yFffv2VdOmTfXaa6/Z1f/000/66KOPdOWVV5427lPV9UaZxWKxna/y3nvvae/evXZ18fHx2rlzp20z8YZ+zh9FRkbqjjvu0NChQ7V9+/Z6fQfATJh5Do+3YsUK+fn5aejQofrqq680e/ZsRUdH29YZbd++vebNm6dZs2bphx9+0FVXXaU//elP2rdvn/79738rMDBQc+fOtfXn7++vp556SqWlperVq5e2bNmiRx55RPHx8RowYICt3UUXXaQNGzbonXfeUVhYmFq0aFHj4LaPj48efvhhTZ06VSNHjtQtt9yi33//XSkpKdVedb7xxhv1+uuv6+qrr9bdd9+tSy+9VE2aNNFPP/2kjz/+WCNGjNDIkSNr/Vk8//zzSkhIUJ8+fTRjxgxFRkYqPz9f69atsz0QSE1N1dChQzV48GDde++98vf316JFi/Sf//xHy5cvt7tZrq+LLrpIb775pjIyMtSxY0cFBATooosu0jXXXKMVK1YoMTFRo0ePVkFBgR5++GGFhYVp165dtusvu+wyjR8/Xo888oj27duna665RlarVTt27FCzZs1s69LV9jkJCQnq3r27evbsqdatW+vHH39UWlqaoqKi7HYuBwB4pr59+2rx4sVKTExUbGys/vKXv+jCCy/U8ePHtWPHDr300kvq3r273RqgR48e1aeffmr77x9++EGrVq3Su+++q4EDB+qFF16o12ffe++9euGFFzR37lyNGTNGvr6+mjNnjvbt26fLL79c5557rn7//Xd98MEH+vvf/64bbrhBsbGxkk7Oupo6daoWLlyofv36aeDAgbr33nvVokULBQUFafHixXr22WfrzK3kbnI3AHg7b83jVarazpw5U61atdL69eu1atUqzZo1q87Pbt++vR544AE9/PDDOnr0qG666SYFBwfr66+/1v79+zV37lydc845mj17th544AFNmDBBN910kw4cOKC5c+cqICBAc+bMaeBP++Qb6VFRUVq9erWuvPJKhYSEqFWrVmrfvr2uueYapaenq2vXrrr44ouVk5OjJ598stobAdOnT1dGRoZGjBihmTNn6tJLL9XRo0e1ceNGXXPNNRo8eHCtn/OnP/1JgwcP1rhx49S1a1e1aNFC27Zt0wcffGC3Dwxw1nDjZqVAnebMmWNIMnJycoyEhASjefPmRosWLYybbrrJ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r4l5qkGDBskwjFrP13UOAIAq5HH3OHz4sKKjozV58mRdf/311c537txZCxcuVMeOHXX06FE9/fTTiouL0+7du9W6dWs3RAwA8ERmz+MMngMAvF7VhiOOXAcAANyLPO4e8fHxio+Pr/X8uHHj7I4XLFigJUuW6IsvvtCVV155psMDAHgJs+dxBs8BAF7P7E+6AQAwM/K45ysvL9dLL72k4OBgRUdH19qurKxMZWVltuOSkhJXhAcAcCOz53G3Li5zujXWDMNQSkqKwsPD1bRpUw0aNEhfffWVe4IFAHisqmTtSAEAAO5FHvdc7777rpo3b66AgAA9/fTTyszMVKtWrWptn5qaquDgYFuJiIhwYbQAAHcwex536+B51RprCxcurPH8E088oQULFmjhwoXatm2bQkNDNXToUB06dMjFkQIAAAAAcHYZPHiwcnNztWXLFl111VUaM2aMiouLa22fnJysgwcP2kpBQYELowUAwPncumxLXWusGYahtLQ0zZo1S6NGjZIkLVu2TG3bttUbb7yh2267zZWhAgA8mNlfEwMAwMzI454rMDBQ559/vs4//3z16dNHnTp10pIlS5ScnFxje6vVKqvV6uIoAQDuZPY87taZ53XJy8tTUVGR4uLibHVWq1UDBw7Uli1b3BgZAMDTmP01MQAAzIw87j0Mw7Bb0xwAALPncY/dMLSoqEiS1LZtW7v6tm3b6scff6z1OjYoAYCzjyHHduo2nB8KAABoIPK4e5SWlmr37t2247y8POXm5iokJEQtW7bUo48+qmuvvVZhYWE6cOCAFi1apJ9++kk33HCDG6MGAHgas+dxjx08r2Kx2P/wDcOoVvdHqampmjt37pkOCwDgQcz+mhgAAGZGHneP7OxsDR482HaclJQkSZo4caJeeOEFffvtt1q2bJn279+vli1bqlevXtq0aZMuvPBCd4UMAPBAZs/jHjt4HhoaKunkDPSwsDBbfXFxcbXZ6H+UnJxsS/rSyZnn7PANAOZm9mQNAICZkcfdY9CgQTKM2uf9rVixwoXRAAC8ldnzuMcOnnfo0EGhoaHKzMxUTEyMJKm8vFwbN27U448/Xut1bFACAGcfsydrSE33n5Cf3wl3hyFJqvD3rC1jrAcr3B2CjU95pbtDsOPTNMDdIdiLaufuCOxU7Pze3SEAksjjAAB4M7PncbcOnte1xlpkZKSmT5+u+fPnq1OnTurUqZPmz5+vZs2aady4cW6MGgAAAAAAAABgdm4dPK9rjbX09HTdf//9Onr0qBITE/Xbb7+pd+/eWr9+vVq0aOGukAEAHsjsT7oBADAz8jgAAN7L7HncrYPnp1tjzWKxKCUlRSkpKa4LCgDgdQzDIsOBxOvINQAAwLnI4wAAeC+z53GPXfMcAID6qpRFlXLgSbcD1wAAAOcijwMA4L3MnscZPAcAeD2zvyYGAICZkccBAPBeZs/jDJ4DALye2V8TAwDAzMjjAAB4L7PncR93BwAAAAAAAAAAgKdh5jkAwOuZ/TUxAADMjDwOAID3MnseZ+Y5AMDrVb0m5khpqEWLFqlDhw4KCAhQbGysNm3aVGvbFStWaOjQoWrdurWCgoLUt29frVu3rlq7t99+WxdccIGsVqsuuOACrVy5ssFxAQDgrVyZxwEAgHOZPY8z89xBFaEtnd5n2Z+aOL3PwDxfp/fZ5PNznN5n8PDfnN7nkS//5PQ+y4Od3qV+iXb+n7sktf8yzOl9GkeOOL3PigO/Or1PnH0MB590NzRZZ2RkaPr06Vq0aJH69++vF198UfHx8fr6668VGRlZrX1WVpaGDh2q+fPn65xzztHSpUuVkJCgzz77TDExMZKkrVu3auzYsXr44Yc1cuRIrVy5UmPGjNHmzZvVu3fvBn8nAAC8javyONynxU4/+Vo9Y/ihxK+pu0Ow0+Sw5/w93nep58QiSR1XVLo7BDuW0NbuDsFeaam7I7BnGO6OAG5i9jzOzHMAgNczdPJ3tQaXBn7OggULNGXKFE2dOlXdunVTWlqaIiIitHjx4hrbp6Wl6f7771evXr3UqVMnzZ8/X506ddI777xj12bo0KFKTk5W165dlZycrCuvvFJpaWkO/zxcJSsrSwkJCQoPD5fFYtGqVavszqekpKhr164KDAzUn/70Jw0ZMkSfffaZe4IFAHgsV+VxAADgfGbP4wyeAwC8XqUsDhdJKikpsStlZWXVPqO8vFw5OTmKi4uzq4+Li9OWLVvqF2dlpQ4dOqSQkBBb3datW6v1OWzYsHr36U6HDx9WdHS0Fi5cWOP5zp07a+HChfryyy+1efNmtW/fXnFxcfrll19cHCkAwJM1No8DAAD3MXseZ/AcAHDWi4iIUHBwsK2kpqZWa7N//35VVFSobdu2dvVt27ZVUVFRvT7nqaee0uHDhzVmzBhbXVFRUaP6dKf4+Hg98sgjGjVqVI3nx40bpyFDhqhjx4668MILtWDBApWUlOiLL75wcaQAAAAAAG/XkD3INm/erP79+6tly5Zq2rSpunbtqqeffrrBn+kZi44BANAIjm42UnVNQUGBgoKCbPVWq7XWaywW+88xDKNaXU2WL1+ulJQUrV69Wm3atHFKn96kvLxcL730koKDgxUdHe3ucAAAHqSxeRwAALiPq/J4Q/cgCwwM1B133KGLL75YgYGB2rx5s2677TYFBgbq1ltvrffnMngOAPB6lYZFFgeSddWmJkFBQXaD5zVp1aqVfH19q80ILy4urjZz/FQZGRmaMmWK3nrrLQ0ZMsTuXGhoqEN9eot3331XN954o44cOaKwsDBlZmaqVatWtbYvKyuzWzanpKTEFWECANyosXkcAAC4j6vy+B/3IJNO7h+2bt06LV68uMa3x2NiYhQTE2M7bt++vVasWKFNmzY1aPCcZVsAAF7Poc1JjIZtCO/v76/Y2FhlZmba1WdmZqpfv361Xrd8+XJNmjRJb7zxhoYPH17tfN++fav1uX79+jr79CaDBw9Wbm6utmzZoquuukpjxoxRcXFxre1TU1PtltCJiIhwYbQAAHdwRR4HAABnRmPzuKv2INuxY4e2bNmigQMHNuj7MXgOAPB6Va+JOVIaIikpSS+//LJeeeUVffPNN5oxY4by8/M1bdo0SVJycrImTJhga798+XJNmDBBTz31lPr06aOioiIVFRXp4MGDtjZ333231q9fr8cff1zffvutHn/8cX344YeaPn26U3427hYYGKjzzz9fffr00ZIlS+Tn56clS5bU2j45OVkHDx60lYKCAhdGCwBwB1flcQAA4HyNzeNneg+ydu3ayWq1qmfPnrr99tttM9fri2VbAABez1VrrI0dO1YHDhzQvHnzVFhYqO7du2vt2rWKioqSJBUWFio/P9/W/sUXX9SJEyd0++236/bbb7fVT5w4Uenp6ZKkfv366c0339SDDz6o2bNn67zzzlNGRoZ69+7d4O/jDQzDqHEmQRWr1VrnmvMAAPNhzXMAALyXp+9BtmnTJpWWlurTTz/VzJkzdf755+umm26qd5xuHTzPysrSk08+qZycHBUWFmrlypW67rrrbOdXrFihF198UTk5OTpw4IB27NihHj16uC1e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zZs3T59//rn8/Pz00UcfOenLe6bKykq999576ty5s4YNG6Y2bdqod+/eNS7tAgA4y5n8ftytg+f1WWOtym233SaLxaK0tDSXxQcA8A5mX2MNAAAzc0Ue9/f3V2xsrDIzM+3qMzMz1a9fv2rtg4KC9OWXXyo3N9dWpk2bpi5duig3N1e9e/du7Nf2aMXFxSotLdVjjz2mq666SuvXr9fIkSM1atQobdy4sdbrysrKqq1BDwAwN7Pfj7t12ZbTrbFWZdWqVfrss88UHh7uwugAAF7D5K+JAQBgai7K40lJSRo/frx69uypvn376qWXXlJ+fr6mTZsmSUpOTtbevXv16quvysfHR927d7e7vk2bNgoICKhWb0aVlZWSpBEjRmjGjBmSpB49emjLli164YUXNHDgwBqvS01N1dy5c10WJwDAA5j8ftytg+enW2NNkvbu3as77rhD69at0/Dhw10UGQDAmzj61NpbnnQDAGBmrsrjY8eO1YEDBzRv3jwVFhaqe/fuWrt2raKioiRJhYWFys/Pb3ggJtSqVSv5+fnpggsusKvv1q2bNm/eXOt1ycnJSkpKsh2XlJRU29AVAGAuZr8f9+gNQysrKzV+/Hjdd999uvDCC90dDgAAAADAiyUmJioxMbHGc+np6XVem5KSopSUFOcH5YH8/f3Vq1cvfffdd3b1O3futD1sqInVaq1zw1YAALyNRw+eP/744/Lz89Ndd91V72vKyspUVlZmO2aNNQA4C5j8NTEAAEyNPO4WpaWl2r17t+04Ly9Pubm5CgkJUWRkpO677z6NHTtWl19+uQYPHqwPPvhA77zzjjZs2OC+oAEAnsfkedxjB89zcnL0zDPPaPv27bJYLPW+jjXWAOAsZPJkDQCAqZHH3SI7O1uDBw+2HVcttzJx4kSlp6dr5MiReuGFF5Samqq77rpLXbp00dtvv60BAwa4K2QAgCcyeR732MHzTZs2qbi4WJGRkba6iooK3XPPPUpLS9OePXtqvI411gDg7GP5b3HkOgAA4F7kcfcYNGiQDKPukYubb75ZN998s4siAgB4I7PncY8dPB8/fryGDBliVzds2DCNHz9ekydPrvU61lgDgLOQyZ90AwBgauRxAAC8l8nzuI87P7y0tFS5ubnKzc2V9L811vLz89WyZUt1797drjRp0kShoaHq0qWLO8MGAHiYqt29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FGjo0KEaNWqUSktLbbYvLi7W6NGjNXToUBUUFOiFF17QtGnTtGHDhhau3La8vDxNmTJFu3fvVnZ2tqqqqpSUlKTvvvvumucePXpU5eXltZfevXu3QMUN069fP6vaCgsL7bZ19zXat2+f1Viys7MlSePHj3d4njutz3fffafbbrtNr732ms3rFy1apMWLF+u1117Tvn37FBISorvvvlsVFRV2+9y1a5eSk5OVkpKigwcPKiUlRRMmTNCePXucNQwrjsZ08eJF5efna/bs2crPz9fGjRt17NgxPfDAA9fsNygoyGrdysvLFRgY6IwhWLnWGknSvffea1XX1q1bHfbp6jUCmlNj8781uZ7HEq3Jvn37tGrVKt16662uLsVtnDt3ToMHD5afn5/+9re/6ciRI/r973+vm266ydWludzChQu1cuVKvfbaayoqKtKiRYv0u9/9TsuWLXN1aYBHIsftI8cbhhyvjxy3jxyHTaaVuOuuu8zkyZOtjkVFRZnMzEyb7Z977jkTFRVldexXv/qVGTRokNNqvB6nT582kkxeXp7dNjk5OUaSOXfuXMsV1ghz5swxt912W4Pbe9oapaenm169epmamhqb17v7+kgymzZtqv25pqbGhISEmAULFtQeu3TpkgkODjYrV66028+ECRPMvffea3XsnnvuMRMnTmz2mq+l7phs2bt3r5FkSkpK7LZZs2aNCQ4Obt7imsDWeNLS0szYsWMb1Y87rRFwvRqb/61ZQx5LtDYVFRWmd+/eJjs72yQmJpr09HRXl+QWZs2aZYYMGeLqMtzSmDFjzJNPPml1bNy4ceaxxx5zUUWAZyPHG44cr48ct40ct48chy2t4pXnV65c0f79+5WUlGR1PCkpSTt37rR5zq5du+q1v+eee/TFF1+osrLSabU21fnz5yVJP/nJT67Z9o477lBoaKhGjBihnJwcZ5fWKMePH1dYWJgiIyM1ceJEnTx50m5bT1qjK1euaN26dXryySdlsVgctnXn9fmx4uJinTp1ymoNAgIClJiYaPd+JdlfN0fnuNL58+dlsViu+Sz8t99+q4iICHXr1k333XefCgoKWqbABsjNzVXnzp11yy236KmnntLp06cdtve0NQLsaUr+t2aNeSzRWkyZMkVjxozRyJEjXV2KW9myZYvi4uI0fvx4de7cWXfccYfeeOMNV5flFoYMGaKPP/5Yx44dkyQdPHhQO3bs0OjRo11cGeB5yPHGIcfrI8dtI8ftI8dhi6+rC2gJZ86cUXV1tbp06WJ1vEuXLjp16pTNc06dOmWzfVVVlc6cOaPQ0FCn1dtYxhjNmDFDQ4YMUf/+/e22Cw0N1apVqxQbG6vLly/rnXfe0YgRI5Sbm6thw4a1YMW2DRw4UH/84x91yy236KuvvtIrr7yihIQEHT58WB07dqzX3pPWaPPmzfrmm2/0+OOP223j7utT19X7jq01KCkpcXheY+6LrnTp0iVlZmbq5z//uYKCguy2i4qK0tq1axUTE6MLFy7oD3/4gwYPHqyDBw+6/GORRo0apfHjxysiIkLFxcWaPXu2fvrTn2r//v0KCAiweY4nrRHgSFPyv7Vq6GOJ1uS9995Tfn6+9u3b5+pS3M7Jkye1YsUKzZgxQy+88IL27t2radOmKSAgQKmpqa4uz6VmzZql8+fPKyoqSj4+Pqqurta8efP0yCOPuLo0wOOQ4w1HjtdHjttHjttHjsOWVrF5flXdV/waYxy+CthWe1vHXW3q1Kk6dOiQduzY4bBdnz591KdPn9qf4+PjVVZWpldffdUtNmdHjRpV+++YmBjFx8erV69eevvttzVjxgyb53jKGq1evVqjRo1SWFiY3Tbuvj72NPZ+1dRzWlplZaUmTpyompoaLV++3GHbQYMGWX0J5+DBg3XnnXdq2bJlWrp0qbNLdSg5Obn23/3791dcXJwiIiL04Ycfaty4cXbP84Q1AhqK3+dra+hjidairKxM6enp2rZtW4t8f4WnqampUVxcnH77299K+u+75g4fPqwVK1a0+j+6169fr3Xr1ulPf/qT+vXrpwMHDigjI0NhYWFKS0tzdXmARyLHr40ct0aOO0aO20eOw5ZW8bEtN998s3x8fOo9O3369Ol6z2JfFRISYrO9r6+vzVdBu8ozzzyjLVu2KCcnR926dWv0+YMGDdLx48edUNn1a9u2rWJiYuzW5ylrVFJSou3bt2vSpEmNPted1yckJESSGnW/unpeY89paZWVlZowYYKKi4uVnZ3t8FXnttxwww0aMGCAW65daGioIiIiHNbmCWsENERT8r81ut7HEt5o//79On36tGJjY+Xr6ytfX1/l5eVp6dKl8vX1VXV1tatLdKnQ0FBFR0dbHevbty9f4CfpN7/5jTIzMzVx4kTFxMQoJSVF06dP1/z5811dGuBxyPGGIcfrI8cdI8ftI8dhS6vYPPf391dsbKyys7OtjmdnZyshIcHmOfHx8fXab9u2TXFxcfLz83NarQ1ljNHUqVO1ceNGffLJJ4qMjGxSPwUFBW718SY/dvnyZRUVFdmtz93X6Ko1a9aoc+fOGjNmTKPPdef1iYyMVEhIiNUaXLlyRXl5eXbvV5L9dXN0Tku6unF+/Phxbd++vUlPxBhjdODAAbdcu7Nnz6qsrMxhbe6+RkBDNSX/W5PmeizhjUaMGKHCwkIdOHCg9hIXF6dHH31UBw4ckI+Pj6tLdKnBgwfr6NGjVseOHTumiIgIF1XkPi5evKgbbrD+E8vHx0c1NTUuqgjwXOS4Y+S4feS4Y+S4feQ4bHLBl5S6xHvvvWf8/PzM6tWrzZEjR0xGRoZp27at+ec//2mMMSYzM9OkpKTUtj958qRp06aNmT59ujly5IhZvXq18fPzM3/9619dNQQrv/71r01wcLDJzc015eXltZeLFy/Wtqk7piVLlphNmzaZY8eOmX/84x8mMzPTSDIbNmxwxRDqmTlzpsnNzTUnT540u3fvNvfdd59p3769x66RMcZUV1eb7t27m1mzZtW7zhPWp6KiwhQUFJiCggIjySxevNgUFBSYkpISY4wxCxYsMMHBwWbjxo2msLDQPPLIIyY0NNRcuHChto+UlBSTmZlZ+/Pnn39ufHx8zIIFC0xRUZFZsGCB8fX1Nbt373b5mCorK80DDzxgunXrZg4cOGB137p8+bLdMc2dO9f8/e9/NydOnDAFBQXmiSeeML6+vmbPnj0uHU9FRYWZOXOm2blzpykuLjY5OTkmPj7edO3a1a3XCGhO18r/1qwhjyXwg8TERJOenu7qMtzC3r17ja+vr5k3b545fvy4effdd02bNm3MunXrXF2ay6WlpZmuXbuaDz74wBQXF5uNGzeam2++2Tz33HOuLg3wSOS4feR445DjPyDH7SPHYUur2Tw3xpjXX3/dREREGH9/f3PnnXeavLy82uvS0tJMYmKiVfvc3Fxzxx13GH9/f9OjRw+zYsWKFq7YPkk2L2vWrKltU3dMCxcuNL169TKBgYGmQ4cOZsiQIebDDz9s+eLtSE5ONqGhocbPz8+EhYWZcePGmcOHD9de72lrZIwxH330kZFkjh49Wu86T1ifnJwcm79naWlpxhhjampqzJw5c0xISIgJCAgww4YNM4WFhVZ9JCYm1ra/6i9/+Yvp06eP8fPzM1FRUS36BIGjMRUXF9u9b+Xk5NgdU0ZGhunevbvx9/c3nTp1MklJSWbnzp0uH8/FixdNUlKS6dSpk/Hz8zPdu3c3aWlpprS01KoPd1sjoLk5yv/WrCGPJfAD/ui29v7775v+/fubgIAAExUVZVatWuXqktzChQsXTHp6uunevbsJDAw0PXv2NC+++KLVk/AAGocct40cbxxy3Bo5bhs5DlssxvzvGxYBAAAAAAAAAICkVvKZ5wAAAAAAAAAANAab5wAAAAAAAAAA1MHmOQAAAAAAAAAAdbB5DgAAAAAAAABAHWyeAwAAAAAAAABQB5vnAAAAAAAAAADUweY5AAAAAAAAAAB1sHkOAAAAAAAAAEAdbJ4Dbi43N1cWi0XffPONw3Y9evRQVlZWi9QEAAAahhwHAMAzkeEAJMlijDGuLgKAfVeuXNHXX3+tLl26yGKxaO3atcrIyKgX4P/5z3/Utm1btWnTxjWFAgCAeshxAAA8ExkOQJJ8XV0AAMf8/f0VEhJyzXadOnVqgWoAAEBjkOMAAHgmMhyAxMe2AM1i+PDhmjp1qqZOnaqbbrpJHTt21EsvvaSrb+w4d+6cUlNT1aFDB7Vp00ajRo3S8ePHa88vKSnR/fffrw4dOqht27bq16+ftm7dKsn6rWK5ubl64okndP78eVksFlksFs2dO1dS/beKlZaWauzYsWrXrp2CgoI0YcIEffXVV7XXz507V7fffrveeecd9ejRQ8HBwZo4caIqKiqcP2EAALgRchwAAM9EhgNwNjbPgWby9ttvy9fXV3v27NHSpUu1ZMkSvfnmm5Kkxx9/XF988YW2bNmiXbt2yRij0aNHq7KyUpI0ZcoUXb58WZ9++qkKCwu1cOFCtWvXrt5tJCQkKCsrS0FBQSovL1d5ebmeffbZeu2MMXrwwQf19ddfKy8vT9nZ2Tpx4oSSk5Ot2p04cUKbN2/WBx98oA8++EB5eXlasGCBE2YHAAD3Ro4DAOCZyHAAzsTHtgDNJDw8XEuWLJHFYlGfPn1UWFioJUuWaPjw4dqyZYs+//xzJSQkSJLeffddhYeHa/PmzRo/frxKS0v10EMPKSYmRpLUs2dPm7fh7++v4OBgWSwWh28f2759uw4dOqTi4mKFh4dLkt555x3169dP+/bt04ABAyRJNTU1Wrt2rdq3by9JSklJ0ccff6x58+Y127wAAOAJyHEAADwTGQ7AmXjlOdBMBg0aJIvFUvtzfHy8jh8/riNHjsjX11cDBw6sva5jx47q06ePioqKJEnTpk3TK6+8osGDB2vOnDk6dOjQddVSVFSk8PDw2rCWpOjoaN100021tyn99+1lV8NakkJDQ3X69Onrum0AADwROQ4AgGciwwE4E5vngIsYY2oDftKkSTp58qRSUlJUWFiouLg4LVu2rFn6dnTcz8/P6nqLxaKampom3y4AAK0FOQ4AgGciwwE0BpvnQDPZvXt3vZ979+6t6OhoVVVVac+ePbXXnT17VseOHVPfvn1rj4WHh2vy5MnauHGjZs6cqTfeeMPm7fj7+6u6utphLdHR0SotLVVZWVntsSNHjuj8+fNWtwkAAP6LHAcAwDOR4QCcic1zoJmUlZVpxowZOnr0qP785z9r2bJlSk9PV+/evTV27Fg99dRT2rFjhw4ePKjHHntMXbt21dixYyVJGRkZ+uijj1RcXKz8/Hx98skndoO1R48e+vbbb/Xxxx/rzJkzunjxYr02I0eO1K233qpHH31U+fn52rt3r1JTU5WYmKi4uDinzgMAAJ6IHAcAwDOR4QCcic1zoJmkpqbq+++/11133aUpU6bomWee0S9/+UtJ0po1axQbG6v77rtP8fHxMsZo69attW/Vqq6u1pQpU9S3b1/de++96tOnj5YvX27zdhISEjR58mQlJyerU6dOWrRoUb02FotFmzdvVocOHTRs2DCNHDlSPXv21Pr16503AQAAeDByHAAAz0SGA3AmizHGuLoIwNMNHz5ct99+u7KyslxdCgAAaCRyHAAAz0SGA3A2XnkOAAAAAAAAAEAdbJ4DAAAAAAAAAFAHH9sCAAAAAAAAAEAdvPIcAAAAAAAAAIA62DwHAAAAAAAAAKAONs8BAAAAAAAAAKiDzXMAAAAAAAAAAOpg8xwAAAAAAAAAgDrYPAcAAAAAAAAAoA42zwEAAAAAAAAAqIPNcwAAAAAAAAAA6mDzHAAAAAAAAACAOv4fHHpHlil1Z3cAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Contact distribution over position, stratified by length: peptide, CDR3a, CDR3b\n", "def plot_position_heatmap(ax, dist, title):\n", " lengths = sorted(dist['length'].unique().to_list())\n", " maxpos = dist['position'].max() + 1\n", " M = np.zeros((len(lengths), int(maxpos)))\n", " li = {L: i for i, L in enumerate(lengths)}\n", " for r in dist.iter_rows(named=True): M[li[r['length']], int(r['position'])] = r['n_contacts']\n", " M = M / M.sum(axis=1, keepdims=True).clip(min=1) # row-normalise to a per-length profile\n", " im = ax.imshow(M, aspect='auto', cmap='viridis')\n", " ax.set_yticks(range(len(lengths))); ax.set_yticklabels(lengths)\n", " ax.set_xlabel('position'); ax.set_ylabel('length'); ax.set_title(title); return im\n", "\n", "fig, axes = plt.subplots(1, 3, figsize=(15, 4))\n", "for ax, side, title in zip(axes, ['peptide', 'cdr3a', 'cdr3b'],\n", " ['peptide', 'CDR3\u03b1', 'CDR3\u03b2']):\n", " im = plot_position_heatmap(ax, an.position_distribution(df, side), f'{title} contacts')\n", " fig.colorbar(im, ax=ax, fraction=0.046)\n", "plt.tight_layout()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.12" } }, "nbformat": 4, "nbformat_minor": 5 }