{ "cells": [ { "cell_type": "markdown", "id": "a87c470a-ccd8-462f-96ac-79cbf7b30cb2", "metadata": {}, "source": [ "## In-Painting\n", "\n", "In the first two tutorials, we saw how we can use Ledidi to design transcription factor binding sites by pairing it with a machine learning model, and then we saw how we can add hard and soft constraints to guide the designs using domain knowledge. However, masks and priors only cover certain forms of domain knowledge where you have precise knowledge of that cannot or must happen (and the soft versions). What about when you are less sure about what should happen in a region and you want to indicate that lack of certainty?\n", "\n", "In-painting is a form of design where sections of the sequence are removed entirely and Ledidi is tasked with \"filling in\" the region in accordance with the target outcome. In these sections, you do not care about the identity of the nucleotides in the design or even that they match the initial characters as closely as possible, so long as the design in its entiry achieve the target outcome. Put another way, these spans are free edits that can be used without suffering the input loss penalty making in-painting the conceptual opposite of masking. Because these edits are free, they are preferentially used to achieve the target outcome, but edits can still be made outside the in-painting window if needed. The name comes from computer vision where crops of images would be removed and the algorithms would be tasked with \"painting in\" the missing region, or \"in-painting\" if you want to sound fancy. \n", "\n", "There are three main use-cases where in-painting can be useful. The first is when you know roughly *where* you want motifs to be inserted but do not know exactly what the motif or combinations of motifs should be but you do know what you want the outcome to be. The second is when you know that you want to delete some element but you do not know what to replace it with. Finally, the third is when you want to move a motif but you want to make sure the affinity and context yield e.g. the same binding as before. In both cases, you can use Ledidi to figure out how these regions should be filled in.\n", "\n", "Let's see this in action using the same model we have been using so far: a BPNet model predicting GATA2 binding." ] }, { "cell_type": "code", "execution_count": 1, "id": "57958bfb-7e07-489c-91b4-bd7b542d52ce", "metadata": {}, "outputs": [], "source": [ "import torch\n", "\n", "from bpnetlite.bpnet import ControlWrapper\n", "from bpnetlite.bpnet import CountWrapper\n", "\n", "model = torch.load(\"../../../../models/bpnet/GATA2.torch\", weights_only=False)\n", "model = CountWrapper(ControlWrapper(model)).cuda()" ] }, { "cell_type": "markdown", "id": "5a38ae09-2759-4e8e-83ef-49cfe2ffff4c", "metadata": {}, "source": [ "#### Adding in Motifs to Background Sequence (GATA2)\n", "\n", "The first main use-case of in-painting can be thought of as \"off\" to \"on,\" in that you are taking a region that is thought to be irrelevant for the design objective and having Ledidi focus its design efforts there. This setting requires domain knowledge of what regions are truly irrelevant because, when using in-painting, there is no reward at all for keeping the initial sequence within these spans. But if you have this knowledge, it is a great and practical way of limiting off-target effects by focusing Ledidi's edits in a targetted manner.\n", "\n", "We can use the same SMYD3 promoter as in our other tutorials." ] }, { "cell_type": "code", "execution_count": 2, "id": "b0799cbd-fef9-4581-9e0d-5bf2ed7cef5d", "metadata": {}, "outputs": [], "source": [ "import pyfaidx\n", "from tangermeme.utils import one_hot_encode\n", "\n", "chrom, mid = 'chr1', 246507312 # Location of the SMYD3 gene\n", "start, end = mid - 1057, mid + 1057\n", "\n", "X = pyfaidx.Fasta(\"../../../../common/hg38.fa\")[chrom][start:end].seq.upper()\n", "X = one_hot_encode(X).unsqueeze(0).float().cuda()" ] }, { "cell_type": "markdown", "id": "5776e7a2-6c80-4ec2-9d6d-a39b02f2d0a7", "metadata": {}, "source": [ "Let's say that we wanted to block out a chunk of 20bp upstream from the TSS and did not really care where exactly the GATA motifs were within it or even what else might be added in. Potentially, the nucleotides here are just spacing or otherwise known to be irrelevant. In practice, one should be pretty careful about their designs in a promoter region but this is just an example to demonstrate.\n", "\n", "All we have to do to use in-painting is to zero out that portion of the sequence we want to remove and then running Ledidi normally. Essentially, because Ledidi must sample a character at every position, *any* character will impose the same input loss so Ledidi preferentially chooses characters that also decrease the output loss. As a technical note, the input loss for these regions is adjusted down to zero to make the optimization problem more stable, but conceptually the idea still holds. Something to keep in mind is that this means that any Ns in your initial sequence will be considered targets for in-painting. This is not a problem, necessarily, but just means that Ns in the initial sequence will not be preserved in the designed sequence." ] }, { "cell_type": "code", "execution_count": 3, "id": "ed32ffa3-db96-41b3-b3b0-888c080acda3", "metadata": {}, "outputs": [], "source": [ "mid = 1057\n", "\n", "Xip = torch.clone(X)\n", "Xip[:, :, mid+20:mid+40] = 0" ] }, { "cell_type": "markdown", "id": "ad94c4ac-8479-46d7-a788-6384b7370512", "metadata": {}, "source": [ "Now, let's run Ledidi with and without inpainting and look at where edits are made." ] }, { "cell_type": "code", "execution_count": 4, "id": "268b82d3-6222-4728-b2ae-158c135f7e3d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "iter=I\tinput_loss=0.0\toutput_loss= 4.0\ttotal_loss= 4.0\ttime=0.0\n", "iter=100\tinput_loss=12.81\toutput_loss=0.126\ttotal_loss=1.407\ttime=2.312\n", "iter=200\tinput_loss=11.06\toutput_loss=0.02843\ttotal_loss=1.135\ttime=1.18\n", "iter=F\tinput_loss=8.125\toutput_loss=0.07672\ttotal_loss=0.8892\ttime=3.988\n", "\n", "iter=I\tinput_loss=0.0\toutput_loss=2.951\ttotal_loss=2.951\ttime=0.0\n", "iter=100\tinput_loss=0.0625\toutput_loss=0.001094\ttotal_loss=0.007344\ttime=1.174\n", "iter=200\tinput_loss=0.1875\toutput_loss=0.01159\ttotal_loss=0.03034\ttime=1.188\n", "iter=F\tinput_loss= 0.0\toutput_loss=0.001706\ttotal_loss=0.001706\ttime=2.422\n" ] } ], "source": [ "from tangermeme.predict import predict\n", "from ledidi import ledidi\n", "\n", "y_bar = predict(model, X).cuda() + 2\n", "\n", "torch.manual_seed(0)\n", "X_bar0 = ledidi(model, X, y_bar)\n", "\n", "print()\n", "\n", "torch.manual_seed(0)\n", "X_bar1 = ledidi(model, Xip, y_bar)" ] }, { "cell_type": "markdown", "id": "8dbdac75-39ef-42dc-8aea-8eb6c396f964", "metadata": {}, "source": [ "Just looking at the losses we can see a big difference. In both cases the output loss is decreased significantly. However, perhaps even counterintuitively, the output loss is lower when using in-painting despire the input loss *also* being lower. Why? Well, Ledidi was given a 20bp window to make whatever sort of edits it would like without incurring any input loss. This means that it can design the best site and surrounding context to precisely match the target output, whereas the original design task had to balance matching the precise value of 2 with not making too many edits.\n", "\n", "We can now visualize where these edits are being made along the sequence." ] }, { "cell_type": "code", "execution_count": 5, "id": "db148757-02b2-401a-99b6-832ac95a088f", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy\n", "from matplotlib import pyplot as plt\n", "import seaborn; seaborn.set_style('whitegrid')\n", "\n", "%matplotlib inline\n", "\n", "edits_mask0 = torch.abs(X_bar0 - X[:, None]).sum(dim=(1, 2)).numpy(force=True)\n", "edits_mask0 = numpy.where(edits_mask0 > 0)[1]\n", "\n", "edits_mask1 = torch.abs(X_bar1 - X[:, None]).sum(dim=(1, 2)).numpy(force=True)\n", "edits_mask1 = numpy.where(edits_mask1 > 0)[1]\n", "\n", "\n", "plt.figure(figsize=(6, 1))\n", "plt.plot([1077, 1097], [0.85, 0.85], c='r')\n", "plt.scatter(edits_mask0, numpy.zeros_like(edits_mask0), s=3, c='0.5')\n", "plt.scatter(edits_mask1, numpy.ones_like(edits_mask1), s=3, c='m')\n", "\n", "plt.xlim(-20, 2140)\n", "plt.grid(False)\n", "seaborn.despine(bottom=True, left=True)\n", "plt.yticks(range(2), ['Unconstrained', 'In-Painting'])\n", "plt.xlabel(\"Coordinate\")\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "46ec6666-fbb0-499a-8612-59c3388ab063", "metadata": {}, "source": [ "As expected, it looks like when the edits are unconstrained they are made throughout the entire sequence, likely pushing regions that are almost GATA motifs into those that now strong ones. In contrast, when using in-painting, the edits end up being entirely within the in-painting window (denoted by the red line). Remember that Ledidi is not forced to do this. It can still make edits wherever it wants -- and when given complex objectives or a small enough in-painting window it will -- but the input loss will be lower if it makes use of the free space that it has in that window. \n", "\n", "Now, we can zoom in to that window and see what the actual edits being proposed are." ] }, { "cell_type": "code", "execution_count": 6, "id": "0304ec9d-391c-4620-a4a6-38496c7d3c40", "metadata": {}, "outputs": [ { "data": { "image/png": "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Hk0qIiIiIiJ1ToGHiIiIiIjUOQUeIiIiIiJS5xR4iIiIiIhInVPgISIiIiIidU6Bh4iIiIiI1DkFHiIiIiIiUufqPfBYsGABgwYNolu3bowaNYrPP/+80rQffvghEyZM4PLLL6dXr17cfPPNrF27NijNkiVLSEpKKvdXUlJS16siIiIiIiKVqNcnl69YsYKUlBQee+wxevXqxcKFC5k4cSLLly+nefPm5dJv3bqVPn36MHXqVKKjo1myZAmTJ0/mP//5D507dzbTRUZG8sEHHwTNGxISUufrIyIiIiIiFavXJ5ePHj2azp07M2vWLHPa8OHDGTJkCPfdd1+18rjmmmsYPnw4d999N1Da4vHkk0+esuVERERERETOrnrrauV2u9m5cydXXnll0PS+ffuybdu2auXh9/spLCwkJiYmaHpRUREDBw7kqquu4s477+Tbb7+trWKLiIiIiMhpqLeuVtnZ2fh8PuLj44OmJyQkkJmZWa08Xn75ZYqLixk+fLg57YILLiAlJYWkpCQKCgp4/fXXGTt2LP/9739p27Ztba6CiIiIiIhUU72O8QCwWCxB7w3DKDetIsuWLWPu3Lk899xzQcFLcnIyycnJ5vtevXoxcuRI5s+fz8MPP1xr5RYRERERkeqrt8AjNjYWm81GVlZW0PRjx46RkJBwynlXrFjBQw89xN///nf69OlzyrRWq5Vu3bqxb9++My2yiIiIiIicpnob4+F0OunSpQvr168Pmr5hwwZ69uxZ6XzLli1jxowZzJkzhwEDBlS5HMMw2LVrF40bNz7TIouIiIiIyGmq165WEyZMYNq0aXTt2pWePXuyaNEijhw5wpgxYwCYM2cO6enpPP3000Bp0DF9+nRmzpxJjx49zLEgoaGhREVFATB37lx69OhB27ZtzTEeu3fv5rHHHquflRQRERERkfoNPEaMGEF2djbPPfccGRkZdOzYkXnz5tGiRQsAMjMzOXLkiJl+0aJFeL1eZs+ezezZs83pI0eO5KmnngIgLy+PRx99lMzMTKKioujcuTPz58+ne/fuZ3flRERERETEVK/P8RARERERkfNDvY3xEBERERGR84cCDxERERERqXMKPEREREREpM4p8BARERERkTqnwENEREREROqcAg8REREREalzCjxERERERKTOKfAQEREREZE6p8BDRERERETqnAIPERER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OX3VCjy+/fZbvF6v+bo2WSyWoPeGYZSbVpFly5Yxd+5cnnvuuaDgJTk5meTkZPN9r169GDlyJPPnz+fhhx+utXKLiIiIiEj1VSvweOONNyp8fSZiY2Ox2WxkZWUFTT927BgJCQmnnHfFihU89NBD/P3vf6dPnz6nTGu1WunWrRv79u070yKLiIiIiMhpqvHtdB988EEKCgrKTS8qKqp2NysofR5Ily5dWL9+fdD0DRs20LNnz0rnW7ZsGTNmzGDOnDkMGDCgyuUYhsGuXbto3LhxtcsmIiIiIiK1q8aBxzvvvFPhMzFcLhf//e9/a5TXhAkTSE1NJTU1lT179vDkk09y5MgRxowZA8CcOXOYNm2amX7ZsmVMnz6d6dOn06NHDzIzM8nMzCQ/P99MM3fuXNauXcvBgwfZtWsXM2fONJ+qLiIiIiIi9aPad7UqKCgwHxhYWFgY9FwMn8/HZ599RlxcXI0WPmLECLKzs3nuuefIyMigY8eOzJs3jxYtWgCQmZnJkSNHzPSLFi3C6/Uye/ZsZs+ebU4fOXIkTz31FAB5eXk8+uijZGZmEhUVRefOnZk/fz7du3evUdlERERERKT2VPs5Hp06dTrloG+LxcIf/vAHJk+eXGuFExERERGRhqHagceWLVswDIPx48fz7LPP0qhRI/Mzh8NB8+bNadKkSZ0VVEREREREzl01fnL5oUOHaN68ebVueSsiIiIiIgKn8eTyw4cPc/jw4Uo/79279xkVSEREREREGp4at3h06tSpfCZlWj927dp15qUSEREREZEGpcYtHlu3bg167/F42LVrF3//+9+ZOnVqrRVMREREREQajhq3eFRm69atpKSksGTJktrITkREREREGpAaP0CwMnFxcfz444+1lZ2IiIiIiDQgNe5qtXv37nLTMjIy+Pe//01SUlKtFEpERERERBqW0xpcbrFYOHm25ORknnjiCdq3b1+rBRQRERERkXPfaT3Hoyyr1UpcXBwhISG1WjAREREREWk4am1wuYiIiIiISGVqPMYDYOPGjbz66qvs2bMHi8XCBRdcwPjx4+nTp09tl09ERERERBqAGt/Vav78+dxxxx1EREQwbtw4br31ViIjI5k0aRLz58+vizKKiIiIiMg5rsZdrfr168edd97JLbfcEjR9wYIF/Otf/2LdunW1WkARERERETn31bjFo6CggH79+pWb3rdvXwoLC2ulUCIiIiIi0rDUOPAYNGgQq1atKjd99erVDBw4sFYKJSIiIiIiDUu1Bpe//vrr5uv27dvz/PPPs2XLFpKTkwH46quv+PLLL5kwYUKdFFJERERERM5t1RrjMWjQoOplZrGwevXqMy6UiIiIiIg0LHqOh4iIiIiI1Lkaj/EQERERERGpqWqN8UhJSeHee+8lPDyclJSUU6Z98MEHa6VgIiIiIiLScFQr8Pj222/xer3m68pYLJbaKZWIiIiIiDQoGuMhIiIiIiJ1rkZjPLxeL507d+b777+vq/KIiIiIiEgDVKPAw26307x5c/x+f12VR0REREREGqAa39Vq8uTJzJkzh5ycnFopwIIFCxg0aBDdunVj1KhRfP7556dMv2XLFkaNGkW3bt0YPHgwb731Vrk0K1euZMSIEXTt2pURI0ZU+KR1ERERERE5e2o8xuP6669n//79eL1emjdvTnh4eNDnS5curXZeK1asYNq0aTz22GP06tWLhQsXkpqayvLly2nevHm59AcPHuSXv/wlo0ePZsyYMXz55ZfMmjWLOXPmMGzYMAC2bdvGb37zG+69916GDBnCRx99xD/+8Q/efPNNevToUZNVFRERERGRWlLjwOPZZ5895d2r7r777mrnNXr0aDp37sysWbPMacOHD2fIkCHcd9995dL/5S9/4eOPP+b99983pz366KN89913LFq0CIApU6ZQUFDAiy++aKb57W9/S6NGjfjb3/5W7bKJiIiIiEjtqdbtdMv6wx/+UCsLdrvd7Ny5k0mTJgVN79u3L9u2batwnu3bt9O3b9+gaf369WPx4sV4PB4cDgfbt2/ntttuK5fmtddeq5Vyny63201JSQk+nw/DMLBYLNjtdkJDQ7Hb7RQWFpKbm0txcTGGYWC1WrFYLPj9fsLDwwkLC2PXrl3k5OQQFxdHeHg4VmtpTzm/30/Tpk3xer3s2LGDrKwsEhMTiY+Px2q1YrVazXwuvPBCcnNzycvLw+VyYbPZzEDSMAwSExOJioqqz011WgzDIDc3l/z8fFwul7negbi6SZMmRERE1HMpRaQhKi4uJj09ncLCQux2OzabLejzDh061FPJRER+XmoceAwePJjU1FRiY2ODpufl5TFy5EhWr15drXyys7Px+XzEx8cHTU9ISCAzM7PCebKyskhISAiaFh8f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qtqBx+9//3vz9YwZM4Izsdtp0aJFuemn4nQ66dKlC+vXr+fqq682p2/YsIHBgwdXOE9ycjKffPJJ0LR169bRtWtXsxk0OTmZ9evXB43zWLduHT179qx22USAcndsO19ERUXRrVu3+i6GiIiINDDVDjx2794NwKBBg0hNTQ3qg3y6JkyYwLRp0+jatSs9e/Zk0aJFHDlyhDFjxgAwZ84c0tPTefrppwEYM2YMCxYsICUlhZtuuolt27axePFi5syZY+Y5btw4brnlFubNm8fgwYNZvXo1Gzdu5M033zzj8oqIiIiIyOmp8e1033nnHUaMGGEODAxwu92sWLGC66+/vkYFWLBgAS+99BIZGRl07NiRBx98kN69ewOlLSuHDh3ijTfeMNNv2bKFlJQUfvjhBxITE5k4cSJjx44NyvODDz7gmWeeIS0tjVatWjF16lSGDh1ao3KJiIiIiEjtqXHgcdFFF7Fu3bpyd47Kzs6mT58+7Nq1q1YLKCIiIiIi574ajxit7A5R6enp5+TzH0REREREpO5Ve4zH9ddfb95ybfz48UHPbvD5fKSlpVXrOQkiIiIiInL+qXbgMWTIEAB27drFlVdeGfQUaIfDQYsWLcyHPYmIiIiIiJRV4zEeS5cuZcSIEYSEhACl9/x/9913SU1NZffu3RrjISIiIiIi5dQ48AjYuHEjixcvZtWqVTRv3pyhQ4cybNgwOnfuXNtlFBERERGRc1y1u1oBHD16lCVLlrB48WKKi4sZPnw4Xq+XZ599lg4dOtRVGUVERERE5BxX7cBj4sSJfPHFFwwYMIBHHnmEfv36YbPZWLhwYV2WT0REREREGoBqBx7r16/n1ltvZezYsbRt27YOiyQiIiIiIg1NtZ/jsWDBAgoLC7nhhhsYPXo08+fP5/jx43VZNhERERERaSBqPLi8uLiY5cuXs3jxYr7++mt8Ph8zZszghhtuIDIysq7KKSIiIiIi57DTvqsVwN69e0lNTeXdd98lLy+PPn368Pzzz9dm+UREREREpAE4o8AjwOfz8cknn5CamqrAQ0REREREyqmVwENERERERORUqj24XERERERE5HQp8BARERERkTqnwENEREREROqcAg8REREREalzCjxERERERKTOKfAQEREREZE6V++Bx4IFCxg0aBDdunVj1KhRfP7555Wm/fDDD5kwYQKXX345vXr14uabb2bt2rVBaZYsWUJSUlK5v5KSkrpeFRE5T3m9Xt5++23efvttvF5vfRdH5LTpWBaRumSvz4WvWLGClJQUHnvsMXr16sXChQuZOHEiy5cvp3nz5uXSb926lT59+jB16lSio6NZsmQJkydP5j//+Q+dO3c200VGRvLBBx8EzRsSElLn6yMi5yfDMMjOzjZfN1jZwJsnXg8EOp8irZyTzptjWUTqRb0GHq+88go33HADo0ePBuChhx5i3bp1vPXWW9x3333l0j/00ENB7//4xz+yevVqPv7446DAw2Kx0Lhx47otvIjI+eZ/wN0nXv8NBR4iIlIj9dbVyu12s3PnTq688sqg6X379mXbtm3VysPv91NYWEhMTEzQ9KKiIgYOHMhVV13FnXfeybfffltbxRYROX8dq+Q1gKWKPxEROe/VW+CRnZ2Nz+cjPj4+aHpCQgKZmZnVyuPll1+muLiY4cOHm9MuuOACUlJS+Ne//sXf/vY3QkJCGDt2LPv27avN4ouInH+yKnl9ulzA8VrIR0REzgn1PrjcYgn+KcwwjHLTKrJs2TLmzp3L//3f/wUFL8nJyVx33XV06tSJSy65hGeeeYa2bdsyf/78Wi+7iMh55VQtHjW1CGgFxAPXAnlnmJ+IiPzs1VvgERsbi81mIysr+GezY8eOkZCQcMp5V6xYwUMPPcQzzzxDnz59TpnWarXSrVs3tXiIiJyp2mrx+AYYXyaP5cBoQGOZRUQatHoLPJxOJ126dGH9+vVB0zds2EDPnj0rnW/ZsmXMmDGDOXPmMGDAgCqXYxgGu3bt0mBzEakzFouFyMhIIiMjq9Vie84qG2ycbouHHxgHnHyH8w+BFaeZp9Sa8+ZYFpF6Ua93tZowYQLTpk2ja9eu9OzZk0WLFnHkyBHGjBkDwJw5c0hPT+fpp58GSoOO6dOnM3PmTHr06GGOBQkNDSUqKgqAuXPn0qNHD9q2bUtBQQGvv/46u3fv5rHHHquflRSRBs9ut/PrX/+6votR98oGG6fb4rEWqOz+IRrvUe/Om2NZROpFvQYeI0aMIDs7m+eee46MjAw6duzIvHnzaNGiBQCZmZkcOXLETL9o0SK8Xi+zZ89m9uzZ5vSRI0fy1FNPAZCXl8ejjz5KZmYmUVFRdO7cmfnz59O9e/ezu3IiIg3NyS0eBjW/Y9VrtVccERE5t1gMPSFIROT8VVXgUPYK0QPYUeZ9HhBVg3wMoCVwuJI0rwO3VpGPiIics+r9rlYiIuc6r9fL0qVLWbp0KV6vt76LU3cCLR6JJ72HnwIL4xTT9hIcdFwAPAVUPqxPzrLz5lgWkXpRr12tREQaAsMwzDFnDbYR2aC0e5UFaA9knHjfrgZ5bCrz2g68DfQC7gEur51iypk5L45lEak3avEQEZGqFVJ6J6oYIHCTwJoOMN9f5vU4SoMOgDDghTMpnIiInAvU4iEiIlULBBlxJ/6g5rfUTSvz+rqTPrscaH4a5RIRkXOGWjxERKRqgSCjbOBR0xaPsoFHRV2rWte0UCIici5Ri4eIyPmsbDd+SwXTAmqzxSOBnwaoi4jIeUMtHiIiUrVAkBHP6bd4HDzxv1mtlEhERM4xavEQEakFoaGh9V2EunWmLR6uMnk0ra1CSV1o8MeyiNQbBR4iImfI4XAwbty4+i5G3TrTMR45ZV43qY0CSV04L45lEak36molIiJVK9viEX/idU1aPNxlXifUSolEROQco8BDRESqVlFXq5q0eJSUeR1SKyUSEZFzjLpaiYicIa/Xy/vvvw/A8OHDsdt/JqdWSxWf1+TB1JUNLjeqsRwIbvFw1GC5clb9bI9lEWkQdEYRETlDhmFw5MgR83WDVLbFIwqwUdqKUQREVGP+6gQnUu/Oi2NZROqNulqJiEjVyg4ut1Dz7lbOMq89tVUoERE5lyjwEBGRqpVt8Sj7v7oDzMsGHiWVphIRkQZMXa1ERBqq6j6VvCpFlD6HA+BlSq8cRSfen06LR00fPCinJx+YC6wAioHuwF3ApT8l2b9/P5s3bwbgqquuIj4+vlw2IiK1RYGHiIicWtlAYfpJn1W3xSOmzOujZ1QaqY7PgFEE758vgFeALUDv0kk7duxgzZo1ACQkJNCvX7+zWUoROc+oq5WIiJzaqYKL6rZehAKNT7w+VeBhqeJPqpYJXM9P+80BtOCnK37RT0n3799f4WsRkbqgwENEpBbY7faGe+vRUwUXNXmIYKsT/4+cQVmkas8A2SdeDwV+BNJO/N32UzLDMCoMPBr0sSwi9UpnFhGRM+RwOLj99tvruxh151SBR03Ga7QEvqQ0WDkKNK0gTW2NSzmffXDifyjwFj/dCKAZpWN0TgzuP3bsGIWFhTRp0oTCwkIyMjLweDwN+1gWkXqlFg8RETm1U7Vq1KTFo2WZ15sq+HxvDfKSimUB2068vo6fgo4AC6UBCT+1cLRq1YqWLUt3zsGDB89CIUXkfKXAQ0RETq22WjxalXm99KTPPgXW1yAvqdhufmoh6nzqpIHAo2XLlrRq1SpomohIXVBXKxGRM+T1elm1ahUAV199dcPrHx9o1Yg+8Qel3XUyqVng0abM6wXAZOBySm/7ehcw88yKeU7YyU9B13VAt1rOv6DM68aVpgKCWzwKCwsB2LdvH++//z7QQI/l0+DxeMjPz8cwDKKionA6nVXPJCIV0hlFROQMGYZhdlExjAY4ICEQXMwG7j3x+kvgYmrW1eqKMq99wE3AeGAJpb/Unw+eAuafeL2T0jEYtSmszOvcypP5/X7zmC0beJTtamUYBunp6Wzbto29e/dSWFiIzWYjLi6OpKQkrrjiigrzbgj8fj8bNmxg69at/Pjjj3i9XgAsFgstWrTg7rvvJjo6uopcRORkCjxERM5lPkrvWpQJ5AGRwAWUDiSuLYHgoux4gcDrmrZ4tAICdduDwJ/PrGjnlOPA25S2RNgoDbgyqbJlokbKjqM5Ra+p9PR0XC4XoaGh7N27F7/fj8ViITs72+x2tWnTJhYtWoTf76dLly5cdNFFWK1W0tPTWbNmTYMOPBYsWMDGjRuxWCz079+fHj16EBERQXZ2Nrt27cLn89V3EUXOSQo8RETORenAY8BiSiu0FwNNKH1Gw05gFnBnLS0rEFyUfah1IPAoPrHM8GrkYwF+Afy7lsp1rnmD0i5qv6b02Rp/BV4H7qvFZVwAtAX2Udql6x8nlnWSAwcOAOByuXj++efN6RbLTw9LWbp0KX6/n1GjRjFkyJCg+f1+fy0W+ufl4MGDbNy4EYCBAwdy4403mp+1bNmSbt2q3z8uJyeHdevWsXPnTnJycvB4PFitVsLDw+nWrRs33HBDrZdf5Oes3gOPBQsW8NJLL5GZmcmFF17IzJkzueSSSypNv2XLFp566il++OEHEhMTueOOOxg7dmxQmpUrV/L3v/+dAwcO0Lp1a6ZOncrVV19d16siInJ2+Cl9QNwmSlsQfqC0whlgAIW1uLxA4FG2xSOK0iuIl9IWkeoEHlDataqhBR5VPdjQOPE378T78fwUeMwD/liNPMryAd9R2mJUQGkwE07p7Yl7AFdTuo3TgT8Bj1N6KxmD0m5eHas3iNztdgPQq1cvAHbv3m2OZQK48cYbadasNpvWfh7S0tLM1xdccMEpUp5afn4+Tz31FHl5eQwYMIBhw4aZ3bPy8/PJzMw847KKnGvqNfBYsWIFKSkpPPbYY/Tq1YuFCxcyceJEli9fTvPmzculP3jwIJMmTWL06NH85S9/4csvv2TWrFnExcUxbNgwALZt28bUqVO59957GTJkCB999BFTpkzhzTffpEePHmd7FeU8VVxczJdffsnBgwdxu91ERUVhs9kwDAOfz8fll19e4TFe10pKSigoKMDj8eD3+3E4HISFhREeHo7Ven7f5C4nJ4ejR4+Sn5+P2+3GMAwcDgfh4eEkJSX9vAaUHuen29EOIDjogNJKbGQtLi/Q1apsi4eF0kAk48TnrU6eqRJ9gEuBLRV8Vptdjs6m6jx7ZAPwLaUBwCMn0tmB7ym9o9eAaizHA0wDXqR0LMcfgK5AAqWB5iZK99HvgZcoDVD/BLxL6SD27cA3wJqfAo8BAwbQpEkToLQVZPPmzeUWe/ToUeLi4oiJiaFbt26kpqbi9/txuVzVKHTtMAyDzZs3s337dvLy8mjevDlOpxOr1Yrf7ycsLIxf/vKXtbKsNm3aYLFYMAyD77//3gy8amrHjh3k5eUBMHLkSBwOB1u3bmXTpp/uJX3bbbcRFRVVK+U+m/Ly8tizZw+ZmZm43W5sNpvZWtaiRYsatQqdbX6/H4/Hg8/nw2q14nA4sNls9V2sM+JyuTh27BgulwuPxwOA0+kkKiqKxo0b4/F4yMjI4NixY7jdbrxeLzabjdDQUJo1a0ZCQsJZK2u9Bh6vvPIKN9xwA6NHjwbgoYceYt26dbz11lvcd1/5tueFCxfSrFkzHnroIQDat2/P119/zcsvv2wGHq+99hp9+vThzjvvNNNs2bKF1157jb/97W9nac2CGYaBy+WiuLgYv9+P3+/HarVit9sJDw83KzSGYVBSUoLP5zObsW02GyEhIWf9S+Hz+SgqKqKoqAifz4fP58NisWCz2YiIiDjrg+oMw8DtdlNcXBxUHrvdTlhYGMXFxXz33XdkZ2fTqFEjsyJtGAZ+v582bdoQF3fyDe3rzrPPPsu+ffvo3bs348ePx2q1smrVKrxeL4ZhkJmZWauBR3FxMfn5+eb+CvTXttvtxMTEsGHDBjZs2EBkZCT9+/cnNjaWzMxM824tycnJtGnTpsrlbNiwgc8//xyr1UqnTp0ICwvD5XKZAdXFF198Vk9gtcHv9/PPf/6TXbt2cckllzB06FAiIyP54YcfcLvdpKWlERsbS7NmzcjIyCAvLw+Px4PdbjcrJ0H9vf3Aq8BaIIbSs+x9QGItFjqe0u46bwLvUNrd6jp+OqMfpLSSevo/1v4k0JUKyj8TIhB41GSch4XSLkc9y+QL8Ctg2GmW8VwQaO3oeeK/ceL11hOfDTgx2TDYuXMnWVmlG7Vx48Z07ty5tFL3DaVPJYfS4OKRUyzvr5S2pAB8deLvBJ/PZ/6qf/XVVxMbGwuU/rhXNvC45JJL2LJlC6+//jrXXnstrVu3pl27dmZl3+/3s337dvbv309JSQnNmzcnNDTU/BHD7/fTqVMnIiPPPAr+9ttvef311wF4/PHHSUxM5Mcff2THjh3k5ubicrnIzs421+VUXC4XWVlZFBQU4Pf7zeurYRiEh4fTunVr+vfvz5o1a/jss89wu910796dyMhIc4zHtddeW+U1pVOnToSGhuJyufjkk08YOHAgXbt2pVmzZjz55JMAZiXxTBUUFLB27VoOHDhAs2bNaNy4MVar1dxXkZGRdOzYkV27dnH48GHsdjtxcXHmuvv9fiIiIujYsWOVy/rmm2944YUXAJgyZQpt27bl4MGDHDlyBJ/Px9GjR+ncuXOV9ZbCwkI+//xzDh06hN1up0WLFjidTjOA8fl89O7du1Z+FEtLS2PZsmUcPnyY5ORkmjVrhs/nw+Vy4XK5iIuLo0+fPme8nJryeDwUFxfj9XrNuqHNZiMsLKxaP3bt3LmTxYsXc/ToUYYMGUKXLl2Ijo7GYrHgcrnIyMhg3759vPXWW9jtdm655RbatWtHRkYGubm55v8rr7wSn89HQUFBUD0iUFeNjo4mKyuLTz75hEOHDtGmTRtatmyJw+Ewr4MOh4PevXtXWeZ6Czzcbjc7d+5k0qRJQdP79u3Ltm3bKpxn+/bt9O3bN2hav379WLx4MR6PB4fDwfbt27ntttvKpXnttddqVL4ff/yRjRs3kpmZSefOnWnWrJm5gb1er1nxqsqXX37Ju+++i9vtZtiwYTRp0oRjx46Rnp5OWloaLVq0oEOHDqxcuZJDhw7Rr18/2rVrR3h4OBaLheLiYgBat27N0aNHAWjSpAkhISEUFxdTUlKCy+UiMjKSkpISvvrqK3Jzc0lKSiI+Pt6sHHm9XhwOB61bt66yzJs3b+b9998nOzubYcOG0a5dOyIiIvD7/RQUFJCTk1OtwCMrK4uMjAy8Xi9NmjQhLCzMPIEYhoHFYqnWBWnDhg2sWrWK7Oxshg4dSqtWrQgPD8cwDIqLi7Hb7Rw4cICNGzcSERHBoEGDCA8PZ8+ePezfv5+jR4/SvXt3Ro0aVeWyasv111/PqlWr2LdvH2+++SaNGzfG4XCwY8cODhw4QP/+/WnTpg2FhYUYhkGjRo2CfjGC0qAzPz+fvLw8DMMgLi7OPAbLplm9ejXr1q3D6/VyzTXX0Lp1a8LCSm9tE9hfkZGR5rYuKCjAZrORmZnJzp07SU9PxzCMagUeeXl55OXlmQFzWFgYaWlp7Nq1i6ysLNxuNwMGDKCkpMT8NQVKT66GYWAYBqGhoXz77bd8//33RERE0KFDB0JDQ8nOziY7O5vi4mI6d+7M3r172bZtGxERESQnJxMWFkZmZibp6ekUFhbSp08fsrOz+eqrrygpKeHiiy8mLi7OvP2nx+MhPj6e48ePs2/fPiIjI2nbti1Op5Pc3FyzstKpUyd69OhBcXExGRkZ7Nixg8jISPLz89myZQs5OTmEhITw0Ucf8e2339K2bVsGDx6M0+nk4MGD7Nu3j/z8fByOEx3p+wHZwGjgQkqDkE7ADErvCBVyJkfWCZYT+Q6kdLDybykNROIorcxHAnOpncAj0NphoTSQKiv+pDTV1ZHSuzn9DjhM6d2tXqJm3Y3OlBt4gdKKfyQwhNKWAwelwWMx0IXSAOEz4AtKuzI5KB203RO4Cqj6lFp6PPyH0gHlyykdiwOl260ZsBiMTIOvj3zN8uXLcbvdXHrppQCkpqbidDq55ppr6JbcDctyS2k3qjcpbUXpAkRQut+zKb0lcTdgKqW3Kn4MCPSOagNMhsNtDuPxeIiMjCQmJsYsZrNmzYIqeWPGjKF169Z88cUXLFy40PxBLDo6mnbt2mG329myZYtZ2W3bti0RERHYbDa8Xm+ttohcdNFFXHfddXz11VfMmzePCy+80GxJ3rx5M9HR0fTr149PPvmE/fv3ExsbS+fOnc3y+Hw+SkpKSExMZMGCBRw9epSrr76aiy66iKKiIjIzM9m9ezc+n49bbrmF0aNHc8EFF/D555+zY8cOs5XC4XDQpk0b7HY76enp/PDDDxw+fJgmTZpQVFREcXEx7dq1o0OHDsTHx3PffffxySef8PHHH/P+++8THR2Nz+cjNDTUrGiXlJRw/PhxsrOziYyMxO124/f7iY+PJyYmplo/PAZaIA4dOkTLli0JDQ3l+PHj7N+/ny+++AKn08mdd97JRx99xNGjRxk+fDihoaHk5ORw6NAhvv76a+x2Ow888AChoaHm/rPb7WbLQCCobN26NX369OG7775j9erVtG3bFrvdTnZ2Nh9//LH5A1fZcv/ud78D4LnnnjOnZWVl8c0333Do0CE6depESEiI+aNhoEJeHQUFBRw4cAC3202TJk0IDw83y19YWIjdbsfhcAT98Gu1WsnPz+fAgQN8+eWXREREnNXA43//+x+pqalkZmYybNgwWrRoQUFBgRkoREREcPvtt1eZT0xMDC1btsTn85GRkUGjRo2IjIzEarWaP2S3b9+eTp06cejQIXbu3El2djYlJSWkpaXxxRdf0KxZM2JjY0lNTaWwsJBrrrmGFi1amL0A9u3bR3R0NJdffjkFBQUUFBRgsVjMOkBgWdW9o6PFqKd7P6anp3PVVVfx1ltvBTVjPv/88yxdupSVK1eWm2fYsGGMHDmSu+66y5z25ZdfMnbsWNauXUtiYiJdu3YlJSUlqMn1vffe48EHH+Sbb76pdvkeffRRtm/fDvw02C7wP1CBKivw1FcI7h9aVtl8AvOfnE9Vy7JYLEEVz7J5nJyuonwCzYpQ+mtCYFognd/vN28beKp8HA4HjRo1MqNqj8eD0+kkNDQUn89Hbm5u0O0Hy/4vW26LxUJISIhZoQ4EkIEWjpMP5ursi5O3c0WHeGX7y+FwEB0djdVqNdcrJCSE0NBQSkpKzGbzQJAQ+KW77DIqK5PFYik3IPPkbXLy9jl5/orWpabb5+T8Ap87HA4iIyOx2+2UlJTgdrsJCwvD4XBQVFRkBklV5XOq9Tp5G1RU3pPXqexyqlqnU617dZdVdnmVDaCtsDwGRLtLA/ICZwF+y0/zRngisPltuOwuLsy+kJaFLSm2FXM04ih+i59ITyRR7ihsfhs743eSFfFTE0JF61BRmW1+G+HecIptxXht3nKfny6r30qkpzRozQvJC/qs7Hq5be6a521YsfvtNZ63VX4rBqYN5ILcC/Bb/GSEZeC1lq6z3W/n0xafcsXRK2ib15ackBw2N91Mob0Qw2JgYGA1rOyL3kdOaA4Y4PQ7cfgdWA0rFsOCgYHX6sVtcxPhiQAg35mPYTmx3Q2IckdhwVJuX1fE7rcT7gnHsBjkO/ODPot0R2I1rBQ5ivDbS/M5+bgr24JQlsWwEOILweFzUGIvqXQ72v12HD4HxfZiM7gLtAiffCxVtiw49fFX9vOTzwlhYWFERESYPxYFKrGGYVBQUEBJSUlQPoHzc2XX0rJlrex8EChHdc8tpzofVLbutbUNK0tf1fqdSmXn5uqkOXl62f1a2TpVtazqljnwv6prd0XHRkV1jers98BnVquV2NhY7Ha72QphsVgIDQ3FbreTm5uL2+02u/gFejAE8gq0Lnk8HjNIC3RrDtSzbDYbfr8/KKiqrG5otVpp1KgRTqcTl8tFSUkJdrud0NBQLBaLWZ6KtkN1rl/VuZZW5zoZ+NwwDN59990Kl1lWvQ8ur6wyWpP0J0+vaZ4VmT17do3SB6J5oFobviHw+/1s3LiRTZs20bZtW/bv38+AAQNOuz/s2VTV/tq+fTtfffUV8fHx5ObmctVVV5m3mGzojh49yp49e7DZbNjtdrp160ZISG38TC9SC9KADpQOqL6F0m5bJxnBCPia0u5Fx2BAiwGlrTWBy4AP6E5pC4acNXv27DF/vGncuHHQD0BlBc7P58u1VH4+/H4/n376Ke+99x49e/bk22+/pU2bNowdO5ZGjRrVS5m+++47Vq1aRdOmTTl06BDdu3fnqquuOmfHpdRb4BEbG4vNZjP7sQYcO3as0j7iCQkJ5e4Ccfz4cbMfeyDNyXkeP368zvudl20+PF9YrVb69u1brvtbQ5CcnExycnJ9F6NeNG3alKZNVSOTn6mWwNOUdjdaDtxN6QDrSEqDkTTgGuASav+p4HJG2rdvX+lnZX8Mqmja+XiNlbPParUycOBAc8xDoFdGfUpKSiIpKaley1Cb6i3wcDqddOnShfXr1wfd6nbDhg0MHjy4wnmSk5P55JNPgqatW7eOrl27mt2HkpOTWb9+fdA4j3Xr1tGzZ0/k/FbRhe3k6bq4iZwD7jnx5wKO8NMtZUOBa6ndgfxyVujcKz8nDofjp3F7UqvqtavVhAkTmDZtGl27dqVnz54sWrSII0eOMGbMGADmzJlDeno6Tz/9NFA60G3BggWkpKRw0003sW3bNhYvXsycOXPMPMeNG8ctt9zCvHnzGDx4MKtXr2bjxo28+eab9bKO8vOhC5tIAxMKtKvvQoiISHXV2+DygMADBDMyMujYsSMPPvigeTuuGTNmcOjQId5446dOvFu2bCElJcV8gODEiRPLPUDwgw8+4JlnniEtLY1WrVoxdepUhg4delbXS0REREREflLvgYeIiIiIiDR85/ejikVERERE5KxQ4CEiIiIiInVOgYeIiIiIiNQ5BR4iIvKzceutt/LEE0/UdzEqtHnzZpKSksyH4FVm0KBBvPrqq2enUCIi5xANLhcRaSAyMzN54YUX+PTTTzl69ChRUVG0adOGX/3qV1x//fWEhYXVdxGrlJOTg91uJzIy8rTmv/XWW9myZQtQei/+Fi1aMHLkSCZOnHjGT/p1u93k5uaSkJCAxWJhyZIlPPnkk3z++edB6Y4fP05YWNg5sb1FRM6men2Oh4iI1I6DBw8yduxYoqKimDp1KklJSXi9Xvbt28fixYtJTEys9OGsPycxMTFnnMdNN93EPffcQ0lJCWvWrOHPf/4zVquVSZMmnVG+TqeTxo0bV5kuLi7ujJYjItJQqauViEgD8Pjjj2Oz2Vi8eDEjRoygffv2JCUlMWzYMObNm8egQYPMtPn5+TzyyCNcccUV9OrVi3HjxrF7927z82effZbrrruOd955h0GDBnHxxRczdepUCgoKzDRut5s///nPXHHFFXTr1o2xY8eyY8cO8/NAt6S1a9dy/fXX0717d8aNG8exY8f49NNPGT58OL169eKPf/wjxcXF5nwnd7Vyu908/fTT9O/fn65duzJ06FDefvvtU26L0NBQGjduTMuWLbnlllu44oorWL16NQC5ublMmzaN3r1706NHD+644w727dtnznvo0CHuuusuevfuTXJyMtdccw2ffvpp0Drl5eWxefNmHnzwQfLz80lKSiIpKYlnn30WKN/V6vDhw0yePJmePXvSq1cv7r33XrKysmq0vUVEGgIFHiIi57js7GzWr1/Pb37zG8LDwytMY7FYADAMg0mTJpGZmcm8efNYsmQJXbp0Yfz48eTk5JjpDxw4wOrVq3n++ed54YUX2Lp1K//+97/Nz59++mlWrlzJU089xdKlS2nTpg133HFHUB4Ac+fO5ZFHHmHhwoUcPXqUKVOm8PrrrzNnzhzmzZvH+vXrgx4Se7Jp06axYsUKHn74Yd5//31mzZpFRERE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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from tangermeme.deep_lift_shap import deep_lift_shap\n", "from ledidi.plot import plot_edits\n", "\n", "start, end = 1047, 1127\n", "\n", "X_attr0 = deep_lift_shap(model, X)\n", "X_attr1 = deep_lift_shap(model, X_bar0)\n", "X_attr2 = deep_lift_shap(model, X_bar1)\n", "\n", "xa0 = X_attr0[:, :, start:end]\n", "xa1 = X_attr1[:1, :, start:end]\n", "xa2 = X_attr2[:1, :, start:end]\n", "\n", "axs = plot_edits(xa0, [xa1, xa2], colors=['k', 'darkorange', 'magenta'], figsize=(8, 2.5))\n", "axs[0].set_title(\"In-Painting GATA Sites\")\n", "axs[1].set_ylabel(\"Attribution\")\n", "axs[2].plot([29.5, 29.5], [0, 0.4], linestyle='--', c='0.6')\n", "axs[2].plot([49.5, 49.5], [0, 0.4], linestyle='--', c='0.6')\n", "\n", "plt.xlabel(\"Genomic Position\")\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "943b11f3-75f2-428e-8520-6fd4beb6757f", "metadata": {}, "source": [ "Each plot is showing attribution values in the window surrounding the selected in-painting window (denoted by the dashed bars in the bottom row). The top row are the initial attributions for GATA at this site in the promoter, the middle row are the attributions in the unconstrained setting, and the bottom row are the attributions when using in-painting. As you might expect, there are significantly more \"edits\" in the in-painting row than the others because the original sequence does not factor into what sequence is proposed there. It is actually only by chance that some nucleotides happen to be the same character!\n", "\n", "However, the more important point is that when doing in-painting, the edits ended up within the selected window without being forced to be there, they correspond to the biologically meaningful GATA motif that we expect would increase model predictions, and that this procedure is quite literally as easily for the user as using Ledidi normally." ] }, { "cell_type": "markdown", "id": "3d46c6e5-19cc-485f-a2cd-e5853934aa7a", "metadata": {}, "source": [ "#### Removing a Binding Site (SP-1 + Chromatin Accessibility)\n", "\n", "Our first example involved taking a region that was considered \"off\" and turning it into a region that was considered \"on.\" The natural opposite of this is to take some region that is considered \"on\" and turn it off. However, if all we wanted to do was, e.g., destroy protein binding, we could just shuffle the motif or even use Ledidi with an appropriate predictive model. Here, we want to eliminate a binding site while preserving some other characteristic of the sequence, even if that characteristic arose in-part because of this binding site. \n", "\n", "As a concrete example, let's consider an accessible site whose accessibility is driven the binding of several proteins. If we wanted to eliminate the binding of one of them -- perhaps because that protein is not cell type-specific enough or has some other undesirable property -- we may also want to preserve the overall accessibility of the region. The design task at this point becomes \"remove some user-defined protein binding site while preserving chromatin accessibility.\" Potentially, this involves swapping some other motif in to the region. But, what motif should we swap in? Should it be at maximum affinity or some sub-optimal affinity in order to match the influence of the first protein? Although we might initially expect that we could swap the other motif in where the old motif used to be, maybe there is some other positioning that is better. All of these questions can be solved with a design method like Ledidi.\n", "\n", "Let's start off by loading a ChromBPNet model, which makes predictions for chromatin accessibility, and analyzing the same SMYD3 promoter region as before." ] }, { "cell_type": "code", "execution_count": 7, "id": "d5163556-0618-4116-b359-68f2deb2a69f", "metadata": {}, "outputs": [ { "data": { "image/png": "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CE8++SRNmjShW7duzJkzx0YMGgwGZsyYQffu3WncuDEtW7bk0UcfZd68efnek+zsbD777DN69+5NixYtaN26NQMHDnRwIYiIiCAjI4MVK1aYz085fzUUN5/Q0FDV311cHF9hDz/8MAB//PGHOS01NZX169fTv39/h/wBAQFMnjyZAwcO8NNPPwHw6aefkpSUxGeffYZWq8333BVee+016tSpw8KFC8nOzs43b3BwMECB/pNqKKJW+Z+WlufPvn37eOaZZ2jWrBlNmjRh0KBBNq5Ky5cv54033gBg6NCh5jqwfPlyc54dO3bwzDPP0Lx5c/M+du7caXMc5b9w/PhxXn/9dVq1asWDDz5YqGspKftIi6zknkGv17Nr1y4aNmxIhQoVCrzdqVOn+Pzzz3nhhRcICQnht99+Y9y4cVSrVo1WrVrZ5H3//ffp0qULX3zxBZmZmbi6ujJhwgSWLFnC008/TZcuXbh27Rrffvste/bsYfny5eaXGghr49ixY3n++ecpX748CxYs4P333yc6Opp169YxcuRIfH19mTFjBq+88gobN24kPDzcpgwGgwGdTofRaCQ+Pp7vv/+ezMxMHnnkkVuea3JyMklJSTZdrApDhw5lwYIFfPnllzai1J6zZ88yaNAgKlSowLvvvktoaCjbtm3jk08+ITExkVdffZWGDRsSFRXF2LFjeemll8zW34JYHJctW0ZoaCidO3fG09OTP/74gxUrVvDqq68C5LvvnJwcMjIyWLduHUuWLDHvMywszPx948aN7Nu3j1deeYWQkBDKlSuXb3nGjRtH+/bt+eqrr4iJieGbb75hyJAhrF69Gn9//1uej0Jhromzdeudd95h2LBhvPrqq2zYsIEpU6YQFhZGnz59APj++++ZPn06L730Ei1btkSn03H+/HlSU1PzLXtOTg7JyckMHz6c8PBwcnNz2bFjB6+99hpRUVHm/S9ZsoRnnnmGNm3a8PLLLwPYWE3tUQTbu+++y8iRI2nRogVBQUH5lsXX15fu3buzbNkyBg0aBAhR6+LiQs+ePVVFeefOnRk4cCDffPMNLi4uLFu2jA8//JDq1avneyx77r//fubMmcPRo0dp2bKlzW86nY6cnBxOnjzJt99+S4sWLWjevLlT+1e4dOkSgMO1KMnnz549exg+fDh169Zl8uTJuLu7s2jRIkaOHMnUqVPp1asXXbp04a233mLq1Kl8+OGHNGzYEBANaIBVq1bx7rvv0q1bNz7//HNcXV1ZsmQJzz33HD/88IOD9fq1116jV69eDBo0iIyMjEJdS0nZRwpZyT1DYmIimZmZTvtlJSYmsmjRIipWrAhAq1at2LVrF7///ruDkG3Xrh2TJk0yr587d44lS5bw5JNPMn78eHN6gwYNGDBgAPPmzWPUqFHm9KSkJH744QciIyMBiIyMpH379sydO5f169ebXxrh4eH07t2b9evXO1i0nnjiCZt1d3d3xo8fr+pfaTQazaL38uXLfPbZZxgMBh599FGHvJ6enrz22mt88MEH/PPPP9x///2q1ysqKgofHx8WLVpkFikdOnQgJyeHOXPmMGTIEAICAqhTpw4gXmIF7bbft28fFy9eZMSIEWi1Wtq2bUvlypVZvnw5r7zyChqNBl9f33z3HRISApDnMTMyMvj9998JCAgoUJkiIyP59NNPzeu1a9dm8ODBLFy4kJdeeqlA+wBuWW57ClO35s6dS+PGjQHRJb5nzx5+//13s9A8cOAAdevWtfEfLohfrp+fH1FRUeZ1vV5Pu3btSElJYd68eeb9N23aFBcXF4KDgwt0z1u0aMHrr7/OzJkzeeWVVwCoXLkyHTt2ZPDgwQ7+sQr9+/dn6NChnDlzhjp16rBs2TJ69OiRr2h+99132bFjB1FRUbRv354nn3zyluWzR3lGxMbG2qQfOnSIgQMHmtfvu+8+pk6dWmBrr9I4NRgMnDlzho8++giAxx57zCZfST5/pkyZgr+/P/Pnzzf7Id9///306dOHzz//nJ49exIcHGxuJNeuXdumDmRmZvLpp5/SpUsXmzEK9913H3379mXq1Kn89ttvNufbp08fXn/99QJdQ8ndi3QtkEhuQf369c0vKBBd9dWrV3fofgd46KGHbNaV0dN9+/a1SW/cuDG1atVy6DILDQ01v0QAAgMDCQ4Opn79+jaWV2XAlVoZPv/8c5YuXcrSpUuZO3cuffv2ZdKkSSxYsMAh7y+//ELDhg2JjIykV69eHDx4kNdff52nnnpK9Vr069eP2rVrM2XKFFX/xOzsbHbt2sWDDz6Ip6cnOp3O/OncuTPZ2dkFck3IC8WlQ+ki1mg09O3bl2vXrjlcy8LStm3bAotYwEH0N2/enEqVKqmOnC9KClO3FBGrEBERYVOHGjVqxKlTp5gwYQJbt2518CfNjz///JNBgwbRrFkzGjRoQMOGDVm6dCnnzp1z9tRseOWVV9i8eTOffvopAwcOxNvbm8WLF9O/f38b9wFrWrduTdWqVVm2bBn//fcfR48eVXUrsMbHx4fnn38eEJa+wviWGo1G1fS6deuydOlSFixYwLhx4zhx4gTDhw8nMzOzQPv96quvaNiwIY0aNaJfv35ER0czadIk7rvvPpt8JfX8ycjI4PDhw3Tv3t1mMJ1Wq+Wxxx4jJiaG8+fP53uOBw8eJCkpib59+9o8NwwGA506deLo0aMOVlf785Xcm0iLrOSeISgoCC8vL6fDvgQGBjqkubu7q/rB2fvyKT5+1l3XCmFhYQ5CNK9j2Qsrxb9XrQy1atWyGezVuXNnrl27xpdffsljjz1m093ds2dPnnvuOTQaDT4+PlStWjVfK5FWq2XUqFG88sorrFixwsG6nZSUhE6nY/78+XmGNEpMTMxz//mRlpbGX3/9RePGjQkODiYlJQWABx98kOnTp7N06VLat29fqH1bk5c/Zl4oFl77NOswbsVBUdUt6zr04osv4u3tzerVq1m8eDFarZaWLVsyevRomzplz/r163nzzTfp0aMHzz//PCEhIWi1WhYtWmT2sbwdQkJC6N+/v1mM7t27lxdeeIHJkyerusxoNBr69evH/Pnzyc7Opnr16g5d/Woo/yvrqAPOoFxz+3vi7e1tvn6tWrWiSZMmPPHEEyxZsoRnn332lvsdOnQojz32GC4uLvj7+1O5cmVVoV1Sz5+UlBSMRqPqf0c59q3+Dzdv3gTI18KanJyMt7e3w74l9zZSyEruGZSu6K1btxITE1MsI8DtXy7KiyE2NtbheLGxsbf09ysqlIEgFy9etLHKBQcH5ytQ1HjggQdo3rw506ZNs+nGBDGiW6vV0rt37zy7ZgsbcmfNmjVkZmZy5MgRB5cOgA0bNpCcnOyUNVUNZy1xygvYPk3x+wPx4leLd5uYmFjoOlAcdcvV1ZVhw4YxbNgwUlJS2LFjB19//TXPP/88mzdvznNU+OrVq6lcuTLffPONzfW71SCxwtKqVSs6dOjAxo0biY+PV/Vj7tevH9999x2LFy+26T4vLoxGI//884+NaM2LyMhIXFxcuHDhQoH2Xb58+QL9T0vq+ePv74+LiwtxcXEOvyluFrc6lvL7+PHjadKkiWqeW/mrS+5NpGuB5J7ixRdfxGg08sEHH6gKi9zcXDZt2lRkx1NCBq1evdom/ciRI5w7d84hpFBxoQR0L6oX1+jRo4mOjnawunp5edGmTRtOnDhBREQEjRo1cvgoZVCsOllZWQU65tKlS/Hx8eGnn37i559/tvmMGTOGnJwcfv/991vu29nj3grlmAoHDhzg2rVrtG7d2pxWqVIl/vvvP5t8Fy5ccBAyzpStuOuWv78/PXr04MknnyQpKckmMoQ9Go0GNzc3GyEVFxfH33//7ZDX3d29wNf+5s2bqi4ser2eS5cu4eXlhZ+fn+q24eHhPPfcc2Y/zeJm+vTpnD17lqFDh+Lh4ZFv3j179mAwGFQHVRYld+r54+3tTZMmTdiwYYPNvTUYDKxevZry5ctTo0YNIO863rx5c/z9/Tl79qzqc6NRo0YFirkrufeQFlnJPUWzZs2YMGECEydOpH///gwaNIg6deqg0+k4ceIEv/76K3Xq1HGIt1pYatasycCBA1mwYAEuLi7mbv5vv/2WChUqFKhb0VnOnDmDXq8HRHfe+vXr2b59Ow8++CBVqlQpkmO0aNGCbt26qQqVcePG8eSTT/LUU08xePBgKlWqRHp6OpcvX2bTpk38/PPPgBjQ5Onpye+//06tWrXw9vYmLCzMIQoDwOnTpzly5AiDBw9WjbvZvHlzfvzxR5YuXcrTTz+d777r1q0LwNy5c+ncuTMuLi5EREQU+iV57Ngxxo0bR48ePYiJieHrr78mPDzcxiLdu3dv3nnnHSZMmED37t25du0a33//vUPDwplrUhx1a+TIkdSpU4fIyEiCg4O5du0a8+bNo1KlSvmKri5durB+/Xrz+cXExDBjxgzCwsK4ePGiTd66deuyZ88eNm3aRGhoKD4+PnlOsrFq1SqWLFnCI488QqNGjfDz8yMmJobffvuNM2fO8Morr+R730aPHu30NbgVKSkpZj/vzMxMzp8/z9q1a9m3bx89e/a0GSj3zz//8Ouvv9K1a1cqVapEbm4ux44d4+eff6ZatWoMGDCgyMtnzZ18/rz11lsMHz6coUOHMnz4cNzc3Pjll184c+YMU6dONTdylAGNv/76Kz4+Pnh4eFC5cmWCgoL44IMPeO+990hOTqZ79+6UK1eOhIQETp06RUJCAhMnTiyy8kruHqSQldxzPPHEEzRu3JiffvqJ77//nri4ONzc3KhevTqPPPIITz/9dJEeb8KECVSpUoWlS5fyyy+/4OvrS6dOnXj77beLxbVg7Nix5u9+fn5UrlyZsWPHFmoUdn68/fbbbN682SyaFWrXrs3y5cuZMWMG33zzDQkJCfj5+VGtWjWbwSleXl58+umnTJ8+neeee47c3FxeffVV1Rm3lEFeSjgle9zc3Ojbty9z5szh+PHjNGzYMM99P/LIIxw4cIBffvmF//3vfxiNRv7+++9CuzxMnjyZVatW8dZbb5GTk0ObNm0YN26cjb/ho48+SmxsLIsXL2b58uXUqVOHCRMmOMwg58w1gaKvW23atGHdunX89ttvpKWlERoaSvv27Xn55Zfz9Rvt378/8fHxLF68mGXLllGlShVGjBhBTEwM06dPt8k7btw4Jk6cyFtvvUVmZiatW7fO05+6S5cu3Lx5k3///ZdFixaRkpKCj48PERERfPHFF/Tu3dvpc7xdDhw4wMCBA9FoNHh5eREeHk7jxo156aWX6Nixo03eqlWr4ubmxsyZM80uKJUqVaJ///6MGDEiT2tyUXKnnj+tW7fmp59+Ytq0aYwdOxaDwUC9evWYOXOmTYSTKlWq8P777/Pzzz8zdOhQ9Ho9UVFR9OvXj969e1OxYkW+//57PvroI9LT082DzewHrEkkChpjXsMsJRKJRCKRSCSSUoz0kZVIJBKJRCKRlEmkkJVIJBKJRCKRlEmkkJVIJBKJRCKRlEmkkJVIJBKJRCKRlEmkkJVIJBKJRCKRlEmkkJVIJBKJRCKRlEmkkJVIJBKJRCKRlEmkkL0FBoOBI0eOqE6TKCk9yPtUNpD36Q5yairoswu1qbxPZQN5n8oG8j4VL1LI3gKj0Uhubi5y3ojSjbxPZQN5n+4QKafg4NtwdWWhNpf3qWwg71PZQN6n4kUKWYlEIrnbuL5WLK+tKtlySCQSSTEjhaxEIpHcbaSeFsubu0q2HBKJRFLMSCErkUgkdxupZ8Qy/QLkJJZsWSQSiaQYkUJWIpFI7jYUIWv/XSKRSO4ypJCVSCSSuwldJmRcsaynnM4/f8ppuPBz8ZZJIpFIigkpZCUSieRuIv2C7Xrmtfzzn/4W9r8GuvTiK5NEIpEUE1LISiQSyd1EVqxz+aP/gtwUuLG5WIojkUgkxYkUshKJRHI3kRNf8Lz6LEgzWXDjthVPeSQSiaQYkUJWIpFI7iaybxY8b+pZwBSkPfFgsRRHIpFIihMpZCUSiaQsk3AAtg2wrGc7YZFNOWX5nnoq73wSiURSSpFCViKRSMoyp6fDlaVC0IKTFtn/LN/TL4Euo2jLJpFIJMWMFLISCYgR20nHSroUEonzxJtm74peJ5a5yQXfNv2S7bo+s2jKJJFIJHcIKWQlEoCzs2FTVzH4RSIpKxhyLRMexG0VS2esqtlxRV8miUQiuYM4LWSjo6OJiYkxrx85coTJkyezZMmSIi2YRHJHubRYvNQVq5ZEUhZIPQtGnfiefFQs9U4I2SwpZCUSSdnGaSH79ttvs2uX6MqKi4tj2LBhHD16lKlTpzJ9+vQiL6BEUuwYDZB8XHy/8U/JlkUicYaUE5bvGVdFPFhpkZVIJPcQTgvZM2fO0LhxYwD+/PNP6tSpw+LFi5kyZQorVqwo8gJKJMVO+kWLFSthb4kWRSJxCvvpZzOuWeqyX51bb+/MwDCJRCIphTgtZHU6He7u7gDs2LGDrl27AlCzZk3i4mTrXlIGUayxAMnHwGgsubJIJM6QFeOYplhkW86AsPvy3tZogJzE4imXRCKR3CGcFrK1a9dm8eLF7Nu3jx07dtC5c2cAYmNjCQwMLOrySSTFT7JV92xuCmRGl1xZJBJnUJuOVrHI+teH8Afy3lafiXkyBIlEIimjOC1kR48ezZIlSxgyZAgPP/ww9erVA2DTpk1mlwOJpEyRccV23ZhbMuWQSJwlOw8h6+oHXhUhqFne28qYsRKJ5C7A1dkN2rRpw65du0hLSyMgIMCc/sQTT+Dl5VWkhZNI7ghZN0q6BBJJ4VCzyOoywb8eaDQQUF+4y6ihSy/eskkkEskdoFBxZLVarY2IBahcuTLlypUrkkJJJHcUKWQlZRW1qAP6DPCuIr77VAetp/q21mG6QtoXedEkEonkTuC0RfbmzZt8/vnn7Ny5k4SEBIx2A2NOnjxZZIWTSO4IalYtiaQsoEuzXTcahO+rh8mooHGxiFqHbU0WWb+60HEprKxYfOWUSCSSYsJpIfvee+8RHR3Nyy+/TFhY2G0XYOHChfzwww/ExcVRp04d3n//fVq2bJln/j179vDZZ59x5swZwsLCeP755xk8eLD59+XLlzN27FiH7Y4cOYKHh8dtl1dyF6LmZyiRlHaMRkc/V0O2WLoHWdJuJWQDGoJXBQiILPoySiQSSTHjtJDdv38/v/zyC/Xr17/tg69du5aoqCg++ugjmjdvzuLFi3nhhRdYs2YNFSs6WgeuXLnCiBEjGDBgAF9++SUHDhxg4sSJBAcH0717d3M+X19f/vrrL5ttpYiVqGI0ikgFEklZQy3qgDLFslugJc27ah7bm0RwQEOxDGpahIWTSCSSO4PTPrIVKlRwcCcoLD/++CP9+/dnwIAB1KpVi3HjxlG+fHkWLVqkmn/x4sVUqFCBcePGUatWLQYMGEC/fv34v//7P5t8Go2G0NBQm49EYo25ChtywKgv0bJIJIXC2q2g6kCx1GeKpauP5TfPPJ5/ikXWv4FYSousRCIpgzhtkX3//feZMmUKEydOpHLlyoU+cE5ODsePH2fEiBE26R06dODgwYOq2xw6dIgOHTrYpHXq1Illy5aRm5uLm5sbABkZGdx///3o9Xrq16/PG2+8QYMGDZwqn8FgwGg0otcLkaMsJaUTZ+7TvHmwfDmsXAmanBRw8bHNoDeAvN/Fgvw/FSHZaaLueoRB658gZgvkZos0Fx+7OqxyvXMzTduXF3l965nrvrxPZYMydZ8MOuGzrSnUGPMyTZm6T6UIrVZboHwao5Pm1VatWpGZmYler8fT09MsHhX27NlToP3cuHGDzp07s2jRIpo3b25OnzVrFitWrGDdunUO23Tv3p2+ffsycuRIc9qBAwcYPHgwW7duJSwsjEOHDnHp0iUiIiJIS0vj559/5t9//2XVqlVUr169wOd55MgRcnNlPFGJRCKRSCSSO02LFi0KlK9QFtmiRKPR2KwbjUaHtFvlt05v2rQpTZs2Nf/evHlz+vbty4IFC/jggw8KXK7IyEizRfbo0aM0atSowK0DyZ2noPfp6lVoaHIJfO89GPvKKVjfRgyIeXAXrK4BPfaDTx5+hUXA3r3g4gIF/I/eVcj/UxESvw/+6QZ1XoUmk+H4ZyJ+7O5noM08qNIn/+3/+xaOfgi9ToF3BchJElEPPILlfSojlJn7pEuHVVWEG5dS3+4hysx9KqM4LWT79u1bJAcOCgpCq9Vy8+ZNm/T4+HhCQkJUtwkJCSEuzjZuYkJCAq6urnlOj+vi4kKjRo24ePGiU+VzcbHt/tBqtbIClgFudZ/27oV0k2vg1q3wwUsZYEiHgLrgGQAhzUHrAsV0r3U6eOopIWT/+08s70Xk/6kIMKSLj38tUV+D6ovuW0M6uHneug7rU0Vez0CR1zNY+IxbbSfvU9mg1N+nhKOgNw2qvbEWao/IP/9dSqm/T2WUQr1G9Xo969atY8aMGcycOZMNGzY47fvh7u5Ow4YN2b59u036jh07aNZMfVrFpk2bsmPHDpu0bdu2ERkZ6eDioGA0Gjl58qQc8CUBYNcuy/d9+8CYaxowE9hELIOaO25UhBw+DOfPw9mzsH9/sR5KcrejN7XIPE1hEH1rC4sqgLYAsywqg72UvBoNaGV0F0kxkLDP8v3mjrzzSSSFwGkhe+nSJXr16sW7777Lhg0bWLduHe+88w4PP/wwly9fdmpfw4YNY+nSpSxdupRz587x6aefEh0dzaBBgwCYMmUKY8aMMecfNGgQ169fJyoqinPnzrF06VKWLVvG8OHDzXmmT5/O1q1buXLlCidPnuT999/n1KlTNrFmJfcuhw9bvickgCFXGbldTyyDmhTr8XfutHzfsKFYDyW521GEqIepB8u3BmASsq4FELL6DHBxAxcVC1HKWdPy9G0XUyIhwarVHr+35MohuStx2rXgk08+oUqVKixZssTcnZ+YmMg777zDJ598wpw5cwq8r169epGYmMiMGTOIjY2lbt26zJkzh0qVKgEQFxdHdHS0OX+VKlWYM2cOUVFRLFy4kLCwMMaNG2cTQzYlJYUPP/yQuLg4/Pz8aNCgAQsWLKBx48bOnqrkLsS+raVRQhgpVi2/OsV6fOsOhb3Wz/O4bcJHsdIjxXp8yV2EUnfdg8XSzU98oGAWWaMetN7qv53/ARgIZ6ZD6//ddlEl9zgpVjN+5iaVWDEkdydOC9m9e/faiFgQ/q6jR48ulNXzqaee4qmnnlL97bPPPnNIa926NStWrMhzf++//36RD0iT3B0YjY5C1mLVMrme+NZynPazCLEO6nFaMXYZjbD7eciKhscug3tAsR1fcheh1F3rmLGuipD1vPX2Rn3egjdhLwQPhGtrwDhduB1IJIUl81pJl0ByF+O0a4G7uzvpymgZK9LT0/P0U5VISgPx8ZCVZZdotmqZpvR0Dwa34hGSej1cumRZNwe+y7gMqf+JGcaurS6WY0vuQsxC1sqqqvjIurjfevu8hKw+BxJNPjg5NyH1zO2VU3JvY8iFzJiSLoXkLsZpIdulSxc+/PBDDh8+jNFoxGg0cujQISZMmEDXrl2Lo4wSSZFwTc0oYBYDvmKp0YB7YLEc//p1EbXAgZtWI9BipOOspIAYcsTSxj3AJGQ1BRgZnZeQTToCxhzLeoIclSi5DTKjcZhKWSIpQpx2Lfjggw949913GThwIK6uYnO9Xk/Xrl0ZN25ckRdQIikq7CK9CfQqVq1iwtoaa0O8lZCVI3olBUWZWtnajcA83XIBbBRGg3q9t7fAGrILVTyJBIBstQevRFJ0OC1k/f39mTlzJhcvXuT8+fMYjUZq165NtWrViqN8EkmRER+vkmjIBTTgUvxhh65ezeOHpCOW71mxxV4OyV2C0SAsqtZTfhqLwCKbcaVoyieRgHCZkkiKEaeFrEL16tWdmvJVIilpFCHr7g6PPgrLliFe5q7ed2Qwi91cHhbSnQtbJ5EA6lEHFItsQeazN+rVfWnzE7JnZkFYJwhoWPBySkoHRiMYdSLk2p1ECllJMVMgIRsVFcUbb7yBt7c3UVFR+eYdO3ZskRRMIikS0q+Ad2XQaMxCtk0bmDcP1q/HJAZ88t1FUaHq2mA0SAuYpHAojTCbNMUiW0DXArV8eY0wTz4B+16G4JbQfY96Hknp5fhkuPQLdN9fsDjDRYUiZP3rQ3g3uLr8zh1bck9QICF74sQJdKZRKidOnCjWAkkkRUbySfirKTT/Guq8TGKiSG7bFnx8oFMn1MVAMaEI2dBQiIgwWYiz4qQPoqRwqLkGOGuRVfOlzUlUzx+9HjCK0FxJRyGwkTOllZQkRiOc/lb4q17+FWo+U6yH++47CAmBJ58EdCYhW7EX1B8D11YV67El9x4FErLz589X/S6RlGouLRQju09+CbVHkpkpXtqtW4uf27Qh/6DwRYwiZAcMgFdfhf79gRw1x12JpAAY9Sq+3SaLLC6m+G6m0eJqwtaoV0/PTVY/XtwWy/fo9VLIliVSTlgGXV0pXiF78SKMGgXe3vDYY+CrWGRD2omJZwKLd/ZEyb2H0+G3xo4dS1qaY8D4jIwM6VYgKV3c2CyW6Rch8RCZmWK1Zk2xbNQIk0W2mLrZUs/B311M4WcwW4Tbt4f69aF6dfIWDRLJrVATotYW2ZNfwmIt7MhrohqD+qAw6zqp/G40QtxWS3qCnGa0TBH7r9X3rWBQiwNYNKxbBwYDpKXB6tVYXAuCmotlSLtiO7bk3sRpIbty5Uqysx27QrOysli1SnYZSEoJugxIsPLji91sFrIVKohl3bqYxEAxDX448al4gRz7GICMDJHctq1YtmuHmJYWhGDwrlo85ZDcnaj5uDobtUDNIptjJWQrPmxKS7QNo2TIQVKGsI4FrEst1gFY69dbvv/9N5ZjeVUUy4DIYju25N6kwEI2LS2N1NRUjEYj6enppKWlmT/Jycls2bKF4ODg4iyrRFJwUk6aQmuZyEk0C9lQ02y0tWuDJq+X+e1iNELMRvH90i9g0JGZKYIjVDXp1UaNsFi/Kj4C960p+nJI7l6MekfB6oyPrEHNomsUPo2+dcS6ImTTL9xeWSUlS9r5O3IYoxE2b7asHz+OELLuwaA1ucEENLgjZZHcOxQ4/FbLli3RaDRoNBq6d+/u8LtGo+G1114r0sJJJIVG5cGdlSX8tkzzeODhAaAiBork+OfE1LMgxGrCXjIz2xEWBspMzvXqYRGyYZ0hMFJ8JJKCkJ9rQYFsFFauBXtfgszr0GCsaAAGtxDp5dpB/BZIk0K2THOHGiI3b0JCgmXdaMQkZIMsiT417khZJPcOBRayP//8M0ajkWeeeYZp06YREGCZj97NzY2KFSsSHh5eLIWUSJxGRchmZoKvr11icVlk4+3CE2VcITOzndkaDFCrFnDGJGRD2otl6H1FXxbJ3YmqRdaZ8FtWUQtu/C1m9Kr2lFj3rgI6wKcqpAbJEHFlGYP+jt2/06dVEnWplinAAVyKwXAguacpsJBtbRrq/ffff1OxYkU0dyCAvERSaDIcp9HKzAQ/P7vEvEIQ3S5pZ1WPX7GiZd3NDYtFVrFSKJYwicQeoxH2vQSuftDsS9u6m5sqgt0747uq1ohTpmz2qgCpCF+YgEjb2eckZQtdiqWBU8ycdXzsgT7bVshKJEWM0zN7Xb9+nevXr+f5e6tWrW6rQBJJkZCT4JCUp5AtDteCVHUh63D83GTQuIKnyVQrQxpJ8iL1NJydLb5Xf9o02MtUd//tBXHboPaLpszGW+/PqBK1QGcSsm6BljTfGpbYsr41Idcxao2kFJNXXOBi4JraXBpGnW19kkiKGKeF7JAhQxzSrK2zJ0+evL0SSSRFgfLw9iwPWTcAISQdxiNaW6UOvy9CdUW8BeVa3t7xFf9YK/IUsu7BljL41r6940ruXq7/afl+YV4ebjGmZ3FBLHBq2+tMoTXcrCqqxsUSXaPheCF+r65wpuSSkkR5FnpVgrbz4J8Hiu1QN26oJBr1tvVJIilinBaye/faxg/Mzc3l5MmTfPvtt4waNarICiaR3BbKw7vDYri0BBCDvfK1yEb/BYkHoeoTwG0K2Wxbi7BeryE3F/z97fLlptg+5KX/mCQvov+yfL/xN/hFqAhZ03qBupJVrLZGU6QP+67gXNP/KbybGLhzXUbYKDMoz8IK3aF8NwjtXGyHiokRywcegFatTOG3DDrpWiApVpwWsn4OSgA6dOiAu7s7UVFRLF8u51GWlAJyEsXDs1w7cHGH62vJzBRRC2worsFeimuDfz1IOUVmlhCoDn8ffbbweZRIbkXSIct3XYa6W4xSl83RC/JBo3UUvMp2br5YZglD/J+8KoJPFbFero0zJZeUJIqQDbtfLCs4Rh0qKhQhO3AgDBoE27djmnTGp9iOKZEU2Rs8ODiYCxdkiBZJKSEnAcq1Bq07BLcCtwAyMy2ht8wUl49sToLY74M7oXz3vIWsUQdu9mZaicSOnGSzi4wFA2ZXAgWzm1dBLLIuKkLWtK61q6g5ieBT3bIefJs9FpI7hyJk/SPEUomQUiT7ThZ+26aZwlJMcx88+KCIENOxI+IZ55L3pDOXLpnCdEkkhcRpi+ypU6cc0mJjY5k7dy4RERFFUiiJ5LYwGk0vXlMkABdXCG5Jbi5o7TVrcVhk9Vmgz4TQTuAeCDWGkBktDuzhoXJ86T8muRWpZ1QSXXB0D3DCtUCjxUHw2lhkrWb4ykkCvzqW9aCmt96/pHSgCFlvkzU9qBkFa+gUgAOj4MKPkB0PDd8nPR18fCyTvrRtS77Ggt9+gyeegK+/hjffLJoiSe49nBayffr0QaPRYLRrQjVt2pTJkycXWcEkkkKjSxdWAO9KlrSgZhiNKhZZe4tWUaC8OBTLR/mHyLoofMsdLcI66VpQWkk5JQYLugeWdEkgO9YxTc01QOPEYK/8XAu0XrbpOYm2I89l46vsoDyP3E0jXd0DisYEqs+Gq8vE91NTof47pKe7Ua2apRo2bQoc0onILCp89ZVYfvIJvPSSSkNfIikATgvZv//+22bdxcWF4OBgPGQNlJQWlAe39YvXPQCDQcUiq9EWzJ/QqeOb/GN9TRZhz1D0HsJE4XB8gw5c7R13JSVO2nn4q4Xojn1ob8kPwsuOF0utJ7iaXFE0Lip110mLbF5C1sXu1aDPBLcAJGUQXapomGjdLWlFEQf+xj9isCpATjzc3EV6eifq1rVkqVwZOKhukT17FvaY5o2Jj4dNm6Bnz9svluTew+k+1UqVKtl8KlSoIEWspHShzxRLK0uaYoBQF7J5v/RXrgSnXb+ViAWe5S3H962rfnxj3tYKSQlycSHoM0QUC8XqVJJk3xTL2i9BF1P0gvwssnl0HR88KOq0yKsihM0zg1lVVKNR1FP3PIRs0lGIXl+Qs5CUBIbc4mmEJNhGMEKXRno6BAZakjQaRGNdRchu2GC7ftVxDhuJpEAU6g26c+dOfvrpJ86dO4dGo6FmzZo888wztG9fhE7kEklhUUIIWT288xWyhmzV3axeDX37Qt26cOyYaSaugmDuygs0Jxk0whri4FqQx0NeUsJc/tXq+1JTSLYSRBGylftAcDMx2ErNx9XaIuvibtNISk2Frl0hKQn+/Rc65+cjayNkTWmuKoMSjQbY9rjw4X1gG4TKd0Cpw6ArHiGbfMxmNSdHg04HQUF2+RQfWX0O/PuwSOv4K4cO2WeUSAqH0xbZBQsW8Pzzz+Pj48PQoUMZMmQIvr6+jBgxggULFhRHGSUS5zCNoLV+eBtM72sHIZmPRXbmTLE8fdrKilWg45uEsZVrg3J8VYusfTeupGTJTbF9SecmlVhRzGTfBDQiEgdAxV7qbjEaKyFb702o9qT5p19/FSIWYMoU8nEt0NgOgDSa/k9qFtmYv8WMYxjh5GeFOjVJMZOfNf12sBuAmJ4hHm7WFlnz8TVawAg3NoqPPocjctZjSRHh9Bt09uzZjB07lqefftomvXnz5sycOdMhXSK54xjzFrIFdS24cQPWrbOsb9gAAwYU8PgGk0XY2iKbl5AurvBfksKTdLSkS+BITrwYvKj1FOuhHSD2X6dcC6ztDJs2AaNdLBVTwb4+Ho+CoAbiu/0AMBAj1hWi1zn+Lil5DLnFMyFBlu0AxPQM8XBzELJ59DqdP1/0RZLcmzhtkU1LS6NTp04O6R06dCA9Pb1ICiWR3BaKkHS1vHgV1wIXhxk91Qd77d5tO7BXp3Pi+GYhHWgpUn4WWeUhv7UfbHkMMq47cTBJkaMa6qqEyb4JHmGWdZ8aJh/XPFwLlP+ACZ3OMrAGQK/Htu63+T+xNBpsRcfJzywCVc2XO95qp0U9aFJSNBh1oCmoX1RB92m0RNLouBQ8w80W2XxnTzSRmQmxps2ffRbCw4u2eJJ7C6eFbNeuXdlg76WNiGZw//33F0mhJJLbQhGSVg9PxVBlb4BS9zOEfftu4/gGx2k+8xSyBqvBXtf/gGu/i0FGkpIjK6akS+BIboolfBKICp2fa4E+yyb51CnIsK9W1r0Rykxdaj0EagPAAHJTIe2canFv3oQhQ0yWX0nJYtQVfdSN3CTxnAvtBFX6Q73RZJgmfVEfS2Ab7uvKVZHX1xf+9z+YNKloiye5tyiQa8HPP/9s/l6rVi1mzZrFnj17aNq0KQCHDx/mwIEDDBs2rFgKKZE4heIja2VBUiyxenujUR4W2f/+u43jG3VCULg4CmmH8I1G9W63O43BAFlZKlP43osoM2g1mggeIXB1ZYkWBxCiwd1ucIy1EO20En6viTkushK5w4Rqfda4WBp9CqquLqZj2PtyZ+Q9zPzzz4Urw19/wblz4C8nrys5DLlFHxlF+Y9U6CGWVZ8g97yoDw7uUy6uDj0HiYminvbqJZ45TzwBK1YUbREl9w4Fqt0//fSTzbq/vz9nz57l7Nmz5jQ/Pz+WLVvGyy+/XKQFlEicRrGIqghZBxcB6+7Z+zfCShEy65zJ0NS+vWXaRaeOb/fiyPP4+QjZhAT44gt46ilo1MjJMjiB0QgPPQSHDsGuXVC7dvEdq0yQGQNooOZwEULNuvu8pDDkgkewbZp1b4JHOcAlT4us4o8YHAyPPioGfomR5Lb5VDFbZF3FtYn+U/Q2uJcT6e7loHw3uCLClMXEwPTp4qebN2HJEnjhBafOVlKUGHTgagqRmZ1gmk0wwDaurLMo/rH+9cTSpyoGT1H31AfU2hoLUlJF3saNxXpgIDRvXvjiSO5tCiRkN8n+IUlZQrEyubjCjc1w6Rc0AY2A1/K3yHoEo1i0Ll4USd99B56eplHeBcXaXcBEnhZh1WlGBZMmwbffwuLFomvY09OJMjjBH3+AMs/J2LFi2si8yMwUeR56SFhT7kqyboBvTfCuLNYr9ynR4gAipJx9CCWNVsyuZJsoFnYWWaU+v/ACREWZGmoarUM+9R4KK9eC1NOwezj4VIPGppkca78IjSZBSgsA1qwR1n2FGzcKepKSYsG6sbyhrfABv38DlH9ANfuV5CscjztOl+pd8HT1VJ884ZLpIeFVwZxk8BQzKTq4FmhcVYSs2Ge1apa04mysS+5uiniSeYmkFGDtI5tyEs7NRRMjgsirCllDjk2SwSCsobVqCStBw4bQunUex9JoHD/GXMuLI+kYXF+LS4aYVcHBIuvianGFsOLCBZgxQ3y/dAmWFWNM/qgoy/c1a/LPO3WqENePPy7KdVeSFQN+dSzr4V1LriwKhlxwsZt4RuOiIkTVLbIJpjk6nnhCVNGhQym4kLW2yFqTafIlrvK4cKOp9RwA27YV8Jwkd4Z8QvwZjaIXJj7ekrbs5DJ6LuzJ1ZR8ZijQpYqlR4g5SW8Q4rQgFtnkZJE3NNSS5jAQVyIpIAWyyEZFRfHGG2/g7e1NlPVbT4WxY8cWScEkkkKj4loA4kGpKmTtXuapaa4YjWKecMUY0b27M8e3enGcmQFnZ+LiPgV4S+X4jtYKEP5iuVYDz4vLqpWSYjuaPb8p2G/etIjezEyYO1fMkX7XkR0Hwa0s626lwMHTkOsoRtSEaB4W2aQkUf8bNhTr3bsDMXkIYQchq4T8sHOByYoW+QNM4bkqimD3Mj5oKcNg1bC2Y/Vq6NMHIiLgwAHhr5qclQxYlur7NDX+rYRsniEGXdQsskK1WgtZiaSwFEjInjhxAp3JlHTixIk882mKYv5mieR2Mc9OZNvE12jUfGS1oLMdzp2cKvrGqlSxpNWo4czxVXxkNUIMFFTI/vuvE8e7DfbtU3N3UGfdOrCOsJecz3uuTKPPAs9S9oY15DqGUNJoHSNcuJjy2Flkk5JEiCNlNvGqVYEbBbTImkcq2oXmyowB9xDQmnbqWxOj0TKwbORI2Gs3i6mkJFB/L2dmwptviu///Qfffw+vvw7J2SYhm52fkM0Vz9cCx+q2E7IpjhZZiaSwFEjIzp8/X/W7RFIqUUSk3cPTzS0vi6ytGEhKEWKg0LENVQKAK1pA1bXAfuQ4cPhwIY/tJEq71MMD6tcXvrh5cafEdYljyAGPUvaGNZossroMODJepLm4CyFqNFoqmItpAI+KRdahPuflWoDRzjSvzBZmF9FAn+4g+OPiRGMnJES4oZw9C6tWOXuykiJFxSIKYpIXxXcaxL0CJyyyWh8bY0HeIQ5Nx9e4QMVH4PofZh9Zh8kTJJJC4JRXik6no0GDBpw+fbq4yiOR3D4u6kLWy6tgFtmk5NsUsiqzhbm5irIUJPxXerrG7H+6ciUU52R5yl/5pZeEi4EyilgNpcvY2/su9mczGsVL2jpma2lAiYRhyIb/pooPRlHPrH288xCyyckq9VnrZRHCCopQta6TZoVi9+cx5NhO0oDFF7dnT/F/a9QIWrWiSDAaxeBLG2Fs0MH2gbD7eZWBb/cme67t4cllT3I+0RSqQqPuh79xo/r2BbPI5lis/yYUS6zqM9aoF/kbTQAgLU3UKQ87t2+JpDA49TpydXWlYsWKGByaXBJJKULpgrV7eHt55REUXp9h8zJXLLJhYRQOFzcHK6u3p3B4tfZ7Fce3spaYgtJfvS6EeLt20Ls3fPVV8T3wFd/b4cOFxfr119XzGY0W6+2ff5rCN92NmCNe3EZoouLAkOsgHMyDv6xFq1LuXNuYcUlJKt24Wm+TELaqlBor6ytAcBtsLLLW6LNNYb8sKEJW8cUF6NJF7YScZ+ZMeOMN4dNpFmH/fQuXf4XzP8CxiUVzoDLO8djjLDq2iItJF0VCHu5LBw6ob28WsopF1mhloVe+OxNiUGVArU4nhKz65AkSiXM4bVd56aWXmDJlCklJScVQHImkCMjHIpuaapdXmcbWyqdQ8ZH1Upla3gG1h7zG0V3AyyRkHWZxtnYtaP0DADfjhWmjq2mwfHg4PPhgAcpSCOLjRVivBqbxOo88op4vI0NcuyZNoHNn6Ncvf+ttiaIWSSIflJHb0dFYRJ29aCxxVEbhuZpmr7DuUVCEbE6iOSlXpyUzU2WyC2V7vVWlNFtklWmW/azErYpFVmsbE04RspUqWdKKohGWmAjvvGNZnzEDMOjhxKeWxOtrb/9AdwEJmQk2S7WGtdEIx46J72vWwOzZlt/MrgUFtche/AUOvI1LonCIdhSyrqCzffDp9cKCK4fVSIoCp6f7mD9/PpcuXaJTp05UrFgRb7un4wo5PYekpDH7yNo+UT09VYSs1kcs9RlmUZubK56u7oU1yrm4OYpoDyGQHI6vcQW9rbUiPkEIhzpWEaDq1nXi+GpvhzzCEcTHi0FtSrdgQIBqNm7eFMt27SyH6N/fiTKVYn76SVikg4PhwK4cqoG4hzmJEPO3EIeVHyvZQrq4OXYPuyp110okuLiKOmUnZEHF+qVsn5NomU5ZEbI6KyuvvZVWwZDjYLlWE7JFwZo1tr0publA4n7ISSjaA5U1Uk6K5ZUVUP1xQE3Iutpa3YH0DC3JyaIx2rOneDwoYjY5O5lgr+Bb+8gqQjb6T7i4AK0mEmjl2OvkogVdmk2S3nAbz1eJxA6nhWy3bt1kdAJJ6UZ5wBp14F9ffBAW1sREu7zKyzw31dxNqsRDLLyQdfRJc3fTo9HkIWR1tonxCUJMVK5cyOM7QUIC1KyZx4+Xl4pZrRqM4eZNEWanenXLz8GlzI20MFy7Bq+8Ir4nJMCM/+XweRtEHUq7ANsHiJmrKt8smgMm7Bfd/mFdzA0OvUGPRqPBRZNPB5nG0aqG1mREyLGr1K7eIhauCb1B7NehPivbZ8eDtylEh1IGG+FhZZENaQ/NpsDp72zFzLXfwZBLQmxPwIvy5fM+lcKwZYtKYpLJpOjiUfpcQe4E+izYNRzCZsLuYeBTEULbk5gl6kNipqleaFzBYGqYtJoDm+4nLl7ct44dLZ0WAweKLMlZyVT2r1yAqAW28kHrIlwO1S2ydkJWL90KyhQZVyFmA1TuC+6BJV0aB5wWsq+99lpxlENSGslJEgMpPEKg5Qxwz8NcV9pQHrAGHYR3gfD7If0iXl5w+bJdXrNVKgGoDlj8twotZK1FR4UecP13NBohpB2mu9VohYi2QhGyRW3VUiM+XrzMHLi5G3YMFucRt4V4w3ZAaxOSzIbk4+AZbhNXsiyweLEIQ6SgyzZZx+1DXRUFiYdgQwcxYKvxZGj4PgB1p9elfkh9/njyj7y3dXFzsKqZ6252vG261lvM3mRCZ7LI5i1krUS62SJrJTwUw4U+RzTStIo7TrblOu0cArnJJMXFAF74+OR9KoVh/36x/PJLMYXy//0fkGYaZt/6ewi7D3YNLdqDlnaurICUExAGYIS4bRDa3tEiq3EVUS9ANESAmwmiMlg3YpWGaXJ2Mi0qtshfyGocZyT08hTPPMdxAFoH1wKNJv+Y1ZJShC4T/n0Yko7Aqanw0G6LW1IpwWkf2W7dupHoYNaClJQUunXrViSFkpQSdj8HMevh0i+wv3Q3YObNE8vRo8GgtM/swmqp+8iaulStXuaKRbbQFgMl3I3RKLqkfWrkfXwXR2uFImSL2+KZmyt8dn19VX48Ms4ixuN3c/OGuJaq4vriIlgbCb/XEhbHMoQyNa+7uxisYjTH3CyGt+zekULEApz8wpwclx5HXEZc/tuq+DlahKjdtlovSL9oGsVvNFtk83QtUAQh5CFkFSutXeVVGbmeaypiUQ9OvHQJypcXcU/79BEzlJF6RkSXqP4k+FSB+u/cYi93GdF/qiYnZCbg5uJm6yNr94xRLLJVq9pum6PPIUuXRWW/yvm7Fri4OzSsfLxEI9BhQK3Wy+H4Wq2K4JWUTs5MFyIWIPkYxJa+OIxOC9lr166pRi3IycnhhpxU++4h9SxcXW5Zt37ZlTK2bYNRo8T3uXNh4yaTkM2xfRB7eQnrm9L1lZkJehfTyzzzmjmfS17xEAuKYqWys0LYW2SNRlRdC7KybjM0jfUANPOBHFFeJA7H0aVD7D82SUmmKSUdLG05ibDnedMOU+BE/jP/3RHUBuCZmHdoHnuuWaYy27NHWIe2bIEdO0CjNZkt7a2ft0v6FYjfbV1IADJzM0nNSSU2PTb/7RUhq/WCuqZGpWIVsbK+WtKNkHYO0i/hYurydajPyvbJVpPcqNZd02vCLhKCWpg5vf42ezNUyMkRPQft21tmjRowAPGMCmpqEdoVehTdQcsCycct34PbmL8mZCZQLbAaCVlWFlm7Z2FcvLhBFSrY7dIkXm/pWuDibrHymvDxEusO48Dd/B2FrIu4r06RsB+STzq5kcRZbtwQMYbN9+fK8nzzlwYK7Frwt2K6ALZu3Yqfn5953WAwsHPnTirdib5QyZ0hdrNYalzIa2aY0sKUKbbxWROT3cAX0Nm+eD1NA6xjY6FiRREAvEGoSZlZvRS0WiEynH7QKihRE3KTwM1i7vTysn3Ix8ZCuJufg2uBci7FHWNRl5f1LPmkECgBDaH+u3DwbfMAOIe8V1fbWr5VwvyUFjJzM3l21bMMazqM1pVak5EhBFLXrtBG0QG57nAFh5f0bZN0SCz96gj/2Msifpliib2lkNW4ia59rSdUGQCnp1ksqskmX1HFiqxYak9Pg/hdaANFj4BDfVbypZwUs3SBrc84ptBaGo14DtgLWRUxo7jlFGXdjTVdmtq1LWkeHoj/V3BzS2J+PsZ3G0aDuG/lTeK9wyK4LgLsJmQmUDu4tu1gL7tnYUqqeEbZN0yTspIAk5DN1yLrOPgwTyHr6gfZtoPytFojBoNoXBUoJvWlJbBjkPjeajbUHlGAjSTOcvkydOoklp07w4b1BtyTDovGUIOxcP7/SrqIqhRYyL6ijIgA3nvvPduduLpSqVIlh3RJGUbpSui0CvzrwcG3S7Y8eZCTA+vXW9z4ypUDI3lbZEGEWapYUUwG0KC86UmedFQ8mI26IhCyJqtWbjJgGbHl5QVnzlgmYvrvPwj3DDDls3DbProFJG8haxJGzb+F8t3AzQ+dyejn6WmXN2GfWFYdCGjAkEVpJTot2nYpFjYB+1u3MQnZorbIKgOT2s6HkDbgVRGwCNiM3AzSc9Lxcc/DudTFzaGemIVo8nEhPBWhqfiwnp0lVk0WWYf6rIjWxIOi+9A6LTcRxWdcHN/dUchqHbuXFeN3UY4HjjFpbIdBifpMyyC1e430y+L8w7tBOmKgavUnAUjMSqRGYA12XzP1ALi4OTwL82pwJGcn46Jxobxv+VtbZJV7X/ERiF6Pp4cOjUZlQK2bP+TE20RnUSzrubmOZfh82+esP7+ev4eajGe5KZZeH4AzM6WQLSZGjLCMI9myBS4cvUCEPhPqvQONJ0Glx8S9LGUUuAl76tQpTp06RcWKFdmxY4d5/dSpUxw7dox169Zx//33F2dZJXeSpKPCIlfpEfCrLQanlEKOHxc+WUpYqD//BI2bqbcgV13InjdNeHP0KBYf2aTDcHM7GA24moRsoX24zLE81V0bFIvFyZOIucpzk23CHSkd4cUdHETZv4PnQfIJ0W0c2kmsV+qNzigunoO4TjoM3lWh7c/QfiGEP1CsZb4dYtJibJbXr4v0iAhLHhvXAp+qUHN40Rw8+ZgYDFeutVivNxoQ/rFhPmLmDRs/2SvLYHV12NpfWLOUcGDWKKIz9SwcGIW55tgNxHDVCiHrUJ+VfLkpFp9dRRxn2rmJuQWqW2TthKyr6202AlVQQr8FBdn9oMsQ1r57kSzT/fG1MlO7+qA36EnKSqJGUA2LRdYtQPSaWFlQdSYXEPuGaXJWMv4e/gR4BuRvkdW4Wfy9qw0E70poNMLCq+paAJB53Zzk5yfqSZZKu3f7le1surCJlGxTfYte7+CaICl6rl2Ddets0zyyTQ3wSqYA4+VaWt4LpQin+2Jef/11fFVGh+Tk5LBy5cqiKJOkNJB2FoKaWdYDI0uuLPmgtB4HDxbLiAjo1cf0xrN78Sshj3fvtloqYiDrBvzTXeTzEg/87MLOeOkWKJZ5COnDh8Vy717ESwZsfHS1LuIh7xDGpohRrCIO55kTLwaoKaJOo0Hr6qJepuRjwiqkdRddu7VfLNYy37wJS5bAhQvObxudGm2zVISsTSQGF604D32miMAQdt9tlthEVozo2VBaDyaXk9j0WKr4V8HHzcfiXpB4SEQLSb8k/NRPfiGEQ26S7T4VyytGMbOVOd1WyLq76XBxUbnPdvkAy/8hwy68h3ug46AyFw/LjE3dNotdmsaKFfq/o4KyL4cJSvSZwtVClyFG8F9ZYW6VXbsGixaJ5V2J4sPsU90mWXENqBFoJWTdTc9Dq+gWivuSq12fbHK2ELL+Hv5k6jLJ1efRmte6i+tvNy2wr69w11GIj0dMqgHC8m8iwN9o+d2OqylXAbiWYrp5Sq9P+0Xw8CnwvgNxCe9BNm0Sy4ceEoOSR4wAV52pweRfz5KxlEUsgEII2bFjx5LqMPQa0tPTGTt2bJEUSlIKyE0Dv4hb5ythLl0Sy0aNLGl+gZ7iBZdx1SavYtHZtQvS0mDrViwvbjBbGAL98/D1KijupnADWbZ+j4pb+Y4dIlrA/v1YQpolHjLny1NgFjF5HkeX7tBlq5rXoBeNhYAGljSXAnsrOc1//0HLljBokJiJbOdO57aPToumgm8FYtNj0Rl0pJmMPA4D2Fzciz7Qvi7dHL3Cmtj0WEJ9QgnxDrEI2XPfC19jJYKAIVeIAbV4sWpobRWfi4uRgAA130UVNwYXd+EPl2gXfcI9CDKuOOZVBiqawq653q5bjgqKJdlGyBpyTYPfPIVA29ZPfBANxKZN4cknRT05qYwPuvY7bO0Hp74Rdbcso/ilu9kalRTxWjOoJum56eTocywN60zL81CxnNv/9xWLrL+HsKLm6V6g9DrZhX7z8bENcXj4MBaLbPwes1Xf31/0EsSpBOu4lnrNZknCPvBvANUGgX8EtPhOvUyS2+L0abGcOFE0SL79FgJ80kWD18N+fuvShdNC1mg0qk6IcOPGDZsBYJIyji7NYR710ojy0LQeCAKIF69dpIVyptPZvVsE/05PxzKzlxUB/sLsWOggHB4mIZt+0SY5xBRidd06+P5700tEscjGbTNbWdzc8u52K0qUcEyqQtZO5ChC1qZMysv0DvkpvvaapeGSlWVyDXGC6NRoGoc3xoiR2PRYdYEEwvqZdYtwWM6iS7NYpqyIy4gjxDuEEO8Q4tJNx4zbKnxoH7sED2wTQsAjxNEiqtE6TBELWISDFYGBKvVZzSKr0Yg6mXJKrGeZHIndAsX/ydoC5+LucJ38/YRAtI7Na+bsXFhVBf6+36nR50q0BcXaC+QZicNohOees7gjpKSYXtDX1sCW3nB1BRwcBRfmFfj4pRLFIqs0Wva/BmfnkJiViJuLGxX9hA92YmaixSKr3FMsDQ4HIZttJ2Tzci9wMTm22jX4fHyElVWZ4W3fPsDVVB+vroDTwhfb3+RaYC9kc/Q5xKbHEuQZZLHIpp2H4JaWTL6ODULJ7XPhgngnNDeNn/T0BD/PdOF+V8onwSqw+aRPnz5oNBo0Gg3PPPMMrlZ9Enq9nqtXr9KpU+nznZAUAn2OydrhLV5UJz4Tlramn5d0yRxQwlk5WNXcgoQFQJdpfukpQlang7XKtOxad4dg84pFNtbWoFpwlBdH4gGbZEXIbtkiPvXrYxEd11aZY9kGBog3d3q6ZZviwNVVWIkdOlh06eBpaoGvqQ+pp/HVHQYibYWs4rfm6iMsLUnHQOsBwS2KvKzXromQMGFhohGwbZvz+4hOi6ZeSD02XdhEdGo0er142TvEV3XztZ0koCjQpVuE45oG4v91/0Zi02MJ8QqxWGRzU4V/esNx4F1JfAIbicGW6ZcdLYmufmKGJ2tUGqABAWpC1l0IIb2d6nQPAJ1pn8nHIbSNqNP6LIjfZfmvaD0cxHVwkChfbKztFMtc+wP2mgboZFyF099Cq1n5XDCrU1RrRLm4CRcQg60SO3RINHBq1IBZs2DZMtMPp74CjMKyl37R8ZzLGkr5FcvohZ8hN4GE8KoEegYS5CWeQQmZCYQrz6PYzVBZWK3d3dUby8lZYrCX4keep0VWmfjE7n+ieB3+84+I9/vPPzDmSdMzLvU/8cHiWmD9jM3OhphM0XBqXqG5xSKrSxWWWEmxcvEi1KplNw5Cl27p+dn/pnB1qv+OJQRgKaHAQvaBB8QgjpMnT9KxY0d8rJSDm5sblSpVoqp9dGVJ2USxtGk9RHfmf1NFC7wUCtmcHNFytLHWgPDpM2SLafUS9oJnmFnIOuAebBk8gUXIKqOlQTxkCxxSSOstXjA3NomXvslXVlWUKhbZ9ItmC265YCEGoqOhWrUCHrOQlCun4kdo1Fm6tY0GMBoICRbXxEYMKUJW6w2Jh+HvzmLgV+9LRV7OA6Y2wUcfwaOPio8SdaCgRKdFU7dcXcJ8wohOizYLWAfLt0eYxRJZVBhyLG4XqWfENTbkEpseS53gOhYhmxkNGC2DwkA0dtxDxDZKNBFzWcs5WmrdHSt6YKAIN6dEzDDXZ49QR39YV3/ATvUq01Ke+0HEpwVVK3FQoKi7169jy4WfAI14CdrPRHYLlPtkY+XVaES9M1uINYDRPAPYV18JX78HH4TYa2mwfbuIrNF+kfif2V/HsoYiYO3CnyVkJhDkFYSXqxfuWnfhauAbKH6M/gsu/gxAcKDYLtlOpyZnJ7Pt8jbq/09M652nRdZTDFC073UKMyWvXSsMBgkJqPZEKK4FysBbEDGdtdWv4efuR+3g2haLbG6q2IchV1hnAfzq3lkrYfpluDgfPCtAtcHgat+NU/ZJTBTPCRsMOZaZMnPihXuR/aDPUkCBheyrr74KQKVKlejVqxceprd6amoqq1ev5ocffuDUqVOcPFnwLiNJKUXprjQUoaNbUZKdABjAIyTvaQ4VK8TW3mJZsVfe1k2PMBshG+AnHvKKzxAIv9YCB+XQaMTxs27AlsfES7NCz/yFrBWKkL161eGnIqdcOZXjaL0dLFblgsQ1uWLtJqmIXQo7c0TBOW4K82s9eaB9MPdbEZMWQ7hPOOG+4cSkxZgFksNMRJ7lIdlJv4VbofV2tJwifGRDvEMI9Q4lNiPWMkDQy25Ai2Jlvf47BDaxSg8DTqnntSIwUPiFx8SI67Z9u4ifi0eIysAulamolf/Txfli6VNNXKfcFBurnGKRtRayBp0Ol5gNUONZS2M4teATrAQobb10ux+0Xibf4ypw31r4t6e5nij/VY0Gwt0PChFUc7hI8K1R9runFdcfu8FWCZkJpOek882ub3B1cRVCNrih+DHjqphdDggtJ57t9v99e+Gat0XWpFgTDwDPmpPLlxfL//s/+PlnUze1iquL4lqwzzSO6/JlOHUKAoKvUsGvAhV8K3Ag5oC4b4Zs4QKWGQNrTIOOBhX/M8dM4iHY2NniDx6/G1rPvnPHv0Pk5Kj0bLr6lOqQigpO+8j27dsXDw8Pdu7cyejRo+nYsSMLFiygc+fOLDP340jKGpcvC+fun36ClDQPy8htjYslRNUdZu1a6NsXHn8c/voLYR3c/yasCIXlobC1Hx4ewqKmt+txNb94rchzvg7FuqCsehrw9BQP2bQ0Yb0yuyIUFGXAV/Rf5iRV4aVSznLB4iF9ycqwaW85KSoUi6ziLxobi3h4KeHAKvcFMFtkrYVsrtH01NPZK8Gi5+JFsXSIJZqbKurE77Vh04MQvzfPfUSnRhPuG064TzjRqdHmKYBT7A0MnuEiVFDikaKbEN7Vx9I4sApf4+AjqwhZNz+4ukpM/btrmKUr979v4MCbVmVVGYRhL2RdPM2Wln9Ns0uaA8x4qLSuVOqkecCQNZ4m1XLTMupOEbL//WfJdnTfDSF4K3S3JPrZO7XnjSKObBpRILo8M21NvxcviUGdNqG6FKEd1NRx5/psiN4AN3eVrQFgipuK8t8rL65tQmYC11Kv8db6t8jIzRBCVuV+hpYT/+fLdm0Ye+Gat0XWVO+uLBfXzVRvlXsFVhFOPGyfrwAhIeIZt3Gj8JP98UeRfi3lGhV8K1DRr6LJImuSKCU50crJL0QvZeSHYoKY4pi+uhTg4qLyHrV+FwQ1V22UlAacErIxMTHMmDGDbt268fbbbxMQEIBOp2PatGmMGjWKBg0a3HonklLHkiVisNSbb8KwYfDiSI1oAeckiRdO28INjNh0YROvrX3NHO7IGebOhYcfFpMdbN8O48cjYmue/hZC74M6r0LqafxN/ysHa41K92pwsCUElw2e4bbrGlcqVBD7/OUX4WunFiYmXxQha4Wqm4CXo7oNKSeeJoq1wsan93bIjocDb8G6liI+aeIRypUTLfGDpsg4y5cjHl5Kl3Hjj0WZgoUFRwkdBrB5m6mBo0sTfrGRHxVBIdXJyBCDshz8Wfe/LuqEexCknhYj01XQGXTEpseaLbLRadFUFC6ynDtnl1mpDycmw+XFhSpvZiasWQO//24Syq6+li51k2+o0SgGnX2y9RPmHZ4nXAvMwlkj/n/Jx0X3rSJOcxJtu3PtRYLWy1Gc+tYwN6JmzxY9DYsWKdvb5fUMd7QGq+UD8DKplvP/Z3Y3CA4U6mXTJnEqMTFwYKfpvH2qidjKycctXcQFQBFH5+03cfV36NrOyMD8TDCjRHtwDxIz0e0ZAefnCRePNfVg80OwoR3sfKrAZSpxFIusErbPJFYTM20jWyRmJYrrpLH1vVL+z6esjPnHj6sI2bwsslpPIWoyr4nniel+qjbWvcpjPztkpYoGs3Dq2ROiTDNbX0u9RkW/ilTwqyB8ZF20QrTr0oVRRa2RVZwYckWDss7L0GgiNP0Mmn55Z8twh/DwwBzJxYyrjwj7Z9BBvVHgY29JKB0UWMi+8MIL9OrVi7NnzzJ+/Hi2bt3K+PHji7NskjuATgevvAKVKwsxc/IkdO+OGPCSVvDuPzV+OvQT0/dO55+L/zi1ndEIkycLx/MrV0Q35ZdfIkYaBzSE+9dDy2nQbQuKW7aDGPFx9NfWaOxihirYWWTxrWW2/L34ohD4IB66M2fCffdB69bCXzNPVGIdqrqQaz0dQpuEhwkhu3Kl8EmdP995f1BVdj4NZ2aAbx0hVKP/NIuEWbPEQ+y77xAvqLSzNtbIAH8drq6webO4J6dPw9p1XoBGvMRcvR0bBEWIViusxjYG0uwEuPQLRLwF3ffCo+dEiB4VYtNjMWJkxB8jWHd2nY2QtbYeZmdjOY/Lv9pY1AvKjh3iXj/yCDz2GHTpghCydv+ntNx0snRZHIo5xJmEM0LIKt36ujThl6o0yFSsWoDjNfePAG+7FpNVfd68WcRaNjf8TDOMWedVjdPpo9IK8zSplqsrRSQCIDxMh5ubuKbz58OYMeCiN5m83fyEz/raSNiufp/U8PMTfvBHrNxaDx9GuAeknLDJq9WqxDpW/Eg1WhFW7NxciNsCRz4UluKOS4VrQkAZMsQogi7dNqByQpZtFIGEzAQhBu0iiyg9LBs2CPGfnCwMGg6uBflNiqDUSWX6ZVR6TEAMzLOrp25ulh6y/fst0ROupV5D66IlNTuVG2k3RBxbNz/hn+ldCdotzLs8xUFWrLDGln/QkqbmenMXUL68yoBQV19hDbdrMJY2Cixkt2/fzoABA3j99dfp0qULWofRNZKyyJ49wtr43nsi9mK9evDss4hA28q0moVk6+Wt1AyqybbLzg0xP39edKsPHy6sqBqNSQyknhFdaBqtsLJoNFStIrqorEMxpaaiGrMT8hCT1rPjaFzBrza1ajlmGz8eXn5ZWK8HDRIjpPPE1/GJ7uuLuTvbBruXTFgFLwIDhctEx47w0kv5HKegpPwnRFmrWWJe9ge2QO0R1DO5nP30k2g4XLiAuB65KSIgvwkXFzEKPTdXhC57+GHQ6V2EEEo+XgQFzJ/AQCFQbCwGKaeEH3eNoaZCuuYpRpRegQPRB4hOixZuBuGibm3aJEI8GY2wcCGqVnIQ9WrZMpg2Df74Q1iys7OFYHv/ffj0UzGgauRIIbxOnRKW2YkTAb9aIuSU1TSdcRm2oiMuIw6jEqooMxoq94aaw8S6n0qFBPCzCg2gcRH3zjPM1h3It5ZqfRbb17V8964iGiT2QtY9yCHwPmCxyAJKd6urK+ZjPfOMuDbZBtNgH126aYCOc4N0NBph6du3T4jZ5GSYPh1xrumXIHarues5MFAMWrFp8CiiLzcV/OuL+2s0wrWVEPEGVOkPFXuKruOygm8t8RxMsHWlMU+CYL9ud//c3Y1UrSq69UePFvcqKUlYYPvX78/krpOJDIvMf5pab0dfrbp1VfLZ53X1Ac9Q1Tp5NeUqC44s4MnlT2LEKKaTdgsUsw2WBErPlEcoxG6BNQ1FGDeNxvHjDIZc+O9b2NwTNnWDk18VfdmdpEYNYaSwmWJYcQFKOmyb2aATvRoHRsGRD8Rg3xKkwEJ24cKFpKen079/fwYMGMCCBQtISEi49YYF2G/Xrl1p1KgR/fr1Y5/Sn5oHe/bsoV+/fjRq1Ihu3bqxyNxHZmHdunX06tWLyMhIevXqxYYNG267nIXBaBQtnGPHLHENb5ezZ4UlcNgwYSl0NpamPUp3Xf36dj8ENIKEPcLR3ej8FFNXU65yMekir7V+ja2Xtzq1rWJ9dBCdOQnCSmXUwbJgWBZM1XDRbblkichy5oype9xeSJqsVE2bWpJCQoRAw9/q5H1rgYsbTZrYbI3BILple/eGH36At96y8jNUw9fuKW3qmm3c2JJkHiFqLUa8KqLxLo/ipXP2bBFNjJBiGoRZoacQgJd/hZRT5uMYjVahcAJMg0NOfSVe/iYiTZO77dwpyiVOojHErDP5IRaf75giuBUXCACyTQX2DBej6ZeVg+2DVbePTot2WHd1FRakU6eE2Bw3zhTWS0UMHz4sGjATJohznzFD5G3eHMaOFRam5GQhhI8ehRdeEJZPT08RYYGASGHZOf+DOSpIbIatv0qOPocUjWk0tMOEBOUcu1U1WtsZd3xqiEgjGo1t/fOvZ1PvbPC3Uh7KBCh+dmokuKUQt8roZRBWfa/KqrFoGza0Xc/Sm1pvGVeEaCyEYGzcWNTRfv2gfXtTRBHlJbtjMBx4HYB6EcLCaD1QEzfTdUs7Kyz25dqJASz6LHFf0i7C7ueFr3VeJByAfa/Alj5iwJQTg9WKBa27uMcXTBZKk8UsITOBoU2GsuyJZfSq08siZO2fh761zJPIzJwJq1aJ78lZyQyKHMT7nd6nZcWW5pnCVPF3/J9UrqwSl9k+b2BT0LjYPIsVzJEKrNcDI+HmDofpkG8bXbrwjY7eIOqAic0XN7P54maxotRvfZZoNKdfFG40RqOltWT1PTdXhBz7+WdYvTqfSXUOj4OjH4kxCHVft0QKKkFqmGw/GzeK5fnzcDbO9Gf+7zvhC603hbPc1g+OjDP1JrpA9DrVfd4pCixkmzVrxieffMK2bdsYOHAga9asoXPnzhgMBrZv306ag3PFrVm7di1RUVG89NJLrFy5khYtWvDCCy9w3SF2i+DKlSuMGDGCFi1asHLlSkaOHMnkyZNZZzVB8MGDBxk1ahS9e/dm1apV9O7dmzfffJPDh51sMSitLGXIbED+3QkJmQkcvXGUzFzhGH3yJLRoAT16wP/+J4SnzUvYoHN6IMn+/WIGqwsX4PnnhQtASgq31TpUHjoOPqaBkWJw1aYHYO/LTpUTYPvl7dQOrs2jdR/lWOwxB9+t/FB83BLtN/EINbWQXSDiTQAaNtDh5WWJK9qzpymckn992xmOTANs2ra1JLVsabpU1sLFFPaoVSvbQ2dliVAyzZpZ0vK9zEHNbdfDOgPQrp3t8a2Paf29Q4d89l0YlJeAixtc/1O8/P/7hhYt7OIGgkXInvkfrLJYUtq3V9lvYGNhHd94H5yIKuJCW1AEt9JuTUqCA8dNAiknUQg678qWkcV2xKTFEOgZyFONnuKhWg8RkxaD0Wg0349Jkyx+evjXt/Up9Ajmk0+Ea8muXWJQ5Nq14kF/4oQo08SJ8PnnwpUAINR+DFaAqRWw/1UxAhqIzYwn0DOQ4y8fZ/vw7SItN0cc//xPwkdWiRyi0Vj2AeK6u3rbis5gq0qriDyfGuARTLlyeXT7Wm+v1MPAxraiNbilqDfWU1aHdhBd1oFWU+oBuHo71JM0fXlhhbvhnIuRNW3aiOW5c+KaAxYRn3nN7KNpX0+uX4f950zXzdpNRDk/fbYQtbGb4VIe3daJh4UPrWc4NP5EiA9DthA/RyfAziGw+znhf1tMGI1GDkYf5GLSRUtiQAMwmupH/C5AvIc6VulIv/r9aFa+mUXIWk8o4FURfKrbPAsVlAkRAPzd/fO3yNpPW+5dBRcX22dcZcW4b/08NMWZbm73iDQajVxPvY6Pmw8BHgFo0Ag/2aAWYornPSPgWhFd4xubYXV18YyL2yoGUOpziEmLoefCnvRa2Ev04iguESmnoPwD+Y4DuHhRNLjHjhW9nAcPClceVS4thLqvikgaXhWFgaGEBxsqjd3XXxc9dI8+Cpn6INGDEbcFlpcTcYBzEsRYhFazIWIU1B5p6TkqIZyOWuDl5cXjjz/OokWLWL16NcOGDWPu3Lm0b9+ekSNHOrWvH3/80WzhrVWrFuPGjaN8+fKqVlaAxYsXU6FCBcaNG0etWrUYMGAA/fr14//+7//MeebNm0f79u158cUXqVWrFi+++CJt27Zl3jwnByxZt7jglsPGn1r+FA8teIiPt4jBMaNHi8q8Z49o8f7+OzSrd0MMstnSBw6/Dwffgvh9wjq2c4hopR35EC7+onqM334TgmrmTCF0evY0CR611qHRKP580RtEaymP7l/loaO0yM2nGtJRrOTEi49CZrToYoleDwn78/zzbb28lRtpNxi4dCAAO67syPf6WdOwobBW/vabZRRlbCziRX7tD/ESqS66kz08RKxIBfNMMVp3CDGdnMYFwrsCtkLW/ML1DLeMyg4VCrJpUwi3cuuqUUOIfocBJ3kR2NiyT/dy5ge59UveLFathWz5hwDRALLGfk50p1EsMvF7hNN+9SGAOKf77rNkc3NDPLiU/FYho7pbDToHkzU7xHRCKSccpgQuSlq2FL6Ss2YJq3jz5nD8coS4t1dXivsWkrf6j06Npmn5pizot4Cvu39Njj6HxKxEYS21R+th6xNX6TEuXRI+fdbhaRR/Mmu/65o1xTW0brQajUBwc9GwMhrMYjs2I55wn3AahDagdaXWaNAIP9nQjsJ6uKoqnJ5m2ZF1mSqYKoibr8U1JcRKQSgW2WCLWujZ0+qUlPaJZ3mLG0K5VpbzVwSq0hUPolz2ZbGOROBfD3xrOdQTDy838f87NwdOfCGsa07y8MMqieXa2s5s5uJO587CT3biRBHtpGVLuBpfQTTOjk2Eg6NFd7zitxm7SZS7YT7jPaLXiXsX+SEkHoTLvwkL7bqWwkLV8n/QJErVnaioWHNmDb1+6UXb79uSmm1qrIXe55AvMTPRPBlCkGeQGOwFNpEyKP8gaDQOzxg92WTpsixC1sM/fx9Z6/qocYGKvQARv1fBHLLQqh5SXsSk79HDNv531XrxZOuz2T9iP0nvJYlJEVKuWer1hZ/gbMEm0bglxyaJa9JuvqjjlR6D3CS+P/A9D9Z8kAdrPcj3B74X/rCBjeHsTNE7lU/0hDlzxPvhr79g1CjRc9qnTx6Z9Znif6dLhz3Pw/rW+Ya5Ohl3kl1Xd2EsqigqKnTpIp5vMTHC8GZuMCpaQImoorwTvMpD7L/wVxPY8igXLoherVGjhGFg/HiVwWP5kX4ZTk0V9+bEZ8J1oYA4LWStqVmzJmPGjOHff/9l6tSpTm2bk5PD8ePH6dixo016hw4dOGhjurRw6NAhOtiZqjp16sSxY8fINcUPOnTokMM+O3XqlOc+i4K/zv7Fjis7+LbHt3y962suJV0iKMjiRA/iZaa7sASi/4SOyyDsPtEdG7cVtg8UwbprPScyW/kmWqN02SkGaL0+H5eFTffD4bGiSzvtnClMiqOLQMWK4oEyaxYMGABDhojBXwQ1tRVYYV2E+N70gHgJZMWIVplV/FVrtl3eRouKLWhavim1g2s75Ser1Qo/3a1boVMn4Y/avz9Qe4QY3PBXMzElo4m33zaJKhPm0DvKwzusK3iFm89X6UIxvxw1GpPFQmMWCG5uwm9M+XnYMFGORYtgyhTxsBozJp+TcNGKewyiO9MUDL9dO3F+bm5WwjCouWmmIi1UEsrq/vuFfywIEdu7d0GvXh4ENRfxR/c8D8ejxAvZhPWgtYEDTSdc28ox1yMEgltQvz488YQluW9fhJCxHggUWtSmZIGXF5hCWbN6teiVyDSGQ6XecHQ8bO0H0XmHdohOiybcR9QBZRmdGs2jj1rcFsDi30nN4aYvGqg1gsceEy4Dy5YJ39jjx0WjRKOBTz4R1vpr14TbQf/+Io7mBx+IWcheeAFhkTQ1HgDwiyBOZyDEW7icuLq4EuQVRFxGnIi3CibBa7QMBqxgpTyUPGCxxFoLi3KmFlv4A+ak55+3/PyssrlGI/7nGldLfbXeZ0Urpa8IWe+qFnFR83khYkDUGY2Ghg1N/1dEPR8wAKj+tOgVOPyuGPDl4lzLrFEjMXhOoVkzRFD6Wi9YEmuPJCxcY/7fLltmNUhSOf6pKcLFwcVDbHvue9g5NG9rLEBAffESj98L4d1E7NSbO0UDP6SdaMBt7Sue48VArj6X0etH82KLF6kRVIPPtn0mfqg2CFwtPYXGKo+TkJlAoGcgAIGegRaLbEADi2tKNeF+07KlbQOh80PiZWUjZPOzyPrVsbgMVO5vdp9ShKyLi3AFAcT7ROMqxFuYULehoZZnYJ06EF5buBVU8KtgXl5LvSae44rbC9h+LyyeocKSb8gV/4E9z6FLOc3s/bOJz4wnPiOe2ftnozPoxH8t6QgsDxHPmjxQGrRK56/RmI+QK/+QcIdKvwSNJuVb1J1XdtLrl16M/2c8X+3Ix5fWaISM62JmwIQDwpBlLHi8XW9v07vfCi8vhMXVjEZoFc/ycOpr8eyoIayxPXqICENTp8KHH8LHH6vEpc2z7AZY10LMJBrxpmg4OjEpze3aeQDQarU88MAD5tm/CkJiYiJ6vZ5ydtMthYSEEGc/AbOJmzdvEmIXVb5cuXLodDoSExMJCwvj5s2bDvssV65cnvvMC4PBgNFoRG+K16TX64mNFeGYQkKEGNJoIChYz0fbP2J4k+EkZiTyWJ3HmPjPRL75Zi7jx4s/dblywsdy+pRB1K18ELY/JXw2k89AUDuo/yGcniv+7Iovo0NANxg8WLwwP/lEWBy0WtECMrf6fHws25V/RPj/3NgiHOXjthIf/AYXr/oQEiIsmUaj8Jj4+WdR8ZYvF1avceNAbwDa/AL/9hJlbT1PdF/dPAg3dohR1Rd+hvDu4GEyXZqmDUrJSuFC4gV+ePQHmpZvytSdU9lwfgN6lXPKi8mTxenMmycEwiuvgD70fmj+PzjxOeRehYj3wDWIDh30fP212PeIEXr69jVdhurPw6Xl0OhTm+v58cfCv7VJE6vk2q+BTy3wrGxOfPVVEf6rd28hcL7+WliKv/tOWMZ79LDa3vraK0SMhpTzopx6y2CUd94RD3k/P1OyxgPqvC2ErEcFc94pU+DJJ+GNN0QX3a0unzJrkxnlKaJs2PYXOPA2HP9SDB6qPBj0etq2FQOU9u4VLWm9Hqj9OsTugpTj0HqueGHq9URFiQf1o4+KRoYeV2i3FLY9Lrqem//PpqAGgzhXo9GIESNGg8mXTJeL0WhEo+KfYTAacNFYWiZ6gx6ti5aPPhIDvubNEyK/f3/Qe0wHoyvE/C2602u+ZDm+1T1Jykiiqn9V9Ho9Ae4BBHkEEZMaQ71y9fj1VyHKmzYVfud6PVD+YQhqLYSyTy3eflvs56OPhDCtXh0WLxY9LZ99JsSwj4+oWzNmiBmOfvpJnP/TT5v22fgLSDwm3AXaziNp7zwq+1Y2/y+q+VcjPj0efZ1HocUs0W0d0h6aTxc7CGgKFfqYLJ91LedZ6yVw8bVNC+8O5TpB1SfNaY0aiSgcx46Z/k/Kbao5EgJagNbfnKivMQIupqOvOcJqnz3EPuu+AQYjoAfPilDjBci4BjWeM+edOFEI/5dfFtZfvbEfNIqCU98IYdjiO9sKbV95jQZLmqkuzJolrMrVqolGpF4PNJgAMVuFuI78GPR6vvtOPBtXrRL5u3YFvecoSL8Gl34V1uGGE8XLMjsJLi0RIq/uO+p/svCe0GQK7BxuKosLlLtP1I8TX4FXFcBTrKttn50gLOwe4cKip0sR5fVwHPmpVvd/PPQjfm5+VPCpwMD6A/l8++eMaD6Cyv6V0Tf7BhJBH/E+aaEP4qn1JMg9SLxbPcuRk5tjee7WGyfGPYR2M5fz66/FuIJevaB522T8jvjh6+qLXq8n2DMYnV5n2V7tGVf/Qzg+Sdxbq3o2ZIgwGoSHm5JdfKDO6+BVCVy8zHknTBARLr75BmLSrhPuFY631hu9Xk91/+rcTLuJ3gh0WCEmt/EMg9b/h0GvQ4PG/Pywv263pMlUOPQOrGsnxHVQG9ZcPY67xp2vH/waEL2sf5z6g0frvAQZN0SYOe8qQniqXJPnnxeGq1GjLC57b70l3s/KNTRfy6bfiuP/87CoE5UGgMEUj0wRnxoXbqTdYPjK4Tzd8GkCvQL5/sD3NCvfjPurm0zd1v+b09OFe0vEm5B1Xcws2eA9cPG2zK6mzwS3APRu/mhdtKZdiGezi8aFSZNET/Kff4r/WI0aoOc+cZ/P/wiNJwgLbcdVcOg9WB0B7v5Q41k+/VTPrFnw7ruWwblvvGGZtviW1Bsn3I9O/Q8yr0LcdrQN3ivQphpjcdqq8+HGjRt07tyZxYsX08zK8XDmzJmsWrWKv/5yDHvTvXt3+vXrx4svvmhO279/P08++STbtm0jNDSUyMhIPvvsMx6xar6vXr2acePGcdSJkVHbt2/H09Pz1hklEolEIpFIJEVKixYtCpSvSCyyhSEoKAitVstNu77x+Ph4B6urgpq1NiEhAVdXVwJNQ8BDQkIc9pmQkJDnPvOiXbt2wiKr13P06FEaNWp0Z0OO7XhKdNt3/l10Y23rC90Pgl8pC0iszxE+s7oUi0+of4RqaBZlcNqOHZZG5N698MADwsF83Dgx6Cw2ViWKwq2KUVL36Q5x8qTw742KElYuhXbtxOC4334Ty+RkYel1ccI4URxkZorBerm5wvofFibKdDL2JNnXs2nUqBFXr2pp0ULc+w8+EL+npwsjR1pOGldTrhLuE272+ZPcOe72/9MtCQgo3HR669tBaHtoNkX0HGVFC/9bu9nWjhwRPRpTp8Jzz1nSH/nlEdpWasvrbV/nx4M/suLUCjY/uznPw93L92nKjin8c/EfLidf5vfBv1Mt0OTipAzMTk4WPqirqkLTL8SAqgNvirEdj527o2UtlvukzzbN7GYUrktajwJvqjPoeOPPN0jOTubBmg/yTNNniqZM9qgNkv9vhdAzPQ6LyDOnp4uJFhpPKPRhSkzIuru707BhQ7Zv386DVqN1duzYQTfrCdWtaNq0Kf/8Yzvyddu2bURGRuJmmvKnadOmbN++nWfNTmAij7XVtyC42CkBrVZ7Zx8UyYeg4sPg4QuX50OVx8DD39Y7vjSg9YLK3W+dD/Hg/uor4bvWqJEYUbxmjRAvb78tBIyPjxA9hS7Onb5PdwhfX+GbefWqEHwajfC/2rxZBDX/8UfRje3rK7q4SvoS+PqqdynVD6vPoeuH0Gq11Kyp5cAB0Y31xRfCn7JaNeGnG+AVQIBX/pFCJMXP3fp/uiXp6YX7E7X6TvjhHnpbiAuPAPB2fKA1aybcm1auFN3r7u6iK75WhVpM2DqBCVsnADC0ydACXf978T6N6TSGgY0G4ufhR7CXlZuGEoJHqwWNF2hdIeM8eIdDq29FNJASulZFep+03uCuNlVlwcox67EiGjiXH2pOwrkpENYeDr4KFR+Bcs2Eu9RtXJcSE7IAw4YNY8yYMURGRtKsWTOWLFlCdHQ0gwaJWV+mTJnCjRs3+OKLLwAYNGgQCxcuJCoqiieeeIKDBw+ybNkypkyZYt7n0KFDefrpp5kzZw7dunXj77//ZufOnfzyi3okgFJLhYfg6jKo+jg0+VQ4b3sV38xJd4KPPhK+iDt2iAE75ctbBl6dOSN8iSXqVK8Of/8t/HO7dxfxSZs1E76Itz0QrASpUcPWwiyRlGlC2kLH3wqU9YEHxMeamXsbokGDv4c/qTmpNAxtqL6xBMBihc0LFzfotlk0Lrb2EeuhHR1Dh0nuHG7+YnbO7HgxaFzrrT5zoBOUqJDt1asXiYmJzJgxg9jYWOrWrcucOXOoZIoNExcXR7TV3JxVqlRhzpw5REVFsXDhQsLCwhg3bhzdreK9NG/enKlTp/LNN9/w3XffUaVKFb7++mua2Ee4L+00/VI4lh+bJLpHgltA5cdKulS3TePGtpMCpKeLwWa9e4uoAKmpYtDN66+XWBFLLZ06iY9EIikmrAecKd/v4DCSBqEN8HbzJvHdRCpNrUSD0DI0bW5pwf5+BUZC2x9LpiySvPEo5+ByU1hKVMgCPPXUUzz11FOqv3322WcOaa1bt2bFihX57rNHjx70sA+SV9bQekD9d8TnLsbHR8TaXbdOjF4NCLANsyORSCT3Cg3DGpKem87JmyeJTouWFlmJpACUuJCVSFxcRJgc64DtEolEcscpmSA+ZkK8Qwj1DmXVqVV4u3lTPbB6iZZHIikLlPDYZolEIpFIJAoNwxqy6r9V1A+prxpnWSKR2CKFrEQikUgkpYQGIQ3Yc22P9I+VSAqIFLISiUQikZQSGoY1xIhR+sdKJAVEClmJRCKRSEoJbSu35aFaD9GxaseSLopEUiYosSlqJRKJRCKRSCSS20FaZCUSiUQikUgkZRIpZCUSiUQikUgkZRIpZCUSiUQikUgkZRIpZCUSiUQikUgkZRIpZCUSiUQikUgkZRIpZCUSiUQikUgkZRIpZCUSiUQikUgkZRIpZCUSiUQikUgkZRIpZCUSiUQikUgkZRIpZPNh4cKFdO3alUaNGtGvXz/27dtX0kW6p5k9ezb9+/enWbNmtGvXjpdffpnz58/b5DEajUybNo2OHTvSuHFjhgwZwpkzZ0qoxBIQ9y0iIoLJkyeb0+R9Kh3cuHGD0aNH06ZNG5o0aULv3r05duyY+Xd5n0oenU7H119/TdeuXWncuDHdunVj+vTpGAwGcx55n+48e/fuZeTIkXTs2JGIiAg2btxo83tB7klOTg4ff/wxbdq0oWnTpowcOZKYmJg7eRp3BVLI5sHatWuJioripZdeYuXKlbRo0YIXXniB69evl3TR7ln27NnDU089xa+//sqPP/6IXq/nueeeIyMjw5xn7ty5/Pjjj3z44YcsXbqUkJAQhg0bRlpaWgmW/N7lyJEjLFmyhIiICJt0eZ9KnuTkZAYPHoybmxtz585lzZo1vPfee/j7+5vzyPtU8sydO5fFixfz4YcfsnbtWt555x1++OEH5s+fb5NH3qc7S0ZGBhEREXz44YeqvxfknkyePJkNGzbw9ddf88svv5CRkcGLL76IXq+/U6dxd2CUqPL4448bP/zwQ5u0Hj16GL/66qsSKpHEnvj4eGPdunWNe/bsMRqNRqPBYDB26NDBOHv2bHOe7OxsY4sWLYyLFi0qqWLes6SlpRkfeugh4/bt241PP/208ZNPPjEajfI+lRa+/PJL4+DBg/P8Xd6n0sGIESOMY8eOtUl79dVXjaNHjzYajfI+lQbq1q1r3LBhg3m9IPckJSXF2LBhQ+OaNWvMeWJiYoz16tUzbtmy5c4V/i5AWmRVyMnJ4fjx43Ts2NEmvUOHDhw8eLCESiWxJzU1FYCAgAAArl69SlxcnM19c3d3p1WrVvK+lQCTJk3ivvvuo3379jbp8j6VDjZt2kRkZCSvv/467dq1o0+fPvz666/m3+V9Kh20aNGCXbt2ceHCBQBOnTrF/v37ue+++wB5n0ojBbknx44dIzc3lw4dOpjzhIeHU6dOHXnfnMS1pAtQGklMTESv11OuXDmb9JCQEOLi4kqoVBJrjEYjUVFRtGjRgrp16wKY743afZMuIXeWNWvWcOLECZYuXerwm7xPpYMrV66waNEihg0bxsiRIzly5AiffPIJ7u7u9OnTR96nUsILL7xAamoqPXv2RKvVotfrGTVqFI888ggg/0+lkYLck5s3b+Lm5mY2xFjnuXnz5p0p6F2CFLL5oNFobNaNRqNDmqRkmDRpEqdPn+aXX35x+E3tvknuHNHR0UyePJn/+7//w8PDI8988j6VLEajkcjISN566y0AGjRowNmzZ1m0aBF9+vQx55P3qWRZu3Ytq1evZsqUKdSuXZuTJ08SFRVFWFgYffv2NeeT96n0UZh7Iu+b80jXAhWCgoLQarUOraL4+HhCQkJKqFQShY8//phNmzYxb948ypcvb04PDQ0FkPethDl+/Djx8fH069ePBg0a0KBBA/bs2cP8+fNp0KCB+V7I+1SyhIaGUqtWLZu0mjVrmi1G8v9UOvjiiy8YMWIEDz/8MBEREfTp04dnnnmG2bNnA/I+lUYKck9CQkLIzc0lOTk5zzySgiGFrAru7u40bNiQ7du326Tv2LGDZs2alVCpJEajkUmTJrF+/XrmzZtHlSpVbH6vXLkyoaGhNvctJyeHvXv3yvt2B2nbti2///47K1euNH8iIyN59NFHWblyJVWqVJH3qRTQvHlzs9+lwsWLF6lUqRIg/0+lhaysLAfLnlarNVvu5H0qfRTknkRGRuLm5maTJzY2ljNnzsj75iTStSAPhg0bxpgxY4iMjKRZs2YsWbKE6OhoBg0aVNJFu2eZOHEif/zxBzNmzMDHx8fsh+Tn54enpycajYahQ4cye/ZsqlevTrVq1Zg9ezaenp5mfzJJ8ePr62v2W1bw9vYmMDDQnC7vU8nzzDPPMHjwYGbNmkXPnj05cuQIv/76K5MmTQKQ/6dSwv3338+sWbOoWLGi2bXgxx9/pH///oC8TyVFeno6ly9fNq9fvXqVkydPEhAQQMWKFW95T/z8/Ojfvz+ff/45QUFBBAQE8Pnnn1O3bl2HAbKS/NEYpUNGnixcuJAffviB2NhY6taty9ixY2nVqlVJF+uexT4WqUJUVBT9+vUDhNV2+vTpLFmyhOTkZJo0acKHH37oIKwkd5YhQ4ZQr149xo0bB8j7VFr4559/mDp1KhcvXqRy5coMGzaMJ554wvy7vE8lT1paGt9++y0bN24kPj6esLAwHn74YV555RXc3d0BeZ9Kgt27dzN06FCH9L59+/LZZ58V6J5kZ2fzxRdf8Mcff5CVlUW7du346KOPqFChwp08lTKPFLISiUQikUgkkjKJ9JGVSCQSiUQikZRJpJCVSCQSiUQikZRJpJCVSCQSiUQikZRJpJCVSCQSiUQikZRJpJCVSCQSiUQikZRJpJCVSCQSiUQikZRJpJCVSCQSiUQikZRJpJCVSCQSiUQikZRJpJCVSCSSMsaQIUOYPHlySRdDld27dxMREUFKSkq++bp27cpPP/10ZwolkUjuWuTMXhKJ5J4iLi6O2bNn8++//xITE4Ofnx/VqlXjscceo0+fPnh5eZV0EW9JUlISrq6u+Pr6Fmr7IUOGsGfPHgDc3NyoVKkSffv25YUXXkCr1d5W2XJyckhOTiYkJASNRsPy5cv59NNP2bdvn02+hIQEvLy8ysT1lkgkpRfXki6ARCKR3CmuXLnC4MGD8fPzY9SoUURERKDT6bh48SLLli0jLCyMbt26lXQxb0lgYOBt7+OJJ57g9ddfJzs7m82bN/PJJ5/g4uLCiBEjbmu/7u7uhIaG3jJfcHDwbR1HIpFIQLoWSCSSe4gJEyag1WpZtmwZvXr1olatWkRERNC9e3fmzJlD165dzXlTU1MZP3487dq1o3nz5gwdOpRTp06Zf582bRq9e/dm5cqVdO3alRYtWjBq1CjS0tLMeXJycvjkk09o164djRo1YvDgwRw5csT8u9INv3XrVvr06UPjxo0ZOnQo8fHx/Pvvv/Ts2ZPmzZvz1ltvkZmZad7O3rUgJyeHL774gvvuu4/IyEgeeughfvvtt3yvhaenJ6GhoVSuXJmnn36adu3a8ffffwOQnJzMmDFjaNWqFU2aNOH555/n4sWL5m2vXbvGyJEjadWqFU2bNuXhhx/m33//tTmnlJQUdu/ezdixY0lNTSUiIoKIiAimTZsGOLoWXL9+nZdeeolmzZrRvHlz3njjDW7evOnU9ZZIJPceUshKJJJ7gsTERLZv385TTz2Ft7e3ah6NRgOA0WhkxIgRxMXFMWfOHJYvX07Dhg155plnSEpKMue/fPkyf//9N7NmzWL27Nns3buXuXPnmn//4osvWLduHZ999hkrVqygWrVqPP/88zb7AJg+fTrjx49n8eLFxMTE8Oabb/Lzzz8zZcoU5syZw/bt25k/f36e5zZmzBjWrl3LBx98wJ9//snEiRPx8fFx6vp4eHiQm5sLwHvvvcexY8eYOXMmS5YsMV8P5fdJkyaRk5PDggUL+P333xk9erTqNW3WrBnvv/8+vr6+bNu2jW3btjF8+HCHfEajkVdeeYXk5GTmz5/Pjz/+yJUrVxg1apRNvltdb4lEcu8hXQskEsk9weXLlzEajdSoUcMmvU2bNuTk5ADw5JNP8s4777Br1y5Onz7Nzp07cXd3B+Ddd99l48aNrFu3joEDBwJCgEVFRZl9VR977DF27tzJqFGjyMjIYPHixURFRXHfffcB8PHHH7N9+3aWLl3K888/by7Dm2++SYsWLQB4/PHHmTJlChs3bqRKlSoAdO/end27d6t2+1+4cIE///yTH3/8kfbt2wOYtysIBoPBLDKfeeYZLl68yKZNm1i0aBHNmzcH4KuvvqJLly5s3LiRnj17cv36dbp3705ERES+x3N3d8fPzw+NRpOvu8GOHTv477//+Pvvv6lQoQIgGgEPP/wwR44coXHjxkD+11sikdybSCErkUjuKRSrq8LSpUsxGAyMHj3aLGiPHz9ORkYGbdq0scmblZXF5cuXzeuVKlWyGXAVFhZGfHw8IIRzbm6uWQyCGFjVuHFjzp07Z7NfRRAClCtXDi8vLxtxGBISwtGjR1XP5+TJk2i1Wlq1alWg81dYtGgRS5cuNVtZH3vsMV599VV27NiBq6srTZo0MecNCgqiRo0a5nIPHTqUCRMmsG3bNtq3b89DDz1EvXr1nDq+NefOnaN8+fJmEQtQu3Zt/P39OX/+vFnI5ne9JRLJvYkUshKJ5J6gatWqaDQazp8/b5OuCEZPT09zmsFgIDQ0VLU738/Pz/zd1dXxEWofCMZeOBuNRoc06/1oNBqH/Wo0GgwGg+p5WZfbGR599FFGjhyJu7s7YWFh5mgFeQWysS73gAED6NixI5s3b2b79u3MmTOHd999lyFDhhSqLGrXRK0sBbneEonk3kL6yEokknuCoKAgOnTowIIFC8jIyMg3b8OGDbl58yZarZZq1arZfAo62r5q1aq4ubmxf/9+c1pubi7Hjh2jVq1at3Uu1tStWxeDwcDevXud2s7X15dq1apRoUIFm5BbtWvXRqfTcfjwYXNaYmIiFy9etCl3hQoVGDx4MNOnT2fYsGH8+uuvqsdxc3NDr9fnW5batWsTHR1NdHS0Oe3s2bOkpqYW6bWSSCR3H1LISiSSe4aPPvoIvV5P//79Wbt2LefOneP8+fOsWrWK8+fPmwVd+/btadq0Ka+88gpbt27l6tWrHDhwgK+//jrPLn57vL29GTx4MF988QVbtmzh7NmzjB8/nqysLB5//PEiO6fKlSvTt29f3n//fTZu3MiVK1fYvXs3a9euLdT+qlevTrdu3Rg/fjz79u3j1KlTvPPOO4SHh5tDk02ePJmtW7dy5coVjh8/zq5du/IUnJUqVSIjI4OdO3eSkJBgE31BoX379kRERDB69GiOHz/OkSNHGDNmDK1bt6ZRo0aFOg+JRHJvIF0LJBLJPUPVqlVZsWIFs2fPZsqUKdy4cQM3Nzdq167N8OHDefLJJwHRlT9nzhy++eYb3n//fRITEwkJCaFly5aEhIQU+HijR4/GaDQyZswY0tPTiYyM5PvvvycgIKBIz2vChAlMnTqVCRMmkJSURMWKFXnxxRcLvb+oqCgmT57MyJEjyc3NpWXLlsyZMwc3NzdAuF5MmjSJmJgYfH196dSpE2PHjlXdV/PmzRk0aBBvvvkmSUlJvPrqq7z22ms2eTQaDf/73//4+OOPefrpp9FoNHTq1Inx48cX+hwkEsm9gZzZSyKRSCQSiURSJpGuBRKJRCKRSCSSMokUshKJRCKRSCSSMokUshKJRCKRSCSSMokUshKJRCKRSCSSMokUshKJRCKRSCSSMokUshKJRCKRSCSSMokUshKJRCKRSCSSMokUshKJRCKRSCSSMokUshKJRCKRSCSSMokUshKJRCKRSCSSMokUshKJRCKRSCSSMokUshKJRCKRSCSSMsn/A83hy7Plaj+GAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from bpnetlite import BPNet\n", "from tangermeme.plot import plot_logo\n", "\n", "chrombpnet = BPNet.from_chrombpnet(\"../../../../models/chrombpnet/fold_0/model.chrombpnet_nobias.fold_0.ENCSR868FGK.h5\")\n", "chrombpnet = CountWrapper(chrombpnet)\n", "\n", "X_attr0 = deep_lift_shap(chrombpnet, X).numpy(force=True)\n", "\n", "plt.figure(figsize=(7, 2))\n", "ax = plt.subplot(111)\n", "plot_logo(X_attr0[0], ax=ax, start=1015, end=1130)\n", "\n", "plt.xlabel(\"Genomic Position\")\n", "plt.ylabel(\"Attributions\")\n", "plt.title(\"ChromBPNet Attributions at SMYD3 Promoter\")\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "5fcde631-2ec1-404e-97f8-4190845ea868", "metadata": {}, "source": [ "Looks like there are a few binding sites that are driving accessibility, including a SP1 motif in the middle. Let's make our design task to preserve the exact same chromatin accessibility predictions as before but to erase that SP1 motif. We can do this with in-painting by simply slicing out that motif." ] }, { "cell_type": "code", "execution_count": 8, "id": "db6d7b94-87d5-416a-8cf6-aa0abdc78d94", "metadata": {}, "outputs": [], "source": [ "Xip2 = torch.clone(X)\n", "Xip2[:, :, 1055:1085] = 0 # Remove the SP1 motif\n", "\n", "y_bar = predict(chrombpnet, X).cuda() # Set the goal to be to keep predictions the same" ] }, { "cell_type": "markdown", "id": "68a9406b-2fdb-41c2-933d-2bc710bccb5a", "metadata": {}, "source": [ "Now, just as before, we can use Ledidi in exactly the same manner." ] }, { "cell_type": "code", "execution_count": 9, "id": "28ae171f-d7be-468b-8fda-f5b23cc16df0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "iter=I\tinput_loss=0.0\toutput_loss=0.1986\ttotal_loss=0.1986\ttime=0.0\n", "iter=100\tinput_loss=0.1875\toutput_loss=0.02927\ttotal_loss=0.04802\ttime=32.99\n", "iter=F\tinput_loss= 0.0\toutput_loss=0.004083\ttotal_loss=0.004083\ttime=46.81\n" ] } ], "source": [ "X_bar1 = ledidi(chrombpnet, Xip2, y_bar)" ] }, { "cell_type": "markdown", "id": "76b2da28-2653-4a0b-be6f-87dad657ca7c", "metadata": {}, "source": [ "Looking at the input loss, we can see that no edits have been proposed outside the inpainting region but that the output loss has significantly decreased. Basically, Ledidi was able to fill in the in-painting region with edits that preserved the accessibility.\n", "\n", "Now, let's take a look at what Ledidi put in." ] }, { "cell_type": "code", "execution_count": 10, "id": "04a6ff5b-6bed-40ac-9cc6-af38b9a76ffe", "metadata": {}, "outputs": [ { "data": { "image/png": "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qFF48803cfz4caSnp+PVV19F27ZteaqG9957D/v370deXh7OnTuHw4cPuxU47dq1Q01NDQ4dOoSKigrR6kDG4MGDkZCQgFdeeQXnzp3D6dOnMWfOHAwYMADJyck3dB4EQTQO5KojiDuY2NhY/Pzzz/j666+xYMECFBcXw8vLC507d8aTTz6JRx55BIDgGlu8eDE++eQTvP7666isrERYWBj69euHsLAwj7/vlVdegc1mw5w5c6DT6ZCUlIT//e9/CAwMbNTzevvtt7Fw4UK8/fbbUKvViIqKwrPPPnvDx5s3bx7ee+89PPfcczCZTOjXrx8WL14MLy8vAIIr89///jeKiorg5+eHoUOH4rXXXnN5rD59+mDGjBl48cUXoVar8de//hUvvPCCaB+JRIIvvvgC77zzDh599FFIJBIMHToUb7755g2fA0EQjQNlDicIgiAIgvAQctURBEEQBEF4CAkngiAIgiAIDyHhRBAEQRAE4SEknAiCIAiCIDyEhBNBEARBEISHkHAiCIIgCILwEBJOBEEQBEEQHkLCiSAIgiAIwkNIOBEEQRAEQXgICSeCIAiCIAgPIeFEEARBEAThISScCIIgCIIgPOT/AXMYlIoj74tgAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "start, end = 1025, 1120\n", "\n", "X_attr0 = deep_lift_shap(chrombpnet, X)\n", "X_attr1 = deep_lift_shap(chrombpnet, X_bar1[0:1])\n", "\n", "xa0 = X_attr0[:, :, start:end]\n", "xa1 = X_attr1[:, :, start:end]\n", "\n", "ax = plot_edits(xa0, [xa1], figsize=(6, 2.5))\n", "axs[0].set_title(\"In-Painting GATA Sites\")\n", "axs[1].set_ylabel(\"Attribution\")\n", "axs[1].plot([29.5, 29.5], [0, 0.4], linestyle='--', c='0.6')\n", "axs[1].plot([59.5, 59.5], [0, 0.4], linestyle='--', c='0.6')\n", "\n", "plt.xlabel(\"Genomic Position\")\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "4d148b63-9ba6-4d6b-988f-c450137a6def", "metadata": {}, "source": [ "I thought this example was very funny but also a warning to people that they need to check their designs thoroughly after they have been produced, regardless of the method. It does look like a weak affinity site was added in on the left hand side of the in-painting window, but the main thing that happened is that a single G was added on the right hand side of the window that coincidentally happened to be next to another SP-1 site, which became activated due to that G. Basically.. we eliminated the SP-1 motif but it got added back right next to where the original was because BY CHANCE there happened to be an almost-SP-1 motif right there. I swear this arose by chance and I did not plan for it to happen.\n", "\n", "Let's try that again but make the window a little smaller to prevent that from happening." ] }, { "cell_type": "code", "execution_count": 11, "id": "c3a18412-b83e-4f73-8cac-35b6c36316dd", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "iter=I\tinput_loss=0.0\toutput_loss=0.4302\ttotal_loss=0.4302\ttime=0.0\n", "iter=100\tinput_loss= 3.0\toutput_loss=0.007935\ttotal_loss=0.3079\ttime=15.55\n", "iter=F\tinput_loss=1.062\toutput_loss=0.006447\ttotal_loss=0.1127\ttime=27.98\n" ] }, { "data": { "image/png": "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gouEhx9+GCEhIVAoFPjrX/+KTp06YcaMGaioqMAbb7yB1157DatWrUJAQACefvppeHt7o6ysDJ06dUK/fv3w5JNPQqlU4ssvv8Rvv/2GhIQEl5NLvV7PVzyyf2q1GqdOnUJpaSkqKiqQm5vr0jPRGFgsFpSXlyMnJwc5OTkoLy/nLuapU6fC398f/v7+ePrppyEWi1FSUoJTp04hPT0dOTk5fDAdMWIEYmJi4OXlhaeeeoqveHz22Wfh5+cHb29vPPHEEw7xTNeqV+fl5YV7770XIpEIU6dO5WKIJT5VKBSCCczw4cOhUCgwceJEvi0hIYE/33fffTe/75mwZRanXr16Ydy4cUhNTcWnn34Ko9GITp06ITs7Gz/88APWr1+Pn376yeXKZTYRy8nJQU1NDYqLi5GTkwOtVou6ujooFAqYzWYcP35c4D2yv9527dqhoqICxcXFOH36tGBlpq349vb2xp133om8vDxs2rQJKSkp2LRpk9Pcimzl98aNG3Hp0iUcP34cv//+u0c5ADt06IAHHngAv/76K3799VdUVVXx38MdRBYPgnNKSkpwxx13YOXKlYJB7b///S9+++03p1/g2LFj8eCDD+KFF17g244fP45HHnkE+/btQ3h4OHr16oX58+cLbpCNGzfirbfeEgQbX4uZM2eivLwcOp2O5+exHZzEYjEsFosgXsM274tcLudxH2zmbjabodfreb4etjSb+fqZFUYkEgmWHNuahu33sd/uTttscbW9qXDWNld40mZ391UqlTxHT319Perq6njWZSa+bZf4OjseOyb7/1rf841eh+1vbTabHaqjs/deXl7w8fHhbhW9Xo+amhpBG929N651X9jfo/bv3TmuUqmEt7c3dDodvx6DwcBjhNg12x/DWfFU2+Neq22ujtsYz4Inx2iM813ruwCsg7C3tze/T2pqavgArtfrIZPJoFAoUFFRIUgM6sl1AO59n+48/2wf2+OYzWaHPo/t4+/vD4VCwUst2eZzY8lA6+vrUV1dzVeUsYSjNTU1CA4ORllZGUwmExQKBYKCglBSUuJwTzXUbtvfwZM+ztX3cj3HsOV67kORSASxWCy4B+yfadvrdNUPAVctrizdAfusLc7GMrPZDH9/f8hkMp6excfHB+Xl5fzY7DjuuHqdXYOzttnfW2xFularhdFohFwu53+XSqXQarUQ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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Xip3 = torch.clone(X)\n", "Xip3[:, :, 1055:1079] = 0 # Remove the SP-1 motif\n", "\n", "X_bar2 = ledidi(chrombpnet, Xip3, y_bar)\n", "\n", "X_attr2 = deep_lift_shap(chrombpnet, X_bar2[0:1])\n", "\n", "xa0 = X_attr0[:, :, start:end]\n", "xa2 = X_attr2[:, :, start:end]\n", "\n", "ax = plot_edits(xa0, [xa2], figsize=(6, 2.5))\n", "axs[0].set_title(\"In-Painting GATA Sites\")\n", "axs[1].set_ylabel(\"Attribution\")\n", "axs[1].plot([29.5, 29.5], [0, 0.4], linestyle='--', c='0.6')\n", "axs[1].plot([59.5, 59.5], [0, 0.4], linestyle='--', c='0.6')\n", "\n", "plt.xlabel(\"Genomic Position\")\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "318c4df9-59eb-4694-97ea-35e18fdabb03", "metadata": {}, "source": [ "Okay, that looks better. Seems like the SP-1 motif in the middle was removed and it was replaced with something that looks like either an NRF or an EGR motif slightly to its right. like the G-rich site in the middle has been eliminated and instead we have new motifs that are high attribution. Through in-painting, we were able to eliminate a motif and replace it with another motif that preserved the accessibility.\n", "\n", "Something to note, though, is that we did not explicitly tell Ledidi here to eliminate the SP-1 motif and it could have simply re-proposed the motif at the original site or shifted over within the mask (as we sort of saw initially). There are at least two ways to prevent this. First, we can use a combination of masking out the specific characters of the SP-1 motif and only in-painting the exact span, as opposed to having the span be wider than the motif as it was here. Second, we could jointly use a chromatin accessibility model tasked with keeping accessibility the same and an SP-1 model tasked with eliminating the binding of SP-1. This option may be a little trickier if your goal were not to eliminate SP-1 binding *anywhere* per-se, but rather just at this specific site, or if a model is not readily available for this sort of binding. You can read more about using multiple models simultaneously in a later tutorial." ] }, { "cell_type": "markdown", "id": "97b9f637-d516-4315-a252-570325adafed", "metadata": {}, "source": [ "#### Moving Motifs (CTCF + Transcription)\n", "\n", "In our third setting we would like to move a binding site. This can happen when you want to retain the binding of a certain protein but the specific location it is binding is problematic. For instance, there is a CTCF binding site just downstream of the SMYD3 TSS. Whenever there is anything just after the TSS of a gene -- and especially when that thing is CTCF since it is so bulky -- transcription is reduced. If we wanted an easy way to increase SMYD3 transcription we could try to get rid of this site. However, because CTCF plays such an important role in organizing chromatin architecture, we probably do not want to simply delete the motif.\n", "\n", "Rather, we would like to move the CTCF site to somewhere else. In theory, this allows us to maintain chromatin architecture (which likely will not care about CTCF binding moving a few hundred bp) while removing the obstacle to transcription. Accordingly, our design task is made up of three components: in-painting to remove the CTCF moving, in-painting to clear a landing pad for where we would a CTCF site to be added somewhere, and a design objective whose goal is to maintain CTCF levels from the original sequence after moving the site.\n", "\n", "Let's load up the CTCF model and take a look at the SMYD3 promoter." ] }, { "cell_type": "code", "execution_count": 12, "id": "dc1333a0-9490-414e-9dbb-1d8b7a8fd0fa", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "model = torch.load(\"../../../../models/bpnet/CTCF.torch\", weights_only=False)\n", "model = CountWrapper(ControlWrapper(model)).cuda()\n", "\n", "X_attr0 = deep_lift_shap(model, X).numpy(force=True)\n", "\n", "plt.figure(figsize=(7, 2))\n", "ax = plt.subplot(111)\n", "plot_logo(X_attr0[0], ax=ax, start=980, end=1080)\n", "\n", "plt.xlabel(\"Genomic Position\")\n", "plt.ylabel(\"Attributions\")\n", "plt.title(\"BPNet (CTCF) Attributions at SMYD3 Promoter\")\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "3ad9b012-29d3-46d5-b5c8-766f43889b40", "metadata": {}, "source": [ "Now, let's find a region a few hundred bp downstream that are not driving accessibility so we do not disturb something else. It is true that accessibility is not the only thing that protein binding contributes to so this is not a perfect way of looking for inactive regions, but it is a good enough approximation for now." ] }, { "cell_type": "code", "execution_count": 13, "id": "50244ffa-9247-4179-a437-ccad41ef7f16", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "X_attr0 = deep_lift_shap(chrombpnet, X).numpy(force=True)\n", "\n", "plt.figure(figsize=(7, 2))\n", "ax = plt.subplot(111)\n", "plot_logo(X_attr0[0], ax=ax, start=1400, end=1600)\n", "\n", "plt.xlabel(\"Genomic Position\")\n", "plt.ylabel(\"Attributions\")\n", "plt.title(\"ChromBPNet Attributions at SMYD3 Promoter\")\n", "plt.ylim(-0.01, 0.01)\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "94291845-609d-411b-99c2-08588c308487", "metadata": {}, "source": [ "If you consider the magnitude of the attributions, it does not look like much is happening here.\n", "\n", "We can set up our in-painting task as follows. First, we remove the CTCF site that we originally found, and second, we remove a random region from the above window. To try to incentive Ledidi to place the CTCF site in the inactive region and not just put it back where it found it, we can make the second site a much larger landing pad to give it more space to work with." ] }, { "cell_type": "code", "execution_count": 14, "id": "050e3354-0efb-4b32-9688-79b279417471", "metadata": {}, "outputs": [], "source": [ "Xip3 = torch.clone(X)\n", "Xip3[:, :, 1000:1012] = 0 # Remove the CTCF motif\n", "Xip3[:, :, 1500:1550] = 0\n", "\n", "y_bar = predict(model, X).cuda() # Set the goal to be to keep predictions the same" ] }, { "cell_type": "markdown", "id": "e7ddd4af-7f31-4fb9-946a-3a3d9b85462e", "metadata": {}, "source": [ "Despite this being an in-painting task that involves two spans instead of one, using Ledidi is exactly the same." ] }, { "cell_type": "code", "execution_count": 15, "id": "963fffbb-5eff-47bc-80ac-4a45eb064e10", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "iter=I\tinput_loss=0.0\toutput_loss=1.73\ttotal_loss=1.73\ttime=0.0\n", "iter=100\tinput_loss=0.125\toutput_loss=0.0005559\ttotal_loss=0.01306\ttime=1.183\n", "iter=200\tinput_loss= 1.0\toutput_loss=0.001895\ttotal_loss=0.1019\ttime=1.181\n", "iter=F\tinput_loss= 0.0\toutput_loss=6.072e-05\ttotal_loss=6.072e-05\ttime=2.39\n" ] } ], "source": [ "X_bar3 = ledidi(model, Xip3, y_bar)" ] }, { "cell_type": "markdown", "id": "574c56f8-13a3-4f3a-b35f-575fda069451", "metadata": {}, "source": [ "Looks like we were able to achieve a very low output loss with zero input loss. This means that a CTCF motif has been added somewhere in one of the two in-painting regions. We can look at both regions before and after editing to see what happened." ] }, { "cell_type": "code", "execution_count": 16, "id": "5028a2b1-3a47-4d87-9729-716761fd0121", "metadata": {}, "outputs": [ { "data": { "image/png": "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9erZXj7WaDSUKFHCrO1k5uXlxcWLFzl//rxZ6w8aNIhOnTrRunVr9uzZw549ewgICCAhIYEBAwZQvHhxfv31V5YuXUrx4sX53//+h06ny1PehBD26/r162zatInZs2czb948zp07x/jx4wFISUlh+PDhNGnShD/++IMVK1bQp08fNBoNnTt3ZtCgQdSsWdPYxnTu3Nm43WnTptGhQwfWrVtHz5492b17Nx9++CH9+/dn48aNTJgwgdWrVzN79mzjezQaDWPHjmXdunVMnjyZ/fv3880335jkNzExkV9++YXvvvuOefPmceDAAd566y127drF3Llz+frrr1mxYgWbN2/Oc52Y+33y3Xff8frrr7N27VqqVavG+++/T0pKCgDHjx9nzJgxvPzyy6xdu5ZmzZoxa9ash+77wIEDXL9+nUWLFjF58mTWrFnDmjVrjMtHjx5NREQEv/zyC9OmTWPlypVER0fnuE1PT0927drFvXv3zCp/cHAwAEFBQezZs8f42pxjKGxPukKJAuvatWsoioKvr2+2y319fYmLi+P27dvG8RDNmzfn9ddfN65z48YNk/csX76c6tWrM3r0aAAee+wxzp8//9CGSVEUgoKCcHd3B6Br1678888/vPvuuwA888wzJut/+eWXtGjRgosXL+Ln5/fQsl69etWYH0tcu3aN6tWrm7Xu+fPnCQgIML729fU1NuCZvfLKKxw+fJguXbrg4+ND/fr1CQwMpGvXrjg7O2dZ383NDRcXF3Q6nUlXtODgYDQaDZMmTUKj0QDql0eTJk04ePAgrVq1yk1xhRB2Likpia+++ory5csD8Mknn/DGG2/w0Ucf4eTkxN27d2nXrh1VqlQBMPk+KF68OFqtNtvurs8//zy9evUyvh41ahRDhgyhe/fuAFSuXJm3336bb775hhEjRgDw2muvGddPW/7555/z+eefG9OTk5P5/PPPjfl55pln+OOPP9i7dy9ubm7UqFGDZs2asX//fpNAJzfM/T4ZNGgQTz75JAAjR47kueee49q1a/j6+rJ48WJatWrFkCFDAKhevTrHjh1j9+7dOe67VKlSjBs3Dq1Wi6+vL23btuWff/7hxRdf5NKlS+zbt4/g4GDq1q0LwMSJE+nYsWOO2/ziiy/44IMPaN68Of7+/jRq1IhnnnmGRo0aZbt+WreokiVLmhzb2bNnP/QYCtuTwELYrbQrFWk/UAHq1KmT43uuXLmSZZ169eo9dF8+Pj7GoALA29vb5CzN9evX+eGHH/j333+JiYkx5i00NNSswCJNxrLkhaIoZm+jevXqJmewsgsQ0hQvXpy5c+dy/fp1Dhw4wL///stXX33F4sWLWbFihXHA3cOcPn2a69ev07BhQ5P0pKQkrl+/btY2hBCFR4UKFYxBBUBAQAAGg4ErV67QtGlTevToweuvv05gYCAtWrSgU6dOeHt7P3S7mdv506dPc/LkSZOTSHq9nqSkJBISEnB1dWX//v3MmTOHixcvcu/ePePy+/fvU7x4cQBcXV2NQQWoZ+N9fHxMxip4enpy+/btPNeJud8n/v7+xr/TfoDfvn0bX19fLl26lOXKdYMGDR4aWNSoUQOtVmuy3bQr1VeuXMHR0ZHatWsbl1etWvWBY/PSNGnShG3btnH8+HGOHj3K/v37Wbx4MW+99RbDhw/P8b0ZmXMMhe1JYCEKrCpVqqDRaLh48WK2XXsuX75MqVKlTGa0eFjDkt0Pb8WMidGym1Eq4/uGDh1KhQoVmDhxIt7e3hgMBp5//nmSk5Mfum2AatWqAXDp0qUcZ40yZzuXLl0ya10nJyeqVq2aq+1XqVKFKlWq0Lt3b4YOHcqzzz7Lxo0b6dmzp1nvNxgM1K5dm2+//TbLMhm8J0Th4Obmlm23lzt37picoMlOWvuc8Ypm//792b17N5s2beL7779nwYIFNGjQIMftpAUCaQwGA2+99Va2Z9eLFSvGzZs3GTJkCH379uXtt9+mVKlSHDlyhLFjxxq7F0HW7wKNRpNtmrndYLNj7vdJxgHpafWVtl9zvteyk11ZHrYtc/bl5ORE48aNady4MUOGDGHmzJnMnDmTwYMH53hSK6OHHUNRMMgYC1FgeXh4EBgYyNKlS0lMTDRZFhkZybp16+jUqVOuzvI/9thjnDx50iTt1KlTFuUzJiaGS5cuMWzYMFq0aGHsopUbjz/+ODVq1GD+/PnZfiHduXPHrO106dKFq1evsm3btizLFEXh7t27ucpXTipVqoSLiwsJCQnZLndycspSltq1a3Pt2jXKli1L1apVTR55Hf8hhChYHnvssWzb1ZMnT2bpqhkaGkp4eLjx9bFjx3BwcDCebAF44okneOONN1i+fDl+fn6sX78eyL6NeZAnnniCK1euZGl3qlatioODA6dOnUKv1/PRRx/RoEEDqlevTkRERB5KbxlrfJ+AeuXh+PHjJmmZX+dW9erVSUlJ4cyZM8a0a9eumf39lDl/KSkpDxxb5+TkhF6vN0l72DEUBYMcCVGgffrpp+h0Ol5//XUOHTpEaGgof//9N4MGDaJcuXLGMQ7m6tOnD1euXOGbb77hypUrbNy40TgwLa/dkEqVKkXp0qVZsWIF165d459//mHy5Mm52oZGoyEoKIirV6/Sr18/du3aRUhICOfOnWPWrFnZDkTPTqdOnejcuTPvv/8+c+bM4eTJk9y8eZO//vqL1157jQMHDuSliEybNo2vv/6aAwcOEBISwpkzZxgzZgwpKSkPvO+Fj48P//33H5cvX+b27dskJyfTpUsXPDw8GDZsGIcPHyYkJISDBw8yceJEwsLC8pQ3IUTB8vLLL3P9+nXGjx/PuXPnuHLlCkuWLCE4ONhkDByoZ5o/+ugjzp07x+HDh5k4cSKdOnXCy8uLkJAQpkyZwrFjx7h58yZ79uzh6tWrxrFoPj4+3Lhxg7Nnz3L79u0cJ4AYPnw4v//+O9OmTePChQtcunSJjRs3GifvqFKlCikpKfzyyy+EhISwdu1ali9fnm91pNfrOXv2rMnj4sWLVvk+AYxXeX766SeuXLnCr7/++tBuUA/j6+tLy5YtGTduHCdOnODMmTN8+umnuLi45Pj92b9/f5YvX86pU6e4ceMGu3btYurUqTRr1uyBV7B8fHz4559/iIyMNAZWDzuGomCQrlCiQKtWrRqrVq1i+vTpvPvuu8TGxuLp6clTTz3F8OHDH3gPiwepXLkyP/zwg3F8QIMGDRg6dCiff/652ZdjM3NwcOC7775j4sSJPP/881SvXp1PPvmE/v3752o79erVY9WqVcyePZtPPvmEmJgYvL29CQgIYMyYMWZtQ6PRMGXKFFasWMGqVauYNWsWWq2WqlWr0q1btzwPjm7SpAlLly5l9OjRREVFUapUKR5//HF+/vnnBw44f/HFFzl48CA9e/bk/v37LF68mGbNmvHrr7/y7bffMmLECOLj4ylXrhwtWrR4aBcJIYR9qFSpEkuWLOG7775j0KBBJCUlUa1aNSZPnkynTp1M1q1SpQpPP/00gwcPJi4ujrZt2/LZZ58BatfWy5cvs2bNGmJjY/H29qZfv3707dsXUAc5b926lQEDBnDnzh2CgoLo0aNHtnlq3bo1s2fPZsaMGcybNw9HR0cee+wxevfuDahXjT/++GN++uknpk6dSuPGjXnvvfeME31Y2/379+nWrZtJmo+PDzt27LDK90mDBg2YOHGi8WaoLVq0YNiwYRbfsPSrr75i7Nix9OvXDy8vL9577z0uXryYY1ekVq1asXbtWr777jsSEhLw9vbmySefzHF8xejRo5k8eTK//fYb5cqVY8eOHQ89hqJgkDtviyJv1qxZLF++nF27dtk6K0IIUWTY652zRbqwsDDatm3LwoULadGiha2zIwoAuWIhipwlS5ZQt25dPDw8OHLkCD///DP9+vWzdbaEEEKIAu2ff/7h/v37+Pn5ERkZyTfffIOPjw+NGze2ddZEASGBhShyrl27xqxZs4iLi6NixYoMHDiQN954w9bZEkIIIQq0lJQUvvvuO0JCQnBzcyMgIIBvv/3WZIYqUbRJVyghhBBCCCGExWRWKCGEEEIIIYTFJLAQQgghhBBCWEwCCyGEEEIIIYTFJLAQQgghhBBCWEwCCyGEEEIIIYTFJLAQQgghhBBCWEwCCyGEEEIIIYTFJLAQQgghhBBCWEwCCyGEEEIIIYTF/g9xAEmg+GhjcwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "X_attr0 = deep_lift_shap(model, X).numpy(force=True)\n", "X_attr1 = deep_lift_shap(model, X_bar3[0:1]).numpy(force=True)\n", "\n", "xa0 = X_attr0[0, :, 980:1040]\n", "xa1 = X_attr1[0, :, 980:1040]\n", "xa2 = X_attr0[0, :, 1480:1570]\n", "xa3 = X_attr1[0, :, 1480:1570]\n", "\n", "_, axs = plt.subplots(nrows=2, ncols=2, figsize=(8, 3))\n", "plot_logo(xa0, ax=axs[0, 0])\n", "plot_logo(xa1, ax=axs[1, 0])\n", "plot_logo(xa2, ax=axs[0, 1])\n", "plot_logo(xa3, ax=axs[1, 1])\n", "\n", "axs[0][0].set_title(\"In-Painting GATA Sites\")\n", "axs[0][0].set_ylabel(\"Before\")\n", "axs[1][0].set_ylabel(\"After\")\n", "axs[1][0].set_xlabel(\"Original CTCF Site\")\n", "axs[1][1].set_xlabel(\"Upstream Landing Site\")\n", "\n", "axs[0][0].set_ylim(-0.08, 0.25)\n", "axs[0][1].set_ylim(-0.08, 0.25)\n", "axs[1][0].set_ylim(-0.08, 0.25)\n", "axs[1][1].set_ylim(-0.08, 0.25)\n", "\n", "axs[1][0].plot([19.5, 19.5], [0, 0.4], linestyle='--', c='0.6')\n", "axs[1][0].plot([31.5, 31.5], [0, 0.4], linestyle='--', c='0.6')\n", "axs[1][1].plot([19.5, 19.5], [0, 0.4], linestyle='--', c='0.6')\n", "axs[1][1].plot([69.5, 69.5], [0, 0.4], linestyle='--', c='0.6')\n", "\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "86b02b82-610f-4887-a364-d5808d3e1a61", "metadata": {}, "source": [ "Looks like we achieved both of our objectives. We managed to remove the CTCF site that was just downstream of the TSS (left two panels, before and after), and we added the site into the free edit landing pad upstream of the TSS (right two panels). Because the output loss from the design task is low, the predicted CTCF binding for this region is the same before and after doing the edits, despite moving the site!\n", "\n", "A first reaction to this might not be being impressed. After all, all we did was move a CTCF site. Why did we not just copy/paste the CTCF site from the original sequence to the downstream site? The simple answer is that the surrounding context matters a great deal and can significantly influence binding, so plopping a motif into some unknown sequence context is unlikely to yield the same result. This means that the affinity of the CTCF site, and the surrounding context of the site, need to be precisely designed if we want to match the exact same CTCF binding value as before. Further, although the question of what to put at the original CTCF site might not seem like it needs a lot of thought, having Ledidi automatically handle it saves you from having to do any thought.\n", "\n", "To investigate how effective simply copy/pasting the motif would have been, let's take a comprehensive look at what the model predictions are if we try moving the 20bp region of the BPNet motif downstream between 1 and 800 bp. Every 10th basepair (for efficiency reasons) let's try using Ledidi to do the same thing by setting two in-painting reasons (as we did in the original task) and with the goal of preserving the CTCF binding." ] }, { "cell_type": "code", "execution_count": 17, "id": "2c46f073-2a88-40db-8e5e-51b82ea60200", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 801/801 [07:03<00:00, 1.89it/s]\n" ] } ], "source": [ "from tqdm import tqdm\n", "\n", "y_move, y_ledidi = [], []\n", "y_bar = predict(model, X).cuda()\n", "\n", "X_ledidi = []\n", "X_swap = []\n", "\n", "for i in tqdm(range(0, 801)):\n", " start, end = 995, 1015\n", " \n", " X2 = torch.clone(X)\n", " X2[:, :, start:end] = X[:, :, start+i:end+i]\n", " X2[:, :, start+i:end+i] = X[:, :, start:end]\n", " X_swap.append(X2)\n", " \n", " y_ = predict(model, X2)[0, 0].item()\n", " y_move.append(y_)\n", "\n", " if i % 10 == 0 and i != 0:\n", " Xip = torch.clone(X)\n", " Xip[:, :, start:end] = 0 # Remove the SP1 motif\n", " Xip[:, :, start+i:end+i] = 0\n", " \n", " torch.manual_seed(0)\n", " X_bar = ledidi(model, Xip, y_bar, early_stopping_iter=200, verbose=False)\n", " X_ledidi.append(X_bar)\n", " \n", " y_hat = predict(model, X_bar).mean(dim=0)[0].item()\n", " y_ledidi.append(y_hat)\n", "\n", "X_ledidi = torch.cat(X_ledidi)\n", "X_swap = torch.cat(X_swap)" ] }, { "cell_type": "markdown", "id": "1efe2f94-6fda-4857-b478-7c9e590325a8", "metadata": {}, "source": [ "We can now plot what the predictions are for swapping the pairs of regions, and for using Ledidi to design sequences with the swap." ] }, { "cell_type": "code", "execution_count": 18, "id": "f2a79255-6c14-44e2-a153-c3aeb3d22876", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Rolling Average At New Site: 0.9372\n", "Ledidi at New Site: 1.709\n" ] } ], "source": [ "y0 = predict(model, X)[0, 0].item()\n", "y1 = predict(model, X_bar3)[0, 0].item()\n", "\n", "y_roll = numpy.cumsum(y_move)\n", "y_roll = (y_roll[10:] - y_roll[:-10]) / 10.\n", "\n", "plt.figure(figsize=(7, 3))\n", "plt.scatter(range(10, 801, 10), y_ledidi, color='darkorange', s=25, label=\"Ledidi Edits\", zorder=4)\n", "plt.plot(y_move, c='0.6')\n", "plt.plot([0, len(y_move)], [y0, y0], linewidth=2, linestyle='--', c='0.3', label=\"Original Signal\", zorder=5)\n", "plt.plot(y_roll, c='g', label=\"Rolling Average (n=10)\")\n", "\n", "plt.xticks([0, 1057-start, 1530-start], ['Original', 'TSS', 'New'], rotation=90, fontsize=8)\n", "plt.ylabel(\"Model Predictions\")\n", "plt.yticks(fontsize=8)\n", "\n", "plt.legend(loc=(1.02, 0.3))\n", "seaborn.despine(bottom=True, left=True)\n", "\n", "plt.tight_layout()\n", "plt.show()\n", "\n", "print(\"Rolling Average At New Site: {:4.4}\".format(y_roll[1530-start]))\n", "print(\"Ledidi at New Site: {:4.4}\".format(y_ledidi[(1530-start) // 10 - 1]))" ] }, { "cell_type": "markdown", "id": "266a28c9-5042-4330-b670-47f3e403ab8b", "metadata": {}, "source": [ "It looks like there is a pretty large variance in CTCF predictions depending on the precise location that one makes the swap, even if we take a rolling average to smooth some of this out. In contrast, Ledidi is able to not only preserve the CTCF predictions on average but the variance is pretty low despite the variability in the baseline. An important note is that we are using the same model to evaluate the designs as we are using for the design itself. But the point still stands that something which intuitively might make sense at first blush, e.g., moving a motif a little bit along should keep the binding the same, might not actually be true. Using an explicit design method, like Ledidi, will allow you to automatically tune the affinity and surrounding context regardless of where you want to put the region.\n", "\n", "Returning to the original question: if we had simply swapped copy/pasted the original sequence into the landing pad (denoted \"new\" in the above figure) we would have half the predicted CTCF binding as originally. If we use Ledidi to do the swap we get the same value.\n", "\n", "We initially motivated this specific example by saying that you may want to move a motif because it interferes with transcription. As a final step, let's return to this hypothesis and see if moving the CTCF motif increases predicted transcription according to Enformer." ] }, { "cell_type": "code", "execution_count": 19, "id": "bcb12cbb-31b5-41f7-b2dc-9d46d76431e2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(tensor([5.8661]), tensor(5.9624))" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import os\n", "os.environ['POLARS_ALLOW_FORKING_THREAD'] = '1' # Need this for Enformer\n", "\n", "from enformer_pytorch import from_pretrained\n", "\n", "class EnformerWrapper(torch.nn.Module):\n", " def __init__(self, model):\n", " super(EnformerWrapper, self).__init__()\n", " self.model = model\n", "\n", " def forward(self, X):\n", " y = self.model(X.permute(0, 2, 1))['human']\n", " return torch.log(y.sum(dim=1) + 1)\n", "\n", "enformer = from_pretrained('EleutherAI/enformer-official-rough', target_length=16, use_tf_gamma=False)\n", "enformer = EnformerWrapper(enformer).eval().cuda()\n", "\n", "predict(enformer, X)[:, 5111], predict(enformer, X_bar3)[:, 5111].mean()" ] }, { "cell_type": "markdown", "id": "70f666dd-ee3f-4507-ac01-e5dd3e14227a", "metadata": {}, "source": [ "Looks like removing the CTCF site does increase the CAGE predictions a little bit at this region. it is true that this may not fundamentally change activity at the locus but in settings where subtle changes might matter, such as designing cell type-specific elements that rely on sub-optimal spacings, diminishing or increasing transcription by a little bit might be helpful!" ] } ], "metadata": { "kernelspec": { "display_name": "Python [conda env:root]", "language": "python", "name": "conda-root-py" }, "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.2" } }, "nbformat": 4, "nbformat_minor": 5 }