{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# De-novo signature inference and activity estimation" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [], "source": [ "import pymc3 as pm\n", "import arviz as az\n", "import numpy as np\n", "import pandas as pd\n", "import damuta as da\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "from damuta.plotting import plot_damage_signatures, plot_misrepair_signatures" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [], "source": [ "# Load data for 100 patients\n", "counts = pd.read_csv('example_data/pcawg_counts.csv', index_col=0).head(100)\n", "annotation = pd.read_csv('example_data/pcawg_cancer_types.csv', index_col=0).head(100)\n", "pcawg = da.DataSet(counts, annotation)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When there is no fixed signature definition provided, DAMUTA will estimate parameters for both the signature activities, and the signature definitions themselves. \n", "\n", "We can help regularize this by putting strong sparsity priors on the distributions of the signature definitions (pi, lambda) and on the activity distributions (psi, priors on gamma)" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [], "source": [ "ht_lda = da.models.HierarchicalTandemLda(pcawg, type_col = 'pcawg_class', n_damage_sigs = 5, n_misrepair_sigs = 3)\n", "ht_lda._build_model(**ht_lda._model_kwargs)" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " 69.01% [6901/10000 00:16<00:07 Average Loss = 6.9754e+05]\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "Interrupted at 6,931 [69%]: Average Loss = 1.3702e+06\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ht_lda.fit(n=10000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Check ELBO for convergence" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGsCAYAAAAPJKchAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABM6UlEQVR4nO3deVhU5d8/8PewyyIqoLigogLKooAaoigumVtWWn61zSzNLFvc0jYrfUzNUtusrDC31DTNStPSFJcQXEERBBEREGSVXbaZ8/xBjowwMAMzc2Z5v35X1zVzzn3O+cx8fw/z9j73uW+JIAgCiIiIiERiJnYBREREZNoYRoiIiEhUDCNEREQkKoYRIiIiEhXDCBEREYmKYYSIiIhExTBCREREomIYISIiIlExjBAREZGoGEaIiIhIVAYVRs6cOYNZs2YhJCQEXl5eOHz4sNrnEAQBYWFhGDVqFHx9fTF48GB88803WqiWiIiIVGEhdgHqKCsrg5eXFx5//HG8+uqrTTrHRx99hJMnT2LhwoXw9PREYWEhCgsLNVwpERERqcqgwkhoaChCQ0OV7q+srMTatWuxb98+FBcXw8PDAwsWLEBQUBAA4Nq1a9i+fTv++OMPdOvWDQDg5uamk9qJiIiofgZ1m6YxS5cuxYULF7B27Vr8/vvvGD16NGbMmIGUlBQAwJEjR9CpUyeEh4dj+PDhGD58ON59910UFBSIWjcREZEpM5owkpGRgT179uDzzz9Hv3790LlzZ0yfPh19+/bFnj17AABpaWnIyMjAwYMHsWrVKqxYsQKXL1/G66+/LnL1REREpsugbtM0JDExEVKpFKNHj1bYXllZiVatWgGoGbxaWVmJjz/+GO7u7gBqxpBMnDgRycnJ8ls3REREpDtGE0bKyspgbm6O3bt3w9zcXGGfra0tAMDFxQUWFhbyIAIA3bt3BwBkZmYyjBAREYnAaMJIr169IJVKkZ+fj379+tXbJjAwENXV1UhNTUXnzp0BQD6epEOHDroqlYiIiGoxqDEjpaWliI+PR3x8PAAgPT0d8fHxyMjIgLu7O8aPH4+FCxfi77//RlpaGi5evIj169cjPDwcADBw4ED4+PjgnXfeQVxcHGJjY/H+++9j0KBBCr0lREREpDsSQRAEsYtQVVRUFKZOnVpn+4QJE7By5UpUVVXhm2++wd69e5GdnY1WrVrB398fr732Gry8vAAAWVlZWLZsGU6ePAlbW1sMGTIEixYtko8rISIiIt0yqDBCRERExsegbtMQERGR8WEYISIiIlEZxNM0MpkM2dnZsLOzg0QiEbscIiIiUoEgCCgtLUXbtm1hZqa8/8Mgwkh2dnaDa9IQERGR/jp27BhcXV2V7jeIMGJnZweg5sPY29uLXA0RERGpoqSkBKGhofLfcWUMIozcvTVjb2/PMEJERGRgGhtiwQGsREREJCqGESIiIhIVwwgRERGJimGEiIiIRMUwQkRERKJiGCEiIiJRMYwQERGRqBhGiIiISFQMI0RERCQqhhEiIiISFcMIERERiYphhIiIiETFMKKG7OJyfHvsGnJLKsQuhYiIyGgYxKq9+uKFjWcQe7MI/8RnYdesgWKXQ0REZBTYM6KG2JtFAIAzKbdFroSIiMh4MIwQERGRqBhGiIiISFQMI0RERCQqhhEiIiISFcMIERERiYphhIiIiETFMEJERESiYhghIiIiUTGMEBERkagYRoiIiEhUDCNEREQkKoYRIiIiEhXDCBEREYmKYYSIiIhExTBCREREomIYISIiIlExjBAREZGoGEaIiIhIVAwjREREJCqGESIiIhIVwwgRERGJykKdxtu2bcP27dtx8+ZNAICHhwdeeeUVhIaG1tt+z549ePvttxW2WVlZ4dKlS00sl4iIiIyNWmHE1dUVCxYsQJcuXSAIAvbu3YvZs2fj119/hYeHR73H2Nvb4+DBg/L3EomkeRUTERGRUVErjAwfPlzh/dy5c7F9+3ZER0crDSMSiQQuLi5Nr5CIiIiMmlphpDapVIqDBw+irKwMAQEBStuVlZVh2LBhkMlk8Pb2xrx585QGFyIiIjI9aoeRhIQETJkyBRUVFbC1tcW6devQo0ePetu6u7tj+fLl8PLyQnFxMTZs2IApU6Zg//79cHV1bXbxREREZPjUDiPu7u7Yu3cviouL8ddff2HRokXYunVrvYEkICBAodckICAAY8eOxY4dOzBnzpxmFU5ERETGQe1He62srNClSxf4+vpi/vz56NmzJzZv3qzSsZaWlujVqxdSU1PVLpSIiIiMU7PnGZHJZKisrFSprVQqRWJiIge0EhERkZxat2lWr16NIUOGoH379igtLcW+fftw+vRphIWFAQAWLlyIdu3aYf78+QCAr776Cv7+/ujSpQuKiooQFhaGjIwMTJo0SfOfpJmqpDJ8E34Ngz2cEdC5tdjlEBERmQy1wkheXh4WLVqE7OxsODg4wMvLC2FhYRg0aBAAIDMzE2Zm9zpbioqKsHjxYuTk5MDR0RE+Pj7YsWOH0gGvYlh7KBFdnGxxu6wKaw4lYs2hRKSsHCd2WURERCZDrTCyfPnyBvdv2bJF4f0777yDd955R/2qdOR86m18/s9VAMCU/m4iV0NERGSaTHptmoIy1ca6EBERkfaYdBghIiIi8TGMEBERkagYRoiIiEhUDCNEREQkKoYRIiIiEhXDyH8EQewKiIiITJNJhxEJJGKXQEREZPJMOowIYHcIERGR2Ew6jNQmUbOTZMWBeO0UQkREZGIYRppo/bFksUsgIiIyCgwjREREJCqGESIiIhIVwwgRERGJimHkP5xnhIiISBwmHUY4zwgREZH4TDqMcJ4RIiIi8Zl0GCEiIiLxMYz8R91Jz4iIiEgzGEaIiIhIVAwjREREJCqGERXN3xkjdglERERGiWFERbvPp4tdAhERkVEy6TBSe56Razkl8tdHr2SjoloqRklEREQmx6TDSG1nUm7LXz+/8Qz6/t9hrV+zWirT+jWIiIj0nUmHkYYmPSupqL7XTgtzxUcl58HzvQMIO3ld4+cmIiIyJCYdRsQ0f1cMZALwf/vixC6FiIhIVAwjWiCVCfjin6s4fT1f7FKIiIj0noXYBRijXWfTsOZQIgAgZeU4kashIiLSb+wZUYG6Q0aSc0u1UwgREZERMukwUvvRXk3SxoBXIiIiY2XSYURbjibkiF0CERGRwWAY0bAzKflIyi5pvCEREREBYBhp0I//XsczP0ThTlX9s7HuOpuGD36LhUxWc1umSirDpG9PqXRuiXbuEBERERkck36apqFJzwBgyR81c4BsjbxR7/43f7kIAAj1csHwnu3we3SG6tfmsBIiIiIA7BlRSVllw+vUFJRVAQCKy6vq7Ju/MwbfHb+mlbqIiIiMgUn3jOjC3dV+Zw7pLnIlRERE+ok9IyLhmBEiIqIaJh1GVJ1nRBvDOzhmhIiIqIZJhxFVsRODiIhIe9QKI9u2bcP48eMRGBiIwMBATJ48GceOHWvwmAMHDmD06NHw8/PD+PHjG21vyCRq3HvhbRoiIqIaaoURV1dXLFiwAHv27MHu3bsxYMAAzJ49G1evXq23/fnz5zF//nw88cQT2Lt3L0aMGIHZs2cjMTFRI8UTERGR4VMrjAwfPhyhoaHo2rUr3N3dMXfuXNja2iI6Orre9ps3b8bgwYMxY8YMdO/eHXPmzIG3tze2bt2qidp1RtXhHQ2tSXM4LkszxRARERmZJo8ZkUql2L9/P8rKyhAQEFBvm+joaAQHBytsCwkJURpedK2xSc/u0sQdleV/xuNsSj4OxmZq4GxERETGQ+15RhISEjBlyhRUVFTA1tYW69atQ48ePeptm5ubC2dnZ4VtTk5OyM3NbVq1Bu6J/6aKPzI/VORKiIiI9IfaPSPu7u7Yu3cvdu7ciSeffBKLFi1CUlKSNmrTOlUf7dW0zMJyUa5LRESkj9QOI1ZWVujSpQt8fX0xf/589OzZE5s3b663rbOzc51ekLy8vDq9JfpO1TEj6jxNI4aKainGfH4Cb++5JHYpREREcs2eZ0Qmk6GysrLeff7+/oiMjFTYFhERAX9//+ZeVqc0HTHEiixH4rMRn1mE7adTRaqAiIioLrXCyOrVq3HmzBmkp6cjISEBq1evxunTpzF+/HgAwMKFC7F69Wp5+6lTp+LEiRPYsGEDrl27hi+//BKxsbF45plnNPsptKyxnhFVOkT0YcJVmT4UQUREdB+1BrDm5eVh0aJFyM7OhoODA7y8vBAWFoZBgwYBADIzM2Fmdi/fBAYG4tNPP8Vnn32GNWvWoGvXrli3bh08PT01+ylEpvbU7vp9N4eIiEin1Aojy5cvb3D/li1b6mwbM2YMxowZo15Veub8jdtil0BERGS0THptGlXnGTmZZJiPImcU3MGzYVE4mpAtdilERERKmXQY0ZRtUY0PCBXjzsyi3Rdx4mounv/xjAhXJyIiUo1JhxFNzTNyVs3bOJL//p+25RRXaP0aREREzWXSYUSX7r8hpOotIiIiImPHMCICseZGYwAiIiJ9xDCiQYfjuTIvERGRuhhGNOjEVdWfuhFjXRyx1uIhIiJqCMOIjqTllym818UtE7UnYyMiIhIBw4iGCI388lfXmoud/RNERET3MIxoyOWMIrXa85YJERFRDYYRDSmvkopdAhERkUFiGBHBobgspN43hoSIiMhUmXQYKa2sFuW6P5y8Lsp1iYiI9JFJh5FXt13Q2LkK71Rp7FyawknOiIjIEJh0GNGk6ZvOil0CERGRQWIYISIiIlExjBgxTnpGRESGgGFEz839ORoTvv4XUhmTBRERGSeGET1QLZXhwKVMZBeX19n364WbuJBagPOpt0WojIiISPsYRvTAxogUvPzTeYxcc1xpGxl7RoiIyEgxjOiBI1eyATT8eDCjCBERGSuGERPCeUeIiEgfMYwYiLtPxqizBg6jBxERGQKGET2gyiO4AgQcTchGz8UHse5oUpOuw5WCiYhIHzGMGJC3dl8EAHzyV4LIlRAREWkOw4ieuV1aqXSfupOYCZz1jIiIDADDiJ5Z8sfl+ncwVxARkZGyELsAUnQ9r6ze7U/9EAUrC2ZHIiIyPvx10wPJuSUqtauslmm5EiIiIt1jGNEDWUUV8tcxaQUc60FERCaFYUQPpd++o5XzctIzIiLSRwwjekjGnhEiIjIhDCN66MPfL+Op7yObfZ7akaaiWspJz4iISC/xaRo9dDQhBwCw9I+4Zp0nOadU/vrTvxLg79a6WecjIiLSBvaM6LEN/17X2Ln2XczU2LmIiIg0iWHERPAGDRER6SuGERMhkTCOEBGRfmIYIZXdqZRia+QNZBZq59FjIiIyTRzAaiJuFtQfIObvjIGNpRk+muCn9Nio5Dy8sSMa5mYS3Cy4g88OW+Psew9qq1QiIjIx7BkxcD+fScW6o0kqtb1/0rOMgjvYfT4dP0WlorxKqvS4Z8KicKuoXB5ocksqlLYlIiJSF3tGDNjsn85j/6Wap2QSbhXjiycD1DpeKlNtcrUqKSdhIyIi7VGrZ2T9+vV4/PHHERAQgODgYLzyyitITk5u8Jg9e/bAy8tL4T8/P+W3BEh1d4MIAPwek9Foe056RkRE+kitnpHTp0/j6aefhp+fH6RSKdasWYPp06dj//79sLW1VXqcvb09Dh48KH/PJzuaL/ZmodglEBERaYRaYSQsLEzh/cqVKxEcHIzLly+jf//+So+TSCRwcXFpWoVUrxmbzopdAhERkUY0a8xIcXExAMDR0bHBdmVlZRg2bBhkMhm8vb0xb948eHh4NOfSJq+0orrONkEQmtzrxLX5iIhILE1+mkYmk2H58uUIDAyEp6en0nbu7u5Yvnw5vv76a3zyyScQBAFTpkzBrVu3mnppUuLUtTyV287edh4V1cqfoCEiItKVJveMLFmyBFevXsW2bdsabBcQEICAgACF92PHjsWOHTswZ86cpl6e6ukAySwsV/nw/Rcz0drWUoMFERERNU2TwsjSpUsRHh6OrVu3wtXVVa1jLS0t0atXL6Smpjbl0tQM988zcru0Sv6aY4qJiEgsat2mEQQBS5cuxaFDh7Bp0ya4ubmpfUGpVIrExEQOaG2m4vK6Y0bCTl7H/+2LQ7VUJkJFRERETaNWz8iSJUuwb98+fP3117Czs0NOTg4AwMHBATY2NgCAhQsXol27dpg/fz4A4KuvvoK/vz+6dOmCoqIihIWFISMjA5MmTdLwR6G4zCLEZRahu4s9ngrq3Gj72vOUcAArERGJRa0wsn37dgDAs88+q7B9xYoVmDhxIgAgMzMTZmb3OlyKioqwePFi5OTkwNHRET4+PtixYwd69OjR3NpJCWUL2XHSMyIi0kdqhZGEhIRG22zZskXh/TvvvIN33nlHvaqIiIjIZHChPCP05ZEk5BTXXcxu7eFEEaohIiJqGMOIkVp18EqdbUnZJSJUQkRE1DCu2muk6nvaRl27zqbhhxPXNVANERGRcgwjRur+OUWa4s1fLmqgEiIioobxNo2R+utyltglEBERqYRhhIiIiETFMEJERESiYhghAJoZY0JERNQUDCNEREQkKoYRAsCp4omISDwMIyRXUFaJA5cyUVEtFbsUIiIyIQwjJPfU91F4+afz+PSvxtcgIiIi0hSGEZKLyywCAPwekyFyJUREZEpMOox0cbIVuwS9cS3n3ro1Ah+sISIiHTLpMLJj5gC8NaYn9r0Wgj5urcQuR1QPf3lS/jq7nhV/iYiItMWkw0h7xxaYFdodvh0d8frwHvLtLg7WIlalH97ec0nsEoiIyESYdBipbUSvdvLXg7o7iViJfth+OlXsEoiIyEQwjFCT/B6TAYGDS4iISAMsxC5AH/EntnGvb78AMwlgYSbBn5duYcVEP9hZ8/87ERGR+vjrQU12/kYBNvx7HQDQ1ckW8x7yErkiIiIyRLxNUw9OjK6+nBI+gUNERE3DMFIP3qZRDVf6JSIiTWAYISIiIlExjFCTcaVfIiLSBIaReliZ82tRRe3bNHzKl4iImoq/urV8ON4bHm3t8eYoPhWiiuLyarFLICIiI8BHe2uZNsgd0wa5K93v3b6lfGVbAn45ly5/XVBWJWIlRERkyNgzoob9r4dg/khPscvQSwcv3xK7BCIiMlAMI2qQSCRo2cJS7DL0VrVUJnYJRERkgBhGlPjqqQB0c7ZDH7dWCtsn93fDWD9XcYrScz3ePYDDcVlil0FERAaGYUSJh3t3wJEFQ+HVzl5hu42lOb5+uq9IVem/GZvP4lZhOX69kI7s4nKxyyEiIgPAAayNaG1nJXYJBmf058flA1pXT+qDx/t2ErkiIiLSZ+wZacTsYT3wYK+2+HyKv9ilGIzaT9a8tzdW7eMFQUBcRhEqqqWaLIuIiPQUw0gjWtpY4ofn+uNR/44Nthvs4ayjiozfjjNpGPvFCUzfeFbsUoiISAcYRjRky/QgsUswGpsiUgAAJ5NyxS2EiIh0gmGEtIor+xIRUWMYRoiIiEhUDCOkVVzZl4iIGsMwokEhPTiIVROu3CoWuwQiItIhhhENsrZo+OuMXTJKR5Xoj8bGjBSWVeG36Ju4U8nHeImITJVaYWT9+vV4/PHHERAQgODgYLzyyitITk5u9LgDBw5g9OjR8PPzw/jx43Hs2LEmF6zPerZ3kL+eNrBrnf0tLM11WI1+KK9qeL2aFzadwRs7ovH+bw3PR/L+b7EY/dlxlFcxtBARGRu1wsjp06fx9NNPY+fOnfjxxx9RXV2N6dOno6ysTOkx58+fx/z58/HEE09g7969GDFiBGbPno3ExMRmF69vXh3mgdeH98Afr4bgw0d8sGPmAIX95mamO37idmkldp1Nq9MDcu7GbQDArnPpiEkrUHr85lM3cOVWMQ7GcnVgIiJjo1YYCQsLw8SJE+Hh4YGePXti5cqVyMjIwOXLl5Ues3nzZgwePBgzZsxA9+7dMWfOHHh7e2Pr1q3NLl7ftLAyx7yHvODXyREAMKCbk8gV6Y+A/zuEN3+5iF7vH0RyTkm9baZvOtPoeWQCHxUmIjI2zRozUlxcM9DQ0dFRaZvo6GgEBwcrbAsJCUF0dHRzLk0GZNXBKwrvvzte/629kopqXZRDRER6pslhRCaTYfny5QgMDISnp6fSdrm5uXB2VnzKxMnJCbm5hj27ZjB7PVT2dfg1hfd/xGTU266+Tg9lbYmIyHg0OYwsWbIEV69exdq1azVZj8HYPP0BrHsqEADwcO/2Kh934I3B2irJYJRWSnEjr7TO9vrCyGvbLzTahoiIDJtFUw5aunQpwsPDsXXrVri6ujbY1tnZuU4vSF5eXp3eEkNjaW6Gcb3bI9RrFOyslD8lM9TLBeEJOfL3vdq31EV5em/LqRs4HJ+lsE2VqePPpOTDy9UBvh2V3xokIiLDolbPiCAIWLp0KQ4dOoRNmzbBzc2t0WP8/f0RGRmpsC0iIgL+/v5qFaqv7K0tIJEof0qmQ6sWOqzGcPxw8jpS8pQ/haXMjjNpePjLk1qoiIiIxKJWGFmyZAl+//13rF69GnZ2dsjJyUFOTg7Ky8vlbRYuXIjVq1fL30+dOhUnTpzAhg0bcO3aNXz55ZeIjY3FM888o7lPocd4W0F1/K6IiEyTWrdptm/fDgB49tlnFbavWLECEydOBABkZmbCzOxexgkMDMSnn36Kzz77DGvWrEHXrl2xbt26Bge9kmlSlkWSsjk9PBGRMVMrjCQkJDTaZsuWLXW2jRkzBmPGjFHnUibBu31L5JRUIKe4QuxS9IKgpGvkwTXH62zLLalAG1srmJnwRHJERMaCa9OIwMq85msf3rMt+Ft6jzp3afotO4yZW85qrRYiItKdJj1NQ83zz/xQHEvMwRN9O2GwhzMmfxfZ+EFUx+H4bLFLICIiDWDPiAjc2tjimQFdYGNpjqBuTrC3rpsJneysRKhMXBzASkRkmhhGtMyrnX2jbaws6v7PYKq/y8Er/hG7BCIi0jGGES17ZkAXLBzthb2zBylt8964XjqsSL9lFpY33qgBB2NvYd7OaJRXSRtvTEREeoFjRrTMwtwMrwzt0WCbiYGdMG9njPy9i4M1pDJT7RtpnllbzwEAurvYI6e4AudTb2PXrGBYWyifJZeIiMTFMKIn1j/bF+dv3Ia9tQUeC+iIR77iLKPNkVNcgY0RKQCAf+KzMdZP9fWDiIhItxhG9MQoH1eM8rm3zg/7RTSHvUxERPqNY0b0FJ8s0ZwGlg4iIiI9wDCip2S10kjfLq1FrES/peSWNtomo+CODiohIqKmYhjRV+wZUcnQT8MbbbP8zyuoksq0XwwRETUJw4ieUpZFgrs56bQOY3GHj/oSEekthhEDs+qJ3mKXYBDiMooU3v96/qZIlRARUWMYRvSUshVs3drY1tnW0IRqpup0Sr7C+w9+vyxSJURE1Bg+2qunVBky4mxvhX/mD4VjC0ut10NERKQt7BnRUw092juud3vYW1vg0NxQBhEAJRXVkMkEJOeUiF0KERE1AXtG9JTQQN/IV08GQCoTYGHOLAkAS36/DEsLM2yLStXJ9XJLKpBfWgnPdg46uR4RkbFjGNFTtScNDezcCudu3Ja/l0gksDDnTF537TqXrtPr9Vt2GAAQvmAoujrb6fTaRETGiGHEAMwb6YU2dtYY6d1O7FKolui0AoYRIiINYBjRV7V6RlpYmePlod3Fq4WIiEiLOOhATzU0ZoT0A9e8ISLSDIYRPaWthfLaO9po58QGoOtb+zFj0xlUc2p4IiK9wjCip7TVL/LDc/20dGbDcDg+Gwcv3xK7DCIiqoVhRE8pm4G1uWwszbVyXkNSXtX0nhFZrcecZNrqviIiMjEMI3pKEz9zU4O74NKHD2HnS8HybRzm0DwLdsXIX284mSJeIURERoRhRE91cGyhkfM42Fiij5ujRs5lLJoTyPZcuLfg3qWbhc0vhoiIGEb01cbn+2OwhzN2vzywyeeo70dXwkdAVFIlleHZsCh8+lcCAEAqExRu0RARkeZwnhE95dHOAVumB2nkXBzaoGj+rhgk5ZTgu+PJmDHYHW+P6VWnzT/xWThxNRcnruZi7khPDF8dDitOv09EpBX862pi2C9S45vwa5DKBKw/llzv/llbz8tfZxbewY28MlzNVr4QX3mVFFHJeajiY8NERGpjGDFiyjpEjswPxa+vNP32j7HZEnkDWyJv4EZeKd7/LRZp+WUK+5f/Ga/02PIqKYCa3pbJ30Xi4wNXtForEZEx4m0aEyORAN2c7cUuQ68s3hsLAHCwtkBxRTX+TcpV2P/nJeXzkqw9lIi3x/bC/ouZAIAfTl7Hew97a69YIiIjxDBixO7ekrGxNMeInm1RWlmNzm1sRa1JnxVXVAMAruWUqnzMqeQ8bZVDRGQyGEaMxBdPBuD17ReU7g+b1l+H1ZiOO5VSsUsgIjJ4HDNiJB7p00Fj53o8sJPGzmXslA1q/eC3WKw4oHysCRER3cMwYsQcba1Uate/a2uF908FddZGOSYjo+AONp26gfXHkuUDXImISDmGESM10rsdXhrSrUnHWprzAeDm4OO9RETqYRgxIl88GQAzCfDN04H4fmo/2FmrNiSoYyvFqef9OjpitI+rNkokIiKqgwNYjcgjfTpgrK8rLFScKXTbjCCk5pehrFKKvdEZ8u0SiQTfPtsXXd/ar61SiYiI5BhGjIyqQQQABvZwxkAACbeKtVcQqaWyWoY7lVI42lqKXQoRkc7wNg3By9UBoZ4uKrVNXDYGD7i3wTMDOMhVG4Z9Go4+S/9GdnG52KUQEekMwwgBAGYMdq+zbe6DnnjAvY3CNisLM+x8KRjvjuUso3fdP7+LpNYKQOouUniz4A4AICKJk6kRkelQO4ycOXMGs2bNQkhICLy8vHD48OEG20dFRcHLy6vOfzk5OU0umnTjjQc98NVTAfXuk9R64OaFQXWDjCn5PSZD4X1OSYVIlRARGSa1x4yUlZXBy8sLjz/+OF599VWVjzt48CDs7e+tieLk5KTupUlPTe7vhohruSipqEb67TtilyO6n6JuyF9v+Pc6Rvu6orsL1wMiIlJG7TASGhqK0NBQtS/k5OSEli1bqn0c6afaPSOW5hIcnDME/ybl4ukfosQrSk9IZffuzXzyVwI++SsBKSvHiVgREZF+09nTNI899hgqKyvh4eGBV199FX379tXVpakZao9/ULZdzWERRu+36IzGGzVC4LdKRCZE62HExcUFS5Ysga+vLyorK7Fr1y5MnToVO3fuhI+Pj7YvT1oi4SStWrXzTDqc7a0x2EO1p5yIiAyZ1sNIt27d0K3bvWnJAwMDkZaWho0bN+KTTz7R9uVJS2pnkfqeGAns3ArnUwt0VY7ROZWch1PJeQ3e3pHKBNwuq4SzvbUOKyMi0jxRHu318/NDamqqGJcmHfHp4Ch2CXopOacEV7M0M8nctB9Po9+ywzifelsj5yMiEosoYeTKlStwcWH3sz7xd2sFAGjXUvFf2S2szOWvXx/eQ/5aosZ9mmWP+WJmExftMybVUhmGrz6GkWuPo7SiutnnO3E1FwCwNfJGIy2JiPSb2rdpSktLFXo10tPTER8fD0dHR3To0AGrV69GVlYWVq1aBQDYuHEjOnXqBA8PD1RUVGDXrl2IjIzEhg0bNPcpqNkcbCwRu2QUrO6bTt7e2gJfPBkACYDxfTrItytGkZr7NB1qLbjn7mwnf/3MgC64kVeK744na6Fyw1ElvXc/69cLN/HMgC4iVkNEpD/UDiOxsbGYOnWq/P2KFSsAABMmTMDKlSuRk5ODzMxM+f6qqip8/PHHyMrKQosWLeDp6Ykff/wRAwYM0ED5pEn2Slb5faRWCLmrdsdI25Y2AGoCyLfPBMLZ3hp93Fohv7QSQ/6bZt5SjTVzjJVZra/gvb2x6NOpFfw68XYWEZHaYSQoKAgJCQlK969cuVLh/YsvvogXX3xR/cpIr0kkEhx/cxgqpVK0tLm3qNto3/by1wtGeYlRmt66f6Dv+K9Ool1La/h1bIWZQ7rVmXpfVXvO38Sa//k3v0AiIpFw1V5qss5Otiq35aPAQHmVtM62rKIKZBVl4XB8Fq5+NKbOfkEQ1BqfQ0RkiNh3TjqhbPK0+80IMd51bn6KavgJsnFfnKiz7anvOaMtERk/hhHSibYO1ujp6gCfDopLAsQuGSV//foID7w8tHudY53srPD8oK7aLlGrPj54BcXlDT9Bk5hVUmfbqWSu3ktExo+3aUgnzMwk+PP1wQCAbu/8Kd+uMGi2vtnTAJxbPBIA8OO/KVqrT9u+Cb8mdglERHqLPSOkM2ZmEpiZKb9dI0BxXhOqsfzPeAj3BbWsonKRqiEi0jyGEdK598b1Unh/d/6Sp4I6w9bKAp9N9q/3uIHdnbRdml767ngyjlzJVtjG1ZGJyJjwNg3p3LSBXVEtEzCouzMA4Isp/vh0Um9YW9T0ijwW0BEXUm9j0ynFmUUf7NUOEddMcwxFXmmlwvuk7LrjS4iIDBXDCOmchbkZZoXeG6gqkUjkQaQhU4O7YOm+OG2Wpr+Emsd8X/npPKwt2KFJRMaFYYT0Un1za1iY+CyumYXlOBB7S+wyiIg0zrT/upPB6t+1NcKe6yd2GbojAaSy+p82aiqZTKh3IjYiIl1jGCGD9NzArhjRq53YZejMl0eu4mJ6odL9FdVS5JZUqHXOKd9Foufig8i/bzwKEZGuMYwQGYC0/DuYve280v3DPglHv2WHkX67TGF7VHIeZm05h8zCO3WOOZ2SDwA4HJ+l2WKJiNTEMEIG6f7p5acN7CpOIXoio7Bm3pFjiTnybQVllZj8XSQOXr6Fhb9cFKs0IqJGMYyQQerdyVHhvXf7lkpampZ3f42FVCZgW1Qq/Jcekm9PzS9r4CgiInHxaRoyKGffexAFZZVwa6P6isGm5kBsJt759ZLCNpmSqfaJiPQBe0ZIL43r3R4A0MHRRmG7s701erR1qHuAaosCm4TSiroL8slkIhRCRKQi9oyQXurftQ0OzwtFh1Y2jTemRt2/tg0RkT5hGCG91aOtvdglGKRFuy/V2Xb/FCWbT6XIX7NTiYjExjBCRoE/qKqpqJbiUFwW3v/tsnwb+0yISGwMI0Qm4O7s+l7vHRS3ECKienAAKxmF+tayoXsaGjKiyjdXWFaFXy+k1zs4loioudgzQmTiShoIGOdu5MPWygIf/n4ZUdfzMb5PDr58MkCH1RGRKWAYITIBDXUcLfkjDrklFXhzVE+F7TnFFXj8m1MK2/6IyWAYISKN420aMgoSAM8O6NJou+cHddV6LfqosSd71x29hhNXcxS21beeTVOsO5qEIauOIru4XCPnIyLjwzBCRmPpoz6NtjHn2BKlng07rZXzfvJXAlLzy/DlP0laOT8RGT6GETJo7VpaAwBCPJxVGsTq7GCt7ZL00q2icuw+l67WMfcvRthcUk68RkRKcMwIGbTjC4ehtEKKNnZWKrWfNrAr4jOL8Ft0hpYr0z/zd8Wo1b6ovEqldknZJejiZAtL84b/bWPGTikiUoI9I2TQrC3MlQaRxGVjcPzNYQrbbCzN8fmUAIz2cdVFeQYr9mYhnv4hqtF2v15Ix4NrjmH6prONttV0TwsRGQ+GETJKDjYWsLIwQ2enpq3ua2dlruGKDEvYyesqtfvx3xQAwPHEHNyplOKf+CyUV0m1WBkRGSOGETIqP88cgD5urbBtxgCVj/nkid4K74Pc22Dpo76aLs0gxN4sxKlrefgjRv3bWPN3RWP6prN499fYevfzNg0RKcMwQkYlqJsTfps9CH6dHFU+ZlI/N4X3P78UDFdH01wt+OEvT+LJ7yNRff/KekrUzhd/XroFANh9vv6Bspwll4iUYRghqkeHVi2U7vt8ir/uCtFDgiBg74WbmL7xDIo5PTwRaQDDCFE93J3t8M3TgQj1dKmz71H/jvjz9cEiVKUfwhNyMOfnaPxzJRvJOaUqHxefWYSo5DwtVkZEhophhEyGg416T7KP8WuP/l1b17vPu0NLTZRkkJoyngQAoq7nY/J3kcguKsfRhGxEpxXg/d9ikZhVrOEKicjQcJ4RMnq7Xw7GygNX8MH4xmdovV/tcQ6BnVth3kgvTZZmkJJyShptU1pRDQGAvXXdPzFbI2/giyP3ZmPdcToNiR+N0WSJRGRgGEbI6PXt0ga7Zg1s9nn2vDKowf0BnVvhQmpBs6+j7y6mFzbaxueDvwAA/1fPFP21gwgAVEplmimMiAwWb9MQaYgFn12tY/FvlzV2rsKyKuSXVmrsfESkP9gzQtQAawvV8zpnGNUemUxAn6V/AwCu/N9o2Fia9qR0RMaGPSNEAKYGdwEAPD+oq8L2p4I6I6BzKyx4yLPOMd9P7QffjqY7kFWXat/KySmuELESItIG9oyQSZo2qCsOXr4lf3T3g/E+eKJvJ/h0UJwszdbKAr8qGSsy0rsdRnq3Q9e39gMA/Du3wumUfO0WbkJuFtxBVlE5AjsrPtHExX+JjI/aPSNnzpzBrFmzEBISAi8vLxw+fLjRY6KiojBhwgT4+vpi5MiR2LNnT5OKJdKUAd2ccPrdEdgwrT8AwNxMgt6dWsG8CeM+Ds8bgqWP+uDFwd3k29R9jJjuOZuSj++OX8OglUcw8esIJNzio79Exk7tMFJWVgYvLy988MEHKrVPS0vDSy+9hKCgIPz222947rnn8N577+HEiRNqF0ukSW0dbJoUPu7Xo60DpgZ3hYuDtXxbN2c7lY/f9MIDza7BmDzx7Sks//OK/H1MeoHCfs4qT2R81P7nW2hoKEJDQ1Vuv2PHDnTq1AlvvfUWAKB79+44d+4cNm7ciMGDTXcWSzJy9/1i7poVjEnfnlLY9lRQZwzzalvvLK+mSlbPmjjp+WUoq7y3EnDt2zRF5VVwsLbgujdEBk7rA1ijo6MRHByssC0kJATR0dHavjSRzrW2tQQADL0vYPTv2qZO2+UT/DDSu51O6tJ3RxOyAQATv4mos++LI0kI+fhIne2RyXno/eHfeHvPJa3XR0TapfUwkpubC2dnZ4Vtzs7OKCkpQXl5ubYvT6RTB94YgtWT+uCVYd3FLsWgPP/jGWyLSkV0WkG9+2v3jNw15btIAMCOM2naLI2IdICj7Ig0yNXRBo/37SR2GQbpnV9V7+E4d4NPLREZE633jDg7OyM3N1dhW25uLuzt7WFjY6PtyxOREfrqvinliciwaT2M+Pv7IzIyUmFbREQE/P39tX1pIjJSRxNyxC6BiDRI7TBSWlqK+Ph4xMfHAwDS09MRHx+PjIyaZcVXr16NhQsXyttPmTIFaWlpWLVqFa5du4affvoJBw4cwLRp0zTzCYiM0GvDe4hdglGLyyjC2kOJKKusFrsUIkITxozExsZi6tSp8vcrVqwAAEyYMAErV65ETk4OMjMz5fvd3Nywfv16rFixAps3b4arqyuWLVvGx3rJpB17c2iD+wd0c0I3FzvM/TlGNwUZkYKySkgggeN/TzbVZ+wXNfMcRVzLVVjR+ciVLBTdqcZjAR3l28qrpLAwk8DCnKtnEGmL2mEkKCgICQkJSvevXLmy3mP27t2r7qWIjMrayX2wPSoN654OVJggTZkqqerznscvHY1e7x9sTnkGY9c55U/PVFbL4L/0EABg7+xB+OVcGuY+6Im391yCmUSCb5/tq9D+TMptpN8uQ6fWtgCAFzaeBQA84N4GHVq1QFllNbzf/wtubVrgxMLhCseeupaHvy7fwqLRPdHCigv3ETUHn6Yh0pEJAZ0wIaD+J21OvT0cKbllWHnwCpKzSxDYuTVyS+4tCOfZzh5DPFzww8nrdY7dMK0fWliZw8HaAsUVxn/b4csGBq/ml1bKXz+27l8AQOKtEvmaQQVllWhla6VwTHJOqTyM3HW7rBIdWrXAobgsAEBa/p0613ry+5qxcC1tLDDvIa8mfBIiuothhEgPtHdsgfaOLfDrywNRLRNgZWGGsX7tceDSLUgFAZ9O6oOWNhaYPtgdLvbW6PHuAfmxw3ty4rTDcVl40LtdvVPFx2cWNXjs3f4nodbUrhLUnOiNHdGNXjslr0zVMolICYYRIj1iZiaB1X/r5Viam9W5rdDesQUAYPuLA7Ax4jpmD7s30LVbW3vEKJk0zNjN2HwWCx7yxJpDiXX21b7ZNXPzOViYKyYWQRBQJZXhl3Pp8m0NzS4vCILC9PNcRJio+Tgii0hL2jvWzKMT2LmVxs8d3N0J65/th96d7p178bheGr+OIfn070TUs7QNpLU2nk7JR8S1vDptNkWkKEwrryyMzNlxAUM/DUd5Vd0ZYYmo6dgzQqQlO18Kxk9RqXhhUFedXK/VfU+PdHGyxQ3eQsCdRoJDQVkVTl9XbUbXvdE1Uxgcjs9qdl1EdA/DCJGWuLWxxVtjeop2/QC3VgwjKpjzczRG+SiOu3lx81n0dG2p0vG1x5oQUdMwjBAZqSWP+qJTa1t8dZRTp6srLf9OvU/Q3LUv5t5cSowiRM3HMSNERsL1v8Gtdzm2sMSCUV448+6DIlVkOC6kFqjV/uDlW/feCEBhWZVaPSS/x2Rgwa4YVFbL1LoukbFiGCEyEvbWFujuYldnu7IJ1u4fY2LKsosrGm2Tklta7/aY9AL0Wfo3Xt56XuXrvb79An45l46fz6SqfAyRMWMYITIi90/eVZ9Dc4dg+QQ/nH9vpA4qMh5DPw2vd3v67ZrbOQq9JfU4FJeFFX/GKzzdk1drkjYiU8YwQmREHFvU39vRt0trAEBA51bwaOeAp4I6w8xMgnfHmvbjwLr04uazWH88GX/EZDTp+NS8Muw+l64QZoiMBcMIkRF5d1wv9O/aGp9P8VfYvv7Zvnh7TE98P7WfwvYXh3RTeq65D3rKXz8V1FlhX09XB3z9dGCjC/5RXVlF5bVeV6g8bmTIJ0cxf1cMtp3mrR0yPgwjREakXUsb7Jo1EI/6d1TY7mxvjZdCu8PZXvkCfWYSIPLtEXg6qDMOzxsCS4t7M38Fd3NSaNujrT3G+rWHUwPnM0WfH76KFQfiseVUitI2d2/rAMD206kY9PGRRs9bO7CoOicKkSHho71EJu7JB9yw/XQa5o30hKujDT6a4AcA+Dvu3sRewd3vhZFJfTvJ50+xq7VabU9XB1y5VayjqvXT2sP3pqN3trfGGL/2ddpsibyh8D6nuAJHE7IxwN1JYfXfX86lo7i8CrfLqvDFP1fl2zmvCRkjhhEiE7fsMT9MG+gOz3b2Cttr/+Y521sj+v2RaGFlDmuLez+YEokESR+NgUQiwa2icgxa2fi/8k3Fyz+dR9hz/eDTwRFV0oZvxTz/4xkAwKzQ7vKgt2BXjNZrJNIXvE1DZOLMzSTwcnVQWPwNAIb3bAvg3iPArWytFILIXRbmZjA3a2BlORM2fdNZDFjxDwavOqpS+2+PXdPYtZNzSjDp2wgcS8zR2DmJtIVhhIjq1at9S4QvGIqTi4ar1L727YPIt0fgpSHdsP/1EEwb2LXB45Y95tucMo3OP/FZ6PrW/maf5/UdF3Am5Tae23AasTcL8W9SbqPHnE3Jx5BVR3HkCtfeId1iGCEipbo628HeWrW7ubV7Vlq2sMDbY3vBp4MjPnzEp07bET3b4skHOuOzyf54ZkAX+Lu10lTJBm/6prMqt13yx2XM2nKuzjiSO5VSxN4skr9/+MuTePqHKNwsqBk8uykiBYNWHkHqfWsXPf1DFFLzy/DCRtVrINIEjhkhIo3o4GiDUE8X2FiawdZK8U9Lr/YtEZ9578dxiKcLnqvVY/LRBF+M++Kkrko1Cq9tvyCfs+TLI0mISSvA++O9EZdRhBv59S+QePP2HXRs1QIf/H4ZQE2YCZvWX76/gtPTk0gYRohIIyQSCTa98EC9+759JhArD1zBSO92KKuUYkp/N4X9Ph0ccenDhzBr6zn8m5RX5/iQHs44qcJtBlOw72Im4jPDcS3n3vT0aw7VPMXzz5XsBo+9vwelpKIanx1ORP+ubTCwu5OSo4i0j2GEiLSui5Mdvnmmb4NtHGwsIav1D/M3R3lhlI8rCu9UwUyCOmFkRM+2jf74GqvaQaQ5oq7nI+q/eUvun9iOSJc4ZoSI9Ean1vdWHp49rAd6tLVH3y6t0cVJcQFAMwkUbi9Q822LatrMrpmFd7DrbBpXIKZmYRghIr3xzthemBjQEdteDFLY3sbOCv/36L2BsPVNJvb2f/NzkHLl1bIGZ4dtiofWHsebv1zE1+FJGj0vmRaGESLSG63trLBmsj8Gdneus+/Z4K7o2Kqm52Tcf2FkUt9O8v2PBXTEa8N76KZQA/XchtNY/NvlJh17/8Rt5VVSnLiag+LyagDAscQcxN4sRHhCNm6XVuJiekFzyyUTwjEjRGQwDswZjKTsEgT89yjwqid6w7GFJVrZWqJdSxvMG+mJb49dQ5WUU6ZrQkFZJQ7FZeHNXy4CAGYP644ubeyw61wa7KwtEJ6gOKHaw18qPhG186VgPODeRmf1qqK8SorruaXoWc9EfyQehhEiMhgtbSwR2Lm1/L1EIsF7D3srvD+5aDiW7ovD/ouZdY4/NHcIRq49rpNaDV19E6+tO6p8htj6ftaPJWbjAfc2KCyrwvm02xjcwxkW5vV3yN8urcTyP+MxqZ+bVgPM/9afwsX0Qnz1VAAe7t1Ba9ch9fA2DREZlXYtbbD2f/5wa9MCA7q1waP+NT84W6Y/AI92Dhjq5QIAaOtgLZ/y/q7FtYINNZ9MANLyyzBpfQSe//EMvj9xHQBQWlGNO5VShbZL98Vh17l0/G/9qQbP+fOZVMzYdAZ3KqUoq6xWu6aL6YUAgF1n09U+lrSHPSNEZHSsLMwQvmAYzCQ1vSWfTfaXd8mvntQHm0/dwBN9OyHs5HWF4wZ7OCO4mxNOJded64QaVt8tj2/Cr+Gb8Hu9KR8fvIIebe3x4uaaGV4j3hqOtg7WOByfhdP/PWIMAFeziuHRzkHhXBHXcvHur7G4nlvzWPOU7yMRk1aAt8b0xKzQ7k2oV+1DSIsYRojIKNVevK/2D6WTvTXmjvT8b7viMZ7tHLDphQfw8cErGOLpgq2RN3AoLgt/zx0CqUyAlYUZRqw+ppP6DU2akllf73c3iADAm7/EYHjPdvi/fXGK57pdJg8jpRXVsDQ3w1PfRym0iUkrAACsPHClwTAiCALySyvhZG/dYF0ymQAzLvgoGoYRIjJZU4O74sd/UxS2WVmYyW/XDPFwRmmltN71eUb5tMNfl7mg3F3ZxRVqH/NvUh5KK6RK95dVVsPng7+aUxaW/BGHjREp+PrpQIyt9Uh47dhReKcKo9Yex4PebbHsMb9mXY+ahmNGiMhkuTvb4dkBXQAAb4zwqLNfIpHUCSKXl4zC0QVD8dVTgfjqqQAcXTBUvi/suX449uZQkOqi/+vhqO2v2CycScnHhdS6++oz5vMTmLHpbJ3HjwFgY0QKgJpbRPWJvVmIr48m4VZRObZGNm3iN2o+9owQkUlb+qgPXghxR1cnW5Xa21lbwP2/gHL3aYxtLwahvEqK4T3bKT1uQkBH/HrhJgBg32shdR6DpXt+PpuGn8+mqdw+PrMI8ZlFeHnredhYmmHVE73rLNZoLpEorM1zLDEH8ZlFdf53eHTdv9j1UjCsLBr/t/qHv1+GpbkE747jwOfmYhghIpMmkUjg7mzXeMMG3D9J2+F5obh0swBjfNvjQmoBrtwqgmMLS3kY8e3oiJ9nDsCJq7n46ihnLtWUw/E1t81sLM0xub8bbuTdG8eSnFsK97f/lL+XCTU9KveLSSvAP/FZ9c7ye9ehuCy8vecScktqbk3NHelZJ/yQevjtERFpWI+29ujR1h4AENzdCcHdnXC7tBIA4NuxJQAgqJsTgro5oUOrFvjhZDI+GO+DG3mlmNK/MwruVOKBj/4RrX5D98u5dPxyrumP7lbJFCfNk8oEhQHRtQfhAsDdDpcf/72O9o4tMNrXtcnXNlUMI0REOtDazgpxS0fB2sJcYftTQZ1rrZh7dw4UGyQuG4PErGIcuZKNNYcSVbrGh+O98eEfcY03pAZdzijEEA9n7DybhuV/1ow1ObFwGI4l5qCFpXmd9p/+nYDJ/d2w5L/vPmXlOJ3WawwYRoiIdESdrnwrCzP4dnSEu7MdzqfeRnhCDr58MgBfh19DfGZRnfY/zxyAoG5OGN6zHZ74NkLh6ZbLS0Y1+6kUU7L+WDLWH0tW2DZizTGlKxP/+G8KAmrNDFwllcHS3AxSmQAzCRCZnI/fYzIwsLsTDsdn4f8e80VLG8tm15lTXIFNESmY3N8Nbm1UG/OkryRC7RE9eqqkpAR9+/bFuXPnYG9vL3Y5RESiGf3ZcVy5VQwA+GyyP45cycb0EHf0+W+9HqBmbo2Y9EL879tT2PhCfwzs7oxfzqVjwa4YAMCGaf3wwsaaWw1jfF1xIPaWzj+HKXsuuAuWPOqL7OJyRKcWYKhXW1hZmCHiWi6yiypws+AO/k3KxYZp/WHzX09MYVkVruWWoEdbe9hZWSCj4A4W7b6IiGt56NS6BU4uGi7yp6qfqr/fDCNERAbk22PXsPLAFfRq3xIH3his1rF3/8UO1DzS+vflW3h5aA989k+iQk+ARAI80LUNomrNikra1dXJFil5dSeOS14+FmZmEvT/6DBy/uvt6tzGFqn3TTJ3tx1QM1FcVlE5urk0/HspCILWFwtkGCEiMkLVUhkiruXBv3MrjXT1AzU/SknZJVh3NAl7ozPw+ggPzH3QA+VVMqTkleKHE9fx/KCu8HJ1wN4LN+Wr+ALA2sl9YG9tWWdQJ2nOxMCO2HP+ZqPtxvfpAO/2LbHt9A2k5d/B3tmDYGkugUdbB1hZmCEltxR21hZwcbDGa9svICatAH/NGYIWVnXHwWgKwwgREamlSirDlcxi+HRo2eDU6B8fvCJfc+bvuUPg2c4BVVIZPN49IG/TzcUOyTml8vc2lmYor6p/zAVp14O92sLO2gK/RWcAAHa+FFxnQcKdLwVrZbVkhhEiItKaG3mlyCqqUPgByy4qx89n0jC5vxvatrTBpfRCjP+qZlKxlJXjcD23FFcyi9C2pTUcW1jiVmEFPNrZ45dz6fjkrwSxPgr9RxtPAan6+92kp2l++uknhIWFIScnBz179sTixYvRu3fvetvu2bMHb7/9tsI2KysrXLp0qSmXJiIiPdDFyQ5dnBQni2vb0gav1ZpW37djSzwV1BkdW7UAUDP9fu0J5nq0rVkMb/awHhjr1x6/nEvDzMHdUVZVjXf2XMLRhBwAwPnFI1F4pwqlFdVYeeAKTiblAgAm93NDYnZxvdPGB7lzzIu6Tl/P10rviCrUDiN//vknVqxYgSVLlqBPnz7YtGkTpk+fjoMHD8LJyaneY+zt7XHw4EH5e20PmCEiIvFJJBIsn6DawnPuznZ4c1RPAIAjLPHd1H744p+rCOnhjDZ2VmhjZwUA2DojSOG4f+KzMH1TzXiVZwZ0hoWZGeaO9IRjC0tsOZWC86kFOJaYg1eGdse2qFQk59bcOpoa3AWbT93Q1Ec1CjcLygAYSBj58ccf8b///Q+PP/44AGDJkiUIDw/H7t27MXPmzHqPkUgkcHFxaV6lRERkMizNzTD/Ia9G2w3v2Rbrn+0L15Y2Co83A8CzwV3xbPC99zMGd5OvTyORSLD0UV+k5Zfh6/AkhHq2RUbBHQzr2RYAYGdljui0AqTklconPjN2HVuJN1eJWmGksrISly9fxksvvSTfZmZmhoEDB+LChQtKjysrK8OwYcMgk8ng7e2NefPmwcOj7gqZRERE6pBIJBjlo/r06/f3zLu1scWKifUPM3jov/POHNJdYbsgCMgvrYREIsH+S5l4pHcHONpa4vT1fFhZmKGrky1a2lhi17k0xN4swpbIG3Br0wLHFgxDRuEdTPw6AuP7dEDYyetqflrtcmvTQrRrqxVGbt++DalUWud2jJOTE5KTk+s9xt3dHcuXL4eXlxeKi4uxYcMGTJkyBfv374erK+fvJyIiwyKRSOBkbw0AeHZAF/n2+8dbTO7fGZP7A//3mK98W6fWtjj97oMAgMUP31vtd8iqo8gsvINfXxkE346O+PzwVaTdLsO0gV3xd1wWAtxaYVjPthAEAX9dzsKHv1/GraJyuDvbQSIBHFtY4oPxPrAyN8PGiOvYeVZxbR57awuUVFQ3+Lnu3goTg9angw8ICEBAQIDC+7Fjx2LHjh2YM2eOti9PRESk944vHKbw/o0Haw8EdpS/lkgkGO3r2uBifKue6IOXh/bA4r2x+HRSH7g62tRpk11cjjPXb8PV0QaX0gvQ261VnXWTdEmtMNK6dWuYm5sjLy9PYXteXh6cnZ2VHKXI0tISvXr1QmpqqjqXJiIiIhW5O9vVGexbW1sHG4zr3R4A0LdLa6XtdMVMncZWVlbw8fHBqVP3JkuRyWQ4deqUQu9HQ6RSKRITEzmglYiIiAA04TbN888/j0WLFsHX1xe9e/fGpk2bcOfOHUycOBEAsHDhQrRr1w7z588HAHz11Vfw9/dHly5dUFRUhLCwMGRkZGDSpEma/SRERERkkNQOI2PHjkV+fj6++OIL5OTkoFevXvjhhx/kt2kyMzNhZnavw6WoqAiLFy9GTk4OHB0d4ePjgx07dqBHjx6a+xRERERksDgdPBEREWmFqr/fao0ZISIiItI0hhEiIiISFcMIERERiYphhIiIiETFMEJERESiYhghIiIiUTGMEBERkagYRoiIiEhUDCNEREQkKrWngxfD3UliS0pKRK6EiIiIVHX3d7uxyd4NIoyUlpYCAEJDQ0WuhIiIiNRVWloKBwcHpfsNYm0amUyG7Oxs2NnZQSKRiF0OERERqUAQBJSWlqJt27YKi+jezyDCCBERERkvDmAlIiIiUTGMEBERkagYRoiIiEhUDCNEREQkKoYRIiIiEhXDCBEREYmKYYSIiIhExTBCREREojLpMPLTTz9h+PDh8PPzw6RJk3Dx4kWxS9Jb69evx+OPP46AgAAEBwfjlVdeQXJyskKbiooKLFmyBEFBQQgICMBrr72G3NxchTYZGRmYOXMm+vTpg+DgYHz88ceorq5WaBMVFYUJEybA19cXI0eOxJ49e7T++fTVd999By8vL3z00UfybfyeNSMrKwsLFixAUFAQevfujfHjx+PSpUvy/YIg4PPPP0dISAh69+6NadOmISUlReEcBQUFmD9/PgIDA9GvXz+888478uUr7rpy5Qqeeuop+Pn5ITQ0FN9//70uPp5ekEql+OyzzzB8+HD07t0bDz74INatW6ewTgm/56Y5c+YMZs2ahZCQEHh5eeHw4cMK+3X5vR44cACjR4+Gn58fxo8fj2PHjqn/gQQTtX//fsHHx0f45ZdfhKtXrwrvvfee0K9fPyE3N1fs0vTSCy+8IOzevVtITEwU4uPjhRdffFEYOnSoUFpaKm/z/vvvC6GhoUJERIRw6dIl4X//+58wefJk+f7q6mrh4YcfFqZNmybExcUJ4eHhQlBQkLB69Wp5m9TUVKFPnz7CihUrhKSkJGHLli1Cr169hOPHj+v08+qDmJgYYdiwYcL48eOFZcuWybfze26+goICYdiwYcJbb70lxMTECKmpqcKJEyeEGzduyNusX79e6Nu3r3Do0CEhPj5emDVrljB8+HChvLxc3mb69OnCI488IkRHRwtnzpwRRo4cKcybN0++v7i4WBg4cKAwf/58ITExUdi3b5/Qu3dvYceOHTr9vGL55ptvhAceeEA4evSokJaWJhw4cEDw9/cXNm3aJG/D77lpwsPDhTVr1gh///234OnpKRw6dEhhv66+13Pnzgm9evUSvv/+eyEpKUlYu3at4OPjIyQkJKj1eUw2jDzxxBPCkiVL5O+lUqkQEhIirF+/XsSqDEdeXp7g6ekpnD59WhAEQSgqKhJ8fHyEAwcOyNskJSUJnp6ewoULFwRBqPk/np49ewo5OTnyNtu2bRMCAwOFiooKQRAEYdWqVcK4ceMUrjVnzhzhhRde0PIn0i8lJSXCQw89JPz777/CM888Iw8j/J4145NPPhGefPJJpftlMpkwaNAg4YcffpBvKyoqEnx9fYV9+/YJgnDve7948aK8zbFjxwQvLy/h1q1bgiAIwk8//ST0799f/r3fvfaoUaM0/ZH00syZM4W3335bYdurr74qzJ8/XxAEfs+acn8Y0eX3+sYbbwgzZ85UqGfSpEnC4sWL1foMJnmbprKyEpcvX8bAgQPl28zMzDBw4EBcuHBBxMoMR3FxMQDA0dERABAbG4uqqiqF77R79+7o0KEDoqOjAQDR0dHw9PSEs7OzvE1ISAhKSkqQlJQkbxMcHKxwrZCQEPk5TMXSpUsRGhqq8H0C/J415ciRI/D19cXrr7+O4OBgPPbYY9i5c6d8f3p6OnJychS+ZwcHB/Tp00f+N+LChQto2bIl/Pz85G0GDhwIMzMz+S3f6Oho9OvXD1ZWVvI2ISEhuH79OgoLC7X9MUUXEBCAyMhIXL9+HUBNl/+5c+cwZMgQAPyetUWX36um/pZYqNXaSNy+fRtSqRROTk4K252cnOqMg6C6ZDIZli9fjsDAQHh6egIAcnNzYWlpiZYtWyq0dXJyQk5OjrxN7R9IAPL3jbUpKSlBeXk5bGxstPKZ9Mn+/fsRFxeHX375pc4+fs+akZaWhu3bt+P555/HrFmzcOnSJSxbtgyWlpaYMGGC/Huq72/E3fE5ubm5aNOmjcJ+CwsLODo6KnzPnTp1Umhz93vPzc2Vh3ljNXPmTJSUlGDMmDEwNzeHVCrF3Llz8cgjjwAAv2ct0eX3Wt/fktrXUZVJhhFqniVLluDq1avYtm2b2KUYnczMTHz00UfYsGEDrK2txS7HaAmCAF9fX8ybNw8A4O3tjatXr2LHjh2YMGGCyNUZjwMHDuCPP/7A6tWr0aNHD8THx2PFihVo27Ytv2dSYJK3aVq3bg1zc3Pk5eUpbM/Ly6uT8EjR0qVLER4ejk2bNsHV1VW+3dnZGVVVVSgqKlJon5eXBxcXF3mb+9Py3feNtbG3tzf6f60DwOXLl5GXl4eJEyfC29sb3t7eOH36NLZs2QJvb29+zxri4uKC7t27K2zr1q0bMjIy5PsBNPg3wtnZGfn5+Qr7q6urUVhYqNL/Fqbwt2bVqlWYOXMmxo0bBy8vLzz22GN47rnnsH79egD8nrVFl99rfW2a8ltqkmHEysoKPj4+OHXqlHybTCbDqVOnEBAQIGJl+ksQBCxduhSHDh3Cpk2b4ObmprDf19cXlpaWCt9pcnIyMjIy4O/vDwDw9/dHYmKiwv+BREREwN7eHj169JC3iYyMVDh3RESE/BzGbsCAAfjjjz+wd+9e+X++vr4YP368/DW/5+YLDAyUj2O4KyUlBR07dgQAdOrUCS4uLgrfc0lJCWJiYuR/IwICAlBUVITY2Fh5m8jISMhkMvTu3RtAzfd89uxZVFVVydtERETA3d3dJG4dlJeXQyKRKGwzNzeXP9rL71k7dPm9auxviVrDXY3I/v37BV9fX2HPnj1CUlKSsHjxYqFfv34KTyDQPR988IHQt29fISoqSsjOzpb/d+fOHXmb999/Xxg6dKhw6tQp4dKlS8LkyZPrfeT0hRdeEOLj44Xjx48LAwYMqPeR048//lhISkoStm7dalKPnNan9tM0gsDvWRNiYmIEb29v4ZtvvhFSUlKE33//XejTp4/w22+/ydusX79e6Nevn3D48GHhypUrwssvv1zvo5GPPfaYEBMTI5w9e1Z46KGHFB6NLCoqEgYOHCi8+eabQmJiorB//36hT58+Rv3IaW2LFi0SBg8eLH+09++//xaCgoKEVatWydvwe26akpISIS4uToiLixM8PT2FH3/8UYiLixNu3rwpCILuvtdz584J3t7eQlhYmJCUlCR88cUXfLRXXVu2bBGGDh0q+Pj4CE888YQQHR0tdkl6y9PTs97/du/eLW9TXl4ufPjhh0L//v2FPn36CLNnzxays7MVzpOeni7MmDFD6N27txAUFCSsXLlSqKqqUmgTGRkpPProo4KPj48wYsQIhWuYovvDCL9nzThy5Ijw8MMPC76+vsLo0aOFn3/+WWG/TCYTPvvsM2HgwIGCr6+v8NxzzwnJyckKbW7fvi3MmzdP8Pf3FwIDA4W33npLKCkpUWgTHx8vPPnkk4Kvr68wePBgk5o+oLi4WFi2bJkwdOhQwc/PTxgxYoSwZs0ahUdF+T03TWRkZL1/kxctWiQIgm6/1z///FN46KGHBB8fH2HcuHFCeHi42p9HIgi1psIjIiIi0jGTHDNCRERE+oNhhIiIiETFMEJERESiYhghIiIiUTGMEBERkagYRoiIiEhUDCNEREQkKoYRIiIiEhXDCBEREYmKYYSIiIhExTBCREREomIYISIiIlH9PzR1W8TliFDPAAAAAElFTkSuQmCC", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(ht_lda.approx.hist)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's have a look at the inferred signature definitions. These have been estimated from only 100 samples for demonstration purposes." ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "denovo_sigs = ht_lda.get_estimated_SignatureSet()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Damage signatures" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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ouwhb8yYMdm9e3cWLFiQurq69OvXLwsXLmzerrljx45UVv5mwfGVV17JnDlz8sILL6Rz587p1atXPv/5z2fMmDHNfT784Q9n//79ufXWW/Pyyy/noosuysKFC3P88ce3+/wAAADaU0VTU1NTuYvoaPbu3ZuLLroojz32WE466aRylwPQ4T31sX/Pq9t2H/E4nXuflj+4930lqAgAjl1lfxk6AAAApSPkAQAAFIiQBwAAUCBCHgAAQIEIeQAAAAUi5AEAABSIkAcAAFAgQh4AAECBCHkAAAAFIuQBAAAUiJAHAABQIEIeAABAgQh5AAAABSLkAQAAFIiQBwAAUCBCHgAAQIEIeQAAAAUi5AEAABSIkAcAAFAgQh4AAECBCHkAAAAF0iFC3vLlyzNixIgMGDAgEyZMyOOPP/6GfVesWJE/+ZM/yTvf+c68853vzJQpUw7qf/PNN6dPnz4tfk2bNq2tpwEAAFB2ncpdwJo1azJ37tzMmTMnF154YZYsWZJp06bl61//empqag7q/5//+Z+5+uqrM2TIkFRXV2fhwoX58z//83zta1/L6aef3txv+PDhmTt3bvPX1dXV7TIfAACAcir7St7ixYszceLEjBs3Lueee27mzJmTzp07Z+XKlYfsf+edd+ZP//RP069fv/Tu3Tuf+cxn0tjYmNra2hb9qqur061bt+Zfp556antMBwAAoKzKGvIaGhqyZcuWDB06tLmtsrIyQ4cOzaZNmw5rjP379+f1118/KMR9//vfz6WXXpr3vve9+fSnP509e/aUtHYAAICOqKzbNffs2ZMDBw4ctC2zpqYm27dvP6wx5s2bl+7du7cIisOHD89VV12VHj165Nlnn838+fPz4Q9/OF/+8pdTVVVV0jkAAAB0JGV/Ju9IfPGLX8yaNWuydOnSHH/88c3tV199dfM///rglZEjRzav7gEAABRVWbdrdunSJVVVVamvr2/RXl9fn65du77ptQ899FC++MUv5qGHHkrfvn3ftO9ZZ52VLl265Omnnz7imgEAADqysoa86urq9O/fv8WhKb8+RGXw4MFveN2DDz6Y//t//28WLlyYAQMG/N77vPDCC/n5z3+ebt26laRuAACAjqrs2zWnTp2am266KRdccEEGDhyYJUuWZP/+/Rk7dmySZNasWTn99NMzc+bMJL/aorlgwYLceeedOfPMM1NXV5ckOeGEE3LiiSdm3759uffee/Pe9743Xbt2zbPPPpvPf/7zOeecczJ8+PCyzRMAAKA9lD3kjRkzJrt3786CBQtSV1eXfv36ZeHChc3bNXfs2JHKyt8sOH7pS1/Ka6+9lr/8y79sMc7HPvaxfPzjH09VVVW2bt2a1atX5xe/+EW6d++eyy67LJ/4xCe8Kw8AACi8iqampqZyF9HR7N27NxdddFEee+yxnHTSSeUuB6DDe+pj/55Xt+0+4nE69z4tf3Dv+0pQEQAcu8r+MnQAAABKR8gDAAAoECEPAACgQIQ8AACAAhHyAAAACkTIAwAAKBAhDwAAoECEPAAAgAIR8gAAAArkLYW8119/PevXr8+XvvSl7N27N0myc+fO7Nu3r6TFAQAA0DqdWnvBc889l+nTp2fHjh1paGjIZZddlpNOOikPPvhgGhoactttt7VFnQAAAByGVq/k3X777bngggvy/e9/P8cff3xz+1VXXZUNGzaUtDgAAABap9UreY899lj+6Z/+KdXV1S3azzzzzOzcubNkhQEAANB6rV7Ja2xsTGNj40HtL7zwQk488cSSFAUAAMBb0+qQd9lll2XJkiUt2vbt25d77rknl19+eckKAwAAoPVaHfJuvvnmbNy4MWPGjElDQ0NuvPHGjBgxIjt37syNN97YFjUCAABwmFr9TN7b3/72/Mu//Eu+9rWv5cc//nFeeeWVjB8/Ptdcc006d+7cFjUCAABwmFod8pKkU6dOufbaa0tdCwAAAEeo1SFv9erVb/r5+9///rdYCgAAAEeq1SHv9ttvb/H166+/nv379+e4447L2972NiEPAACgjFod8n7wgx8c1PbTn/40s2fPzrRp095SEcuXL89DDz2Uurq69O3bN5/61KcycODAQ/ZdsWJFVq9enZ/85CdJkv79++ev//qvW/RvamrKggUL8s///M95+eWXM2TIkMyePTs9e/Z8S/UBAAAcLVp9uuah9OzZMzNnzjxole9wrFmzJnPnzs2MGTOyatWq9O3bN9OmTUt9ff0h+//nf/5nrr766ixdujRf+tKX8o53vCN//ud/3uJF7A8++GCWLVuW2bNnZ8WKFXnb296WadOm5Ze//OVbniMAAMDRoCQhL/nVYSwvvvhiq69bvHhxJk6cmHHjxuXcc8/NnDlz0rlz56xcufKQ/e+888786Z/+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v6/24PfXsXkPW5Fa59XXfplfHnitZGOV68980f67n3xWTUn+u5x8Vk1Z/x4uklL9WXmzPyft9eexrX9/tdefx7acx4knnpiKioo3vKasIW/Pnj05cODAQdsya2pqsn379kNes2vXrnTt2vWg/rt27UqS1NXVNbe9UZ/fZ9++fUnS4jm/o86ychdQQu0xl6Lco73u4/dXx+P317F5D1rnR8nfrfm/5a6C3+a/ScfTXv9N2uM+Rfn9dYh5PPbYYznppJPe8JKyb9fsiLp3755HH3309yZkAACA9nbiiSe+6edlDXldunRJVVVV6uvrW7TX19cftFr3a127dj1oRe63+3fr1q25rXv37i369O3b97DqqqyszNvf/vbDngcAAEBHUdZN/NXV1enfv39qa2ub2xobG1NbW5vBgwcf8ppBgwZlw4YNLdrWr1+fQYMGJUl69OiRbt26tRhz7969+eEPf/iGYwIAABRF2Z/Unjp1alasWJFVq1Zl27ZtmT17dvbv35+xY8cmSWbNmpU777yzuf/kyZOzbt26LFq0KNu2bcs999yTJ554IpMmTUqSVFRUZPLkybn//vvz7W9/Oz/+8Y8za9asdO/evfm0TQAAgKIq+zN5Y8aMye7du7NgwYLU1dWlX79+WbhwYfP2yx07dqTyt96RNmTIkMybNy933XVX5s+fn549e+a+++5rfkdeknz4wx/O/v37c+utt+bll1/ORRddlIULF3pHHgAAUHgVTb9+XwAAAABHvbJv1wQAAKB0hDwAAIACEfIAAAAKRMgDAAAoECEPAACgQIQ8AACAAhHyAAAACkTIAwAAKBAhDwAAoECEPAAAgAIR8gAAAApEyAMAACgQIQ8AAKBAhDwAAIACEfIAAAAKRMgDAAAoECEPAACgQIQ8AACAAulU7gIA4Gh38803Z9WqVUmSTp065dRTT02fPn1y9dVXZ+zYsamsrMzPf/7z3HPPPfne976XHTt25LTTTsvIkSPziU98IieffHKZZwBAkQh5AFACw4cPz9y5c9PY2Jhdu3Zl3bp1uf322/ONb3wj999/f1588cW8+OKLuemmm3Luuefmueeey+zZs/Piiy9mwYIF5S4fgAIR8gCgBKqrq9OtW7ckyemnn57+/fvnwgsvzJQpU7Jq1apMmDAh99xzT3P/s88+OzfccEP+5m/+Jq+//no6dfK/ZABKwzN5ANBGLr300vTt2zff/OY3D/n53r17c9JJJwl4AJSUkAcAbahXr1557rnnDmrfvXt3/u///b/53//7f5ehKgCKTMgDgDbU1NSUioqKFm179+7Nddddl969e+djH/tYmSoDoKiEPABoQ9u2bUuPHj2av967d2+mT5+eE088Mffdd1+OO+64MlYHQBEJeQDQRmpra7N169a85z3vSfKrgDdt2rQcd9xxuf/++3P88ceXuUIAisiT3gBQAg0NDamrq2vxCoUvfOELueKKK/L+978/e/fuzZ//+Z9n//79+fznP5+9e/dm7969SZLTTjstVVVVZZ4BAEUh5AFACaxbty7Dhg1Lp06dcsopp6Rv37755Cc/mQ984AOprKzMli1b8sMf/jBJctVVV7W49tvf/naLLZ0AcCQqmpqamspdBAAAAKXhmTwAAIACEfIAAAAKRMgDAAAoECEPAACgQIQ8AACAAhHyAAAACkTIO4Smpqbs3bs33i4BAAAcbYS8Q9i3b18uuuii7Nu3r9ylAAAAtIqQBwAAUCBCHgAAQIEIeQAAAAUi5AEAABSIkAcAAFAgQh4AAECBCHkAAAAFIuQBAAAUiJAHAABQIEIeAABAgZQ95C1fvjwjRozIgAEDMmHChDz++ONv2n/t2rUZNWpUBgwYkGuuuSaPPvpoi8/37duX2267Le9+97szcODAjBkzJv/0T//UllMAAADoMMoa8tasWZO5c+dmxowZWbVqVfr27Ztp06alvr7+kP03btyYmTNnZvz48Vm9enWuvPLKzJgxI1u3bm3u89nPfjbr1q3L5z//+axZsyZ/9md/lr/7u7/Lt7/97faaFgBAYTUeaOzQ4wFJRVNTU1O5bj5hwoQMGDAgt956a5KksbExl19+eT70oQ/lIx/5yEH9b7jhhuzfvz9f+MIXmtsmTpyYvn375rbbbkuSvO9978vo0aMzY8aM5j5jx47N8OHD81d/9VeHVdfevXtz0UUX5bHHHstJJ510JFMEACicr8x6IHXbnz/icbr1OiPj7/hoCSoCflunct24oaEhW7ZsyXXXXdfcVllZmaFDh2bTpk2HvGbz5s2ZMmVKi7Zhw4blkUceaf568ODB+c53vpPx48ene/fu+c///M889dRTueWWW9pkHgAAx5q67c9nx5NPl7sM4A2ULeTt2bMnBw4cSE1NTYv2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t771rfzwhz9M9+7d23oaAAAAHcJbOnjlv//7v7N27drs2LEjr732WovP7r333laNtXjx4kycODHjxo1LksyZMyff/e53s3LlynzkIx85qP/SpUszfPjwTJ8+PUlyww03ZP369Xn44Ydz2223NffbuXNn/u7v/i4PPfRQrrvuutZOEQAA4KjU6pW8r33ta/ngBz+Y7du351vf+lZef/31/OQnP8mGDRty8sknt2qshoaGbNmyJUOHDv1NQZWVGTp0aDZt2nTIazZv3pxLL720RduwYcOyefPm5q8bGxvzN3/zN5k2bVr+8A//sFU1AQAdQ+OBxqNiTICOptUreQ888EBuueWW/Omf/mkGDx6cv/3bv02PHj1y6623plu3bq0aa8+ePTlw4EBqampatNfU1GT79u2HvGbXrl3p2rXrQf137drV/PWDDz6YTp06ZfLkya2qB4rKux6Bo1FlVWW+MuuB1G1/viTjdet1Rsbf8dGSjAXQkbU65D377LPNh5xUV1fnlVdeSUVFRaZMmZI/+7M/y1/+5V+WvMjWeOKJJ7J06dJ89atfddon/D/e9Qgcreq2P58dTz5d7jIAjiqtDnmnnHJK9u3blyTp3r17fvKTn6RPnz55+eWXs3///laN1aVLl1RVVR10yEp9ff1Bq3W/1rVr1xardr/b/7/+679SX1+fK664ovnzAwcO5HOf+1yWLl2a73znO62qEYrCux4BAI4Nhx3ytm7dmvPOOy/vfOc7s379+vTp0yejRo3K7bffng0bNmT9+vUHPSv3+1RXV6d///6pra3NyJEjk/zqebra2tpMmjTpkNcMGjQoGzZsaPE6hPXr12fQoEFJkmuvvbbFM35JMm3atFx77bUZO3Zsq+oDADhaNB5oTGVVabfSt8WYQNs77JD3x3/8xxkwYEBGjhyZUaNGJUmuv/76HHfccdm4cWPe85735Prrr291AVOnTs1NN92UCy64IAMHDsySJUuyf//+5kA2a9asnH766Zk5c2aSZPLkyfnQhz6URYsW5fLLL8+aNWvyxBNPNJ+s2aVLl3Tp0qXFPY477rh07do1vXr1anV9AABHA88wAr922CHv4YcfzsqVK/OFL3whDzzwQN7znvdkwoQJh3zNQWuMGTMmu3fvzoIFC1JXV5d+/fpl4cKFzdsvd+zYkcrfOuBhyJAhmTdvXu66667M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yl0AHMsqKivz3B3r0vDMSyUZr/rsU3PmrOElGQsAgKOTkMdRqamxMRWVpVuILvV4rdHwzEt5ddvustwbAIDiEfI4KpVyBczqFwAARSLkcdSyAgYAAAdz8AoAAECBCHkAAAAFIuQBAAAUSIcIecuXL8+IESMyYMCATJgwIY8//vib9l+7dm1GjRqVAQMG5Jprrsmjjz76hn1vvfXW9OnTJ//wD/9Q4qoBAAA6nrKHvDVr1mTu3LmZMWNGVq1alb59+2batGmpr68/ZP+NGzdm5syZGT9+fFavXp0rr7wyM2bMyNatWw/q+61vfSs//OEP071797aeBgAAQIdQ9pC3ePHiTJw4MePGjcu5556bOXPmpHPnzlm5cuUh+y9dujTDhw/P9OnT07t379xwww05//zz8/DDD7fot3Pnzvzd3/1d5s2bl+OOO649pgIAAFB2ZQ15DQ0N2bJlS4YOHdrcVllZmaFDh2bTpk2HvGbz5s259NJLW7QNGzYsmzdvbv66sbExf/M3f5Np06blD//wD9ukdgAAgI6orCFvz549OXDgQGpqalq019TUZNeuXYe8ZteuXenateub9n/wwQfTqVOnTJ48ufRFAwAAdGCFexn6E088kaVLl+arX/1qKioqyl0OAABAuypryOvSpUuqqqoOOmSlvr7+oNW6X+vatetBq3y/3f+//uu/Ul9fnyuuuKL58wMHDuRzn/tcli5dmu985zslngUAAEDHUdaQV11dnf79+6e2tjYjR45M8qvn6WprazNp0qRDXjNo0KBs2LAhU6ZMaW5bv359Bg0alCS59tprWzzjlyTTpk3Ltddem7Fjx7bJPAAAADqKsm/XnDp1am666aZccMEFGThwYJYsWZL9+/c3B7JZs2bl9NNPz8yZM5MkkydPzoc+9KEsWrQol19+edasWZMnnngit912W5JfrQ526dKlxT2OO+64dO3aNb169WrfyQG8gabGxlRUlu6x6FKPBwAcvcoe8saMGZPdu3dnwYIFqaurS79+/bJw4cLm7Zc7duxI5W994zJkyJDMmzcvd911V+bPn5+ePXvmvvvuy3nnnVeuKQC0WkVlZZ67Y10annnpiMeqPvvUnDlreAmqAgCK4C2FvNdffz3f//7388wzz+R973tfTjrppOzcuTMnnXRSTjzxxFaPN2nSpDfcnrls2bKD2kaPHp3Ro0cf9viewwM6ooZnXsqr23aXuwwAoGBaHfKee+65TJ8+PTt27EhDQ0Muu+yynHTSSXnwwQfT0NDQvG0SAACA9tfqBzhuv/32XHDBBfn+97+f448/vrn9qquuyoYNG0paHAAAh6fxQONRMSbQ9lq9kvfYY4/ln/7pn1JdXd2i/cwzz8zOnTtLVhgAAIevsqoyX5n1QOq2P1+S8br1OiPj7/hoScYC2lerQ15jY2MaGw/+qc4LL7zwlp7HAwCgNOq2P58dTz5d7jKAMmv1ds3LLrssS5YsadG2b9++3HPPPbn88stLVhgAAACt1+qQd/PNN2fjxo0ZM2ZMGhoacuONN2bEiBHZuXNnbrzxxraoEQAAgMPU6u2ab3/72/Mv//Iv+drXvpYf//jHeeWVVzJ+/Phcc8016dy5c1vUCAAAwGF6S+/J69SpU6699tpS1wIAAMARanXIW7169Zt+/v73v/8tlgIAAMCRanXIu/3221t8/frrr2f//v057rjj8ra3vU3IAwAAKKNWh7wf/OAHB7X99Kc/zezZszNt2rSSFAUAAMBb0+rTNQ+lZ8+emTlz5kGrfAAAALSvkoS85FeHsbz44oulGg4AOMY1Hmg8KsYE6GhavV3z29/+douvm5qaUldXl+XLl2fIkCElKwwAOLZVVlXmK7MeSN3250syXrdeZ2T8HR8tyVgAHVmrQ96MGTNafF1RUZHTTjstf/RHf5SbbrqpZIUBANRtfz47nny63GUAHFVaHfL+53/+py3qAAAAoARK9kweAAAA5XdYK3lz58497AFvueWWt1wMAHB0aDzQmMqq0v2suNTjARzLDivk/ehHPzqswSoqKo6oGADg6FDKQ1EciAJQWocV8pYtW9bWdQAARxmHogB0TPZFAEeNpsbSv9+qLcYEACinVp+umST//d//nbVr12bHjh157bXXWnx27733lqQwgN9VUVmZ5+5Yl4ZnXirJeNVnn5ozZw0vyVgAAB1Fq0Pe1772tdx0000ZNmxYvve972XYsGF56qmnUl9fn6uuuqotagRo1vDMS3l12+5ylwEA0GG1ervmAw88kFtuuSUPPPBAjjvuuPzt3/5tvv71r2f06NF5xzve0RY1AgAAcJhaHfKeffbZXH755UmS6urqvPLKK6moqMiUKVOyYsWKkhcIAADA4Wt1yDvllFOyb9++JEn37t3zk5/8JEny8ssvZ//+/aWtDgAA4CjTeKC0B7u1drzDfiZv69atOe+88/LOd74z69evT58+fTJq1Kjcfvvt2bBhQ9avX59LL7201QUnyfLly/PQQw+lrq4uffv2zac+9akMHDjwDfuvXbs2d999d5577rn07NkzN954Y/PqYpLcc889+drXvpYXXnghxx13XPr375+/+qu/yoUXXviW6gMAADhc5X6X6GGHvD/+4z/OgAEDMnLkyIwaNSpJcv311+e4447Lxo0b8573vCfXX3996ypOsmbNmsydOzdz5szJhRdemCVLlmTatGn5+te/npqamoP6b9y4MTNnzsxf//Vf54orrsi//du/ZcaMGfnqV7+a8847L0nSs2fP3HrrrTnrrLPy6quv5h/+4R/y53/+5/nWt76V0047rdU1AgAAtEY53yV62Ns1H3744Zx77rn5whe+kDFjxuSmm27Kxo0b85GPfCQPPPBAbr755px66qmtLmDx4sWZOHFixo0bl3PPPTdz5sxJ586ds3LlykP2X7p0aYYPH57p06end+/eueGGG3L++efn4Ycfbu5zzTXXZOjQoTnrrLPyh3/4h7nllluyd+/e/PjHP251fe2l1O/q8u4vAAA4Nh32St7FF1+ciy++OJ/61Keydu3arFq1KpMmTco555yTcePG5QMf+EC6devWqps3NDRky5Ytue6665rbKisrM3To0GzatOmQ12zevDlTpkxp0TZs2LA88sgjb3iPL3/5yzn55JPTp0+fVtXXnkr5/i/v/iqNpsbGVFS2+rHVdhsPAAAOpdXvyTvhhBMybty4jBs3Lk8//XS++tWv5h//8R+zYMGCDBs2LA888MBhj7Vnz54cOHDgoG2ZNTU12b59+yGv2bVrV7p27XpQ/127drVo+4//+I/89V//dfbv359u3bpl0aJFHX6rpvd/dSyCNwAAR6NWh7zfds455+S6667LGWeckfnz5+fRRx8tVV1H7JJLLsnq1auzZ8+erFixIjfccEP++Z//+ZDP+cEbEbwBADjavOWQ94Mf/CArV67MN77xjVRWVmb06NEZP358q8bo0qVLqqqqUl9f36K9vr7+oNW6X+vatetBq3aH6n/CCSfknHPOyTnnnJNBgwblPe95T77yla+02BoKAABQNK16QGjnzp154IEH8t73vjcf+tCH8vTTT+eTn/xk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23r00UfVs2dPvfbaaxo8eLDS09P12muvudz+8uXLtX37dlWvXr3UvBo1amjHjh1atmyZSzX27t2rxx9/3Pm4c+fOat++fYl/u3fvdqmGNzhw4ICmT5+uiIgIl9pZv369oqKiyvy8/fbbb4qKitJHH33kUo3i4mJlZGQ4H69cuVJLly51/ktMTCwzZFbUn/70Jx09etTldi7XwYMH9fLLL+vOO+/UyJEjXWrLiu+vX375Rf/85z+djx966CE98MADzn9RUVE6fPiwSzUkz27rJfeFCqsChWTPULF161b97W9/U6dOnfSvf/1LrVq1crnNJUuWqH///uVuUwYMGKDFixe7VGPDhg2KiYlxPh49erRGjBjh/Dd8+HCtXbvWpRqe4PU/hu7ttm/frqSkJK1bt05169ZVt27dNGnSJJfavNQ/6Hbt2l12jZSUFG3cuFFdunSRdHbH7A9/+IMqV64s6ezORb169TRo0KDLriFZ/yXjcDi0du1aJSUl6bPPPlNRUZHGjRunfv36lfl+VsTy5cuVkZGhRx55pNS8czuveXl5Gj58+GXX2Lt3r15++WXNnz9f0tmd19OnTzvn+/j4aNWqVQoLC7vsGla70teJZI/18tVXXykpKUlr1qxRw4YN1adPH7388suKiIhQp06dXF4X56xbt07jx48vd/6DDz6oF154waV1smzZMt12220lpk2fPl316tWTYRhKTk7WsmXL9OKLL152DUl68803VbVq1Qsu8+ijj7pU4/cKCgqUlpam5ORkff755woNDXX5e3jlypWKjY3VNddcU2pe1apV9fjjjysxMVFdu3a97Bpr1qzRqlWrlJiYKOns+rj22mvl5+cnSTp27JgCAgIUHR192TUkz+y4nj59WmvXrtWbb76pzz77TO3atdOIESPUrVs3l9q14vtrxYoVOn78uPPxN998o6ioKF133XWSpE8++USvv/66xo0bd9k1JM8dONy6dauSk5O1fv16Va9e3eV1YsX+l3Q2VLzyyitKTU2VdDZUnH8m1MfHR//85z91zz33uFTHCocPH9bq1au1evVqnThxQidOnNCMGTPUs2dP+fj4uNx+RkaG/va3v5U7v2PHjlq0aJFLNf7zn/+UCHnS2YNjN998syRp/vz5Sk5Odnl9WL1NIeRdhpycHKWkpCgpKUl5eXnq2bOnHA6H5syZo2bNmrncvhV/0O+8845iY2NLTJsxY4bzD/qtt97SihUrXN65kOSWD/nFWLEDa6edV8n8Lxu7rBPJHqGif//+iomJ0X/+8x81adLkstq4FFlZWWrUqFG58xs1aqSsrCyXauzatavUBrl169bO768qVapo9OjRLtWQpFWrVsnXt/wBLz4+Pm7bIH/++ed68803tXbtWt14443KzMzU0qVLXd6ZlM5eQvDMM8+UO799+/aaOXOmSzVWr16tgQMHlpi2fPly5zpZuXKl3n77bZdDnmTNNkWSdu/eXeI77N5779WuXbv0zDPPuGVbb8X318cff6yJEyeWmPbYY48510urVq30/PPPuxzyJOvWi5mhwor9L8keoeL9999XUlKSduzYoc6dO2vcuHG688471aZNG916661u+3s4cuSI/P3Ljyv+/v4un93/9ttvFR8fX+78O++80y3r3cptikTIq7Bhw4Zp+/btuuuuuzRhwgR17txZfn5+WrVqldtqWPEHnZWVpVtvvdX5uHLlyiU+kGFhYZo6dapLNc7p0aPHRT/s27Ztc6mGFTuwdtp5lcz/srHLOpHsESruuOMOJSUlKTc3V3369FHnzp1N2Snz8/PTL7/8ohtvvLHM+b/88ssFX+Ol+Omnn3T99dc7H//1r39VrVq1nI/r1KmjI0eOuFRDkpKTkxUYGOhyOxeyaNEiJScnO4eCJSYmKjg4WC1atHCebXHViRMnVFhYWO78wsJCnThxwqUa+/fvV2hoaLnzb7/99hLDBl0xc+bMMs9Knu+pp55yqca9996rU6dOqXfv3lq1apX+8Ic/SDp7MNRdrPj+OnTokG666Sbn444dO5Z472655Rb9+OOPLtU4x+xtvRWhwor9L8keoeL//u//9Pjjj+uf//yn20aClKVevXrat29fuZ+VjIwM1alTx6UaOTk5CggIcD5eunSp6tev73xctWpVnTx50qUakjXblPMR8irok08+0SOPPKKHHnpIjRs3NqWGFX/QJ06ckMPhcD7eunVrifnFxcUl5rti1KhRqlGjhlvaKo8VO7B22nmVzP+yscs6kewRKhYuXKjs7GwlJydr8uTJ+u2339SzZ09J7j0CHxISog8++ECtW7cuc/769esVEhLiUo3KlSvr0KFDzo3w70ccZGdnXzQEXIxVZyVeeuklPf7443ryySedQxvdrUGDBvrqq6/UtGnTMud/+eWX5X6GLtXvd3w//PDDEiHV39/fbddsffvtt6pUqVK5892x7g4cOKDIyEh16NDBLWftymLF91dhYaGOHj3q/KzMnj27xPwTJ0645TtSMn9bb0WosGL/S7JHqOjXr58SExP16aefqk+fPoqMjFTNmjXdXiciIkKvvPKKOnfu7Lyk6JzTp0/r1VdfdV56dLlq1qyprKws5wGRli1blph/8OBBtx10sxIhr4JWrFihpKQk9e3bV02bNnX+YbuTFX/Q9evX1759+8o9w5KRkVHiC8cVvXr1Mv3IhRU7sHbZeZWs2YG1yzqR7BMqbrjhBo0cOVIjR47Uf//7X61evVp+fn76y1/+oh49eqhHjx5q0aKFSzViYmI0ZswY1a9fXw899JAzuBQVFWnFihVasmSJXnrpJZdqnFvvvx9Ce4471rtV1xj99a9/1erVq/XWW2+pV69e6tOnT4lRFu7QvXt3zZw5Ux07dlTt2rVLzMvJydErr7yi++67z6UatWvX1oEDB9SwYUNJKnFQRJIyMzPdsnMsnb3Jh9nblA8//FCrV6/W5MmTdfr0afXu3Vv33nvvFXdA5JZbbtGuXbvUvHnzMufv2LHDbQeszd7WWxEqrNj/kuwRKqZOnaoJEybovffeU3Jysv7xj3+oU6dOMgzDLTdZOmf48OFat26devTooYEDB+qWW26RdHb0wIoVK1RUVKRhw4a5VKN9+/ZaunSpwsPDy5y/bNkytwydt5yBy3Lq1CnjzTffNB588EGjRYsWRnBwsPH6668bJ0+edLntnJwco1OnTkZERIQxb948Y/369cb69euN1157zYiIiDA6depk5OTkuFTj2WefNSIjI43Tp0+XmldQUGBERkYazz77rEs1DMMwgoODjSNHjrjcTkVt3rzZGDNmjNGyZUuje/fuxowZM4yvvvrKpTbXrl1rNG/e3Fi2bJlRWFjonF5YWGgsXbrUaNGihfHee++5VOPRRx81nn/++XLnJyQkGI8++qhLNQzDMIKCgixfL1fqOjEMa9aLJ9aJYRjGr7/+aixdutTo06ePERwc7JY2X375ZSMoKMho27at0adPH6NPnz5G27ZtjeDgYOPFF190uf1z63358uVGUVGRc7o71/urr75q5Ofnu9rVS/bpp58a8fHxRqtWrYx7773XCAkJMXbs2OGWtk+ePGn0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", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_damage_signatures(denovo_sigs.damage_signatures)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Misrepair signatures\n", "\n", "nb. there are only six substitution classes - this means that you probably don't ever need more than six misrepair signautres in your model" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_misrepair_signatures(denovo_sigs.misrepair_signatures)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Options for initializing signatures\n", "\n", "* **Uniformly at random**\n", "* **From k-means of the data**: preferred for speed + stability\n", "* **From a signature set**: this will encourage signatures to be similar to the set, but not fix them in the model, meaning the definitions are allowed to drift over the course of training. In contrast to the example in quickstart, where signature definitions are fixed." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## How many signatures to fit?\n", "\n", "You can use [BIC](https://en.wikipedia.org/wiki/Bayesian_information_criterion) for model selection. More signautres will usually give a higher likelihood, and BIC penalizes adding these extra parameters. \n", "\n", "\n", "We use the product of multinomial likelihoods to get the total probability of mutation counts in the dataset; when there are many samples this will be a very small number (large negative log value)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-518178.83\n", "for 100 samples, this is a log likelihood of approx. -5181.79 per sample\n" ] } ], "source": [ "trace = ht_lda.approx.sample(3) # Sample from posterior\n", "log_likelihood = np.array(list(da.utils.mult_ll(pcawg.counts, b) for b in trace.B)).sum(1).mean()\n", "print(round(log_likelihood, 2))\n", "print(\"for 100 samples, this is a log likelihood of approx.\", round(log_likelihood/100, 2), \"per sample\")" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1048432.43\n" ] } ], "source": [ "BIC = ht_lda.model.ndim * np.log(pcawg.n_samples) - 2 * log_likelihood # BIC calculation\n", "print(round(BIC, 2))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.8.20" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }