{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Building plots from `sourmash compare` output" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Running this notebook.\n", "\n", "You can run this notebook interactively via mybinder; click on this button:\n", "[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/dib-lab/sourmash/latest?labpath=doc%2Fplotting-compare.ipynb)\n", "\n", "A rendered version of this notebook is available at [sourmash.readthedocs.io](https://sourmash.readthedocs.io) under \"Tutorials and notebooks\".\n", "\n", "You can also get this notebook from the [doc/ subdirectory of the sourmash github repository](https://github.com/dib-lab/sourmash/tree/latest/doc). See [binder/environment.yaml](https://github.com/dib-lab/sourmash/blob/latest/binder/environment.yml) for installation dependencies.\n", "\n", "### What is this?\n", "\n", "This is a Jupyter Notebook using Python 3. If you are running this via [binder](https://mybinder.org), you can use Shift-ENTER to run cells, and double click on code cells to edit them.\n", "\n", "Contact: C. Titus Brown, ctbrown@ucdavis.edu. Please [file issues on GitHub](https://github.com/dib-lab/sourmash/issues/) if you have any questions or comments!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Running `sourmash compare` and generating figures in Python\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, we need to generate a similarity matrix with compare. (If you want to generate this programmatically, it's just a `numpy` matrix.)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[K\n", "== This is sourmash version 4.8.5.dev0. ==\n", "\u001b[K== Please cite Brown and Irber (2016), doi:10.21105/joss.00027. ==\n", "\n", "\u001b[Kloaded 7 signatures total. \n", "\u001b[K\n", "0-SRR2060939_1.fa...\t[1. 0.356 0.078 0.086 0. 0. 0. ]\n", "1-SRR2060939_2.fa...\t[0.356 1. 0.072 0.078 0. 0. 0. ]\n", "2-SRR2241509_1.fa...\t[0.078 0.072 1. 0.074 0. 0. 0. ]\n", "3-SRR2255622_1.fa...\t[0.086 0.078 0.074 1. 0. 0. 0. ]\n", "4-SRR453566_1.fas...\t[0. 0. 0. 0. 1. 0.382 0.364]\n", "5-SRR453569_1.fas...\t[0. 0. 0. 0. 0.382 1. 0.386]\n", "6-SRR453570_1.fas...\t[0. 0. 0. 0. 0.364 0.386 1. ]\n", "min similarity in matrix: 0.000\n", "\u001b[Ksaving labels to: compare-demo.labels.txt\n", "\u001b[Ksaving comparison matrix to: compare-demo\n" ] } ], "source": [ "!sourmash compare ../tests/test-data/demo/*.sig -o compare-demo" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline\n", "# import the `fig` module from sourmash:\n", "from sourmash import fig" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `sourmash.fig` module contains code to load the similarity matrix and associated labels:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "matrix, labels = fig.load_matrix_and_labels('compare-demo')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here, `matrix` is a numpy matrix and `labels` is a list of labels (by default, filenames)." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "matrix:\n", " [[1. 0.356 0.078 0.086 0. 0. 0. ]\n", " [0.356 1. 0.072 0.078 0. 0. 0. ]\n", " [0.078 0.072 1. 0.074 0. 0. 0. ]\n", " [0.086 0.078 0.074 1. 0. 0. 0. ]\n", " [0. 0. 0. 0. 1. 0.382 0.364]\n", " [0. 0. 0. 0. 0.382 1. 0.386]\n", " [0. 0. 0. 0. 0.364 0.386 1. ]]\n", "labels: ['SRR2060939_1.fastq.gz', 'SRR2060939_2.fastq.gz', 'SRR2241509_1.fastq.gz', 'SRR2255622_1.fastq.gz', 'SRR453566_1.fastq.gz', 'SRR453569_1.fastq.gz', 'SRR453570_1.fastq.gz']\n" ] } ], "source": [ "print('matrix:\\n', matrix)\n", "print('labels:', labels)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `plot_composite_matrix` function returns a generated plot, along with the labels and matrix as re-ordered by the clustering:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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1apVk3QnuR4yZIj5fsTExGjkyJE6c+aMpkyZYsZ06NBBTZs21fLly1WkSBGdOXNG27dvV0pKivz8/LR9+3Y988wzGjBggAYOHChJ5vfOnj171LNnz7/keQEAAP5qTp08WywWPbfkOx08eSmvuwI4TPqtG7mKDw8P188//6xFixZp0aJFcnNzU4MGDdSpUyeNGDFCXl5eVvGpqXeS88TERL3//vuKjY3VkiVLlC9fvsx9SU9XamqqOed56NCh8vPz02uvvZZtn1JTUzVgwAB5eXnp1VdfzTb2X//6lyIiItS1a1fVrFnTPO/u7q5BgwapdevW8vPz06lTp7Ro0SJ16dJFH374oZm4SVJQUJBmzpypOnXqyMPDQ99//70iIiK0c+dOHTx4UGXKlJEknTlzRpI0duxYNW/eXOvWrdP169c1ffp0tWjRQvv377fqw72GDx+u69eva+LEidk+05kzZzRhwgTVr19fHTt2zDbWUdzd3dW4cWN5e3srJSUl01D3FStWmH9OT09XSEiILBaL3nnnHU2ePFmGYejgwYO6efOm5syZo1q1apnxd885r1evniTJ398/0z0mTpyoEiVK6Ny5cw/iEQEAwEPicR227dTJc/LtNBJnPPZ8fHy0b98+xcbGas+ePYqNjdWXX36p0NBQffDBBzpw4IA5D/jYsWOZqtKhoaEaMmSIzbbHjx+v8ePHm18XKlRIe/fuVWBgYJb9sVgsGjBggPbt26d169apbNmyWcbGxcWpY8eOKlu2rDkvOoOfn1+mRcy6d++uRo0aacKECerfv785VL1v375Wcc2bN1fz5s0VHBysiIgIvfPOO5LuJI3SncRv3bp15gcGwcHBqlixoiIiIvTJJ5/Y7OvkyZP16aefatGiRWYCacvFixfVvn17WSwWrVmz5r6HYTtadHS03nrrLR04cEBXr161ei0hIUElS5ZU7dq1lT9/fg0ePFjDhg1T06ZNVaFCBbvav379ug4cOKCBAwfaXHwOAADA2Tl18ny32EmtVCB/5soZ4GyuXr0qvwW5v65+/frmnOTbt29r/Pjxmj9/viIiIsyFw4KCgrR69WpZLBadPHlSYWFhmjVrlmrWrGlzuO3o0aPVp08f3bp1SzExMZo0aZK6dOmiw4cP25zna7FYNHDgQH3yySeKiopSly5dsuzvyZMn1bx5c7m6umrPnj12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29v1u2fGv/Nl3vqHXDwKOqwP6Tev68wbHR/6338fvawTAAAAAPDgPKb7PJM8A8BfIC0tTdkN9DEMw2pBLwAAADxcWG0bAP4CQUFBcnNzy/Jo2bJlXncRAADAPsYDOJwAlWcA+Ats3rxZt27dyvL1QoUK/YW9AQAAuH8uhuTiyDIsyTMAIMO9q3kDAADAuZA8AwAAAADs9pjuVMWcZwAAAAAAckLlGQAAAABgNyrPAAAAAADAJpJnAAAAAIDdDMNw+HE/Fi9erPLly8vDw0P16tXTvn37so2/deuWJk6cqHLlysnd3V1BQUFavny53fdj2DYAAAAAwKmsWbNGY8aM0eLFi9WkSRN98MEHateunX766ScFBATYvOb555/X+fPnFRkZqYoVKyohIUGpqal235PkGQAAAABgt4dhzvO8efM0YMAADRw4UJK0YMEC7dixQ++//75mzZqVKX779u366quvdOLECRUrVkySFBgYmKt7MmwbAAAAAJDnrl69anXcunXLZlxKSooOHjyoNm3aWJ1v06aNvv32W5vXbNq0SfXr11dERITKlCmjypUra+zYsUpOTra7f1SeAQAAAAB2e1CV57Jly1qdnzp1qqZNm5YpPjExUWlpaSpZsqTV+ZIlS+rcuXM273HixAl9/fXX8vDw0IYNG5SYmKhhw4bp4sWLds97JnkGAAAAAOS506dPy9vb2/za3d092/h7FxqzWCxZLj6Wnp4uwzD06aefqnDhwpLuDP1+7rnn9N5778nT0zPH/pE8AwAAAADs5yIZjpwA/J+2vL29rZLnrPj6+ipfvnyZqswJCQmZqtEZ/Pz8VKZMGTNxlqSqVavKYrHo3//+typVqmRvNwEAAAAAePjlz59f9erV065du6zO79q1S08++aTNa5o0aaKzZ8/qjz/+MM/98ssvcnFxkb+/v133JXkGAAAAANgtY86zI4/ceu2117Rs2TItX75cx48f16uvvqpTp07plVdekSSFhobqxRdfNON79eolHx8fvfTSS/rpp5/0z3/+U+PGjdPLL79s15BtiWHbAAAAAIBccDHuHI5iuY+2evTooaSkJL355puKj49X9erVtXXrVpUrV06SFB8fr1OnTpnxXl5e2rVrl0aOHKn69evLx8dHzz//vMLCwuy+J8kzAAAAAMDpDBs2TMOGDbP52sqVKzOdq1KlSqah3rlB8gwAAAAAsNuD2qrqYcecZwAAAAAAckDlGQAAAABgNyrPAAAAAADAJirPAAAAAAC7GYYhw4HlYke29SA5ffJ8IyUtr7vwQNy4nSZLupsMl9t53RUAAAAAeOw5ffJcP2x3XnfhAZqhQlUn5HUnAAAAAMBkuNw5HNmeM3DK5NnTLZ/qlyuq2JOX8rorAAAAD8zUjivyugsPren/eCmvu/BwsljyugcPrXSl5nUXHkq8L/ZzyuTZMAytfSVYybcfzSHbknTjdrJC/l+zvO4GAAAAAFh5XFfbdsrkWbqTQBfI77Tdz5mRj/nOAAAAAPCQeISzTwAAAACAoz2ulWcnmZoNAAAAAEDeofIMAAAAALCbIQdXnh3X1ANF8gwAAAAAsJuLcedwFIuTZM8M2wYAAAAAIAdUngEAAAAAdmPBMAAAAAAAYBOVZwAAAACA3ag8AwAAAAAAm6g8AwAAAADsZrgYMhy43LYj23qQqDwDAAAAAJADKs8AAAAAALsx5xkAAAAAANhE5RkAAAAAYDcqzwAAAAAAwCYqzwAAAAAA+zm48iwqzwAAAAAAPBqoPAMAAAAA7OZi3Dkc2Z4zIHkGAAAAANiNBcMAAAAAAIBNVJ4BAAAAAHYzXO4cjmzPGThJNwEAAAAAyDtUngEAAAAAdmPOMwAAAAAAsInKMwAAAADAboZhyHBgudiRbT1IVJ4BAAAAAMgByTPwCNi/f7+6du2qgIAAubu7q2TJkgoODtbrr79uxoSEhJifEhqGIQ8PD1WrVk1hYWFKSUmxai8uLs4q1sXFRUWLFlXLli21c+fOTPdfv369XnjhBVWsWFGenp4KDAxU79699euvv9rs7+7duxUcHKwCBQrI19dX/fv3V0JCgs3Yo0ePqnv37ipevLjc3d0VGBioYcOGZYo7ceKEunXrpiJFisjLy0utW7fWDz/8kCnu2rVrGjVqlMqUKSN3d3dVrlxZERERSktLs4o7dOiQOnTooICAAHl6eqpYsWIKDg7WJ598kqlNi8WihQsXqkqVKnJ3d5efn5+GDh2qS5cu2Xym7Hz99dcaOHCg6tWrJ3d3dxmGobi4OLuvv3jxonr27KkSJUrIMAw9++yzue5Ddm7cuKFp06bpyy+/dGi7AADAeWTMeXbk4QwYtg04uS1btqhz584KCQlRRESE/Pz8FB8fr9jYWK1evVpvv/22GVuhQgV9+umnkqQLFy5o2bJlmjx5sk6dOqWlS5dmanvkyJHq1auX0tLS9PPPP2v69Olq3769oqOj9fTTT5txs2fPVqlSpTRx4kRVqFBBp0+f1ltvvaW6desqJiZGTzzxhBn71VdfqV27durQoYM2btyohIQEjR8/Xi1btlRsbKzc3d3N2L1796pDhw5q2rSplixZIl9fX506dUo//vijVT8vXLigpk2bqmjRolq+fLk8PDw0a9YshYSE6MCBA/qf//kfSVJqaqpat26tX375RTNmzFDlypW1fft2TZgwQf/+97+1cOFCs83Lly+rbNmyeuGFF1SmTBldv35dn376qfr27au4uDhNmjTJjB07dqwWLFigsWPHqlWrVvrpp580ZcoUHThwQN99953c3Nzs/v+5Z88e7d69W3Xq1JG3t3euk9QZM2Zow4YNWr58uYKCglSsWLFcXZ+TGzduaPr06ZLufCADAADwuCB5BpxcRESEypcvrx07dsjV9c8f6Z49eyoiIsIq1tPTU40bNza/bteunapVq6aoqCgtXLhQHh4eVvEBAQFmfJMmTVSpUiU1a9ZMkZGRVsnz5s2bVaJECatrW7RoocDAQM2fP1/Lli0zz48bN06VK1fW559/bva3fPnyatKkiZYvX66hQ4dKupOk9e7dWy1atNDmzZut5sL07dvX6l5z5szRhQsX9O2336pcuXKSpKeeekpBQUGaMmWK1qxZI0n6/PPPtX//fq1bt07dunWTJLVu3Vp//PGH3nvvPQ0fPtxMtENCQjIlhx07dtTvv/+upUuXmsnzmTNn9M4772j48OGaPXu22WaJEiXUq1cvrVy5UoMGDZK9Jk+erKlTp0qS5s6dm+vk+ejRowoKClLv3r1zdR0AAIC9WG0bgFNKSkqSr6+vVeKcwcUl+x9xV1dX1a5dWykpKbp8+XKO96pfv74k6fz581bn702cJal06dLy9/fX6dOnzXNnzpzRgQMH1LdvX6v+Pvnkk6pcubI2bNhgnlu7dq3i4+M1bty4HBeR2LBhg1q0aGEmzpLk7e2tbt26afPmzUpNTZUkffPNNzIMQ+3atbO6vmPHjkpPT7e6f1bufa9jYmKUlpam9u3bZ2pTktatW5djm3fL6f9ZVjKG2u/evVvHjx83h9xnJN/Tp09Xo0aNVKxYMXl7e6tu3bqKjIyUxWKxaic6OlohISHy8fGRp6enAgIC9Le//U03btxQXFycihcvbraXcY/+/fub1+/YseO++g8AAPCwo/LsBJJTk/O6C/gL3bh9I1fxwcHBWrZsmUaNGqXevXurbt26uRom/Pvvv6tIkSJmUpRTrCRVrlw5x9gTJ07o5MmTVnNujx49KkmqWbNmpviaNWvqm2++Mb/+5z//KUlKS0vTU089pe+//14FCxbUM888o7ffflulS5eWJCUnJ+u3335T165dbbaZnJysEydOqHLlykpJSZGLi0um9ydjqPi//vWvTG2kp6crPT1dly5d0tq1a7Vjxw69++675usZ88XvHm4uSW5ubjIMw2abD4Kfn5++++47DRs2TFeuXDGH51erVk3SneR6yJAhCggIkHQn6R85cqTOnDmjKVOmmDEZw+SXL1+uIkWK6MyZM9q+fbtSUlLk5+en7du365lnntGAAQM0cOBASTK/d/bs2aOePXv+Jc8LAADyzuNaeSZ5dgIh/y8kr7uAv1BaclrOQXcJDw/Xzz//rEWLFmnRokVyc3NTgwYN1KlTJ40YMUJeXl5W8RlV2MTERL3//vuKjY3VkiVLlC9fvkxtp6enKzU11ZzzPHToUPn5+em1117Ltk+pqakaMGCAvLy89Oqrr5rnk5KSJMnmPNxixYqZr0t3qtSS9Le//U2DBw/WjBkz9Msvv2jixIlq1qyZDh8+rAIFCujSpUuyWCxZtnn3fatVq6a0tDTFxMToqaeeMuO+/vprq7i7DRs2TB988IEkKX/+/Fq4cKGGDBlivp6RnH7zzTdq3ry5ef7bb7+VxWKx2eaD4O7ursaNG8vb21spKSlWw/MlacWKFeaf09PTFRISIovFonfeeUeTJ0+WYRg6ePCgbt68qTlz5qhWrVpmfK9evcw/16tXT5Lk7++f6R4TJ05UiRIldO7cuQfxiAAAAHmKYdsPKU9XT9UpUSevuwEn4OPjo3379unAgQMKDw9Xly5d9Msvvyg0NFQ1atRQYmKiGXvs2DG5ubnJzc1Nfn5+evPNNxUaGmqVDN5t/PjxcnNzk4eHh2rXrq2jR49q8+bNCgwMzLI/FotFAwYM0L59+/TRRx+pbNmymWKyGoZ99/n09HRJUo8ePTR79mw1b95cQ4YMUWRkpP7v//5Pq1atsqvNu1/r3bu3ihUrpsGDB2v//v26fPmyPvvsM3OhMFtDpt944w0dOHBAW7Zs0csvv6wRI0Zo7ty55uu1atXS008/rTlz5mjt2rW6fPmyvv32W73yyivKly/ffQ/DdrTo6Gi1atVKhQsXVr58+eTm5qYpU6YoKSnJXOm8du3ayp8/vwYPHqyoqCidOHHC7vavX7+uAwcOqHPnzg/qEQAAwEPCxXD84QyoPD+kDMNQ1DNRDNl+DF29elV+Q/1yfV39+vXNOcm3b9/W+PHjNX/+fEVERJgLhwUFBWn16tWyWCw6efKkwsLCNGvWLNWsWdPmcNvRo0erT58+unXrlmJiYjRp0iR16dJFhw8flo+PT6Z4i8WigQMH6pNPPlFUVJS6dOli9XrGNbaqsRcvXrSqHmfEtm3b1iqubdu2MgzD3IaqaNGiMgwjyzalPyvQvr6+2r59u/r162dWTX18fDRv3jwNGDBAZcqUydRGQECAOdQ5Y15zaGio+vXrZw5XXrt2rfr376/nn39e0p0K9auvvqrdu3fbNZf8Qfv+++/Vpk0bhYSE6MMPP5S/v7/y58+vL774QjNnzlRy8p2/Z4KCgrR7925FRERo+PDhun79uipUqKBRo0Zp9OjR2d7j0qVLSk9Ptzn/HQAAPFpc5NiE9+EoNeSM5PkhZhiGCrgVyOtu4C+W6pb6X7fh5uamqVOnav78+eY8Y0ny8PAwE+wGDRqoefPmeuKJJzRmzBh17Ngx0xBvf39/M75JkyYqVaqU+vTpo6lTp1rN+5X+TJxXrFihyMhI9enTJ1O/qlevLkk6cuRIpgW2jhw5Yr4u3ZmvvHr16iyfMaOi6+npqYoVK+rIkSOZYo4cOSJPT09VqFDBPNegQQP99NNPiouL0/Xr11WpUiUdPHhQkqxWEM9Kw4YNtWTJEp04ccJMnkuUKKGtW7cqISFB586dU7ly5eTp6anFixfrueeey7HNB2316tVyc3PTP/7xD6sV1b/44otMsU2bNlXTpk2Vlpam2NhYLVq0SGPGjFHJkiWznc+c8SFGVvt1AwAAODtnSfIBZCE+Pt7m+ePHj0uSubCWLT4+PgoPD9f58+e1aNGiHO/Vu3dvs3p58uRJ87zFYtGgQYO0YsUKffDBB3rppZdsXl+mTBk1bNhQn3zyidLS/pzbHRMTo//93/81t4+SpK5du8owDG3bts2qjW3btslisVjNt+3atauio6OtVva+du2a1q9fr86dO9tciTwwMFBPPPGE3NzczAXIunfvnuN7sHfvXrm4uFgl5BlKlCihmjVrqnDhwlqyZImuX7+uESNG5Njmg2YYhlxdXa3mtScnJ+vjjz/O8pp8+fKpUaNGeu+99yTJrPRnLIyWUa3OULBgQTVs2FCbNm1ydPcBAMBDxsWwOPxwBlSeASfXtm1b+fv7q1OnTqpSpYrS09N16NAhvf322/Ly8spxuO2LL76oefPmae7cuRo+fLi8vb2zjZ89e7YaNWqkGTNmmPs3jxo1SpGRkXr55ZdVo0YNxcTEmPHu7u6qU6eO1fWtW7dW9+7dNWzYMCUkJGjChAmqXr26VdJdpUoVDR8+XIsXL1ahQoXUrl07/fLLL5o0aZLq1KljDpGWpLFjx+rjjz9Whw4d9Oabb8rd3V3h4eG6efOmpk2bZtX/iRMnqkaNGvLz89OpU6e0fPly7d+/X1u2bJGnp6cZN3jwYHl7e6thw4YqWbKkEhMTtXbtWq1Zs0bjxo2zWp38ww8/lHRn2PPly5e1bds2RUZG6q233lLdunWzfT/vdeHCBX311VeSZFbTt23bpuLFi6t48eJq1qyZGevq6qpmzZppz5492bbZoUMHzZs3T7169dLgwYOVlJSkuXPnZlohfMmSJYqOjlaHDh0UEBCgmzdvavny5ZKkVq1aSZIKFSqkcuXKaePGjWrZsqWKFSsmX19fBQYGasaMGZmG2QMAADwqSJ4BJzdp0iRt3LhR8+fPV3x8vG7duiU/Pz+1atVKoaGhqlq1arbXu7i4KDw8XB06dNCCBQvMbYuy0rBhQ3Xv3l1RUVEKDQ1VUFCQNm/eLElavny5mWxlKFeunOLi4syvQ0JCtHXrVk2ZMkWdOnVSgQIF1LFjR82ZMydTMrdgwQL5+/tr2bJlWrRokXx9fdWzZ0+99dZbyp8/vxlXvHhx7du3T2PHjlW/fv2Umpqq4OBgffnll6pSpYpVm5cuXdL48eN17tw5eXt7q1mzZtq/f79q1KhhFRccHKwVK1YoKipKly9flpeXl2rVqqWPP/4405B0i8WiBQsW6OTJk3JxcVGdOnW0YcOGTHO+7XHs2LFMFfBhw4ZJkpo1a2bu2yzd2cbr7gp+Vlq0aKHly5dr9uzZ6tSpk8qUKaNBgwapRIkSGjBggBlXu3Zt7dy5U1OnTtW5c+fk5eWl6tWra9OmTWrTpo0ZFxkZqXHjxqlz5866deuW+vXrp5UrV6p169b67LPP2K4KAIBHnKMX+XKWBcMMi8WSY4386tWrKly4sK5cuZJlVepGSqqqTdkhSfrpzbYqkJ+8HLgf9vy8AQ+rP79/D8rb2yvnCwBkyzNgal534aE1/R+2pwg97oZX9cg56DGVrv9+XZlH0dWr1+Xv29mu3z0z/p1vtX67XAsWdFgfUq9f1+5uzzz0v/+S4QIAAAAA7GbIsYtnOUnhmeQZAP4KaWlpym6gj2EYVgt6AQAA4OHCatsA8BcICgqSm5tblkfLli3zuosAAAB2YbVtAMADs3nzZt26dSvL1wsVKvQX9gYAAAC5RfIMAH+Be1fzBgAAcFaP62rbDNsGAAAAACAHVJ4BAAAAAHZzkWOrsM5S0XWWfgIAAAAAkGeoPAMAAAAA7Pa4znkmeQYAAAAA2M0wLDIcuL2UI9t6kBi2DQAAAABADqg8AwAAAADs9rgO26byDAAAAABADqg8AwAAAADsxlZVAAAAAADAJirPAAAAAAC7uRgWuThwhWxHtvUgUXkGAAAAACAHVJ4BAAAAAHZjtW0AAAAAAGATlWcAAAAAgN0MObYK6ySFZyrPAAAAAADkhMozAAAAAMBuzHkGAAAAAAA2UXkGAAAAANjtcd3nmeQZAAAAAGA3hm0DAAAAAACbqDwDABxuzr9OycOrYF5346FyI9VJPlbPA/O6ReZ1Fx5ayaem53UXADziLG5/5PoaFzm2CussFV1n6ScAAAAAAHmGyjMAAAAAwG6P64JhVJ4BAAAAAMgBlWcAAAAAgN1YbRsAAAAAANhE5RkAAAAAYDcqzwAAAAAAwCYqzwAAAAAAu7HPMwAAAAAAsInkGQAAAABgN+M/+zw76jDuc5/nxYsXq3z58vLw8FC9evW0b98+u6775ptv5Orqqtq1a+fqfiTPAAAAAACnsmbNGo0ZM0YTJ07Ujz/+qKZNm6pdu3Y6depUttdduXJFL774olq2bJnre5I8AwAAAADslrHatiOP3Jo3b54GDBiggQMHqmrVqlqwYIHKli2r999/P9vrhgwZol69eik4ODj3z537bgIAAAAAHlcuD+DIjZSUFB08eFBt2rSxOt+mTRt9++23WV63YsUK/fbbb5o6dWou73gHq20DAAAAAPLc1atXrb52d3eXu7t7prjExESlpaWpZMmSVudLliypc+fO2Wz7119/1YQJE7Rv3z65ut5fGkzlGQAAAABgNxc5eNj2f9otW7asChcubB6zZs3Kth+GYT3e22KxZDonSWlpaerVq5emT5+uypUr3/dzU3kGAAAAAOS506dPy9vb2/zaVtVZknx9fZUvX75MVeaEhIRM1WhJunbtmmJjY/Xjjz9qxIgRkqT09HRZLBa5urpq586datGiRY79I3kGAAAAANjN+C+2l8qqPUny9va2Sp6zkj9/ftWrV0+7du1S165dzfO7du1Sly5dMsV7e3vryJEjVucWL16s6Ohoff755ypfvrxd/SR5BgAAAAA4lddee019+/ZV/fr1FRwcrKVLl+rUqVN65ZVXJEmhoaE6c+aMPvroI7m4uKh69epW15coUUIeHh6ZzmeH5BkAAAAAYLf73V4qu/Zyq0ePHkpKStKbb76p+Ph4Va9eXVu3blW5cuUkSfHx8Tnu+ZxbJM8AAAAAAKczbNgwDRs2zOZrK1euzPbaadOmadq0abm6H8kzAAAAAMBu97M3c07tOQNn6ScAAAAAAHmGyjMAAAAAwG4uhkUuDlxt25FtPUhUngEAAAAAyAGVZwAAAACA3R6G1bbzApVnAAAAAAByQOUZAAAAAGA3w8GVZ8NJKs8kzwAAAAAAu+X7z+HI9pwBw7aBR8D+/fvVtWtXBQQEyN3dXSVLllRwcLBef/11MyYkJESGYZiHh4eHqlWrprCwMKWkpFi1FxcXZxXr4uKiokWLqmXLltq5c2eO/Zk0aZIMw1D16tUzvXZvPzKOZ555xiru9OnT6tq1qypUqKCCBQuqcOHCqlOnjt59912lpqZaxU6bNs1mmx4eHlZxX375pc24jOOVV16xiv/jjz80ZswYlS5dWh4eHqpdu7ZWr16d4/Pf69q1a/r73/+uNm3aqHjx4jIMQ9OmTctVG4sWLVLFihWVP39+GYahy5cv57of2Vm1apUWLFjg0DYBAAAeJVSeASe3ZcsWde7cWSEhIYqIiJCfn5/i4+MVGxur1atX6+233zZjK1SooE8//VSSdOHCBS1btkyTJ0/WqVOntHTp0kxtjxw5Ur169VJaWpp+/vlnTZ8+Xe3bt1d0dLSefvppm/05dOiQ5s6dq5IlS2bZ57v7kaFIkSJWX1+/fl3e3t6aPHmyAgIClJKSoq1bt2rkyJE6dOiQli1blqnd7du3q3DhwubXLi7Wnw/WrVtX3333Xabr3n//fX300Ufq2rWr1flu3brpwIEDCg8PV+XKlbVq1Sq98MILSk9PV69evbJ8vnslJSVp6dKlqlWrlp599lmbfc/OoUOHNGrUKA0cOFD9+vWTq6urChUqlKs2crJq1SodPXpUY8aMcWi7AADg0fO4blVF8gw4uYiICJUvX147duyQq+ufP9I9e/ZURESEVaynp6caN25sft2uXTtVq1ZNUVFRWrhwYaZKbUBAgBnfpEkTVapUSc2aNVNkZKTN5Dk1NVUvvfSShgwZosOHDysxMdFmn+/thy1VqlRRVFSU1bl27dopISFBUVFReu+99+Tu7m71er169eTr65tlm97e3pnua7FY1Lt3b5UrV06tW7c2z2/dulW7du0yE2ZJat68uU6ePKlx48apR48eypfPvkFG5cqV06VLl2QYhhITE3OdPB87dkySNGjQIDVs2DBX1wIAAMAxGLYNOLmkpCT5+vpaJc4Z7q283svV1VW1a9dWSkqKXcOA69evL0k6f/68zdfDw8N18eJFzZw5M+eO36fixYvLxcXF7sQ1J3v37tWJEyf00ksvWb1fGzZskJeXl7p3724V/9JLL+ns2bPav3+/3ffIGBZ+P0JCQtSnTx9JUqNGjWQYhvr37y9J2rVrl7p06SJ/f395eHioYsWKGjJkSKYPLS5cuKDBgwerbNmycnd3V/HixdWkSRPt3r3bvMeWLVt08uRJq2HsGc6ePavnn39ehQoVUuHChdWjRw/FxMTIMAytXLnyvp4LAAA4r4ytqhx5OAMqz87IYpFu38jrXuBBSbmeq/Dg4GAtW7ZMo0aNUu/evVW3bl25ubnZff3vv/+uIkWKqHjx4nbFSlLlypUzvfbTTz8pLCxM69evl5eXV7bt/PbbbypWrJiuXr2qcuXKqWfPnpo0aZI8PT0zxVosFqWlpenatWvauXOnVq5cqddff93mhwU1atRQQkKCfH191bZtW4WFhSkgICDbvkRGRsrFxUUvvfSS1fmjR4+qatWqme5Ts2ZN8/Unn3wy27YdYfHixfrss88UFhamFStWqEqVKub/q99++03BwcEaOHCgChcurLi4OM2bN09PPfWUjhw5Yn4f9O3bVz/88INmzpypypUr6/Lly/rhhx+UlJRk3mPw4MH67bfftGHDBqv7Jycnq1Wr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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, reordered_labels, reordered_matrix = fig.plot_composite_matrix(matrix, labels)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "reordered matrix:\n", " [[1. 0.382 0.364 0. 0. 0. 0. ]\n", " [0.382 1. 0.386 0. 0. 0. 0. ]\n", " [0.364 0.386 1. 0. 0. 0. 0. ]\n", " [0. 0. 0. 1. 0.356 0.078 0.086]\n", " [0. 0. 0. 0.356 1. 0.072 0.078]\n", " [0. 0. 0. 0.078 0.072 1. 0.074]\n", " [0. 0. 0. 0.086 0.078 0.074 1. ]]\n", "reordered labels: ['SRR453566_1.fastq.gz', 'SRR453569_1.fastq.gz', 'SRR453570_1.fastq.gz', 'SRR2060939_1.fastq.gz', 'SRR2060939_2.fastq.gz', 'SRR2241509_1.fastq.gz', 'SRR2255622_1.fastq.gz']\n" ] } ], "source": [ "print('reordered matrix:\\n', reordered_matrix)\n", "print('reordered labels:', reordered_labels)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Customizing plots" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you want to customize the plots, please see the code for `plot_composite_matrix` in [sourmash/fig.py](https://github.com/sourmash-bio/sourmash/blob/latest/src/sourmash/fig.py), which is reproduced below; you can modify the code in place to (for example) [use custom dendrogram colors](https://stackoverflow.com/questions/38153829/custom-cluster-colors-of-scipy-dendrogram-in-python-link-color-func)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "import scipy.cluster.hierarchy as sch\n", "\n", "def plot_composite_matrix(D, labeltext, show_labels=True,\n", " vmax=1.0, vmin=0.0, force=False):\n", " \"\"\"Build a composite plot showing dendrogram + distance matrix/heatmap.\n", "\n", " Returns a matplotlib figure.\n", "\n", " If show_labels is True, display labels. Otherwise, no labels are\n", " shown on the plot.\n", " \"\"\"\n", " if D.max() > 1.0 or D.min() < 0.0:\n", " error('This matrix doesn\\'t look like a distance matrix - min value {}, max value {}', D.min(), D.max())\n", " if not force:\n", " raise ValueError(\"not a distance matrix\")\n", " else:\n", " notify('force is set; scaling to [0, 1]')\n", " D -= D.min()\n", " D /= D.max()\n", "\n", " if show_labels:\n", " show_indices = True\n", "\n", " fig = pylab.figure(figsize=(11, 8))\n", " ax1 = fig.add_axes([0.09, 0.1, 0.2, 0.6])\n", "\n", " # plot dendrogram\n", " Y = sch.linkage(D, method='single') # centroid\n", "\n", " Z1 = sch.dendrogram(Y, orientation='left', labels=labeltext,\n", " no_labels=not show_labels, get_leaves=True)\n", " ax1.set_xticks([])\n", "\n", " xstart = 0.45\n", " width = 0.45\n", " if not show_labels:\n", " xstart = 0.315\n", " scale_xstart = xstart + width + 0.01\n", "\n", " # re-order labels along rows, top to bottom\n", " idx1 = Z1['leaves']\n", " reordered_labels = [ labeltext[i] for i in idx1 ]\n", "\n", " # reorder D by the clustering in the dendrogram\n", " D = D[idx1, :]\n", " D = D[:, idx1]\n", "\n", " # show matrix\n", " axmatrix = fig.add_axes([xstart, 0.1, width, 0.6])\n", "\n", " im = axmatrix.matshow(D, aspect='auto', origin='lower',\n", " cmap=pylab.cm.YlGnBu, vmin=vmin, vmax=vmax)\n", " axmatrix.set_xticks([])\n", " axmatrix.set_yticks([])\n", "\n", " # Plot colorbar.\n", " axcolor = fig.add_axes([scale_xstart, 0.1, 0.02, 0.6])\n", " pylab.colorbar(im, cax=axcolor)\n", "\n", " return fig, reordered_labels, D" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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1apVk3QnuR4yZIj5fsTExGjkyJE6c+aMpkyZYsZ06NBBTZs21fLly1WkSBGdOXNG27dvV0pKivz8/LR9+3Y988wzGjBggAYOHChJ5vfOnj171LNnz7/keQEAAP5qTp08WywWPbfkOx08eSmvuwI4TPqtG7mKDw8P188//6xFixZp0aJFcnNzU4MGDdSpUyeNGDFCXl5eVvGpqXeS88TERL3//vuKjY3VkiVLlC9fvsx9SU9XamqqOed56NCh8vPz02uvvZZtn1JTUzVgwAB5eXnp1VdfzTb2X//6lyIiItS1a1fVrFnTPO/u7q5BgwapdevW8vPz06lTp7Ro0SJ16dJFH374oZm4SVJQUJBmzpypOnXqyMPDQ99//70iIiK0c+dOHTx4UGXKlJEknTlzRpI0duxYNW/eXOvWrdP169c1ffp0tWjRQvv377fqw72GDx+u69eva+LEidk+05kzZzRhwgTVr19fHTt2zDbWUdzd3dW4cWN5e3srJSUl01D3FStWmH9OT09XSEiILBaL3nnnHU2ePFmGYejgwYO6efOm5syZo1q1apnxd885r1evniTJ398/0z0mTpyoEiVK6Ny5cw/iEQEAwEPicR227dTJc/LtNBJnPPZ8fHy0b98+xcbGas+ePYqNjdWXX36p0NBQffDBBzpw4IA5D/jYsWOZqtKhoaEaMmSIzbbHjx+v8ePHm18XKlRIe/fuVWBgYJb9sVgsGjBggPbt26d169apbNmyWcbGxcWpY8eOKlu2rDkvOoOfn1+mRcy6d++uRo0aacKECerfv785VL1v375Wcc2bN1fz5s0VHBysiIgIvfPOO5LuJI3SncRv3bp15gcGwcHBqlixoiIiIvTJJ5/Y7OvkyZP16aefatGiRWYCacvFixfVvn17WSwWrVmz5r6HYTtadHS03nrrLR04cEBXr161ei0hIUElS5ZU7dq1lT9/fg0ePFjDhg1T06ZNVaFCBbvav379ug4cOKCBAwfaXHwOAADA2Tl18ny32EmtVCB/5soZ4GyuXr0qvwW5v65+/frmnOTbt29r/Pjxmj9/viIiIsyFw4KCgrR69WpZLBadPHlSYWFhmjVrlmrWrGlzuO3o0aPVp08f3bp1SzExMZo0aZK6dOmiw4cP25zna7FYNHDgQH3yySeKiopSly5dsuzvyZMn1bx5c7m6umrPnj12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29v1u2fGv/Nl3vqHXDwKOqwP6Tev68wbHR/6338fvawTAAAAAPDgPKb7PJM8A8BfIC0tTdkN9DEMw2pBLwAAADxcWG0bAP4CQUFBcnNzy/Jo2bJlXncRAADAPsYDOJwAlWcA+Ats3rxZt27dyvL1QoUK/YW9AQAAuH8uhuTiyDIsyTMAIMO9q3kDAADAuZA8AwAAAADs9pjuVMWcZwAAAAAAckLlGQAAAABgNyrPAAAAAADAJpJnAAAAAIDdDMNw+HE/Fi9erPLly8vDw0P16tXTvn37so2/deuWJk6cqHLlysnd3V1BQUFavny53fdj2DYAAAAAwKmsWbNGY8aM0eLFi9WkSRN98MEHateunX766ScFBATYvOb555/X+fPnFRkZqYoVKyohIUGpqal235PkGQAAAABgt4dhzvO8efM0YMAADRw4UJK0YMEC7dixQ++//75mzZqVKX779u366quvdOLECRUrVkySFBgYmKt7MmwbAAAAAJDnrl69anXcunXLZlxKSooOHjyoNm3aWJ1v06aNvv32W5vXbNq0SfXr11dERITKlCmjypUra+zYsUpOTra7f1SeAQAAAAB2e1CV57Jly1qdnzp1qqZNm5YpPjExUWlpaSpZsqTV+ZIlS+rcuXM273HixAl9/fXX8vDw0IYNG5SYmKhhw4bp4sWLds97JnkGAAAAAOS506dPy9vb2/za3d092/h7FxqzWCxZLj6Wnp4uwzD06aefqnDhwpLuDP1+7rnn9N5778nT0zPH/pE8AwAAAADs5yIZjpwA/J+2vL29rZLnrPj6+ipfvnyZqswJCQmZqtEZ/Pz8VKZMGTNxlqSqVavKYrHo3//+typVqmRvNwEAAAAAePjlz59f9erV065du6zO79q1S08++aTNa5o0aaKzZ8/qjz/+MM/98ssvcnFxkb+/v133JXkGAAAAANgtY86zI4/ceu2117Rs2TItX75cx48f16uvvqpTp07plVdekSSFhobqxRdfNON79eolHx8fvfTSS/rpp5/0z3/+U+PGjdPLL79s15BtiWHbAAAAAIBccDHuHI5iuY+2evTooaSkJL355puKj49X9erVtXXrVpUrV06SFB8fr1OnTpnxXl5e2rVrl0aOHKn69evLx8dHzz//vMLCwuy+J8kzAAAAAMDpDBs2TMOGDbP52sqVKzOdq1KlSqah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7du3q3DhwubXLi7Wnw/WrVtX3333Xabr3n//fX300Ufq2rWr1flu3brpwIEDCg8PV+XKlbVq1Sq98MILSk9PV69evbJ8vnslJSVp6dKlqlWrlp599lmbfc/OoUOHNGrUKA0cOFD9+vWTq6urChUqlKs2crJq1SodPXpUY8aMcWi7AADg0fO4blVF8gw4uYiICJUvX147duyQq+ufP9I9e/ZURESEVaynp6caN25sft2uXTtVq1ZNUVFRWrhwYaZKbUBAgBnfpEkTVapUSc2aNVNkZKTN5Dk1NVUvvfSShgwZosOHDysxMdFmn+/thy1VqlRRVFSU1bl27dopISFBUVFReu+99+Tu7m71er169eTr65tlm97e3pnua7FY1Lt3b5UrV06tW7c2z2/dulW7du0yE2ZJat68uU6ePKlx48apR48eypfPvkFG5cqV06VLl2QYhhITE3OdPB87dkySNGjQIDVs2DBX1wIAAMAxGLYNOLmkpCT5+vpaJc4Z7q283svV1VW1a9dWSkqKXcOA69evL0k6f/68zdfDw8N18eJFzZw5M+eO36fixYvLxcXF7sQ1J3v37tWJEyf00ksvWb1fGzZskJeXl7p3724V/9JLL+ns2bPav3+/3ffIGBZ+P0JCQtSnTx9JUqNGjWQYhvr37y9J2rVrl7p06SJ/f395eHioYsWKGjJkSKYPLS5cuKDBgwerbNmycnd3V/HixdWkSRPt3r3bvMeWLVt08uRJq2HsGc6ePavnn39ehQoVUuHChdWjRw/FxMTIMAytXLnyvp4LAAA4r4ytqhx5OAMqz87IYpFu38jrXuBBSbmeq/Dg4GAtW7ZMo0aNUu/evVW3bl25ubnZff3vv/+uIkWKqHjx4nbFSlLlypUzvfbTTz8pLCxM69evl5eXV7bt/PbbbypWrJiuXr2qcuXKqWfPnpo0aZI8PT0zxVosFqWlpenatWvauXOnVq5cqddff93mhwU1atRQQkKCfH191bZtW4WFhSkgICDbvkRGRsrFxUUvvfSS1fmjR4+qatWqme5Ts2ZN8/Unn3wy27YdYfHixfrss88UFhamFStWqEqVKub/q99++03BwcEaOHCgChcurLi4OM2bN09PPfWUjhw5Yn4f9O3bVz/88INmzpypypUr6/Lly/rhhx+UlJRk3mPw4MH67bfftGHDBqv7Jycnq1WrVjp79qxmzZqlypUra8uWLerRo8cDf3YAAICHCcmzs7FYpOVtpdP2V73gZG7lbs5HeHi4fv75Zy1atEiLFi2Sm5ubGjRooE6dOmnEiBGZEtmMxbYSExP1/vvvKzY2VkuWLLFZyU1PT1dqaqo553no0KHy8/PTa6+9linu5ZdfVrdu3dS+ffts+/vUU0+pR48eqlKlipKTk7Vt2zZFRETo66+/1t69ezNVy2fPnq3Q0FBJdyq4b7zxhsLCwqxigoKCNHPmTNWpU0ceHh76/vvvFRERoZ07d+rgwYMqU6aMzb5cvnxZ69evV+vWrTMl2UlJSapQoUKma4oVK2a+/leoVq2agoKCJEnVq1c3q/+SrBY4s1gsevLJJxUSEqJy5cpp27Zt6ty5syTpm2++0cCBAzVo0CAzvkuXLlb3KFKkiNzd3TMNa4+KitLx48e1ceNGs702bdooOTlZH374oeMfGAAAPPQcXS2m8owH4/YNEmdY8fHx0b59+xQbG6s9e/YoNjZWX375pUJDQ/XBBx/owIED5jzgY8eOZapKh4aGasiQITbbHj9+vMaPH29+XahQIe3du1eBgYFWcfPmzdOvv/6qTZs25djfexPf9u3bKzAwUGPHjtXGjRszLdrVv39/tWrVShcvXlR0dLTmzJmjK1euaNGiRWZM3759ra5p3ry5mjdvruDgYEVEROidd96x2ZdPP/1UN2/e1MCBA22+nt1Q6/sdhu1ICQkJmjJlirZs2aKzZ88qPT3dfO348eNmstuwYUOtXLlSPj4+atWqlerVq2f36IS9e/eqUKFCZlsZevXqRfIMAAAeKyTPzmzs/0n5C+R1L+BoV69K4aVzfVn9+vXNquTt27c1fvx4zZ8/XxEREebCYUFBQVq9erUsFotOnjypsLAwzZo1SzVr1lTPnj0ztTl69Gj16dNHt27dUkxMjCZNmqQuXbro8OHD8vHxkSSdOnVKU6ZMUXh4uPLnz2/OnU5NTVV6erouX74sd3d3m0OyM/Tp00djx45VTExMpuS5VKlSKlWqlKQ7Fc+iRYtqwoQJevnll1WnTp0s22zYsKEqV66smJiYLGMiIyNVvHhxqypsBh8fH5vV5YsXL0r6swKdV9LT09WmTRudPXtWkydPVo0aNVSwYEGlp6ercePGSk5ONmPXrFmjsLAwc3V1Ly8vde3aVREREeZ7m5WkpCSbK6fndB0AAHh05TPuHI5szxmQPDuz/AWk/AXzuhdwtPxp/3UTbm5umjp1qubPn6+jR4+a5z08PMwEu0GDBmrevLmeeOIJjRkzRh07dsw0xNvf39+Mb9KkiUqVKqU+ffpo6tSpevfddyVJJ06cUHJyskaPHq3Ro0dn6kvRokU1evRou/YQzmmBM0nmatO//PJLtsmzdGcoc1Zt/vjjj/rxxx/1+uuv26zC1qhRQ5999plSU1Ot5j0fOXJEkmzuYf1XOnr0qA4fPqyVK1eqX79+5vn/+7//yxTr6+urBQsWaMGCBTp16pQ2bdqkCRMmKCEhQdu3b8/2Pj4+Pvr+++8znT937tx//xAAAABOhNW2AScXHx9v8/zx48clSaVLZ13F9vHxUXh4uM6fP281DDorvXv3VkhIiD788EOdPHlSklS7dm3t3bs301GrVi0FBgZq7969GjFiRLbtZmxJldP2VdKdYcSSVLFixWzjYmJi9Ouvv2bZZmRkpCRpwIABNl/v2rWr/vjjD61bty5TX0uXLq1GjRrl2NcHKWPY+L3bdX3wwQfZXhcQEKARI0aodevW+uGHH8zz7u7uVtXqDM2bN9e1a9cyDclftWrV/XYdAAA4OVbbBuCU2rZtK39/f3Xq1ElVqlRRenq6Dh06pLffflteXl42q8F3e/HFFzVv3jzNnTtXw4cPl7e3d7bxs2fPVqNGjTRjxgwtW7ZMRYoUUUhISKa4IkWKKDU11eq1ffv2aebMmeratasqVKigmzdvatu2bVq6dKlatGihTp06mbFTp07V+fPn9fTTT6tMmTK6fPmytm/frg8//FDdu3dXvXr1zNhatWqpT58+qlq1qrlg2Jw5c1SqVCn9/e9/z9S3mzdvatWqVXryySdVtWpVm8/Zrl07tW7dWkOHDtXVq1dVsWJFffbZZ9q+fbs++eSTXG+VtW3bNl2/fl3Xrl2TdGd18s8//1zSnXnfBQrcmYIxYMAARUVF6bffflO5cuWybK9KlSoKCgrShAkTZLFYVKxYMW3evFm7du2yirty5YqaN2+uXr16qUqVKipUqJAOHDig7du3q1u3bmZcjRo1tH79er3//vuqV6+eXFxcVL9+fb344ouaP3++XnzxRc2cOVOVKlXS1q1btWPHjkx9+uijjzKtWg4AAPCoIHkGnNykSZO0ceNGzZ8/X/Hx8bp165b8/PzUqlUrhYaGZpkcZnBxcVF4eLg6dOigBQsWaMqUKdnGN2zYUN27d1dUVJRCQ0PNlaDt4efnp3z58mnGjBlKTEyUYRiqVKmS3nzzTb3++utWQ6zr16+vhQsX6osvvlBSUpI8PDxUrVo1zZ8/X0OHDrVqt1q1alq6dKni4+OVkpKi0qVLq2fPnpoyZYr8/Pwy9WP9+vW6dOlSlguF3R03ceJETZkyRRcvXlSVKlX02Wef2ZwfnpOhQ4ea1XpJWrt2rdauXSvpzhZgGYuwpaWlKS0tTRZL9quuu7m5afPmzRo9erSGDBkiV1dXtWrVSrt377ZaOdzDw0ONGjXSxx9/rLi4ON2+fVsBAQEaP3681QcLo0eP1rFjx/TGG2/oypUrslgsslgsKlCggKKjozV69GhNmDBBhmGoTZs2Wr16daatutLT060WLQMAAI8mF8MiFyN3O8Tk1J4zMCw5/YYm6erVqypcuLCuXLmSZVXqRkqqqk25U4n46c22KpCfvPyBSLkuvfWfYbhvnGXO8yPInp83IK/FxcWpfPnyWrFihfr372+ez/j+nbRvgzy8+PvpbjdSnWRMWh6Y1y0yr7vw0Eo+NT2vuwDgEXf16h8qXLieXb97Zvw7Hx6z3qH/zt/847omNO720P/+S4YLAAAAALCb4eB5yg/BDqB2IXkGgPtkzzDlu1fqBgAAeBTk+8/hyPacAattA8B9evPNN+Xm5pbtERcXl9fdfCACAwNlsVishmwDAAA8yiiJAMB9Gjx4sDp27JhtTHZbhQEAADgjR28vxVZVAPCIK126NMkxAADAY4LkGQAAAABgt8d1qyrmPAMAAAAAkAMqzwAAAAAAu+Uz7hyObM8ZUHkGAAAAACAHVJ4BAAAAAHZ7XFfbpvIMAAAAAEAOqDwDAAAAAOxG5RkAAAAAANhE5RkAAAAAYDcXObjy7LimHihn6ScAAAAAAHmGyjMAAAAAwG4uhkX5DItD23MGJM8AAAAAALu5yLFDmJ1lOLSz9BMAAAAAgDxD5RkAAAAAYDe2qgIAAAAAADZReQYAAAAA2I3KMwAAAAAAsInKMwAAAADAbvkMOXSrqnxUngEAAAAAeDRQeQYAAAAA2I05z3AOFscNjwAAAAAA2IfKszOxWKSPu+R1LwAAAAA8xh7XyjPJszO5fUP6d2xe9wIAcnQrzZDSnORfwr/IvG6Red2Fh9Zr6wfkdRcAAMgRyTMAAAAAwG6Pa+WZOc8AAAAAAOSAyjMAAAAAwG4uhmP3ZnaWyjPJMwAAAADAbi6GRS6G43YBcmRbDxLDtgEAAAAAyAGVZwAAAACA3Vzk2Cqss1R0naWfAAAAAADkGSrPAAAAAAC7sVUVAAAAAACwicozAAAAAMBu+Ry8VZUj23qQqDwDAAAAAJADKs8AAAAAALuxzzMAAAAAALCJyjMAAAAAwG6stg0AAAAAAGyi8gwAAAAAsBuVZwAAAAAAYBOVZwAAAACA3Vzk2Cqss1R0SZ4BAAAAAPYzJMORQ60Ztg0AAAAAwKOByjMAAAAAwG6GHFssdpLCM5VnAAAAAAByQuUZAAAAAGA3w8Fznh06f/oBovIMAAAAAEAOqDwDAAAAAOz2uG5V5Sz9BAAAAAAgz1B5BgAAAADYzTAsMgyLQ9tzBlSeAQAAAADIAckz8AjYv3+/unbtqoCAALm7u6tkyZIKDg7W66+/bsaEhITIMAzz8PDwULVq1RQWFqaUlBSr9uLi4qxiXVxcVLRoUbVs2VI7d+7MsT+TJk2SYRiqXr16ptfu7UfG8cwzz1jFnT59Wl27dlWFChVUsGBBFS5cWHXq1NG7776r1NRUq9hp06bZbNPDw8Nm/xITEzV69GgFBgaa71e7du108eJFq7jvv/9ebdu2VaFCheTl5aXmzZvrm2++yfH573Xt2jX9/e9/V5s2bVS8eHEZhqFp06blqo1FixapYsWKyp8/vwzD0OXLl3Pdj+ysWrVKCxYscGibAADg0WQ8gMMZMGwbcHJbtmxR586dFRISooiICPn5+Sk+Pl6xsbFavXq13n77bTO2QoUK+vTTTyVJFy5c0LJlyzR58mSdOnVKS5cuzdT2yJEj1atXL6Wlpennn3/W9OnT1b59e0VHR+vpp5+22Z9Dhw5p7ty5KlmyZJZ9vrsfGYoUKWL19fXr1+Xt7a3JkycrICBAKSkp2rp1q0aOHKlDhw5p2bJlmdrdvn27ChcubH7t4pL588GzZ8+qadOmcnV11eTJk1WpUiUlJiZq7969Vh8iHDhwQE8//bQaNmyojz/+WBaLRREREWrZsqX27t2r4ODgLJ/vXklJSVq6dKlq1aqlZ5991mbfs3Po0CGNGjVKAwcOVL9+/eTq6qpChQrlqo2crFq1SkePHtWYMWMc2i4AAMCjguQZcHIREREqX768duzYIVfXP3+ke/bsqYiICKtYT09PNW7c2Py6Xbt2qlatmqKiorRw4cJMldqAgAAzvkmTJqpUqZKaNWumyMhIm8lzamqqXnrpJQ0ZMkSHDx9WYmKizT7f2w9bqlSpoqioKKtz7dq1U0JCgqKiovTee+/J3d3d6vV69erJ19c323aHDRumW7duKTY2VkWLFjXPd+vWzSpu8uTJKlKkiLZv364CBQpIklq1aqUKFSpo7NixuapAlytXTpcuXZJhGEpMTMx18nzs2DFJ0qBBg9SwYcNcXQsAAOBohhy8z7PjmnqgGLYNOLmkpCT5+vpaJc4ZbFVe7+bq6qratWsrJSXFrmHA9evXlySdP3/e5uvh4eG6ePGiZs6cmXPH71Px4sXl4uKifPny5frauLg4bdq0SYMGDbJKnG355ptvFBISYibOklSoUCE9/fTT+vbbbxUfH2/3fTOGkd+PkJAQ9enTR5LUqFEjGYah/v37S5J27dqlLl26yN/fXx4eHqpYsaKGDBmS6UOLCxcuaPDgwSpbtqzc3d1VvHhxNWnSRLt37zbvsWXLFp08edJq2HuGs2fP6vnnn1ehQoVUuHBh9ejRQzExMTIMQytXrryv5wIAAHA2VJ6dWcqNvO4BHoSU67kKDw4O1rJlyzRq1Cj17t1bdevWlZubm93X//777ypSpIiKFy9uV6wkVa5cOdNrP/30k8LCwrR+/Xp5eXll285vv/2mYsWK6erVqypXrpx69uypSZMmydPTM1OsxWJRWlqarl27pp07d2rlypV6/fXXbX5YUKNGDSUkJMjX11dt27ZVWFiYAgICzNf37dsni8Wi0qVL64UXXtDmzZuVmpqqxo0ba9asWVZDsVNSUjJVtiWZ544cOSI/P79sn9MRFi9erM8++0xhYWFasWKFqlSpYv6/+u233xQcHKyBAweqcOHCiouL07x58/TUU0/pyJEj5vdB37599cMPP2jmzJmqXLmyLl++rB9++EFJSUnmPQYPHqzffvtNGzZssLp/cnKyWrVqpbNnz2rWrFmqXLmytmzZoh49ejzwZwcAAA8nR89TdpbKM8mzM5tbMa97gAfhVu6W6g8PD9fPP/+sRYsWadGiRXJzc1ODBg3UqVMnjRgxIlMim7HYVmJiot5//33FxsZqyZIlNiu56enpSk1NNec8Dx06VH5+fnrttdcyxb388svq1q2b2rdvn21/n3rqKfXo0UNVqlRRcnKytm3bpoiICH399dfau3dvpmr57NmzFRoaKulOBfeNN95QWFiYVUxQUJBmzpypOnXqyMPDQ99//70iIiK0c+dOHTx4UGXKlJEknTlzRpI0duxYNW/eXOvWrdP169c1ffp0tWjRQvv371fNmjUlSdWqVVNMTIzS09PNPqWmpmr//v2SZCaeD1q1atUUFBQkSapevbpZ/ZekV155xfyzxWLRk08+qZCQEJUrV07btm1T586dJd2pog8cOFCDBg0y47t06WJ1jyJFisjd3T3TcPqoqCgdP35cGzduNNtr06aNkpOT9eGHHzr+gQEAwEPPxbhzOLI9Z0DyDDg5Hx8f7du3T7GxsdqzZ49iY2P15ZdfKjQ0VB988IEOHDhgzgM+duxYpqp0aGiohgwZYrPt8ePHa/z48ebXhQoV0t69exUYGGgVN2/ePP3666/atGlTjv29N/Ft3769AgMDNXbsWG3cuFFdu3a1er1///5q1aqVLl68qOjoaM2ZM0dXrlzRokWLzJi+fftaXdO8eXM1b95cwcHBioiI0DvvvCPpTpIvSf7+/lq3bp35gUFwcLAqVqyoiIgIffLJJ5LuLJY2YMAAjRgxQhMnTlR6erqmT5+ukydPSsp5SPxfISEhQVOmTNGWLVt09uxZ8/kk6fjx42ay27BhQ61cuVI+Pj5q1aqV6tWrZ/fohL1796pQoUJmWxl69epF8gwAAB4rJM/Oauz/SfkL5BwH53P1qhReOteX1a9f36xK3r59W+PHj9f8+fMVERFhLhwWFBSk1atXy2Kx6OTJkwoLC9OsWbNUs2ZN9ezZM1Obo0ePVp8+fXTr1i3FxMRo0qRJ6tKliw4fPiwfHx9J0qlTpzRlyhSFh4crf/785tzp1NRUpaen6/Lly3J3d7c5JDtDnz59NHbsWMXExGRKnkuVKqVSpUpJulPxLFq0qCZMmKCXX35ZderUybLNhg0bqnLlyoqJiTHPZfS5VatWVpV2Pz8/1apVSz/88IN57uWXX9aFCxcUFham999/X9KdJHvs2LGaPXu2Wc3OK+np6WrTpo3Onj2ryZMnq0aNGipYsKDS09PVuHFjJScnm7Fr1qxRWFiYubq6l5eXunbtqoiICPO9zUpSUpLNldNzug4AADy6Htdh23lfOsH9yV9Ayl+Q41E9/ktubm6aOnWqJOno0aPmeQ8PD9WvX18NGjTQc889pz179qhkyZIaM2aM/vjjj0zt+Pv7q379+mrSpIlef/11LVu2TGfOnDHblqQTJ04oOTlZo0ePVtGiRc3jm2++0fHjx1W0aFFz2HVO7KnmZqw2/csvv+QYa7FYrNrMGJJtT6x0p/KemJioI0eOKC4uTt9++60uXbqkggULql69ejne/0E6evSoDh8+rDlz5mjkyJEKCQlRgwYNzA8I7ubr66sFCxYoLi5OJ0+e1KxZs7R+/Xpz4bHs+Pj42Fwg7ty5c454DAAAgPu2ePFilS9fXh4eHqpXr5727duXZez69evVunVrFS9eXN7e3goODtaOHTtydT+SZ8DJZbXq8/HjxyVJpUtnXcX28fFReHi4zp8/bzUMOiu9e/dWSEiIPvzwQ3P4cu3atbV3795MR61atRQYGKi9e/dqxIgR2babsSVVTttXSXeGEUtSxYrZz/mPiYnRr7/+atVmo0aN5O/vr507dyotLc08f/bsWR0+fNjm/d3d3VW9enWVK1dOp06d0po1azRo0KBsK+l/hYzVsO9d1OyDDz7I9rqAgACNGDFCrVu3tqq0u7u7W1WrMzRv3lzXrl3LNCR/1apV99t1AADg5AzD8UdurVmzRmPGjNHEiRP1448/qmnTpmrXrp1OnTplM/6f//ynWrdura1bt+rgwYNq3ry5OnXqpB9//NHuezJsG3Bybdu2lb+/vzp16qQqVaooPT1dhw4d0ttvvy0vLy+NHj062+tffPFFzZs3T3PnztXw4cPl7e2dbfzs2bPVqFEjzZgxQ8uWLVORIkUUEhKSKa5IkSJKTU21em3fvn2aOXOmunbtqgoVKujmzZvatm2bli5dqhYtWqhTp05m7NSpU3X+/Hk9/fTTKlOmjC5fvqzt27frww8/VPfu3a0qv7Vq1VKfPn1UtWpVc8GwOXPmqFSpUvr73/9uxrm4uGj+/Pl6/vnn1aVLFw0dOlTXr1/XjBkzlD9/fqsK+dGjR7Vu3TrVr19f7u7uOnz4sMLDw1WpUiXNmDEj2/fIlm3btun69eu6du2apDurk3/++eeS7sz7ztgSa8CAAYqKitJvv/2mcuXKZdlelSpVFBQUpAkTJshisahYsWLavHmzdu3aZRV35coVNW/eXL169VKVKlVUqFAhHThwQNu3b7fa27pGjRpav3693n//fdWrV08uLi6qX7++XnzxRc2fP18vvviiZs6cqUqVKmnr1q02P6n96KOP9NJLL+X6vQEAAMitefPmacCAARo4cKAkacGCBdqxY4fef/99zZo1K1P8ggULrL5+6623tHHjRm3evDnbqYB3I3kGnNykSZO0ceNGzZ8/X/Hx8bp165b8/PzUqlUrhYaGqmrVqtle7+LiovDwcHXo0EELFizQlClTso1v2LChunfvrqioKIWGhporQdvDz89P+fLl04wZM5SYmCjDMFSpUiW9+eabev31162GTdevX18LFy7UF198oaSkJHl4eKhatWqaP3++hg4datVutWrVtHTpUsXHxyslJUWlS5dWz549NWXKlEzbST333HPasGGDZs6cqeeee07u7u5q1qyZ1qxZY/Us+fPnV3R0tBYuXKg//vhDAQEBeuWVVzRhwgQVLJj7ofVDhw41q/WStHbtWq1du1bSnS3AMhZhS0tLU1pamiyW7Fddd3Nz0+bNmzV69GgNGTJErq6uatWqlXbv3m21PZeHh4caNWqkjz/+WHFxcbp9+7YCAgI0fvx4qw8WRo8erWPHjumNN97QlStXZLFYZLFYVKBAAUVHR2v06NGaMGGCDMNQmzZttHr1aj355JNWfUpPT7datAwAADya8nrOc0pKig4ePKgJEyZYnW/Tpo2+/fZbu9pIT0/XtWvXVKxYMbvva1hy+g1N0tWrV1W4cGFduXIly6rUjZRUVZtypxLx05ttVSA/ebnDpVyX3vrPENw3zjpkbiwePvb8vAF5LS4uTuXLl9eKFSus5k5nfP+O+/ILuXvxd9Td5naNzOsuPLReWz8gr7vw0JpZPyDnIAD4L1y9+ocKF65n1++eGf/Of39yjby8Hbd48R9Xb6hhuR46ffq0VR/c3d0zTVGT7ky5K1OmjL755hurD/PfeustRUVF6X//939zvOecOXMUHh6u48ePq0SJEnb1kznPAAAAAAC7GQ/gkKSyZcuqcOHC5mFr+LVVP+6ZLG2xWDKds+Wzzz7TtGnTtGbNGrsTZ4lh2wBw3+wZpuzqyl+zAAAA9rBVebbF19dX+fLly7T7R0JCgs0tNu+2Zs0aDRgwQGvXrlWrVq1y1T8qzwBwn9588025ublle8TFxeV1Nx+IwMBAWSwWu7a7AgAAjxYXw/GHJHl7e1sdWSXP+fPnV7169TItlLpr165Ma7Lc7bPPPlP//v21atUqdejQIdfPTUkEAO7T4MGD1bFjx2xjstsqDAAAAPfntddeU9++fVW/fn0FBwdr6dKlOnXqlF555RVJUmhoqM6cOaOPPvpI0p3E+cUXX9Q777yjxo0bm1VrT09PFS5c2K57kjwDwH0qXbo0yTEAAHjs5PVq25LUo0cPJSUl6c0331R8fLyqV6+urVu3mlt9xsfHW+35/MEHHyg1NVXDhw/X8OHDzfP9+vXTypUr7bonyTMAAAAAwOkMGzZMw4YNs/navQnxl19++V/fj+QZAAAAAGA/wyLDyHHH41y15wxIngEAAAAAdnsYhm3nhQeSPN9ISXsQzSIlTbK4q4BxK697AgAAAACPlQeSPNcP2/0gmoUkaYXiPHrldScAAAAAPKYM487hyPacgcP2efZ0y6f65Yo6qjkAAAAAAB4aDqs8G4ahta8EK/k2Q7YfmJQb0pyKed0LAAAAAI8xFzmwCuvgth4khw7bNgxDBfKzBtmDk09ivjMAAAAA/OXIdAEAAAAAdmPOMwAAAAAAsInKMwAAAADAbo/rPs9UngEAAAAAyAGVZwAAAACA3ZjzDAAAAAAAbKLyDAAAAACwG3OeAQAAAACATVSeAQAAAAB2czHuHI5szxmQPAMAAAAA7MawbQAAAAAAYBOVZwAAAACA3QzDIsOwOLQ9Z0DlGQAAAACAHFB5BgAAAADY7XGd80zyDABwuIW9P5bh4pbX3XiojN0wIK+78NDyyOccw/UAAI83kmcAAAAAgN0M487hyPacAXOeAQAAAADIAZVnAAAAAIDdHtc5z1SeAQAAAADIAZVnAAAAAIDdXOTYKqyzVHSdpZ8AAAAAAOQZKs8AAAAAAPs5eLVtZ5n0TOUZAAAAAIAcUHkGAAAAAOTC47neNskzAAAAAMBuxn/+c2R7zoBh2wAAAAAA5IDKMwAAAADAbobhIsNwXB3WkW09SM7RSwAAAAAA8hCVZwAAAABALjyeC4ZReQYAAAAAIAdUngEAAAAAdrtTd3bkatvOgcozAAAAAAA5oPIMAAAAAMgF5jwDAAAAAAAbqDwDAAAAAOzGPs8AAAAAAMAmKs8AAAAAgFxgzjMAAAAAALCByjMAAAAAwG7Gf/5zZHvOgOQZAAAAAGC3xzV5Ztg2AAAAAAA5oPIMAAAAAMgFFzm2DuscNV3n6CWAbO3fv19du3ZVQECA3N3dVbJkSQUHB+v11183Y0JCQmQYhnl4eHioWrVqCgsLU0pKilV7cXFxVrEuLi4qWrSoWrZsqZ07d+bYn0mTJskwDFWvXj3Ta/f2I+N45plnrOJOnz6trl27qkKFCipYsKAKFy6sOnXq6N1331VqaqpV7LRp02y26eHhYbN/iYmJGj16tAIDA833q127drp48WKm2K+//lrt27dX0aJF5enpqUqVKmnGjBk5vgd3u3btmv7+97+rTZs2Kl68uAzD0LRp03LVxqJFi1SxYkXlz59fhmHo8uXLubo+J6tWrdKCBQsc2iYAAMCjhMoz4OS2bNmizp07KyQkRBEREfLz81N8fLxiY2O1evVqvf3222ZshQoV9Omnn0qSLly4oGXLlmny5Mk6deqUli5dmqntkSNHqlevXkpLS9PPP/+s6dOnq3379oqOjtbTTz9tsz+HDh3S3LlzVbJkySz7fHc/MhQpUsTq6+vXr8vb21uTJ09WQECAUlJStHXrVo0cOVKHDh3SsmXLMrW7fft2FS5c2PzaxSXz54Nnz55V06ZN5erqqsmTJ6tSpUpKTEzU3r17M32IsGrVKvXt21fPP/+8PvroI3l5eem3337T2bNns3w2W5KSkrR06VLVqlVLzz77rM2+Z+fQoUMaNWqUBg4cqH79+snV1VWFChXKVRs5WbVqlY4ePaoxY8Y4tF0AAPDoyShUOLI9Z0DyDDi5iIgIlS9fXjt27JCr658/0j179lRERIRVrKenpxo3bmx+3a5dO1WrVk1RUVFauHBhpkptQECAGd+kSRNVqlRJzZo1U2RkpM3kOTU1VS+99JKGDBmiw4cPKzEx0Waf7+2HLVWqVFFUVJTVuXbt2ikhIUFRUVF677335O7ubvV6vXr15Ovrm227w4YN061btxQbG6uiRYua57t162YVd+bMGQ0ePFhDhgzR4sWLzfPNmzfPtn1bypUrp0uXLskwDCUmJuY6eT527JgkadCgQWrYsGGu7w8AAID/HsO2ASeXlJQkX19fq8Q5g63K691cXV1Vu3ZtpaSk2DUMuH79+pKk8+fP23w9PDxcFy9e1MyZM3Pu+H0qXry4XFxclC9fvlxfGxcXp02bNmnQoEFWibMty5Yt0/Xr1zV+/Pj77arpv/l0NiQkRH369JEkNWrUSIZhqH///pKkXbt2qUuXLvL395eHh4cqVqyoIUOGZPrQ4sKFCxo8eLDKli0rd3d3FS9eXE2aNNHu3bvNe2zZskUnT560Gvae4ezZs3r++edVqFAhFS5cWD169FBMTIwMw9DKlSvv67kAAIAzMx7A8fCj8uysUm7kdQ/woKRcz1V4cHCwli1bplGjRql3796qW7eu3Nzc7L7+999/V5EiRVS8eHG7YiWpcuXK/7+9ew+KqvzjOP5ZFNgMvIAzAqKgqIPmJQdvmJY0BKNJDF7STM3UVCYnUJkEMwmEEdGAtLznpZrSMTVlFNOUii6kiDlhOJmpNAPqaKOQ4QXY3x/E/tpAdjFIN98vZmecs9/znOesLHu++33O89R67scff1RSUpJ27twpFxeXets5c+aM3NzcVFpaKh8fH40fP14LFy7UQw89VCvWZDKpsrJSZWVlOnDggDZv3qx58+bV+WVBr169dOnSJbVt21ahoaFKSkpSx44dzc/n5OTIZDLJy8tLzz33nDIzM1VRUaFBgwZpyZIlCgwMNMd++eWXcnNz06lTpxQeHq6CggK5ublp1KhRSk1NVcuWLa2+Xo1h1apV+uijj5SUlKRNmzbJ39/f/H915swZBQYGavr06WrVqpXOnTuntLQ0DRkyRD/88IP592DSpEnKz89XcnKyunXrpqtXryo/P19XrlwxH2PGjBk6c+aMdu3aZXH88vJyBQcHq7i4WEuWLFG3bt20d+9ejRs37l85fwAAgPsFybO9Wt7lXvcATeWmqUHhKSkpOnXqlFauXKmVK1fK0dFR/fv3V1hYmGbPnl0rka2ZbOvy5ctavXq18vLytGbNmjoruVVVVaqoqDDf8xwZGSlPT0/NnTu3VtzUqVM1atQojRgxot7+DhkyROPGjZO/v7/Ky8uVlZWl1NRUffXVV8rOzq5VLV+6dKni4uIkVVdwFyxYoKSkJIsYPz8/JScnq2/fvjIajTpy5IhSU1N14MABHTt2TO3bt5dUPRRbkmJiYhQUFKQdO3bo+vXrSkhI0JNPPqnvvvtOvXv3Nsf+8ccfGjt2rOLi4pSRkaGjR48qPj5eBQUFysnJ+Vfuz+nRo4f8/PwkST179jRX/yVp1qxZ5n+bTCYNHjxYw4YNk4+Pj7KysvTMM89Ikr7++mtNnz5dL730kjk+PDzc4hitW7eWs7NzreH0W7ZsUWFhoXbv3m1uLyQkROXl5Vq/fn3jnzAAALjvPajrPJM82xPHFlKHQdKvufe6J7iPuLu7KycnR3l5eTp06JDy8vL0+eefKy4uTmvXrtXRo0fN9wGfPHmyVlU6Li5OM2fOrLPt+fPnWwxbdnV1VXZ2tnx9fS3i0tLSdPr0ae3Zs8dqf/+e+I4YMUK+vr6KiYnR7t27FRERYfH8lClTFBwcrN9++02HDx/WsmXLdO3aNa1cudIcM2nSJIt9goKCFBQUpMDAQKWmpuqtt96SVJ3kS5K3t7d27Nhh/sIgMDBQXbp0UWpqqj744ANz7I0bNxQfH6/Y2FhJ1cObnZycFB0drUOHDik4ONjq+TalS5cuadGiRdq7d6+Ki4vN5ydJhYWF5mR3wIAB2rx5s9zd3RUcHKyAgACbRydkZ2fL1dXV3FaNCRMmkDwDAIAHCsmzPTEYpKn7pdsM2f5PKy2VUrwavFu/fv3MVcnbt29r/vz5Sk9PV2pqqnniMD8/P23dulUmk0nnz59XUlKSlixZot69e2v8+PG12oyKitLEiRN18+ZN5ebmauHChQoPD9eJEyfk7u4uSSoqKtKiRYuUkpIiJycn873TFRUVqqqq0tWrV+Xs7FznkOwaEydOVExMjHJzc2slzx4eHvLw8JBUXfFs06aNYmNjNXXqVPXt2/eObQ4YMEDdunVTbu7/v2yq6XNwcLBFpd3T01N9+vRRfn6+Rezp06cVGhpq0e7w4cMVHR2t/Pz8e5o8V1VVKSQkRMXFxXr99dfVq1cvPfzww6qqqtKgQYNUXl5ujt22bZuSkpLMs6u7uLgoIiJCqamp5tf2Tq5cuVLnzOnW9gMAAP9lD+Y6zyTP9sZgkJwevte9QFNyqvzHTTg6Oio+Pl7p6ekqKCgwbzcajeYEu3///goKCtIjjzyi6OhojRw5stYQb29vb3P8Y489Jg8PD02cOFHx8fF6++23JUm//PKLysvLFRUVpaioqFp9adOmjaKiomxaQ9jaBGeSzLNN//TTT/Umz1L1UOa/tlkzJNvW2L8m3n+Ns7WvTamgoEAnTpzQ5s2b9cILL5i3//zzz7Vi27Ztq4yMDGVkZKioqEh79uxRbGysLl26pP3799d7HHd3dx05cqTW9gsXLvzzkwAAALAj9pHiA7ijkpKSOrcXFhZKkry87lzFdnd3V0pKii5evGgxDPpOnn/+eQ0bNkzr16/X+fPnJUmPPvqosrOzaz369OkjX19fZWdna/bs2fW2W7MklbXlq6TqYcSS1KVL/ff95+bm6vTp0xZtDhw4UN7e3jpw4IAqK///JUVxcbFOnDhhETt69GhJUlZWlkW7+/bts7mvTanmfuu/L9e1du3aevfr2LGjZs+eraeeesqi0u7s7GxRra4RFBSksrKyWkPyP/zww7vtOgAAsHOGJvixB1SeATsXGhoqb29vhYWFyd/fX1VVVfr+++/15ptvysXFpc5q8F9NnjxZaWlpWr58uV5++WWrs0gvXbpUAwcO1OLFi7Vhwwa1bt1aw4YNqxXXunVrVVRUWDyXk5Oj5ORkRUREqHPnzrpx44aysrK0bt06PfnkkwoLCzPHxsfH6+LFi3r88cfVvn17Xb16Vfv379f69es1duxYBQQEmGP79OmjiRMnqnv37uYJw5YtWyYPDw+9+uqr5jgHBwelp6fr2WefVXh4uCIjI3X9+nUtXrxYTk5O5onJpOoh4mFhYUpMTDQPhc7Ly1NCQoJGjhypIUOG1Ps6/V1WVpauX7+usrIySdWzk3/88ceSqu/7btGihSRp2rRp2rJli86cOSMfH587tufv7y8/Pz/FxsbKZDLJzc1NmZmZOnjwoEXctWvXFBQUpAkTJsjf31+urq46evSo9u/fb7G2da9evbRz506tXr1aAQEBcnBwUL9+/TR58mSlp6dr8uTJSk5OVteuXbVv3z59+umntfr03nvv6cUXX2zQ6wIAAGAvSJ4BO7dw4ULt3r1b6enpKikp0c2bN+Xp6ang4GDFxcWpe/fu9e7v4OCglJQUPf3008rIyNCiRYvqjR8wYIDGjh2rLVu2KC4uzjwTtC08PT3VrFkzLV68WJcvX5bBYFDXrl2VmJioefPmWQyF7tevn1asWKFPPvlEV65ckdFoVI8ePZSenq7IyEiLdnv06KF169appKREt27dkpeXl8aPH69FixbJ09PTInbMmDHatWuXkpOTNWbMGDk7O+uJJ57Qtm3bap3Ltm3blJCQoHXr1ikhIUFeXl6aM2eO4uPjbT7nGpGRkeZqvSRt375d27dvl1S9BFjNJGyVlZWqrKw0Dw+/E0dHR2VmZioqKkozZ85U8+bNFRwcrM8++8xieS6j0aiBAwfq/fff17lz53T79m117NhR8+fPt/hiISoqSidPntSCBQt07do1mUwmmUwmtWjRQocPH1ZUVJRiY2NlMBgUEhKirVu3avDgwRZ9qqqqspi0DAAA/DcZDIZGXXXk31jBpDEYTNau0CSVlpaqVatWunbt2r+2tinwoOL9Bntw7tw5derUSZs2bdKUKVPM22t+f53bj5bBwfb1xh8EMbum3esu3LeMzRq2RN+D5LVH7zwCBQAaQ2np72rVKsCma8+az/mLv32mli0bbx6m0tLraucWfN9f/3LPMwAAAAAAVjBsGwDuki3DlJs3588sAAD4b6me4qvx6rD2MmEYlWcAuEuJiYlydHSs93Hu3Ll73c0m4evrK5PJZDFkGwAA4L+MkggA3KUZM2Zo5MiR9cbUt1QYAACAfTL8+WjM9u5/JM8AcJe8vLxIjgEAAB4QJM8AAAAAAJs9qEtVcc8zAAAAAABWUHkGAAAAADTAg3nPM5VnAAAAAACsoPIMAAAAALCZQQ6NvM6zfdR07aOXAAAAAADcQ1SeAQAAAAANwD3PAAAAAACgDlSeAQAAAAA2M/z505jt2QOSZwAAAACAzQwGgwyGRkyeG7GtpsSwbQAAAAAArKDyDAAAAABoAAc1bh3WPmq69tFLAAAAAADuISrPAAAAAACbPagThlF5BgAAAADACirPAAAAAIAGMPz5aMz27n9UngEAAAAAsILKMwAAAADAZqzzDAAAAACAnVi1apU6deoko9GogIAA5eTk1Bv/xRdfKCAgQEajUZ07d9aaNWsadDySZwAAAABAAzg0waNhtm3bpujoaL322ms6fvy4hg4dquHDh6uoqKjO+LNnz2rEiBEaOnSojh8/rgULFuiVV17Rjh07GnTWAAAAAADYjbS0NE2bNk3Tp09X9+7dlZGRoQ4dOmj16tV1xq9Zs0YdO3ZURkaGunfvrunTp2vq1Klavny5zcckeQYAAAAA2MzQBD8NcevWLR07dkwhISEW20NCQvTNN9/Uuc+3335bKz40NFR5eXm6ffu2Tce1acIwk8kkSSotLbWpUQB3r+Z9VvO+A+xJze/tz7kZatmy5T3uDWD/uPQC0NTu5tqztPT3Ru7D7xZ9qeHs7CxnZ+da8ZcvX1ZlZaXatWtnsb1du3a6cOFCnce4cOFCnfEVFRW6fPmyPD09rfbTpuS5rKxMktShQwdbwgE0grKyMrVq1epedwNoED4vAACwT7Zcezo5OcnDw0MdOjzR6Md3cXGpdf0QHx+vN9544477/H2WbpPJVO/M3XXF17X9TmxKnr28vPTrr7/K1dXVbqYRB+yVyWRSWVmZvLy87nVXgAbj8wIAAPvSkGtPo9Gos2fP6tatW03Sj79fO9RVdZaktm3bqlmzZrWqzJcuXapVXa7h4eFRZ3zz5s3l7u5uUx9tSp4dHBzk7e1tU4MA/jkqzrBXfF4AAGB/GnLtaTQaZTQam7A31jk5OSkgIEAHDx5URESEefvBgwcVHh5e5z6BgYHKzMy02HbgwAH169dPjo6ONh2XCcMAAAAAAHZl7ty52rBhgzZu3KjCwkLNmTNHRUVFmjVrliQpLi5OkydPNsfPmjVL58+f19y5c1VYWKiNGzfq3XffVUxMjM3HtKnyDAAAAADA/WLcuHG6cuWKEhMTVVJSop49e2rfvn3y8fGRJJWUlFis+dypUyft27dPc+bM0TvvvCMvLy+tWLFCo0ePtvmYBhNT+gIAAAAAUC+GbQMAAAAAYAXJMwAAAAAAVpA8AwAAAABgBckzAAAAAABWkDwDAAAAAGAFyTMAAAAAAFaQPAMAAAAAYAXJMwAAAAAAVpA8AwAAAABgBckzAAAAAABWkDwDAAAAAGAFyTMAAAAAAFb8D+aPbxVfX9jLAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "_ = plot_composite_matrix(matrix, labels)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "smash-notebooks", "language": "python", "name": "smash-notebooks" }, "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.11.3" } }, "nbformat": 4, "nbformat_minor": 2 }