Skip to content

Instantly share code, notes, and snippets.

@fransua
Created June 26, 2019 14:40
Show Gist options
  • Save fransua/7575e00372d129a70ecf3cca444a265c to your computer and use it in GitHub Desktop.
Save fransua/7575e00372d129a70ecf3cca444a265c to your computer and use it in GitHub Desktop.
Tutorials/Courses/Generic/Explain Genome.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "import os",
"execution_count": 1,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# Download human genome from ensembl"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "From [Ensembl](https://www.ensembl.org/info/data/ftp/index.html), we can download each chromosome:"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "url = 'ftp://ftp.ensembl.org/pub/release-96/fasta/homo_sapiens/dna/Homo_sapiens.GRCh38.dna.chromosome.{0}.fa.gz'",
"execution_count": 10,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "chromosome_list = list(range(1, 23)) + ['X', 'Y', 'MT']",
"execution_count": 12,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "url = 'ftp://ftp.ensembl.org/pub/release-96/fasta/homo_sapiens/dna/Homo_sapiens.GRCh38.dna.chromosome.{0}.fa.gz'\n\nchromosome_list = list(range(1, 23)) + ['X', 'Y', 'MT']\n\nfor chrom in chromosome_list:\n print('downloading chromsome {}'.format(chrom))\n os.system(('wget -O /scratch/chrom{0}.fa.gz ' + url).format(chrom))",
"execution_count": 8,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "downloading chromsome 1\ndownloading chromsome 2\ndownloading chromsome 3\ndownloading chromsome 4\ndownloading chromsome 5\ndownloading chromsome 6\ndownloading chromsome 7\ndownloading chromsome 8\ndownloading chromsome 9\ndownloading chromsome 10\ndownloading chromsome 11\ndownloading chromsome 12\ndownloading chromsome 13\ndownloading chromsome 14\ndownloading chromsome 15\ndownloading chromsome 16\ndownloading chromsome 17\ndownloading chromsome 18\ndownloading chromsome 19\ndownloading chromsome 20\ndownloading chromsome 21\ndownloading chromsome 22\ndownloading chromsome X\ndownloading chromsome Y\ndownloading chromsome MT\n"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Uncompress chromosomes files"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "for chrom in chromosome_list:\n os.system('gunzip /scratch/chrom{0}.fa.gz'.format(chrom))",
"execution_count": 14,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Explore the file in FASTA format"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "! head /scratch/chromMT.fa",
"execution_count": 18,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": ">MT dna:chromosome chromosome:GRCh38:MT:1:16569:1 REF\r\nGATCACAGGTCTATCACCCTATTAACCACTCACGGGAGCTCTCCATGCATTTGGTATTTT\r\nCGTCTGGGGGGTATGCACGCGATAGCATTGCGAGACGCTGGAGCCGGAGCACCCTATGTC\r\nGCAGTATCTGTCTTTGATTCCTGCCTCATCCTATTATTTATCGCACCTACGTTCAATATT\r\nACAGGCGAACATACTTACTAAAGTGTGTTAATTAATTAATGCTTGTAGGACATAATAATA\r\nACAATTGAATGTCTGCACAGCCACTTTCCACACAGACATCATAACAAAAAATTTCCACCA\r\nAACCCCCCCTCCCCCGCTTCTGGCCACAGCACTTAAACACATCTCTGCCAAACCCCAAAA\r\nACAAAGAACCCTAACACCAGCCTAACCAGATTTCAAATTTTATCTTTTGGCGGTATGCAC\r\nTTTTAACAGTCACCCCCCAACTAACACATTATTTTCCCCTCCCACTCCCATACTACTAAT\r\nCTCATCAATACAACCCCCGCCCATCCTACCCAGCACACACACACCGCTGCTAACCCCATA\r\n"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Load all chromosomes into a python dictionary"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "genome = {}\nfor chrom in chromosome_list:\n genome[chrom] = ''\n fh = open('/scratch/chrom{0}.fa'.format(chrom))\n _ = next(fh) # skip the header\n genome[chrom] = ''.join(line.strip() for line in fh)",
"execution_count": 22,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Check chromosome sizes"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "for chrom in chromosome_list:\n print('{:3} {}'.format(chrom, len(genome[chrom])))",
"execution_count": 23,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": " 1 248956422\n 2 242193529\n 3 198295559\n 4 190214555\n 5 181538259\n 6 170805979\n 7 159345973\n 8 145138636\n 9 138394717\n 10 133797422\n 11 135086622\n 12 133275309\n 13 114364328\n 14 107043718\n 15 101991189\n 16 90338345\n 17 83257441\n 18 80373285\n 19 58617616\n 20 64444167\n 21 46709983\n 22 50818468\nX 156040895\nY 57227415\nMT 16569\n"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## plot chromosome length"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "from matplotlib import pyplot as plt\nimport matplotlib as mpl",
"execution_count": 65,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "for n, chrom in enumerate(chromosome_list):\n plt.plot([n, n], [0, len(genome[chrom])])",
"execution_count": 27,
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAg0AAAG9CAYAAACWOkV8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3de2xUZf7H8c/0Nr2svXAVtSlY1rQFESQWA9ltBQTkVhCBRXaXJnhLDBDJLsiiVXHT/pTiBtcsXjZLG0UXW1aFbS0kWi5RDMH1Cq2uqASXBaS0HWTK0Jk5vz/66/wc29Jn2mmHad+v5CSdZ85z+p3jo/34zHPOsVmWZQkAAKATEaEuAAAAhAdCAwAAMEJoAAAARggNAADACKEBAAAYITQAAAAjhAYAAGCE0AAAAIwQGgAAgJGwDQ1fffWVHnjgAY0dO1ZRUVEaPXp0l4/16aefavbs2RoyZIiSkpI0adIkVVVVBbFaAADCX9iGhiNHjqiiokIjR45UVlZWl49z+vRpTZkyRd9//71eeuklvf766xo0aJDmzJmjQ4cOBbFiAADCmy1cnz3h9XoVEdGSefLz83X48GF9/vnnAR/nlVde0W9+8xt9/fXXGjFihCTp0qVLGjp0qO677z499dRTQa0bAIBwFbYzDa2BoTMlJSUaM2aMYmNjde2112r9+vVyu92+95ubmyVJSUlJvraYmBjFxcUpTPMUAAA9ImxDg4lnnnlG99xzj6ZPn65du3Zp7dq1evbZZ/XII4/49snLy9PQoUP10EMP6eTJk6qrq9Pjjz+u8+fPKz8/P3TFAwBwhYkKdQE95fz583rssce0Zs0aFRYWSpJuv/12RUVF6Xe/+51+//vfa+DAgRowYIAOHDig2bNn69prr5XUMuuwc+fObq2VAACgr+mzMw3vv/++fvjhBy1cuFBut9u3TZ48WU1NTb71D2fOnNG8efM0fPhwVVRUaM+ePZo1a5bmz5+vjz76KMSfAgCAK0efnWk4e/asJOnmm29u9/0TJ05Ikp5++mnV19frww8/VGxsrCRp6tSpGj9+vB577DHt3LmzdwoGAOAK12dDw4ABAyRJ//jHP5Samtrm/dYrJY4ePaqMjAxfYJAkm82mm266iUsuAQD4kT4bGiZOnKj4+Hh99913mj9/fof7paWl6c0331RTU5Pi4uIktVzO+a9//UvDhw/vpWoBALjyhW1ocDqdqqyslCQdP35cDodD5eXlkqScnBwNHjxYGzZs0Jo1a/Tdd9/ptttuU0REhL7++mu99dZb2rFjh+Lj43Xffffpr3/9q+bMmaOVK1cqOjpaf/vb3/Tpp59yjwYAAH4kbG/u9O233/q+Yvip6upq5ebmSpL+/ve/65lnntHnn3+u6Ohopaena/bs2SooKFBUVEtm2rt3r5544gl99tlncrvdyszM1MMPP6y8vLze+jgAAFzxwjY0AACA3tVnL7kEAADBFVZrGrxer06ePKmrrrpKNpst1OUAABA2LMvS+fPndc011xg/iuGnwio0nDx5st3LJwEAgJkTJ07ouuuu61LfsAoNV111laSWD5yYmBjiagAACB8Oh0Opqam+v6VdEVahofUricTEREIDAABd0J2v91kICQAAjBAaAACAEUIDAAAwQmgAAABGCA0AAMAIoQEAABghNAAAACOEBgAAYCSg0FBWVqZ58+YpNTVVCQkJGjNmjLZs2SKv13vZfrm5ubLZbG222trabhUPAAB6T0B3hNy0aZPS0tK0ceNGDR06VNXV1Vq5cqW+/vprbdy48bJ9J02apOLiYr+24cOHB1wwAAAIjYBCw65duzR48GDf69tuu00//PCDnnvuOf3xj3+U3W7vsG9ycrJuvfXWrlcKAABCKqCvJ34cGFqNGzdOFy9e1Llz54JWFAAAuPJ0eyHkgQMHNGDAAA0ZMuSy++3bt08JCQmKjY1VTk6O9u/f3+mxXS6XHA6H3wYAAEKjW6Hh8OHD2rp1qx566CFFRkZ2uF9OTo42b96sqqoqlZaWyul0aurUqTp48OBlj19UVKSkpCTflpqa2p1y27AsS85LbjkvuWVZVlCPDQBAX2OzuvjX8tSpU5owYYKuu+467d27V9HR0cZ9L1y4oFGjRikrK0uVlZUd7udyueRyuXyvW58F3tjYGJRHYzsvuZVVsFuSdHTDdMXHhNWTwgEAMOZwOJSUlNStv6Fd+ivZ2NioO+64Q/Hx8dq5c2dAgUGSEhISNGvWLJWXl192P7vdftnFlQAAoPcEHBouXryouXPn6vTp0zp48KAGDhzYpV/M1wEAAISXgEKD2+3WokWL9Mknn2j//v1KS0vr0i+9cOGCKioqdMstt3SpPwAA6H0BhYYHH3xQu3bt0tNPPy2n06kPPvjA915WVpYSExO1fPlylZaWyu12S2q5uqK4uFjz589XWlqaTp48qU2bNunUqVMqKysL7qcBAAA9JqDQsHt3y6LBNWvWtHmvurpaubm58ng88ng8vvZhw4bJ5XJp3bp1qqurU0JCgiZOnKjnn39e2dnZ3SwfAAD0li5fPREKwVj5+WNcPQEA6C+C8TeUp1wCAAAj/K91MFiW1Oxs+Tk6XrLZQlsPAAA9gJmGYGh2SoXXtGyt4QEAgD6G0AAAAIwQGgAAgBFCAwAAMEJoAAAARggNAADACKEBAAAYITQAAAAjhAYAAGCE0AAAAIwQGgAAgBFCAwAAMEJoAAAARggNAADACKEBAAAYITQAAAAjhAYAAGCE0AAAAIwQGgAAgBFCAwAAMEJoAAAARggNAADACKEBAAAYITQAAAAjhAYAAGCE0AAAAIwQGgAAgBFCAwAAMEJoAAAARggNAADACKEBAAAYITQAAAAjhAYAAGCE0AAAAIwQGgAAgBFCAwAAMEJoAAAARggNAADACKEBAAAYITQAAAAjhAYAAGCE0AAAAIwQGgAAgBFCAwAAMEJoAAAARggNAADACKEBAAAYITQAAAAjhAYAAGCE0AAAAIwQGgAAgBFCAwAAMEJoAAAARggNAADACKEBAAAYCSg0lJWVad68eUpNTVVCQoLGjBmjLVu2yOv1dtq3tLRUGRkZio2N1ejRo1VWVtblogEAQO8LKDRs2rRJdrtdGzdu1D//+U/NmzdPK1eu1Nq1ay/br7y8XPn5+Zo/f77efvttTZkyRYsXL9aePXu6VTwAAOg9NsuyLNOdv//+ew0ePNivbfXq1dqyZYsaGhpkt9vb7ZeZmakbb7xRr7/+uq9t+vTpamxs1AcffGBcrMPhUFJSkhobG5WYmGjcryPOS25lFeyWJB3dMF3xMVFdO9ClC1LhNS0//+GkFJPQ7doAAAimYPwNDWim4aeBQZLGjRunixcv6ty5c+32+eabb1RbW6slS5b4td999906dOiQzp49G0gJAAAgRLq9EPLAgQMaMGCAhgwZ0u77NTU1klpmG34sKytLlmWptra2uyUAAIBe0MX5+BaHDx/W1q1b9dhjjykyMrLdferr6yVJycnJfu0pKSmS1OEMhSS5XC65XC7fa4fD0Z1yAQBAN3R5puHUqVNasGCBsrOzO10IKUk2m83vdetSip+2/1hRUZGSkpJ8W2pqalfLveJZliVns1POZqcCWGYCAECv6VJoaGxs1B133KH4+Hjt3LlT0dHRHe7bOqPQOuPQqqGhwe/99qxbt06NjY2+7cSJE10pNyw0uZs04dUJmvDqBDW5m0JdDgAAbQT89cTFixc1d+5cnT59WgcPHtTAgQMvu3/rWoaamhplZGT42o8ePSqbzebX9lN2u73DKzIAAEDvCmimwe12a9GiRfrkk09UVVWltLS0TvuMGDFCGRkZ2r59u1/7a6+9puzsbA0aNCiwigEAQEgENNPw4IMPateuXXr66afldDr97rGQlZWlxMRELV++XKWlpXK73b73NmzYoMWLFys9PV2333673nrrLe3Zs0dVVVXB+yQAAKBHBRQadu9uuRHSmjVr2rxXXV2t3NxceTweeTwev/cWLlwop9OpwsJCFRcXa+TIkdq+fbumTZvWjdIBAEBvCig0fPvtt53uU1JSopKSkjbty5Yt07JlywL5dQAA4ArCUy4BAIARQgMAADBCaAAAAEYIDQAAwEi3nj2BK49lWbKaWu4oaYuLu+xtugEACAQzDX2M1dSkL24ery9uHu8LDwAABAOhAQAAGCE0AAAAI4QGAABghNAAAACMEBoAAIARQgMAADBCaAAAAEYIDQAAwAihAQAAGCE0AAAAI4QGAABghAdWoV2WZcl9yStJioqJ4MFXAABmGtA+9yWvXly1Ty+u2ucLDwCA/o3QAAAAjBAaAACAEUIDAAAwQmgAAABGCA0AAMAIoQEAABghNAAAACOEBgAAYITQAAAAjBAaAACAEUIDAAAwQmgAAABGCA0AAMAIj8ZGj7EsS26XS5IUZbfzeG0ACHPMNKDHuF0uPbvsLj277C5feAAAhC9CAwAAMEJoAAAARggNAADACKEBAAAYITQAAAAjhAYAAGCE0AAAAIwQGgAAgBFCAwAAMEJoAAAARggNAADACKEBAAAYITQAAAAjhAYAAGAkKtQFAJ2xLEtWs1eSZIuOkM1mC3FFANA/MdOAK57V7NXJgvd1suB9X3gAAPQ+QgMAADBCaAAAAEZY0wAA6Pcsy1KTu0mSFBcVx9qpDjDTAADo95rcTZrw6gRNeHWCLzygLUIDAAAwQmgAAABGCA0AAMAIoQEAABgJODR89dVXeuCBBzR27FhFRUVp9OjRRv1yc3Nls9nabLW1tQEXDQAAel/Al1weOXJEFRUVmjBhgrxer7xe8zv0TZo0ScXFxX5tw4cPD7QEAAAQAgGHhjlz5igvL0+SlJ+fr8OHDxv3TU5O1q233hrorwQAAFeAgL+eiIhgGQQAAP1RryaAffv2KSEhQbGxscrJydH+/fsvu7/L5ZLD4fDbAABAaPRaaMjJydHmzZtVVVWl0tJSOZ1OTZ06VQcPHuywT1FRkZKSknxbampqb5ULAAB+oteePfHEE0/4vZ49e7ZGjRqlJ598UpWVle32WbdunVavXu177XA4CA4AAIRIyB5YlZCQoFmzZqm8vLzDfex2u+x2ey9WBQAAOhLSVY2WZYXy1wMAgACELDRcuHBBFRUVuuWWW0JVAgAACEDAX084nU7fGoTjx4/L4XD4vmLIycnR4MGDtXz5cpWWlsrtdkuSDhw4oOLiYs2fP19paWk6efKkNm3apFOnTqmsrCyIHwfomGVZam5uliRFR0fLZrOFuCIACC8Bh4YzZ85o4cKFfm2tr6urq5WbmyuPxyOPx+N7f9iwYXK5XFq3bp3q6uqUkJCgiRMn6vnnn1d2dnY3PwJgprm5WYWFhZKkP/zhD4qJiQlxRQAQXgIODcOHD+90LUJJSYlKSkp8r0eOHKmqqqqAiwMAAFcObu8IAACMEBoAAIARQgMAADBCaAAAAEYIDQAAwAihAQAAGAnZsyeAcGRZlrzeJklSREQcN4gC0K8w0wAEwOtt0t59N2rvvht94QEA+gtCAwAAMEJoAAAARggNAADACAshgTBlWZaamlseDBcXHcmiTAA9jpkGIEw1NXuUVbBbWQW7feEBAHoSMw1ACFiWJafXK0mKj4gI7SyBZUnNzpafo+MlZiwAdICZBiAEnF6v0vd/pvT9n/nCQ8g0O6XCa1q21vAAAO0gNAAAACOEBgAAYITQAAAAjBAaAACAEUIDAAAwQmgAAABGCA0AAMAIoQEAABghNAAAACOEBgAAYITQAAAAjBAaAACAEUIDAAAwQmgAAABGCA0AAMAIoQEAABghNAAAACOEBgAAYITQAAAAjBAaAACAEUIDAAAwQmgAAABGCA0AAMAIoQEAABghNAAAACNRoS4AQN9gWZaa3E2SpLioONlsthBXBCDYmGkAEBRN7iZNeHWCJrw6wRceAPQthAYAAGCE0AAAAIwQGgAAgBFCAwAAMEJoAAAARggNAADACKEBAAAYITQAAAAj3BESwBXDsixZTS03hrLFcVdJ4ErDTAOAK4bV1KQvbh6vL24e7wsPAK4chAYAAGCE0AAAAIwQGgAAgBFCAwAAMEJoAAAARgIODV999ZUeeOABjR07VlFRURo9erRx39LSUmVkZCg2NlajR49WWVlZoL8eADplWZaaXR41uzyyLCvU5QB9RsCh4ciRI6qoqNDIkSOVlZVl3K+8vFz5+fmaP3++3n77bU2ZMkWLFy/Wnj17Ai0BAC7LfcmrF1ft04ur9sl9yRvqcoA+I+CbO82ZM0d5eXmSpPz8fB0+fNio36OPPqqFCxeqqKhIknTbbbeptrZWBQUFmjZtWqBlAACAXhbwTENERODLIL755hvV1tZqyZIlfu133323Dh06pLNnzwZ8TAAA0Lt6ZSFkTU2NJCkzM9OvPSsrS5Zlqba2tt1+LpdLDofDbwMAAKHRK6Ghvr5ekpScnOzXnpKSIkk6d+5cu/2KioqUlJTk21JTU3u2UAAA0KFeveTypw+faV3V3NFDadatW6fGxkbfduLEiR6vEQAAtK9XnnLZOqNQX1+voUOH+tobGhr83v8pu90uu93e8wUCAIBO9cpMQ+tahta1Da2OHj0qm82mjIyM3igDAAB0Q6+EhhEjRigjI0Pbt2/3a3/ttdeUnZ2tQYMG9UYZAACgGwL+esLpdKqyslKSdPz4cTkcDpWXl0uScnJyNHjwYC1fvlylpaVyu92+fhs2bNDixYuVnp6u22+/XW+99Zb27NmjqqqqIH0UAADQkwIODWfOnNHChQv92lpfV1dXKzc3Vx6PRx6Pp80+TqdThYWFKi4u1siRI7V9+3Zu7AQAQJgIODQMHz6803u5l5SUqKSkpE37smXLtGzZskB/JQAAuALwlEsAAGCE0AAAAIwQGgAAgBFCAwAAMNIrd4QEgHBjWZbcLpckKcpu7/B290B/wkwDALTD7XLp2WV36dlld/nCA9DfERoAAIARQgMAADBCaAAAAEYIDQAAwAihAQAAGCE0AAAAI4QGAABghNAAAACMcEdIAOhBlmXJavZKkmzREdxZEmGNmQYA6EFWs1cnC97XyYL3feEBCFeEBgAAYITQAAAAjLCmAQDCgGVZam5uliRFR0ezNgIhwUwDAISB5uZmFRYWqrCw0BcegN5GaAAAAEYIDQAAwAihAQAAGCE0AAAAI4QGAABghNAAAACMEBoAAIARQgMAADBCaAAAAEYIDQAAwAihAQAAGCE0AAAAI4QGAABghNAAAACMEBoAAIARQgMAADBCaAAAAEYIDQAAwAihAQAAGCE0AAAAI1GhLgAAEF4sy5LT65UkxUdEyGazhbgi9BZmGgAAAXF6vUrf/5nS93/mCw/oHwgNAADACKEBAAAYITQAAAAjhAYAAGCE0AAAAIwQGgAAgBHu0wAA/YRlWfJ6myRJERFx3F8BAWOmAQD6Ca+3SXv33ai9+270hQcgEMw0AAAQBJZlyWpqCWO2uL45k8NMAwAAQWA1NemLm8fri5vH+8JDX0NoAAAARggNAADACKEBAAAYITQAAAAjhAYAAGAk4NDw5ZdfasaMGUpISNCQIUO0atUqNRmsEs3NzZXNZmuz1dbWdqlwAADQuwK6T0NDQ4MmT56stLQ07dixQ2fOnNHq1atVV1enV155pdP+kyZNUnFxsV/b8OHDAyoYAACERkCh4YUXXlB9fb0+/vhjDRo0qOUAUVFaunSp1q9fr8zMzMv2T05O1q233tr1agEA+DHLkpqdLT9Hx0t98IZKV5KAvp6orKzU1KlTfYFBkhYsWCC73a7KysqgFwcAwGU1O6XCa1q21vCAHhNQaKipqWkzm2C325Wenq6amppO++/bt08JCQmKjY1VTk6O9u/ff9n9XS6XHA6H3wYAAEIjoNBQX1+v5OTkNu0pKSk6d+7cZfvm5ORo8+bNqqqqUmlpqZxOp6ZOnaqDBw922KeoqEhJSUm+LTU1NZByAQBAEAX8wKr2HsBhWVanD+Z44okn/F7Pnj1bo0aN0pNPPtnhVxvr1q3T6tWrfa8dDgfBAQCAEAlopiElJUX19fVt2hsaGpSSkhLQL05ISNCsWbP04YcfdriP3W5XYmKi3wYAAEIjoNCQmZnZZu2Cy+XSsWPHOr1yoj2WZQXcBwDQN1iWJeclt5yX3Pw9CBMBhYaZM2fqnXfeUV1dna/tjTfekMvl0syZMwP6xRcuXFBFRYVuueWWgPoBAPqGpmaPsgp2K6tgt5qaPaEuBwYCCg3333+/kpOTlZeXp927d+vll1/WihUrtHTpUr+ZhuXLlysq6v+XSxw4cEB5eXkqKSlRdXW1tm3bpl/84hc6deqUCgoKgvdpAABAjwloIWRycrLeffddrVixQnfeeafi4+O1ZMkSPfXUU377eTweeTz/nxqHDRsml8uldevWqa6uTgkJCZo4caKef/55ZWdnB+eTAACAHhXw1RM33HCDdu/efdl9SkpKVFJS4ns9cuRIVVVVBVwcAAC4cvCUSwAAYITQAAAAjBAaAACAEUIDAAAwQmgAAABGCA0AAMAIoQEAABghNAAAACOEBgAAYITQAAAAjBAaAACAEUIDAAAwQmgAAABGCA0AAMAIoQEAABghNAAAACOEBgAAYITQAAAAjBAaAACAEUIDAAAwQmgAAABGCA0AAMAIoQEAABghNAAAACOEBgAAYITQAAAAjBAaAACAEUIDAAAwQmgAAABGCA0AAMAIoQEAABghNAAAACOEBgAAYITQAAAAjBAaAACAEUIDAAAwQmgAAABGCA0AAMAIoQEAABghNAAAACOEBgAAYITQAAAAjBAaAACAEUIDAAAwQmgAAABGCA0AAMAIoQEAABghNAAAACOEBgAAYITQAAAAjBAaAACAEUIDAAAwQmgAAABGCA0AAMAIoQEAABghNAAAACOEBgAAYITQAAAAjAQcGr788kvNmDFDCQkJGjJkiFatWqWmpiajvqWlpcrIyFBsbKxGjx6tsrKygAsGAAChEVBoaGho0OTJk3X+/Hnt2LFDxcXF2rZtm+69995O+5aXlys/P1/z58/X22+/rSlTpmjx4sXas2dPl4sHAAC9JyqQnV944QXV19fr448/1qBBg1oOEBWlpUuXav369crMzOyw76OPPqqFCxeqqKhIknTbbbeptrZWBQUFmjZtWjc+AgAA6A0BzTRUVlZq6tSpvsAgSQsWLJDdbldlZWWH/b755hvV1tZqyZIlfu133323Dh06pLNnzwZYNgAA6G0BhYaampo2swl2u13p6emqqam5bD9JbfpmZWXJsizV1ta228/lcsnhcPhtAAAgNAIKDfX19UpOTm7TnpKSonPnzl22n6Q2fVNSUiSpw75FRUVKSkrybampqYGUCwAAgshmWZZlunN0dLT++Mc/au3atX7tkyZN0tVXX60dO3a022/btm369a9/rVOnTmno0KG+9n//+9+64YYbtHPnTs2ZM6dNP5fLJZfL5XvtcDiUmpqqxsZGJSYmmpbdIcuy1NTskSTFRUfKZrN19UBSs7Pl5+h4qQvHsSxLTe6Wq1DiouK6XItlWbL+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\n",
"text/plain": "<Figure size 600x500 with 1 Axes>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Longest chromosome is 250 Mb"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "reso = 1000000\n\nfor n, chrom in enumerate(chromosome_list):\n for y in range(int(len(genome[chrom]) / reso)):\n plt.plot([n, n + 0.3], [y, y])",
"execution_count": 42,
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAgsAAAGtCAYAAACY8jegAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO29f5CU1Zn2f/Xv7hn5lYiGAIWvZFMCGTaAaEKqlGjeIFQFdEk0LO8a1pL8LDRi1AUNCVYilqCJrBXKoGsqiaUiViJZJ/itUiIuavySMtk3Yb5JBTaJ0YiuDAybme7p7uf5/jH0mHlgnvsMc033mZnrUzWVTPeZ23vOeZ7pm3Oe67oTYRiGEEIIIYToh2SjExBCCCGE36hYEEIIIUQsKhaEEEIIEYuKBSGEEELEomJBCCGEELGoWBBCCCFELCoWhBBCCBFLutEJDJYgCPD6669jzJgxSCQSjU5HCCGEGDaEYYjjx4/jve99L5LJ/vcPhn2x8Prrr2Pq1KmNTkMIIYQYtrz66quYMmVKv+8P+2JhzJgxAHp+0bFjxzY4GyGEEGL40NHRgalTp/Z+lvbHsC8WakcPY8eOVbEghBBCnAbWMb4ecBRCCCFELCoWhBBCCBGLigUhhBBCxKJiQQghhBCxqFgQQgghRCwDKhYef/xxXH755Zg6dSqam5sxe/ZsbNu2DUEQ9I5ZtWoVEonESV+7d+8+Kd6WLVtwzjnnIJ/PY/78+fjZz3426F9ICCGEEFwGJJ28++67MW3aNGzevBlnn3029uzZg+uuuw6HDh3C5s2be8ede+65ePjhh/v87IwZM/p8v2XLFqxfvx533HEH5s6di+3bt2Px4sV4+eWX0dLSMohfSQghhBBMEmEYhq6D33rrLUycOLHPa2vXrsW2bdtw9OhR5HI5rFq1Cvv378evf/3rfuOUSiWcffbZ+OxnP4u77roLAFCtVtHS0oLZs2fj0Ucfdf4FOjo6MG7cOBw7dkw+C0IIIcQAcP0MHdAxRLRQAIA5c+agWCziyJEjznFeeOEFHDt2DCtWrOh9LZVK4aqrrkJraysGUL8IIYQQYogZ9AOOzz//PN71rnfhrLPO6n3t4MGDGD9+PLLZLObNm4cf//jHfX6mra0NAHDeeef1eX3mzJk4fvw4XnvttcGmJYQQQggSgyoW9u/fj4ceegg33HADUqkUgJ6dhi1btuDHP/4xduzYgTPPPBNXXHEFdu7c2ftz7e3tyOVyKBQKfeJNmDABAGJ3KUqlEjo6Ovp8CSGEEGLoOO3eEG+88QaWL1+OCy64ALfcckvv69dff32fcUuXLsWCBQuwYcMGfPKTn+x9/VQ+1LXjhziP6k2bNmHjxo2nm7YQQgghBshp7SwcO3YMixcvRlNTE3bt2oVMJtP/fyCZxPLly9HW1oauri4APTsIxWIRxWKxz9ijR4/2vt8f69atw7Fjx3q/Xn311dP5FYQQQgjhyIB3ForFIpYuXYrDhw/jxRdfxLvf/W7zZ6IPLNZklG1tbZgzZ07v6wcOHMCYMWMwefLkfmPlcjnkcrmBpu1MGIYol8uxYzKZjNmhSwghhBgpDKhYqFQquPLKK/GrX/0Ke/fuxbRp08yfCYIAO3fuxKxZs3qfUViwYAHGjRuHxx57rLdYqFar2LFjB5YsWdLQD+Lu7m5s2rQpdsy6deuGtGARQgghfGJAxcKXvvQl/OQnP8Fdd92Fzs5OvPTSS73vzZw5E+3t7Vi1ahVWrFiB6dOno729Hdu2bcP+/fvxxBNP9I7N5XK47bbbsH79ekycOBFz587FAw88gEOHDg3IY2EoCMuB2xjVCkIIIUYJAyoWnn76aQDAzTfffNJ7e/bswezZszF27FjcfvvteOutt5DNZnH++efjpz/9KRYtWtRn/I033ogwDLF161YcPnwYLS0taG1tbbh7YzqdxmeKC80xQgghxGhhQA6OPsJ2cCx1dmLbNStjx3zh3x5Grqlp0P8tIYQQopG4fobqn8gRKuUA1TD+AcdKOdAphBBCiFGDioUIqWqA3Pg15hghhBBitKBiIUI6m8TC509+JqPvmH11ykYIIYRoPCoWIpQywKobqrFjnsvYExeGITqD+B2IpmRSfg1CCCG8R8VChES1iFI2/gM8US0COCN2TGcQYPre/xs75uBFLWg+0VNDCCGE8BUVCxHyyRx+/od4C+l80uHxRheRyfAWogghhBglqFiI0IUczu96MHbMfuTQbMTJhkU8GP6jMeZlWDsUQgghRKNRsRChMwzRhbw5xioWKpUK8iiZY2J6cAkhhBBeoGIhQiGdRPHSSeYYi0Qij33/8enYMR9ZEF+UCCGEED6gYiFCDiU8mPo/xpiXAcRvCaSRwj91/m9zjBBCCOE7KhYilMtl8/igXC6bxwfVUgkZoxiolkpI53UOIYQQwm9ULERIVHPm8cGC+bYaogJg5x/uiR2zGj+QbbQQQgjvUbEQIZPJmMcHGYenEtPZHNLjPm+OEUIIIXxHxUKEalDGk3+4N3bMF4ILkDaeWUhVS6ZtdKq6D9azD0IIIUSjUbEQoVoJza6T1YptplSslpAKus0xZ8hnQQghhOeoWIiQymTtrpOZrBknkc/hn26Mf8DxubyOIYQQQviPioUIrOODQhhi7+t/jh2Tl92zEEKIYYCKhQjFStE+PqgUzeODrnIVzUYx8NdyFc3yZRJCCOE5KhYiJDKhfXyQsXcEOlN5nF/8t9gxe1N50zZaCCGEaDQqFiIUUnn7+CBlbwcUMim0X/q/zDFCCCGE76hYiMDqOsmyjRZCCCEajYqFCOo6KYQQQvRFxUIEdZ0UQggh+qJiIYK6TgohhBB9UbEQgXV8EHR3m10ng+5uQF0nhRBCeI6KhQis44MwnTC7Tn4h/fCAchNCCCEagYqFCLTjg0TG7DqJhHYVhBBC+I+KhQjVUsk8PqiWSkgbxwdhVxcSRjEQdnUBBRUMQggh/EbFQoQKYB4frMYPYLWAKie7cfHeG4wxzxgiTSGEEKLxqFiIkM7mzOODdNbuFpks5LHqhmrsmOcKKhWEEEL4j4qFCOo6KYQQQvRFxUKEYrVkd52slsyuk8VKgCajGOisBGgacIZCCCFEfVGxECGRz9ldJ/P2MUSYLmCG0XVyf7owoNyEEEKIRqBiIQLr+CBMJcyuk2EqMaDchBBCiEagYiFCV7mKZqMY+Gu5imbj2cQgKAJGD4kgKEJdJ4UQQviOioUInak8zjeOD/am8mbXyXS1ggfDfzTG7BtgdkIIIUT9UbEQoZBJmccHhYzt4JhMFvCL/7gidsylC/TMghBCCP9RsRBBXSeFEEKIvqhYiKCuk0IIIURfVCxEUNdJIYQQoi8qFiKo66QQQgjRFxULEWjHB8Wi2XUSxaK6TgohhPAeFQsRWMcHqUzC7DqZykg6KYQQwn9ULEQhHR+UMrC7Tma0AEIIIfxHn1URwq4u8/gg7Oqyjw8qXShlDTvnSheQi29IJYQQQjQaFQsRyslu8/ignHwGph4iyODnf3g1dkgY6HkFIYQQ/qNiIUKykLePDwq2dBKZJszrejB2yP6MGlQLIYTwHxULEdR1UgghhOiLioUIxUqAJqMY6KwEsPYEwrBkdp0MwxLUdVIIIYTvqFiIEKYLmGF0ndyfthtA5RMwu07mEy8PKDchhBCiEahYiMA6PqhW0w5dJ9NmjwkhhBCi0ahYiBAERfP4IAiKsI4PwnKAwFA7hOUAtqxCCCGEaCwqFiKkqxXz+CBdtZ0Xk0GAzxQXmmOEEEII31GxECGZLDgcH9jPLCCTxJN/uDd2yBcy6jophBDCf1QsRFDXSSGEEKIvKhYiqOukEEII0RcVCxHUdVIIIYToi4qFKOo6KYQQQvQhXiMY4fHHH8fll1+OqVOnorm5GbNnz8a2bdsQRJ7qb21txZw5c5DP5/G+970P3/nOd04Zb8uWLTjnnHOQz+cxf/58/OxnPzvtX4TGieODuC8Ui2aYRLWIUjYR+5Wo2nGEEEKIRjOgf9jefffdmDZtGjZv3oyzzz4be/bswXXXXYdDhw5h8+bNAIAXX3wRy5Ytw9VXX4177rkH+/btw5o1a5DNZnHttdf2xtqyZQvWr1+PO+64A3PnzsX27duxePFivPzyy2hpaeH+lgOAdXyQT+bMrpP5ZG5AuQkhhBCNIBGGDl2RTvDWW29h4sSJfV5bu3Yttm3bhqNHjyKXy2Hx4sU4cuQIfv7zn/eO+exnP4t///d/x5///Gckk0mUSiWcffbZ+OxnP4u77roLAFCtVtHS0oLZs2fj0Ucfdf4FOjo6MG7cOBw7dgxjx451/rn++Gvpf3Dx9z8UO+a5q19Cc+6M+DjFbpz/9Z/Ejtn/9U+gOZ8dcI5CCCEEA9fP0AEdQ0QLBQCYM2cOisUijhw5glKphGeffRaf/vSn+4xZuXIl/vKXv+CVV14BALzwwgs4duwYVqxY0TsmlUrhqquuQmtrKwZQv/CpdJnHB6h0mWE6gwBdyMd+dcqUSQghxDBg0M/XPf/883jXu96Fs846C7/97W/R3d2NGTNm9Bkzc+ZMAEBbWxvmzZuHtrY2AMB555130rjjx4/jtddew5QpU0753yuVSiiVSr3fd3R0DPZX6EuQMY8PQsPGGQByqTKKl04yx8jvWQghhO8MqljYv38/HnroIXzta19DKpVCe3s7AGD8+PF9xk2YMAEAcOTIEQBAe3s7crkcCoVCv+P6KxY2bdqEjRs3DibteDJNmNf1YOyQ/RmrQTVQSCbwYOr/GGPUdVIIIYT/nHax8MYbb2D58uW44IILcMstt/R5L5E4dVfGv339VGNqxw/9/TwArFu3DmvXru39vqOjA1OnTh1Q7nGo66QQQgjRl9MqFo4dO4bFixejqakJu3btQubEJ15tZ6C2w1Cj9n3t/QkTJqBYLKJYLCKff2cb/ujRo33GnYpcLodcbuhUBGFYMrtOhmEJVtdJVEKz6yQqDXw2QwghhHBkwMVCsVjE0qVLcfjwYbz44ot497vf3fve9OnTkc1m0dbWhssuu6z39QMHDgBA77MMtf9ta2vDnDlz+owbM2YMJk+efHq/DYF8AmbXyXzCPj5Ip9Nm18l02p7+MAxRLpdjx2QymdjdGCGEEGIwDKhYqFQquPLKK/GrX/0Ke/fuxbRp0/q8n8vlcMkll2DHjh244YZ3vAoeeeQRTJo0qbcwWLBgAcaNG4fHHnus97VqtYodO3ZgyZIlDf3gYx0fVIOy3XUyuABpY4eiu7sbmzZtih2zbt26Id1tEUIIMboZULHwpS99CT/5yU9w1113obOzEy+99FLvezNnzsTYsWOxYcMGXHTRRVi9ejVWrlyJffv2Yfv27bj//vuRTPZs7+dyOdx2221Yv349Jk6ciLlz5+KBBx7AoUOHBuSxMBSE5cA8PgjLgSliqJQDVMP4HYFKOYD1ER90x1tG945RrSCEEGKIGFCx8PTTTwMAbr755pPe27NnDxYuXIgPf/jDePLJJ7F+/Xp8//vfx5QpU7B169Y+7o0AcOONNyIMQ2zduhWHDx9GS0sLWltbG+reCADJIDCPD5IO/gipaoDc+DXmmHrlI4QQQpwuA3Jw9BG2g2OpsxPbrlkZO+YL//Ywck3x8snK//wP/r8LPhI75ryX9yF9RrwTJCsfIYQQIorrZ6iaHkbxreskKR8hhBDidFGxEOVE10lrDArxY2pdJ60xQPzOAisfIYQQ4nRRsRDBt66TrHyEEEKI00XFQgTW8UEXcjjfso1GDs11ykcIIYQ4XfQZE4F1fNAZhugy9JWdYWgWC7TjDCGEEOI0UbEQgXV8UEgnza6TBcNWmpmPEEIIcbqoWIjAOj7IoWR2nczhZVg9Jlj5ALZ1tGyjhRBCnAoVCxE6g8A+PggC88O5XC4jj5I5xrKNZuUD2NbRso0WQghxKlQsRMilyubxQS5VhuX3nKjmsO8/Ph07ZsF8+4OZlQ9wwqbael+1ghBCiAgqFiIUkgnz+KCQtLtOZjIZ/FPn/zbH1CsfwO6E6dIFUwghxOhDnw4RfOs6ycrHJSeXfIQQQow+VCxEqYRm10lU7HYa1Upodp2sOsRh5eOSk1M+QgghRh0qFiJYW/W1MRapTNbuOpnJ1i0fl5xc8hFCCDH6ULEQgXV8kKqWsPD5k1t59x2zD5Z0kpWPS04u+QghhBh9qFiIUCkH5vFBpRyYooFipYhU0G2OOcNwXmTl45KTSz5CCCFGHyoWIqSqgX18UI2XIAJAIhPin25MxY55LmM/I8DKxyUnl3yEEEKMPlQsREhnk+bxQTprd3kspPLY+/qfY8fkU7Y3Aisfl5xc8hFCCDH6ULEQYSR3nbRycrWNFkIIMbpQsRBhJHedtHJyyUcIIcToQ8VChJHcddLKySUfoKchVRB09ft+MllQQyohhBhBqFiIMJK7Tlo5ueQDANVqJ57bO7vf9y++6D+RTmuPQgghRgoqFiKwjg8qlYrZdbJSqdhdJ0n5uOTkkg+A2DbXtffVZkIIIUYO+pMegXV8kEjkza6TH1lgqw9Y+bjk5JIPM44QQojhgYqFCKzjgzRSZtfJNOJ9GJj5uOTkkg8zjhBCiOGBioUI5XLZPD4ol8t218lSCRnjQ7NaKiGdjw/EysclJ5d8mHGEEEIMD1QsREhUc+bxwYL5tvqgAmDnH+6JHbMaPzBtmln5uOTkkg8zjhBCiOGBioUImUzGPD7IOPwzPp3NIT3u8+aYeuXjkpNLPsw4QgghhgcqFiKo66S6VwohhOiLioUI1UpodnmsVuyGS8Vqye46WS2ZXR5Z+bjk5JIPM44QQojhgYqFCKlM1u7ymMmacRL5nN11Mm9v17PyccnJJR9mHCGEEMMDFQsRWMcHhTC0u06GLi2qOfm45OSSDzOOEEKI4YGKhQjFStE+PqgUzW32rnIVzcaH5l/LVTQb/kWsfFxycsmHGUcIIcTwQMVChEQmtI8PMva/nDtTeZxf/LfYMXtTebvrJCkfl5xc8mHGEUIIMTxQsRChkMrbxwcpB5vmTArtl/4vc0y98nHJySUfZhwhhBDDAxULEdR10n72gRVHra6FEGJ4oGIhgrpO1i9OEHThZ8+19Pv+wov/L1KpJjuQEEKIIUXFQgR1naxfnNB4ANR6XwghRH1QsRBBXSdtWHEqlZRRdKSQ1hUqhBANR3+KI7COD4LubrPrZNDdDRjdGVn5uOTkkg8zDiohgiBmnKMzpRBCiKFFxUIE1vFBmE6YXSe/kH64bvm45OSSDzNOOp3GZ4oLY98XQgjRePTXOALr+ACJjNl1EonBHx045+OSk0M+zDhWkyzXBllCCCGGFhULEaqlknl8UC2VkDa22cOuLiSMD82wqwsoGF0nSfm45OSSDzNOpRzENsmqlAOoy4QQQjQeFQsRKoB5fLAaPzA/xMrJbly89wZjzDOGKJKXj0tOLvkw46SqQWyTrFQ1cIgihBBiqFGxECGdzZnHB+ms/dGcLOSx6oZq7JjnCvZHKisfl5xc8mHGSWeTsU2y0tl9TnGEEEIMLSoWIqjrpA0rTimD+KIjowtUCCF8QH+LIxSrJbvLY7VkdnksVgI0GR+anZUAlj8hKx+XnFzyYcZJVIsoZfu3c05Ui4DD7yWEEGJoUbEQIZHP2V0e8/a2f5guYIbRdXJ/ulC3fFxycsmHGSefzOHnf3g19n0hhBCNR8VCBNbxQZhKmF0nw5TdJImVj0tOLvkw41hNslwbZAkhhBhaVCxE6CpX0Wx8+P61XEWz8QxfEBQBo2dDEBRhdp0k5eOSk0s+zDidQRDbJKszCFQsCCGEB6hYiNCZyuN84/hgbypvfoilqxU8GP6jMcZ+2p+Vj0tOLvkw4+RS5dgmWblUGXASYQohhBhKVCxEKGRS5vFBIWM7JiaTBfziP66IHXPpAvtsn5WPS04u+TDjFJKJ2CZZheTLTnHCMES53L+5UyaTQSLhdjQihBDiZFQsRFDXSRtWnGo1bRQdaacGWd3d3di0aVO/769btw65nB6WFEKI00XFQgR1nRx+XSfDcrzTY1gOIN9oIYQ4fVQsRFDXyfrFYXWdVPdKIYQYWvRXNIK6TtYvDqvrpLpXCiEaTRiG6CrHW/wXMqlh+/yUioUIrOMDFItm10kUi2Z3Rlo+Ljk55MOMU62EsV0nq47HEKw4QghxunSVq5i54enYMQduX4Sm7PD82B2eWQ8hrOODVCZhdp1MZWyJISsfl5xc8uHGycZ3ncxk6xpHCCFOl9DFrM/RQM9HVCxEIR0fWE2SAMdGSaR8XHJybdzEimM1yXJtkMWKI4QQp0uYRKxvTG3McGXAqf/+97/H5z//eXzwgx9EOp3GBz7wgZPGrFq1ColE4qSv3bt3nzR2y5YtOOecc5DP5zF//nz87Gc/O61fhEXY1YVEIhP7FXZ12YEqXShlE7FfqNhxaPk45OSSDzNOsVJEKuju96tYKdY1jhBCnC69zrYxXz3utsOTAe8s/OY3v8FTTz2FCy+8EEEQIAhOLVs799xz8fDDfbfHZ8yY0ef7LVu2YP369bjjjjswd+5cbN++HYsXL8bLL7+MlpaWgaZGoZzsNo8PyslnbF/BIBPbJAkAwjjZIDsfh5xc8mHGSWTC2CZZz2XctuxYcYQQ4nRhufb6yoCLhU984hNYtmwZgJ4dhP37959yXKFQwIc+9KF+45RKJXzjG9/Al7/8ZXzlK18BAFx88cVoaWnBN7/5TTz66KMDTY1CspC3jw8KDh/NmSbMi2mSBAD7M3YjZ1o+Djm55MOMU0jlY5tk5VNuvxcrjhBCnC4s115fGXCxkExyDl1eeOEFHDt2DCtWrOh9LZVK4aqrrsLdd9+NMAwbIjFR18n6xWF1nVT3SiFEo6HK3D1kyB5wPHjwIMaPH4/Ozk60tLTgq1/9Ki6//PLe99va2gAA5513Xp+fmzlzJo4fP47XXnsNU6ZMOSluqVRCqfSOo2FHRwc172IlQJPx4dtZCWD92zkMS2bXyTAswXrwjpWPS04u+TDjdIZhfNfJMHT6kGfFEUKI04Uqc/eQISkW5syZg/nz52PWrFk4evQotm3bhiuuuAKPP/44PvnJTwIA2tvbkcvlUCj03ZaZMGECAODIkSOnLBY2bdqEjRs3DkXaAIAwXcAMo8vj/rS9lZRPwDy/yifsRkmsfFxycsmHGaeQTsY+PVwwii12HCGEOF2YMncfGZJi4frrr+/z/dKlS7FgwQJs2LCht1gAcMpjhpoOtb8jiHXr1mHt2rW933d0dGDq1KmMtHv++6TjA6tJEuDWKImVj0tOro2bWHGsJlmuDbJYcYQQ4rQhytx9pC4+C8lkEsuXL8fNN9+Mrq4uFAoFTJgwAcViEcViEfn8O1vIR48eBfDODkOUXC43pB0Ee+Uv1hjjwycsB/FNkk6MsWQMrHxccnLJhxmnXC7HNskql8tORQcrjhBCnC41mbs1xskl10PqZsoUda6qySjb2towZ86c3tcPHDiAMWPGYPLkyfVKrQ8s+UsyCGKbG9XG1Csfl5xc8mHGSVRzsU2yFsx3KwpZcYQQ4nShytw9pC7FQhAE2LlzJ2bNmtX7jMKCBQswbtw4PPbYY73FQrVaxY4dO7BkyZKGNdugyV8yydjmRgDwhYx9fkWV4xg5ueTDjJPJZGKfHs44bgew4gghxOlClbl7yICLhc7OTrS2tgIA/vjHP6KjowM7d+4E0OOT0NnZiVWrVmHFihWYPn062tvbsW3bNuzfvx9PPPFEb5xcLofbbrsN69evx8SJEzF37lw88MADOHToUMM8FgB1naxnHHWdFEKMFJgydx8ZcLHw5ptv4lOf+lSf12rf79mzB7Nnz8bYsWNx++2346233kI2m8X555+Pn/70p1i0aFGfn7vxxhsRhiG2bt2Kw4cPo6WlBa2trQ1zbwTUdVJdJ4UQYuAwZe4+MuBi4ZxzzjE7Zz355JNOsRKJBG666SbcdNNNA01jyFDXyXrG8avrZBiG6DL6WhTShWHbj14IMXQwZe4+oq6TUdR1sm5xfOs62VXuxIWP9G9RDgA/X/ESmrKyeBJC9IUpc/cRFQtRSMcHiWqxpwOjMQY4oy75uOTklA8xTrFaQirojn3/jDrGceqWWekCVCwIISKwXHt9RcVCBNbxQT6ZM7tO5pO2pI+Vj0tOLvkw4yTyufhukfn6xmGtmRBi9MFy7fUVFQsRWMcHVnMjwK3BEe04wyGnejdusp4edn1ymBWHtWZCiNEHy7XXV1QsRKl0mccHqHQBufht7c4giG1uVBtjfvCQ8nHJySkfYpyuchXNMR/kfy1X0ewgS2bFoa2ZEGLUwXLt9RUVC1GCjLkVHRoXBADkUuXY5ka1MbbfMycfl5yc8iHG6UzlcX7M08N7U3m34oUUh7ZmQohRB8u111dULETJNGGetRWdsZWyhWQitrlRzxiH8ytSPi45OeXDjJNJxT49XMi4mU3R4rDWTAgx+iC59vqKioUI6jpZvzi+dZ0c6WeOQoghRF0nRxc0+UslNM+v4OAsSJXjWDm5Oh2S4lQqldhukZVKxemDmRWHtWZCiFEIUebuIyoWIrDkL+l02jy/Sqft6WfKcaycXPJhxkkk8rHdIj+ywO3ZAFYc1pqFYYiucryCpZBJyQlSiBEEU+buIyoWIrC2oq3mRoBbgyPm1rhvjZusJlmuDbJYcVhr1tldwayv/T+xY36z8eNozg3Pf2EIIU6GKXP3keGa95DBkr9UykFsc6PaGMvihynHsXJyyYcZp1oqxTbJqpZKSDs0yGLFYa1ZZzX+D0ZtTPMwdXITQpwCoszdR1QsRGDJX1LVILa5UW1MvfJxycklH2acChDbJGs1fuBWvJDisNZMEkwhRiFEmbuPqFiIQpK/pLPJ2OZGPWMczq+IchwrJ6d8qHFysU8Pp7Nu1sq8OJw181GCGYYhgqD/3hfJpLppCjEoiDJ3H1GxEEVdJ+sWx7euk6w181GCWa124rm9s/t9/+KL/hPptLwphThd1HVytKGuk3WL41vXSdqaeSjBLJfjn8Uol8twFLEIIU6Buk6OMtR1sn5xRmrXSaYEM+yKb5udKLgdH7DkpQhDoHAM0ucAACAASURBVNzZ//uZJkDHGWIUoq6Towx1naxfnJHadZIlwQw6O/G7eefHjnn/L/Yj1WzPNkteGnb/FYlNk/t/f91rSAzTp72FGAw+Hj8yUbEQgbUV3RmGdgfDMDQ/eGhb4w45ueTDjFOsBGiK+SDvrARweRyIFYe1ZtVKaEowqw7HEF2VotOYMxxmO+jujpWXBt3dgIO8tKtcjZ3LrnIVTW4bOUKMLDw8fmSiYiECayu6kE6a8rmCcb7FzMclJ5d8mHHCdAEzYrpF7k8X6hqHtWapTNaWYGayZhzreAVwP2IJ04lYeekX0m6KGtZcCzHSYB0/+srwzXyIYG1FW82NesbYDY5Y+bjkVO/GTdbTw65PDrPisNbMUmf0jLEVGtbxCuB+xGKqahwVNay5FmKkwTp+9BUVCxE6g8Deig4C88O5XC7HNjeqjbHOr1j5uOTkkg8zThAUY58eDoIiXIoOVhzWmhUrxVh1Rm2MpdDoKlfRbBQDfy1X0ezwbGLY1RWrqgm7upwUNay5FmKkwXKA9RUVCxFY7nuJai726XMAWDDfvmyYboBWTi75MOOkq5XYp4fTVUdzJ1Ic1polMqF9fJCxdwQ6U3mcH7PlDwB7U3m3QjHZHauqKSefcfKTZM21ECMNlgOsr6hYiMBy38tkMrFPn9fG1Csfl5xc8mHGSSYLsU8PX7rA7fybFYe2Zqm8fXyQsj+aC5mUafJSyLipGJKFfLyRVsFNOsmaayFGGjTXXk9RsRBBXSfVdTIOl9/Nt+deAJ68lDXXQow01HVytEGSv7Dkc0w5jpWTUz7EOCw5HysOa81YEsxKpWI+Q1GpVJwKRZa8lDXXQow0mDJ3H1GxEIElf2HJ55hyHCsnl3yYcXhyPk4c1pqxJJiW6yLg7rzIk6ly5lqIkQZT5u4jKhYisLaiWfI5phzHt8ZNLDkfKw5rzVjHB9aWf22MCzTJI2vNhBhhMGXuPqJiIQJL/sKSzzHlOFZOLvkw47DkfKw4rDVjSTCrpVLsln9tTNrlqIYkeWTNtRAjDabM3UdULERgyV9Y8jmmHMfKySUfZhyWnI8Vh7VmLAlmBYjd8geA1fiBU6HIkjyy5lqIkQZT5u4jKhYisOQvLPkcU45j5eSSDzMOTc5HisNaM5YEM53NxW/5nxjjAk2mSpprIUYaTJm7j6hYiKCuk/WLo66T9XnuBeBJHllzLcRIQ10nRxnqOmmjrpPxsCSYxWrJfoaiWnJ6PoQleWTNtRAjDnWdHF2o62T94qjrZDzqOinE8EFdJ0cZvrnvqeukjbpOOqCuk0IMKeo6OcrwzX2PlY9LTq5ugKw4YViKlfOFYQlORQcpDmvNWMcH1pY/MIBt/2IxVvKIYtFNpkqaayFGGjTXXk9RsRDBN/c9Vj4uObm6AbLi5BOIlfPlE25PDrPisNaMdXxgbfkD7tv+qUwiVvKYyrgpalhzLcRIg3X86CsqFiL45r7HbCbkXeMm4+lh5wZZpDisNWMdH1hb/rUxLliqGldFDWuuhRhpMNVLPqJiIYJv7nusfFxycnUDZMUJy0Hs08NhOXDyL2HFYa1ZV7mKZqMY+Gu5imYjJ8t1sXeMyx+fSle8qqbSBeQcXDdJcy3ESIPlAOsrKhYi+Oa+x8rHJSdXN0BWnGQQxD49nAzcnClZcVhr1pnK43zj+GBvKm8+Z2K5LvaMcTs+QJCJVdWEluTrBKy5FmKkwXKA9RUVCxF8c99j5eOSk6sbICsOMsnYp4e/kHHsYEiKw1qzQiZlHh8UMvZxhuW6CLg7LyLThHlxRloZR3cE1poJMcJgOcD6ioqFCL6576nrpAPqOmmirpNCDC3qOjnK8M19jynHsXJydQNkxWHJ+VhxWGvGkmBarou1MS7OizTJI2vNhBhhMGXuPqJiIYJv7ntMOY6Vk6sbICsOS87HisNaM5YE03JdBNydF1mSR9Zch2GISqn/giqdyyGRkMGTGD4wZe4+omIhgm/ue0w5jm+Nm1hyPlYc1prRjg+sLf8TY1xgSR5Zc10uFvGvqz7V7/trvvc4sgVZR4vhA1Pm7iMqFiKw5C8s+RxTjmPl5JIPMw5LzseKw1ozlgQz7OqK3/I/McbJeZEleSTNdbk7vpNqubuKrGoFMYxgytx9RMVCBJb8hSWfY8pxrJxc8mHGYcn5WHFYa8aSYJaT3bFb/j1jnnH6jKdJHklznaoGscdrqaokmGJ4wZS5+4iKhQgs+QtLPseU41g5ueTDjMOT83HisNaMJcFMFvKxW/4A8FzBUYpFk6ly5jqdTcYer6Wzjv4RQngCU+buIyoWIqjrpLpOxo9R10nGXLOefRDCF9R1cpShrpP1i6Ouk6O362SiWox99iFRLQLD1BZXjE7UdXKUoa6T9YujrpPxjOSuk/lkLvbZh3xy+J7titGJuk6OMnxz31PXyfrFUddJG9ZcW8drw9npToxO1HVylOGb+x4rH5ecXN0AWXFQCWPlfHDdsiPFYa0Z6/jA2vLvHVPPbX/SXFvHa8PZ6U6MTljHj76iYiGCb+57rHxccnJ1A2TFSafTsXK+dNrt8mTFYa0Z6/jA2vLvGVPfbX/WXFvHa65Ha2EYoqvSFROnICdIURdYx4++omIhgm/ue8xmQr41brKeHnZ9cpgVh7VmrOMDa8sfqP+2P2uuWYqarnInLnzkQ/2+//MVL6Epqz0KMfRQ1UseomIhgm/ue6x8XHJydgMkxamUg9inhyvlwDQuYsZhrVkQFM3jgyAowvowtFwXa2NcXJk6gyB+2z8I3BQ1pLm23O5cne7Ccqf9vooFUQdYDrC+omIhgm/ue6x8XHJydQNkxWG5+LHisNYsXa2Yxwfpqq0+sFwXa2NcyKXKsdv+uVQZLlUHa64ttztnpzuWC6gQg4TlAOsrKhYi+Oa+x8rHJSdXN0BWHJaLHysOa82SyYLD8YGD5NFwXQTcnRcLyUTstn8h6fbsA2uuLbc7Z6c7lguoEIOE5QDrKwMuFn7/+99jy5YteOmll/DrX/8a5513Hn7961+fNK61tRW33nor2traMGXKFKxduxZf/OIXTxq3ZcsW3HfffXjjjTfQ0tKCzZs3Y+HChaf1yzDwzX1PXSfrF0ddJ+04NAkm6dkHlqOkEINFXScj/OY3v8FTTz2FCy+8EEEQIDjFNuiLL76IZcuW4eqrr8Y999yDffv2Yc2aNchms7j22mt7x23ZsgXr16/HHXfcgblz52L79u1YvHgxXn75ZbS0tAzuNztNfHPfY8pxrJxc3QBZcVhyPlYc1pqxJJim6+KJMS7Ph7Akj6y5ttzuXJ3uWI6SQgwWpszdRwZcLHziE5/AsmXLAACrVq3C/v37Txpz++23Y+7cuXjwwZ7twY9+9KP405/+hA0bNuCaa65BMplEqVTCN77xDXz5y1/GV77yFQDAxRdfjJaWFnzzm9/Eo48+Opjf67TxzX2PKcexcnJ1A2TFYcn5WHFYa8aSYFquiz1jHI9qSJJH1lxbbneuTncsR0khBgtT5u4jAy4Wksn4p7xLpRKeffZZ3HnnnX1eX7lyJbZv345XXnkF8+bNwwsvvIBjx45hxYoVvWNSqRSuuuoq3H333QjDsCH6aN/c95hyHN8aN7HkfKw4NMdE0vGBteUP1H/bnzXX1vGa69Ea63glDMMepUsMiYI8G0T/UGXuHkJ/wPHgwYPo7u7GjBkz+rw+c+ZMAEBbWxvmzZuHtrY2AMB555130rjjx4/jtddew5QpU06KXyqVUCq9s9XT0dFBzZ8lf2HJ55hyHCsnl3yYcVhyPlYcmuSRJMFEpSt2y782Bjl7258leWTNdbFSjD1eK1aKTkdrlrzUVVoadHbid/POjx3z/l/sR6p5uD7LLoYapszdR+jFQnt7OwBg/PjxfV6fMGECAODIkSO943K5HAqFQr/jTlUsbNq0CRs3bmSn3QtL/sKSzzHlOFZOLvkw47DkfKw4rDVjSTAtWSDgLg1kSR5Zc53IhLHHa89l3HbLLHmpq7S0q1J0GnPGsBW+iaGGKXP3kSGTTva3Xfe3r59qTHjiX9H9/fy6deuwdu3a3u87OjowderUwaTaB5b8hSWfY8pxrJyc5HzEOCw5HysOa81YEkxLFgi4SwNZkkfamqXy8YqalOPZriEvdZWWjnSrXjH0MGXuPkIvFmo7A7Udhhq172vvT5gwAcViEcViEfn8O38Yjh492mdclFwuh1xu6CZcXSdt1HUyHt+eewFGcNdJkvX4SLfqFUOPuk4OkOnTpyObzaKtrQ2XXXZZ7+sHDhwAgN5nGWr/29bWhjlz5vQZN2bMGEyePJmdmhPqOqmuk9YYdZ30qOukJS91lJay1kyMXtR1coDkcjlccskl2LFjB2644Z1z20ceeQSTJk3qLQwWLFiAcePG4bHHHut9rVqtYseOHViyZEnDnjpW18n6xVHXyXjUddLGkpe6SktZayZGLyP9KGvAxUJnZydaW1sBAH/84x/R0dGBnTt3AujxSZg4cSI2bNiAiy66CKtXr8bKlSuxb98+bN++Hffff3+v9DKXy+G2227D+vXrMXHiRMydOxcPPPAADh061DCPBcA/9z11nVTXyThGe9dJ1vEK88hHjE5G+lHWgIuFN998E5/61Kf6vFb7fs+ePVi4cCE+/OEP48knn8T69evx/e9/H1OmTMHWrVv7uDcCwI033ogwDLF161YcPnwYLS0taG1tbZh7I+Cf+x4tH5ecXN0ASXFYLn6sOKw1ox0fWFv+J8a4wNr2Z821dbzmerTGOl5hHvmI0clIP8oacLFwzjnn9CoW4liyZAmWLFkSOyaRSOCmm27CTTfdNNA0hgzf3PdY+bjk5Lply4vDcfHjxeGsGev4wNryr41xgbftz5lr63jN9WiN5gJKPPIRo5ORfpSlrpNRfHPfIzYT8q1xE8vFjxWHtWas4wNryx+o/7Y/a65Zihra8QrxyEeMTkb6UZaKhQi+ue/R8nHJydENkBWH5eLHikNbM8NVsDbG8i6yXBdrY1z+7Vwul2O3/cvlstMHIWuuLbc7V6c7lqMka83E6IXlAOsrKhYi+Oa+R8vHISdXN0BWHJaLHysOa80sV8HaGAvLdbE2xoVENRe77b9gvtt2PWuuLbc7V6c7lqMka83E6IXlAOsrKhYi+Oa+R8vHISdXN0BWHJaLH88NkOSYaLgKAm7OgpbrYs8Ytz8+mUwmdts/47i/zppry+3O1emO5SjJWjMxemE5wPqKioUIvrnvqetk/eKo6+To7TrJfDZIjE7UdXKU4Zv7HlOOY+XkKg1jxWHJ+VhxaPI5kgTTkgXWxrhIA1mSR9ZcW253zk53LBdQ0pqJ0QtV5u4hKhYi+Oa+x5TjWDk5uwGS4rDkfKw4rDWjSTANWWBtjAssySNrri23O1enO5ajJE3qHIY9DxzHkCgUGuZQK4YOpszdR1QsRPDNfY8px/GtcRNLzseKw1oz1vGBteUP1H/bnzXX1vGa69Ea63iFtWZBZyd+N+/82DHv/8V+pJrV6nrEMcKPslQsRGDJX1hSLKYcx8rJVRrGisOS87Hi0ORzJAmmJQusjXHa9idJHllz3VWuojmmIPhruYpmh2vIkpe6SktZa9ZVjt9VqI05w61NlhhGUGXuHqJiIQJL/sKSYjHlOFZOrtIwVhyanI8UhyafI0kwLVlgbYxLZUaTqZLmujOVx/kxx2t7U3nHHZN4eamrtJS1ZtY8AwOQ8ophBVXm7iEqFiLQ5C8kKRZVjmPk5CwNI8VhyflYcWjyOZIE05IF9oxxfD6EJHmkSTAzqdjjtULG7alxS17qKi2lrZkxz8AApLxiWEGVuXuIioUI6jpZvzjqOhmPuk4O/lmDenedZD5nIoYX6jo5ylDXyfrFUddJyzJcXSctfOs6ac1zbYyKhZGHuk6OMtR1sp5x1HUyDnWdtPGt66Q1z7UxYuShrpOjDd/c99R1sm5x1HWyfnM9UrtOWvPcM8ZtrsXwQl0nRxu+ue8RneVYW7asOCwXP1Yc2pqRjg+sLf/aGBdY2/6subaO11yP1ljHK6w1s+a5NkatrkcetONHT1GxEME39z1WPi45OW/ZkuKwXPxYcVhrxjo+sLb8a2NcYG37s+baOl5zPVpjHa+w1syaZ8BtrsMw7PH0iPtvZZJygvQI1lGWr6hYiOCb+x6zmZBvjZtYLn6sOKw1Yx0fWFv+PWPqu+3PmmuWoobm3klaM5Z6Keiu4i9fezF2zKSNH0Yqpz/hvsBUL/mIrrQovrnvkfJxycnVDZAVh+Xix4rDWjPLVbA2xvo3uOW6WBvjsu1fLZVit/2rpRLSDtv+rLm23O5cne5YjpKsNbPmuTbGmutKsWj8l3rGpBzue1EfaA6wnqJiIYpv7nukfFxycnUDZMVhufix4rDWzHIVrI2xYLoBVoDYbf/V+IGTLTJrri23O1enO5ajJGvNrHkG3OaaFUfUD5oDrKeoWIjim/seKR+XnJzdAFlxSC5+tDikNbNcBXvG2M+ZMN0A09lc7LZ/Ouv2scOaa8vtztXpjuUoyVoza55rY+oVB7Cff9CzDyRYDrCeomIhgm/ue+o6WT9ZoLpO1m+uR2rXSdZzJsznVaznH/TsAwl1nRxd+Oa+R5XjWDm5Oh2S4rDkfKw4rDVjSTCZboAsySNNgmm43bk63bEcJVlrZs1zbYw116w4QM8zEtb7KhYIEGXuPqIrJIJv7ntMOY6Vk6sbICsOTc5HikNbM5IEk+kGSJOpkubacrtzdbpjOUqy1syaZ8BtrllxAJ5MVcTDlLn7iIqFCL657zHlOL41bmLJ+VhxWGvGOj5gugGytv1Zc20dr7kerbGOV1hrxmomRG1KxGogJ2Jhytx9ZLjmPXT45r5HbCbkW+MmlosfKw5rzVjHB0w3QNa2P2uureM116M11vEKa81YzYSoTYlYDeRELDQHWE9RsRDBN/c9ZjMh3xo3sbZHWXFYa8Y6PmC5AQK8bX/WXFvHa65Ha6zjFdaasZoJMZsSsRq/iXhYR1m+omIhgm/ue8xmQr41bqJtj5LisNaMdXzAcgMEeNv+rLlmKWpYxyusNWOpl5gqKFbjNxEPU73kI7pGIvjmvsfKxyUnVzdAVhyWix8rDmvNLFfB2hjzuReSGyAABEExdts/CIpwKfBoa2a43bk63bEcJVlrZs1z7xhjrllxANgusI4OsCIemmuvp6hYiOCb+x4rH5ecXN0AWXFYLn40N0DSmlmugoCbsyDTxS9drcRu+6erblvRrLm23O5cne5YjpKsNbPmuWeMg7kTKQ4A0wXW1QFWxENz7fUUFQsRfHPfY+XjkpOrGyArDsvFjxWHtWaWq2BtjAXTxS+ZLBjb/m7n36y5ttzuXJ3uWI6SrDWz5hlwm2tWHACmC6yrA6yIh+ba6ykqFiL45r6nrpP1i6OukzbqOlmf50y8fF5FxKKuk6MM39z3mHIcKydXN0BWHJacjxWHtWYsCSbTxY8leWTNNUvOx3KUZK2ZNc+1MdZcs+IAPJmqMCDK3H1ExUIE39z3mHIcKydXN0BWHJ6cjxOHtWYsCaaPLn4850WOnI/lKMlaM2ueAbe5ZsUBeDJVEQ9T5u4jwzfzIcI39z2mHMe3xk2s7VFWHNaasY4PfHTxY801S87HOl6hHfmwmgkRmxKxZKoiHqbM3UdULERgyV9YUiymHMfKySUfZhyWnI8Vh7VmLAmmJQsE3KWBLMkja65Zcj5LXuoqLWWtmTXPtTHWXLPiADyZqoiHKXP3ERULEVjyF5YUiynHsXJyyYcZhyXnY8VhrRlLgmnJAgF3aSBL8siaa5acz5KXukpLWWtmzXPPGHuuWXEAnkxVxMOUufuIioUILPkLS4rFlONYObnkw4xDk/OR4tDWjCTBtGSBtTEu0GSqpLlmyfkseamrtJS1ZtY8A25zzYoDgCZTFfEwZe4+omIhgrpODl5mpq6Tfj33AqjrpIW6TorBoq6Tow11naxbHHWdjEddJx2eNVDXSRt1nawL6jo5ylDXyfrFUdfJeNR10kZdJ23UdbI+qOvkKMM39z11nXRAXSdN1HUyHnWdFINFXSdHGb6579GOMxxyct2yZcWhbY+S4rDWjHV84KWLH2vNrOM112uadLzCWjNrnnvHWEUHKQ5gb48P561xn2AdZfmKioUIvrnvsfJxycl1y5YVh7U9SnMDJK0Z6/jARxc/1lxbx2uuR2us4xXWmlnz3DPGnmtWHMDeHq/31ngYhgiCrn7fTyYLSCSGX78K1lGWr6hYiOCb+x6zmZBvjZtY26OsOKw1ox0feOjix5prlqKGdbzCWjOamoqogmI1fmNRrXbiub2z+33/4ov+E+n08Pv3N1O95CMqFiL45r7HysclJ1c3QFYclosfKw5rzSxXwdoYy1nQSxc/0lxbbneuTncsR0namhnzXBtjzTUrDmC7wLo6wLLo7o7/e9bd3T0siwWWA6yvqFiI4Jv7Hisfl5xc3QBZcVgufqw4rDWzXAUBN2dBL138SHNtud25Ot2xHCVZa2bNc22MBSsOYLvAujrAsmA5wPoGywHWV1QsRPDNfY+Vj0tOrm6ArDgsFz9WHNaaWa6CtTEWXrr40ZwX493uXJ3uWI6SrDWz5hlwnGtWHNgusK4OsCxYDrC+wXKA9RUVCxF8c99T10kbdZ10QF0nY1HXSadQFFjPq/iGuk6OMnxz32PKcaycXN0AWXFYcj5WHNaasSSYPrr4seaaJedjOUqy1syc5xNjzLlmxQFoMlUWLAdY32DK3H1ExUIE39z3mHIcKydXN0BWHJacj+YGSFozlgTTRxc/2pqR5HwsR0me1Dl+nnvG2HPNigPwZKosWA6wvsGUufuIioUIvrnvMeU43jVuIm2PsuKw1ox1fOCjix9rrmlyPtLxCmvNWM2EmE2JaDLVMESlu/+HKtPZpJM/As0B1jOYMncfUbEQgSV/YUmxmHIcKyeXfJhxWHI+VhzWmrEkmJYssHeMyx8fkuSRNdcsOZ8lL3WVlrLWzJznE2PMuWbFAU+mWi5Vsf3Le/t9f/W3L0I2b3+kWHJwVym4b7Bk7mEYolyOP87IZDJ1N65SsRCBJX9hSbGYchwrJ5d8mHFYcj5WHNaasSSYliywZ4zbVjRL8siaa5acz5KXukpLWWtmzTPgONesOODJVMOu/l0Xe9/PjzHjWHJwVym4b7Bk7uVyGXfccUfsmPXr1yObre+RhoqFCCz5C0uKxZTjWDk5ScOIcXhyPk4c1pqxJJiWLBBwlwbyZKqcuWbJ+Sx5qau0lLVm1jwDjnPNigOeTJX13IslB3eVgvsGS+YeuhxRuqqgiKhYiKCuk/WLo66T9XnuBVDXSQt1naxfHN/sp1mwZO6pMGkacqXC+veYULEQQV0n1XXSGqOuk4Q1U9fJusQBeDJVVhxLDj5cOzOyZO7M+56JioUI6jpZvzjqOhmPuk7aqOukDUumyopjycGHa2dGlsyded8zGZJi4Xvf+x7++Z//+aTXb7nlFtx5552937e2tuLWW29FW1sbpkyZgrVr1+KLX/ziUKTkjG/ue+o6Wb846jppx1HXyXhGctdJVhyWA6xv0GTuxPueyZDuLOzevRvjxo3r/X7y5Mm9///FF1/EsmXLcPXVV+Oee+7Bvn37sGbNGmSzWVx77bVDmVYsvrnv0ZzlHHJy3bJlxfFte5S1ZrRtRA9d/FhzzXLxYx2v0NbMmucTY0xYccDb9mfFYTnA+gbrKIt63xMZ0mJh3rx5OPPMM0/53u233465c+fiwQd7KtWPfvSj+NOf/oQNGzbgmmuuQTLZmK0o39z3WPm45OS6ZcuK49v2KGvNWNuIPrr4seaa5eLHOl5hrZk1z7Ux9YoD8Lb9WXFYDrC+wTrKYt73TBryzEKpVMKzzz7b50gCAFauXInt27fjlVdewbx58xqRmnfue8xmQr41bvJte5T2BDppG9FHFz/WXLMUNbQmSaQ1Y6mXmCoo3xrIsRxgfYN1lMW875kM6X9v1qxZ+O///m9MmzYNq1evxs0334xUKoWDBw+iu7sbM2bM6DN+5syZAIC2trZ+i4VSqYRS6Z2tno6ODmrOvrnv0ZzlHHJydQNkxWG5+LHisNbMchWsjTG3ET108WPNNcvFj+YCSloza55rY6y5ZsUBbBdYVwdYVhyWAywLy8YacLOyZjnAMu97JkNSLEyaNAkbN27EhRdeiEQigV27duG2227Da6+9hvvuuw/t7e0AgPHjx/f5uQkTJgAAjhw50m/sTZs2YePGjUORNgD/3PdoznIOObm6AbLisFz8WHFYa2a5CvaMcXAW9NDFjzXXLBc/lqMka82sea6NsWDFAWwXWFcHWFYclgMsi0p3gO9e/1zsmM/eezEyufhCgOUAy7zvmQxJsbBo0SIsWrSo9/uPf/zjKBQK+Na3voVbb7219/X+KrW4Cm7dunVYu3Zt7/cdHR2YOnUqIesefHPfoznLOeTk6gbIisNy8aO5AZLWzHIVBBydBT108aOtGcvFj+QoyVoza557xthzzYoD2C6wrg6wrDg0B1gSLMdElgMs875nUrdjjyuvvBJbtmzBL3/5S0ybNg0AencYatS+r+0wnIpcLodcbuguJt/c99R1sn5x1HXSRl0n4xnJXSdZcXzrOpmsFM1dpWRlHyyVD0vmzrzvmdStWPjbymz69OnIZrNoa2vDZZdd1vv6gQMHAOCkZxnqiW/uezQ5jkNOrq5grDgsOR8rDmvNWBJMH138WHNNc/FjuXeS1sya59oYa65ZcQCeTJUVh+YAS4ImlyfFYd73TOpWLDz22GNIpVKYM2cOcrkcLrnkEuzYsQM33PBORffII49g0qRJmDNnTr3SOgnf3PdY+bjk5OoKxorDkvPx3AA5a8aSYPro4seaa5YMj+UoSVszY55rY+oVB+DJVFlxWA6wLGjOraQ4/Kms9QAAGkFJREFUzPueyZA9s3DppZfiAx/4AABg165d+O53v4vrr78e73nPewAAGzZswEUXXYTVq1dj5cqV2LdvH7Zv347777+/YR4LgH/ue8xmQr41bvJte5S1ZqxtRB9d/FhzzZLhsY5XWGvGaibEigP410CO5QBrqRhcFAwu+bjmxIrDvO+ZDEmxcN555+GBBx7An//8ZwRBgPe///349re/jTVr3qlKP/zhD+PJJ5/E+vXr8f3vfx9TpkzB1q1bG+reCPDkLywpFk2O45CTk5yPGIcl52PFYa0ZTYJpyAJrY1ykgSzJI2uuWTI8U2bmKDFjrZk1z7Ux1lyz4gA8mSorjiUHd5WCl0tVbP/y3n7fX/3ti5DN2x9xLHk6Kw7zvmcyJMXCvffei3vvjTcUAYAlS5ZgyZIlQ5HCacOSv7CkWDQ5jkNOTnI+YhyWnI8Vh7VmLAmmJQusjXGBJXlkzTVLhmfJzFwlZqw1s+a5Nsaaa1YcgCdTZcWx5OCuUvCwq8t+Pz9m0Pm45sSKw7zvmajrZASW/IUnxSLJcRxycpLzEeOw5HysOKw1Y0kwLVkg4C4NZEkeWXPNkuFZMjNXiRlN6mzMc88Ye65ZcQCeTJUWx5CDu0rBWc+rsOTpNJk78b5nomIhgrpO2qjrZDy+PfcCqOukhbpO1i+Ob8+rsOTp6jo5ylDXSRt1nYxHXSfVddIaY6Kukyasa5ElT1fXyVGGuk7WL466TsajrpMO+ajrpMlI7TrJuhZZ8nR1nRxl+Oa+p66T9YujrpN2Tuo6aeSjrpNmHJYDLOtaZB1BqevkKMM39z1WPi45uW7ZsuL4tj1Kc04jbSP66OLHmmuaix/LBZS0ZtY818ZYsOIAvG1/VhyWAyzrWmQdQbHiMO97JioWIvjmvsfKxyUnZzdAUhzftkdZa8baRvTRxY+2FU1y8WMdr7DWzJrn2ph6xQF42/6sOCwHWNa1yHNu5cRh3vdMVCxE8M19j9lUxLfGTb5tj7LWjLWN6KOLH2uuWYoa1vEKa81Y6iWmCsq3BnIsB1jWtUhTH5DiMO97JioWIvjmvsfKxyUnV1cwVhyWix8rDs05zXIVPDHGchb00cWPNdcsFz+WoyRrzax5ro2x1VScOIDtAuvqAMuKw3KApd33JOdWVhzmfc9ExUIE39z3WPm45OTqCsaKw3LxY8WhOacZroKAm7Ogly5+pLlmufixHCVZa2bNM+A216w4gO0C6+oAy4rDcoBlXYss51ZWHOZ9z0TFQgTf3Pdo+Tjk5OwKRorDcvHjuQGSnNMMV0HAzVnQRxc/1lyzXPxYjpK0NTPmGXCba1YcwHaBdXWAZcVhOcCyrkWacyspDvO+Z6JiIYJv7nvqOjl4uZq6TqrrpIW6Ttpz7VvXSda1qK6TbqhYiOCb+x4tH5ecXF3BSHFYcj5WHNaa0SSYHrr4sebaNxc/1ppZ81wbYzYlIsUBeDJVWhySAyzrWqS57bJk7sT7nomKhQi+ue+x8nHJydUVjBeHI+fjxSFJHkkSTB9d/Fhz7ZuLH2vNrHmujalXHIAnU2XFYTnAsq5FnnMrJw7zvmeiYiGKb+57xKYivjVu8m17lLVmtGZCHrr4sebaNxc/1pp515QI/jWQYznAsq5F1hEU7fiReN8zUbEQgSV/YUmxaPm45OSQDzMOS87HikNbM5IE05IF1sY4PYFOkpmx5polw7NkZq4SM9aaWfNcG2PNNSsOwJOpsuJYcnBXKTjrWmTJ01lxmPc9ExULEVjyF5YUi5aPQ04u+TDj0OR8pDisNWNJMC1ZYG2MCzSZKmmuWTI8S2bmKjFjrZk1z4DbXLPiADyZKiuOJQd3lYKzrkWWPJ0Vh3nfM1GxEIElf2FJsWj5OOTkkg8zDkvOx4rDWjOWBNOSBfaMcfvDSpM8kuaaJcOzZGbOEjPSmlnzXBtTrzgAT6bKimPJwV2l4KxrkSVPZ8Vh3vdMVCxEUNfJ+sVR18l41HXSQVGjrpNmTr7Zqvv2vIq6TrqhYiGCuk46PBCkrpPxgdR10kRdJ+NR18n6/f1Q10k3VCxEUNfJ+sVR10kjH3WdNFHXSRt1nRxcPq45qevkKMM39z11nazf9qi6TtZvrn1z8VPXSRt1naxPHHWdHCb45r5Hy8clJ9ctW1Ic37ZHWWvG2kb00cWPNde+ufix1sya59oYs+skKQ7A2/ZnxWE5wNLue9IRFCsO875nomIhgm/ue6x8XHJy3bJlxfFte5S2ZqRtRC9d/Ghb0X65+LHWzJpnwG2uWXEA3rY/Kw7LAZZ1LfKOoDhxmPc9ExULEXxz32M2FfGtcZNv26OsNWNtI/ro4seaa99c/Fhr5ltTIgDeNZBjOcCyrkXWERQrDvO+Z6JiIYJv7nusfFxycnUFY8Vhufix4rDWzHIVrI2xPnh8dPFjzbVvLn6sNbPmGXCba1YcwHaBdXWAZcVhOcCyrkWWcysrDvO+Z6JiIYJv7nusfFxycnUFY8Vhufix4rDWzHIVrI2xKjwfXfxYc+2bix9rzax5BtzmmhUHsF1gXR1gWXFYDrCsa5Hl3MqKw7zvmahYiOKb+x4pH5ecXF3BeHE4Ln68OJw1s1wFe8bYz5n46OLHmmvfXPxYa2bNc21MveIAtgusqwMsKw7LAZZ1LfKcWzlxmPc9ExULUXxz31PXybrFUdfJ+s21by5+6jppo66T9YmjrpPDBd/c91iyHoecXF3BWHFYcj5WHNqakSSYPrr4sebaNxc/1ppZ81wbY801Kw7Ak6my4rAcYFnXIkuezorDvO+ZqFiI4Jv7Hisfl5xcXcFYcWhyPlIc1pqxJJheuviR5to3Fz/WmlnzDLjNNSsOwJOpsuKwHGBp9z1Jns5zgOXd90xULETwzX2P2VTEt8ZNvm2PstaMtY3oo4sfa659c/FjrZlvTYkA/xrIsRxgaS6grGNDUhzmfc9ExUIUkvyFJcWiyXoccnLKhxiHJedjxWGtGUuCackCa2NctlpZMjPWXLNkeJbMzFVixloza55rY6y5ZsUBeDJVVhxLDu4qBaddiyR5OisO875nomIhCkn+wpJi0WQ9Djk55UOMw5LzseKw1owlwbRkgYC7NJAlM2PNNUuGZ8nMXCVmrDWz5hlwm2tWHIAnU2XFseTgrlJw1rXIkqez4jDveyYqFqKQ5C8sKRZN1uOQk1M+zDgkOR8tDmnNaBJMQxYIuEsDWTIz1lyzZHiWzMxVYsZaM2uea2PqFQfgyVRZcSw5uKsUnHUt0uTppDjM+56JioUI6jpZvzjqOhmPuk7aqOtk/Z5XUdfJ+sRR18lhgrpOOqCuk7Go66RDPuo6WZc4gLpODjof15zUdXJ0oa6T9YujrpPxqOukjbpO2qjr5ODycc1JXSdHGb6576nrpI26TtZv219dJ+NR10kbdZ2MR10nhwu+ue+R8nHJyXXLlhXHt+1R1pqxthF9dPFjzbVvLn6sNbPmGXCba1acnmCcbX9WHJYDLOtaZB1BseIw73smKhYi+Oa+x8rHJSfXLVtWHP+2RzlrxtpG9NPFjzPXvrn4sdbMmmfAba5ZcQDetj8rDssBlnYtko6gaEdZxPueiYqFCL657zGbivjWuMm37VHWmrG2EX108WPNtW8ufqw1860pEeBfAzmWAyzrWmQdQbHiMO97JioWIvjmvsfKxyUnV1cwVhyWix8rDmvNLFfB2hjzuRcPXfxoa+aZix9rzax57h1jzDUrDgDbBdbRAZYVh+UAy7oWWc6trDjM+56JioUIvrnvsfJxycnVFYwVh+XiR3MDJK2Z5SoIuDkL+ujix5pr31z8WGtmzXPPGHuuWXEAmC6wrg6wrDgsB1jWtchybmXFYd73TFQsRPDNfY+Vj0tOrq5grDgsFz9WHNaaWa6CtTEWXrr4kebaNxc/1ppZ8wy4zTUrDgDTBdbVAZYVh+UAS7vvSc6tPAdY3n3PRMVCBN/c99R1sn5x1HXSRl0n6/OciY/Pq6jrZH3iqOvkMME39z1WPi45ubqCseKw5HysOKw1Y0kwfXTxY821by5+rDWz5rk2xpprVhyAJ1NlxWE5wNKuRZY8nRSHed8zUbEQwTf3PVY+Ljm5uoKx4vDkfJw4rDVjSTD9dPFjOS/65uLHWTNrngG3uWbFAXgyVVYclgMs61pkydNZcZj3PRMVCxF8c99jNhXxrXGTb9ujrDVjbSP66OLHmmvfXPxoW7+eNSUC/Gsgx3KApR2LsNx2SXGo9z0RFQsRWPIXlhSLlY9LTi75MOOw5HysOKw1Y0kwLVkg4C4NZMnMWHPNkuFZMjNXiRlrzax5ro2x5poVB+DJVFlxLDm4qxScdS2y5OmsOMz7nomKhQgs+QtLisXKxyUnl3yYcVhyPlYc1pqxJJiWLBBwlwayZGasuWbJ8CyZmavEjLVm1jz3jLHnmhUH4MlUWXEsObirFJx1LbLk6aw4zPueiYqFCCz5C0uKxcrHJSeXfJhxaHI+UhzampEkmJYssDbGBZpMlTTXLBmeJTNzlZix1syaZ8BtrllxANBkqqw4lhzcVQrOuhZZ8nSa7J543zNRsRBBXScHLzNT10m/nnsB1HXSQl0n6xfHt+dV1HXSDRULUdR1sm5x1HUyHnWddHjWQF0nbdR1clD5uOakrpOjDHWdrF8cdZ2MR10nbdR10kZdJweXj2tO6jo5yvDNfU9dJx1Q10kTdZ2MR10n6xdHXSfjUdfJYYJv7nu04wyHnFy3bFlxfNseZa0ZaxvRRxc/2pp55uLHWjNrnnvHWEUHKQ7A2/ZnxWE5wLKuRdYRFCsO875nomIhgm/ue6x8XHJy3bJlxfFte5S1ZqxtRB9d/Fhz7ZuLH2vNrHnuGWPPNSsOwNv2Z8VhOcCyrkXWERTvKIt33zNpeLHwu9/9Dtdddx2ef/55NDc3Y8WKFbjzzjtRKDhKsMj45r7HbCriW+Mm37ZHWWtG20b00MWPNde+ufix1sy3pkSAfw3kWA6wrGuRdQRFUzEQ73smDS0Wjh49iksuuQTTpk3DE088gTfffBNr167F22+/jR/+8IcNyck39z1WPi45ubqCseKwXPxYcVhrZrkK1sZYzoI+uvix5to3Fz/amhnzXBtjzTUrDmC7wLo6wLLisBxgWdciy7mVFYd53zNpaLFw//33o729Hb/85S9x5pln9iSUTmPlypW49dZbMWPGjLrn5Jv7Hisfl5xcXcFYcVgufqw4rDWzXAUBN2dBH138WHPtm4sfa82sea6NsWDFAWwXWFcHWFYclgMs61qkObeS4jDveyYNLRZaW1vxsY99rLdQAIDly5fjmmuuQWtra0OKBd/c91j5uOTk6grGisNy8WPFYa2Z5SpYG2Php4sfy3nRNxc/zppZ8ww4zjUrDmwXWFcHWFYclgMs61pkObey4lDveyINLRba2tpwzTXX9Hktl8th+vTpaGtrO+XPlEollErvbPV0dHRQcyom8rEXIAD8IpE3n7DOJ7rN86t84v+FtUXKysclJ5d8mHHCdDL+vNm51TUnDmvN0kG3bfsavGDGaQLMQtH1yZ5EMhv7YZhIunpjcOa6lE3EnzdnE05/nDKJdPwHT8LtTxxrzax5ro2xYMUBgCDIxBZUH/uI24czLU5YiS2EvhheiHr+/bDycc2JFYd53zNpaLHQ3t6O8ePHn/T6hAkTcOTIkVP+zKZNm7Bx48ahSyqRMOUvSNgPTSUSCfP8KuEQh5WPS05O+ZDjxJ03NyIOY80SiYT5nIlrHMvFbyBrH3cO2oi5jpXhDSBO3LMGA4nDWjPrvLmecWrj4p5/aEScuOdVGnEtWvJ01zVjxWHd90wSYdiAxtgnyGQy+MY3voFbbrmlz+sf+chH8J73vAdPPPHEST9zqp2FqVOn4tixYxg7duygcwrDEF3l+C2gQiZlLnoYhgiCrtgxyWTBKQ4jH5ecXPJhx+mMOXdtSibrHoe1ZmFXfJxEwWGOwhAod8aPyTQ5/eEIwxCV7v7nKJ2t/1x3Vfqfo0La/RoKy/3nk8i458NYM2ueAbe5ZsWpxSqX+/8Qy2QydY9TKfVflKdzubpfi3H5uObEisO8713o6OjAuHHjzM/Qhu4sTJgwAe3t7Se9fvTo0X6fV8jlcsjlHB+AOQ0SiQSasoOflkQigVTK8cy9DvnUYrFyYsVpTg3eiYwZh/V7JZoGHweJBJDlNKJNJBLI5Pya6ybXZ1KMOIksJx/GmjHnmRGnFiubdTuyqFecTH7wZ+7Ma5GVDyMO875n4naoM0TMmDHjpGcTSqUSDh482JCHG4UQQghxMg0tFpYsWYJnnnkGb7/9du9rP/rRj1AqlbBkyZIGZiaEEEKIGg0tFj73uc9h/PjxWLZsGZ5++mn84Ac/wJo1a7By5UrtLAghhBCe0NBiYfz48Xj22WfR3NyMf/iHf8DatWuxYsUKbN++vZFpCSGEEOJvaHhviPe///14+umnG52GEEIIIfqhoTsLQgghhPAfFQtCCCGEiEXFghBCCCFiUbEghBBCiFhULAghhBAiFhULQgghhIhFxYIQQgghYlGxIIQQQohYGm7KNFhqHbY7OjoanIkQQggxvKh9dtY+S/tj2BcLx48fBwBMnTq1wZkIIYQQw5Pjx49j3Lhx/b6fCK1ywnOCIMDrr7+OMWPGIJFIUGJ2dHRg6tSpePXVVzF27FhKTHFqNNf1Q3NdHzTP9UNzPXjCMMTx48fx3ve+F8lk/08mDPudhWQyiSlTpgxJ7LFjx+oCrBOa6/qhua4Pmuf6obkeHHE7CjX0gKMQQgghYlGxIIQQQohYUl//+te/3ugkfCSVSmHhwoVIp4f9SY33aK7rh+a6Pmie64fmuj4M+wcchRBCCDG06BhCCCGEELGoWBBCCCFELCoWhBBCCBGLigUhhBBCxKJi4W/43e9+h8suuwzNzc0466yzcP3116Orq6vRaY04vve97yGRSJz09S//8i+NTm1Y8/vf/x6f//zn8cEPfhDpdBof+MAHTjmutbUVc+bMQT6fx/ve9z585zvfqXOmwx+XuV61atUpr/Pdu3c3IOPhyeOPP47LL78cU6dORXNzM2bPno1t27YhCII+43RNDz3Smpzg6NGjuOSSSzBt2jQ88cQTePPNN7F27Vq8/fbb+OEPf9jo9EYku3fv7uMcNnny5AZmM/z5zW9+g6eeegoXXnghgiA46Q8qALz44otYtmwZrr76atxzzz3Yt28f1qxZg2w2i2uvvbYBWQ9PXOYaAM4991w8/PDDfV6bMWNGPVIcEdx9992YNm0aNm/ejLPPPht79uzBddddh0OHDmHz5s0AdE3XjVCEYRiGd955Z9jU1BS+9dZbva89/PDDIYDwwIEDDcxs5PHQQw+FAPrMtRg81Wq19/9/5jOfCWfNmnXSmMsuuyy84IIL+ry2evXqcNKkSX1+XsTjMtf9vS7cefPNN0967YYbbgjz+XxYLBbDMNQ1XS90DHGC1tZWfOxjH8OZZ57Z+9ry5cuRy+XQ2trawMyEcCOuCQwAlEolPPvss/j0pz/d5/WVK1fiL3/5C1555ZWhTG9EYc214DBx4sSTXpszZw6KxSKOHDmia7qO6Io/QVtb20nbg7lcDtOnT0dbW1uDshrZzJo1C6lUCueeey42bdqEarXa6JRGNAcPHkR3d/dJ1/nMmTMBQNf5EHDw4EGMHz8e2WwW8+bNw49//ONGpzTsef755/Gud70LZ511lq7pOqJnFk7Q3t6O8ePHn/T6hAkTcOTIkQZkNHKZNGkSNm7ciAsvvBCJRAK7du3Cbbfdhtdeew333Xdfo9MbsbS3twPASdf5hAkTAEDXOZk5c+Zg/vz5mDVrFo4ePYpt27bhiiuuwOOPP45PfvKTjU5vWLJ//3489NBD+NrXvoZUKqVruo6oWPgbEonESa+FYXjK18Xps2jRIixatKj3+49//OMoFAr41re+hVtvvRWTJk1qYHYjn/6uZ13nXK6//vo+3y9duhQLFizAhg0bVCycBm+88QaWL1+OCy64ALfcckuf93RNDz06hjjBhAkTeqvUv+Xo0aO9VaoYOq688kpUq1X88pe/bHQqI5badRy9zmvf6zofWpLJJJYvX462tjZJsgfIsWPHsHjxYjQ1NWHXrl3IZDIAdE3XExULJ5gxY8ZJ51ulUgkHDx6U1KkOhOpnNuRMnz4d2Wz2pOv8wIEDACTpqwe6zgdOsVjE0qVLcfjwYezevRvvfve7e9/TNV0/VCycYMmSJXjmmWfw9ttv9772ox/9CKVSCUuWLGlgZqODxx57DKlUCnPmzGl0KiOWXC6HSy65BDt27Ojz+iOPPIJJkyZp7oeYIAiwc+dOzJo1C4VCodHpDAsqlQquvPJK/OpXv8Lu3bsxbdq0Pu/rmq4fembhBJ/73Ofwr//6r1i2bBm++tWv9poyrVy5UtUpmUWLFuHSSy/tdb3btWsXvvvd7+L666/He97zngZnN3zp7Ozslfn+8Y9/REdHB3bu3AkAuPjiizFx4kRs2LABF110EVavXo2VK1di37592L59O+6//37JAQeANdednZ1YtWoVVqxYgenTp6O9vR3btm3D/v378cQTTzQy9WHFl770JfzkJz/BXXfdhc7OTrz00ku9782cORNjx47VNV0vGuzz4BW//e1vw49//ONhU1NTeOaZZ4Zr1qwJOzs7G53WiOO6664L/+7v/i4sFAphLpcLW1pawnvvvTcMgqDRqQ1r/uu//isEcMqvPXv29I576qmnwr//+78Ps9lseO6554b33Xdf45Ieplhz/fbbb4dLly4NJ0+eHGaz2fCMM84IFy5cGO7evbvRqQ8rpk2bpmvaExJhqEM0IYQQQvSP9miEEEIIEYuKBSGEEELEomJBCCGEELGoWBBCCCFELCoWhBBCCBGLigUhhBBCxKJiQQghhBCxqFgQQgghRCwqFoQQQggRi4oFIYQQQsSiYkEIIYQQsfz/xFxjoO+eCjoAAAAASUVORK5CYII=\n",
"text/plain": "<Figure size 600x500 with 1 Axes>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Each colored line, represents 1 milion nucleotides... just like A game of thrones first book."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## GC content"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Distribution of sizes"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "plt.figure(figsize=(7, 2))\n\ngcs = []\nfor n, chrom in enumerate(chromosome_list):\n for y in range(int(len(genome[chrom]) / reso)):\n sub_seq = genome[chrom][y * reso:(y + 1) * reso]\n gc = sub_seq.count('C') + sub_seq.count('G')\n ns = sub_seq.count('N')\n try:\n gcs.append(gc / (reso - ns))\n except ZeroDivisionError:\n continue\n\n_ = plt.hist(gcs, bins=100)",
"execution_count": 85,
"outputs": [
{
"data": {
"image/png": "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evTRR9WnTx9FRkbq/vvv15/+9CfV1tZ6bFdYWKjExER17NhR/fr10+rVqwPaaQAAgGDnVchauXKlbDabli9frr/97W969NFHtWDBAi1evNi9zaFDhzRp0iQlJSVp165dmjlzptLT07VmzZqAdx4AACBYebXwfceOHerevbv7+fDhw1VdXa1Vq1Zp2bJlstlsWrJkiZKSkrR27Vr3NmfOnFFWVpbS0tIUHs4MJQAAaP28Sjw3B6w6iYmJunbtmsrKyuRyubRv3z5NmzbNY5vU1FSdP39eR44c8a+3AAAAIcLvstJ7772nLl26qEePHiotLVVNTY3i4+M9tklISJAklZSUNLofl8ulqqoqjwcAAECo8itkffzxx3r99de1aNEitWvXTuXl5ZKkqKgoj+0cDockqaysrNF95eTk6J577nE/+vTp40/XAAAAWpTPIevChQuaOnWqHnzwQY+F75IUFhbW4Hsaa5ekzMxMVVZWuh9nz571tWsAAAAtzqc7vldWVmrcuHHq1KmTtm/frg4dOkj6f8WqrqJVp+553esNsdlsstlsvnQHAAAg6Hhdybp27ZomTpyoixcvavfu3eratav7tbi4OEVERNRbe1VcXCxJ9dZqAQAAtFZehawbN27o5z//uY4dO6bdu3crNjbW43WbzaaUlBRt3rzZo33jxo2KiYlRYmKi/z0GAAAIAV5NF86fP187duzQyy+/rKtXr+rDDz90v5aQkCC73a6srCwlJydrzpw5Sk1N1cGDB1VQUKD8/HzukQUAANoMr0LWnj17JEnPPvtsvdf279+vYcOGaciQIdq2bZuef/55rV+/Xr1791ZeXp5mz54dmB4DAACEAK9C1unTp29rO6fTKafT6Ut/ACAk9H1uZ4t8xunc8cY/F0BgMH8HAABgACELAADAAJ/ukwUAocaf6b2WmhoEENqoZAEAABhAJQtAyKMKBCAYUckCAAAwgJAFAABgANOFANAKcY8toOVRyQIAADCAkAUAAGAAIQsAAMAAQhYAAIABLHwHALixYB4IHCpZAAAABlDJAgCDqAwBbReVLAAAAAMIWQAAAAYwXQgAd1igv9D6dvd363ZMWwJmUckCAAAwgEoWAISQQFfBAJhDJQsAAMAAQhYAAIABTBcCAALCn6lMFuGjNaKSBQAAYACVrAawsBQAAPiLShYAAIABVLIAoI3y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\n",
"text/plain": "<Figure size 700x300 with 1 Axes>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "max_gc, min_gc = max(gcs), min(gcs)\ndiff_gc = max_gc - min_gc\nprint(min_gc, max_gc, diff_gc)",
"execution_count": 57,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "0.335929 0.591156 0.25522700000000004\n"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Plot different GC contents"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "plt.figure(figsize=(10, 7))\n\n# maximum percentage of Ns allowed\nmax_ns = reso * 0.3\n\nfor n, chrom in enumerate(chromosome_list):\n for y in range(int(len(genome[chrom]) / reso)):\n sub_seq = genome[chrom][y * reso:(y + 1) * reso]\n gc = sub_seq.count('C') + sub_seq.count('G')\n ns = sub_seq.count('N')\n if ns > max_ns:\n cs = (0.7, 0.3, 0.3)\n else:\n c = gc / (reso - ns)\n # rescale GC\n c -= min_gc\n c /= diff_gc\n cs = (c, c, c) \n plt.plot([n, n + 0.3], [-y, -y], color=cs)\n plt.text(n + 0.15, 5, chrom, ha='center')\n\n_ = plt.axis('off')",
"execution_count": 84,
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAxwAAAIvCAYAAAD+nt2/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nOy9eZwW1bH//zn9MDMwMDDDNuw7KtvIorheVFREo+KSGMWNew3RaNRo1Ou+YTRuMbmaKEm8MXolMdFoTOJuUOMWgqLIIsq+DtswrLM+Xd8/+D38AoJ0QXUX/Zx6v16+XvpY3TXdffr0qeVUOSIiGIZhGIZhGIZhxECg/QcYhmEYhmEYhpG/mMFhGIZhGIZhGEZsmMFhGIZhGIZhGEZsmMFhGIZhGIZhGEZsmMFhGIZhGIZhGEZsmMFhGIZhGIZhGEZsmMFhGIZhGIZhGEZsmMFhGIZhGIZhGEZsmMFhGIZhGIZhGEZsmMFhGIZhGIZhGEZsmMFhGIZhGIZhGEZsmMFhGIZhGIZhGEZspNrgmDt3Li655BIMHjwYTZo0wcCBA2PX+cc//hGnnXYaunbtiubNm6OiogKPPvoowjCMXferr76Ko446Cu3atUNRURF69eqFq6++GuvXr49dd45NmzahS5cucM5h6tSpsep64okn4Jz7yj/XX399rHpzPP744zjwwAPRtGlTtG/fHqeeemrsOo8++uidXrNzDr///e9j1f3CCy/gkEMOQcuWLVFeXo4zzjgDc+bMiVUnAPz1r3/F0KFDUVRUhK5du+K2225DNpsV1RF1rnjppZcwZMgQNG3aFH369MEvfvGL2PW+/vrrGDt2LHr37g3nHL7//e/vlc4oerPZLO67775t80lZWRlGjBiBN998M3bdAPDggw9iyJAhKC0tRfPmzTFo0CA88sgjIKJY9f47H330ETKZDFq0aLHHOqPqHTdu3E7f6VdeeSVWvQBQU1ODG2+8Ed27d0dRURF69OiBO+64Y4/1RtW9q3nMOYcVK1bEprexsRH33nsvDjjgABQXF6NHjx648sorUV1dvUc6o+olItx3333o2bMnioqKMHDgQDzzzDN7rBOIvt6Qnrei6I1j3tqd3jjnrR0ZPXo09ttvP9TW1m73+0cffYQmTZrgpz/9qbjOHMcccwz69euH+vr6r/y/b33rW+jcuTM2bNiwx+e//fbb4ZxD586dd7p2Pemkk+Ccw8knn/y1a5LcP+PGjYukt8ke/8X7ADNnzsTf/vY3HHLIIQjDMJFF/4MPPoju3bvj/vvvR3l5OSZPnowrrrgC8+fPx/333x+r7qqqKhx++OH4wQ9+gLKyMsyYMQO33347ZsyYgddeey1W3TkmTJiAxsbGRHTleOWVV9CqVatt/925c+fYdd5+++146KGHcNNNN+GQQw5BVVXVXi0OovKLX/ziKxPJT3/6Uzz33HM47rjjYtP7xhtv4IwzzsB5552Hu+66C9XV1bj99ttx3HHHYebMmWjZsmUsej/88EOMGTMGZ599Nu655x7MmjULN910EzZv3owHHnhATE+UueKDDz7AmDFjcMEFF+AnP/kJ3nvvPVx++eUoLCzEd77zndj0vvzyy/jkk09w1FFHoaqqao/0cPXW1NTg7rvvxoUXXohrr70WBQUFeOKJJ3D88cfjxRdfxMknnxybbgBYv349xo4diwEDBqCwsBBvvvkmrrjiCmzYsAE33nhjbHpzEBG+//3vo127dti0adMe6ePq7dWrF55++untfuvXr1+serPZLE4++WQsXboUd955J3r06IHFixdj8eLFe6w3qu4PPvjgK79dcMEFaN68OTp27Bib3jvvvBP33HMP7rjjDhx22GGYPXs2brzxRixYsAAvvvhibHrvv/9+3HTTTbj55ptx+OGH489//jPOOeccFBcX45RTTtkjvVHWG3HMW1H0xjFv7U5vnPPWjvz85z/HwIEDt40lYOv7dPHFF6OiogKXX365mK4dmThxIioqKnDffffh5ptv3vb7q6++imeffRbPPvvsXn+TCwoKsGbNGrz11lsYOXLktt/XrFmD119/fZsjZsc1yaWXXori4uLtvs/t2rWLppRSTDab3fbvF154IQ0YMCB2natWrfrKb1dddRU1bdqUamtrY9e/I7/85S8JAC1btix2XbNnz6bmzZvTY489RgDoX//6V6z6fvOb3xAAWr16dax6dmTWrFmUyWTo1VdfTVTvrujZsyeddNJJseq46KKLqEePHhSG4bbf/vnPfxIAeumll2LTe8IJJ9DQoUO3++3++++ngoICqqysFNMTZa4YPXo0DR8+fLvfxo8fTx07dtzueGm9/y7TvXt3uuyyy/ZIF0dvY2MjVVVVbfdbGIY0dOhQOvroo2PVvSvGjh1Lffv2TUTv448/Tn369KEbbriBmjdvvsc6o+qN4/sURe/EiROptLRU9F2KqntHFixYQADovvvui1Vv79696YILLtjut3vvvZeCIKBNmzbForeuro5KSkro6quv3u73b3zjG1RRUbFHOomirTfimLei6I1j3tqd3jjnrZ1x1113UWFhIX3++edERPTQQw9REAQ0ZcoUcV07cvvtt1PTpk1p7ty5RERUU1NDvXv3plNOOWWvz33bbbdR8+bNacyYMXTRRRdt9/9+/vOfU7du3WjEiBH0jW984yvHHnXUUTv9PQqpTqkKguT//J1ZckOGDEFtba2Ylc+hTZs2AICGhobYdV1xxRW45JJLsP/++8euS5MnnngCvXr1wqhRo7T/FLz//vtYsGABzj333Fj1NDQ0oKSkBM65bb+VlpYCwF6lueyOadOm4YQTTtjut9GjR6OhoQGvvvqqmJ7dzRV1dXX4+9//jrPPPnu7388991ysWLEC06ZNi0VvVBlpvZlMBmVlZdv95pzD4MGDsXz58lh174o2bdrs1TwWVW91dTWuv/56PPTQQygsLNxjfVy90kTR+/jjj+Oss85CeXl54rp3ZNKkSXDO4ZxzzolVb0NDw3YRcWDrXEZEezyX7U7vvHnzsHHjxp3OZdOnT9/jiNLu1htxzVtR1jlxjPvd6Y1z3toZ1157LXr37o1LLrkES5YswS233IJLL70UBx98sLiuHbnhhhvQvXt3XHbZZQCAu+++G5WVlXjkkUfEdIwdOxbPPffcdqlbkyZNwtlnn73dWkCKVBsc+wr/+Mc/0Lp1a7Rv3z4RfdlsFrW1tfj4449x55134pRTTkH37t1j1fnss8/i008/xa233hqrnp0xYMAAZDIZ9OrVC/fcc494fv+OfPjhhxg0aBAmTJiA9u3bo7CwEEcddRQ++eSTWPXujEmTJqG4uBhjxoyJVc9FF12E2bNn4+GHH0Z1dTUWLlyIa665Bv369cOxxx4bm97a2tqvLPqKiooAALNnz45N747MmzcP9fX1X0lx6d+/f+J/ixZhGOL999/fqzQfLo2Njdi0aRP+9re/4cknn8QVV1wRu86bb74Zw4YNE02/iMK8efNQWlqKwsJCDBs2DC+88EKs+urr6/Hxxx+ja9euOP/881FcXIyWLVti7NixWLt2bay6d8bvfvc7jBgxAl26dIlVz8UXX4ynnnoKb7zxBjZt2oSpU6figQcewLhx4/Z6v86uyOX5JzGX/ft6I8l5K+l1TlS9cc5bhYWFePTRR/HWW29hxIgRKCkpwY9+9CNxPbvSPXHiRLz22mu46667cN9992HChAno1q2bmI5TTjkF2WwWL7/8MgBg0aJFeP/99zF27FgxHf+OGRx7ydSpU/Gb3/wGV111FTKZTCI6u3fvjmbNmmHYsGHo2LEjfve738Wqb8uWLbj66qtxzz33xJbLvzM6duyIO+64A08++SRefvllnHTSSbj55ptx5ZVXxqq3srISr732Gp5++mk89thj+NOf/oQtW7bg+OOP36uNh1waGxvxxz/+EWPGjEHz5s1j1TVixAg8//zzuOmmm1BWVoaePXti3rx5eO2117Z9NONgv/32w5QpU7b77cMPPwSARCOG69atA/D/R3Vy5LxpGtHLpHn44YcxZ84cXH311Ynomzt3LgoKClBSUoKTTz4Zl19+Oa666qpYdX7yySd4/PHH8dBDD8WqZ0eGDBmCBx54AC+88AL+8Ic/oG3btjj99NPx7LPPxqZz7dq12zZQV1dX44UXXsDDDz+MN9544yse8biZPn06ZsyYEdtC5t+58cYb8YMf/ACjRo1CSUkJDj74YAwaNAgTJ06MTWefPn0QBEHsc9mO642k5i2NdU5UvXHPW0cddRRGjRqFhQsX4sc//nGia6CjjjoK48aNwy233IIBAwaIO2SaNWuG0047DZMmTQKw1cHZr18/HHjggaJ6cqR607g2lZWVOPPMMzF8+HD893//d2J6X3rpJWzatAkzZ87EhAkTcMopp+D111+PbSK46667UF5eHrkSgRQnnHDCdiHqUaNGoVmzZts2c+/pxsPdEYYhNm3ahOeeew4DBgwAAAwbNgw9e/bEL3/5S1x33XWx6N2R119/HatWrUrkI/3+++/jvPPOw3/913/h1FNPxfr163H33XfjxBNPxHvvvRfbJHvZZZfhP//zP/Gzn/0M559//rZN45lMRiVVZVdh5DjCy/sSb7/9Nq677jpcc801GDFiRCI6u3btin/961/YtGkT3nnnHfz4xz9GEAR7XUFpV9D/t1H80ksvxQEHHBCLjl2xo5Pk1FNPxeGHH45bb70V3/zmN2PRmdvYXFpaiueee26b972kpARnnnkmpkyZguHDh8eie0eefvppFBQUxHat/84jjzyChx56CA8++CCGDRuGOXPm4JZbbsF3vvMd/Pa3v41FZ0lJCc4//3zce++9GDRoEA499FD85S9/2eYMlJjLvm69Eee8pbXOiaI3iXlrzpw5ePvtt+Gcw1tvvYULLrggFj274vrrr8dvfvMb/PCHP4xljXfuuefi9NNPx6ZNmzBp0qRY07ctwrGHrF+/HieeeCKKi4vx4osvoqCgIDHdFRUVOPzwwzF+/Hg8//zzmDx5Mp5//vlYdC1atAgPPvgg7rjjDmzYsAHV1dXbqrps2rRpryu8cDnrrLOQzWZjTW9q3bo1ysvLtxkbwNZoywEHHICZM2fGpndHJk2ahDZt2nwlLzgOrrjiCowcORI//elPMXLkSJx++ul46aWX8MUXX+DXv/51bHovvPBCXH311bjmmmvQpk0bHHvssbjkkkvQunVrdOjQITa9O5LzCOY8hjly/71j3nA+MX36dIwZMwannXYa7r333sT0FhUV4aCDDsLRRx+NW2+9FRMmTMCPfvQjVFZWxqLvmWeewaxZs3DFFVeguroa1dXV21Jh/v3fkyAIApx55pmYPXs2ampqYtGRG7NHHHHEdqk+uYo0Sc1lRITf//73OPHEE9G6detYda1duxbXXHMN7rzzTlx11VUYMWIExo8fj4kTJ+LJJ5/Exx9/HJvun/zkJzj44INx0kknoXXr1vjhD3+ICRMmAMBez2W7Wm/EPW9prXOi6E1q3vre976H3r1745FHHsETTzyBd999NzZdOyP37krsN9sZxx13HEpKSjBhwgTMmDFjr/ZY7Q4zOPaA2tpanHrqqVi5ciVeeeWVbRu3NRg8eDAymQzmzp0by/kXLFiA+vp6fOMb30BZWRnKysq2lfg75phjYi3VujPi3MCcY1e5oESUmNe9pqYGf/7zn/Gtb30rkUl+1qxZGDx48Ha/tWvXDp06dcK8efNi0+ucw4MPPog1a9bg008/xcqVKzF+/HisXr0ahx56aGx6d6R3794oLCz8Ss7zrFmzAOxd+dJ9mXnz5uGEE07A0KFD8dRTT6lGcoYNG4ZsNouFCxfGcv7PP/8c69atQ48ePbbNZffeey82b96MsrIy3H777bHo3RVxz2XFxcVfu7cvqbns3XffxeLFixOJ1M6bNw91dXVfmcty/x3nXNa6dWu88sorWLZsGT777DMsXboU3bp1Q2FhIYYMGbLH5/269Uac85bWOieK3qTmrd/+9reYPHkyHn30UXzve9/DYYcdhksvvTTx1gBxkslkcNZZZ+GBBx7AYYcdhp49e8amywwOJo2NjTjrrLPw6aef4pVXXol9s/bu+OCDD5DNZtGrV69Yzj948GBMnjx5u39y+c+PPfbYXjcY4vLMM88gk8ns1QS+O04++WSsXLkSM2bM2PbbsmXL8Pnnn8eW27gjL774IjZu3JjIRxrYui/oo48+2u63yspKLFu2DD169Ihdf6tWrVBRUYHS0lI8/PDD6NGjR6LGbFFREUaOHIk//OEP2/3+u9/9Dh07dox1vGlRWVmJUaNGoUOHDnjhhRdi86BF5d1334VzLrYP3rhx474yl1144YVo2rQpJk+ejO9+97ux6N0ZYRji2WefxYABA9CsWbPY9Jx88sl49913UVdXt+23N954AwASm8smTZqEFi1a7HEvCg657/GOc1muSW0Sc1mnTp0wcOBANGnSBI8++ii+/e1v73FK6u7WG3HNW1rrnCh6k5q3qqqqcM0112DcuHEYMWIEnHN49NFHMXv27Fib/mlw0UUX4ZRTTol9/16q93Bs2bIFL730EoCtqT8bNmzYtgkv14lSmssuuwx/+ctfcN9992HLli3bNoUBWytDxLmh6IwzzsBBBx2EiooKNGvWDJ9++inuu+8+VFRU4LTTTotFZ2lpKY4++uid/r9hw4Zh6NChsegFtu7hOPbYY7d1dX3xxRfxy1/+EldeeWWs6Tann346hg4dijPOOAN33XUXCgsLceedd6Jdu3YYP358bHr/nUmTJqFbt2448sgjE9F32WWX4fLLL8f3v/99jBkzBtXV1bj77rvRokULnHfeebHpnTJlCt5++20MHjwYNTU1ePHFF/HUU0/h5ZdfFs1XjTJX3HrrrdtSMM4991y89957+NWvfoWJEyfusTc4it5FixbhX//61zb5efPmbZPZ05z33elt0aIFRo8ejVWrVuEnP/nJNo9ojr2JLu1Od2FhIU466SScd9556NOnDxoaGvD3v/8d//M//4OLL754j0u47k5vjx49vrLgfOutt5DJZHY5x0no3bJlC8aNG4dzzjkHvXv3xrp16/Doo49i6tSpeO6552LT265dO1x77bX4v//7P5x++um4/PLLsXz5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\n",
"text/plain": "<Figure size 1000x700 with 1 Axes>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Just like typical karyotype image:\n\n![](https://upload.wikimedia.org/wikipedia/commons/thumb/5/53/NHGRI_human_male_karyotype.png/765px-NHGRI_human_male_karyotype.png)"
}
],
"metadata": {
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.6.7",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"toc": {
"nav_menu": {},
"number_sections": false,
"sideBar": true,
"skip_h1_title": false,
"base_numbering": 1,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": true
},
"gist": {
"id": "",
"data": {
"description": "Tutorials/Courses/Generic/Explain Genome.ipynb",
"public": true
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment