{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Linear regression of (estimated) fish age to selected log-ratios for gill samples\n", "## What does this notebook do?\n", "This produces a scatterplot with a line showing this regression. This regression is computed twice, for two different log-ratios. These scatterplots are in the Qurro paper as Figs. 1(d) and 2(d).\n", "\n", "These plots, and the visualized linear regression, are only computed for gill samples: in particular, only gill samples that 1) are already used in the Qurro visualization and 2) have a valid log-ratio (i.e. do not have 0 in the numerator and/or denominator of the selected log-ratio).\n", "\n", "## What's with the functions?\n", "I've moved most of the logic here to three separate functions (`load_log_ratios()`, `make_scatterplot_of_log_ratios()`, and `perform_ols_regression_on_log_ratios()`) so that replicating this sort of thing with multiple log-ratio files should be relatively painless. All you need is the TSV file with sample plot data exported from Qurro (these are in this directory as `logratios.tsv` and `10_logratios.tsv` for the `Shewanella : Synechococcales` and `Shewanella : Bottom ~10%` log-ratios, respectively).\n", "\n", "The reason this notebook's functionality is spread across three different functions (and not just a single one) is so that the output of each step can be easily displayed (e.g. the `head()` of a DataFrame or a drawing of a plot), since putting `.head()` in the middle of a Jupyter Notebook cell doesn't actually display the head of the DataFrame. There's almost certainly a better way to structure this code, but I figure this should be a reasonable enough solution.\n", "\n", "## Why do you write this documentation in a Q&A format? Seriously, reading this is weird.\n", "Wow! That sounds like a loaded question, so I'm not going to answer it." ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "from sklearn.linear_model import LinearRegression\n", "from matplotlib import pyplot\n", "\n", "def load_log_ratios(tsv_filename):\n", " \"\"\"Returns a DataFrame of sample plot data subset to gill samples with a valid log-ratio.\"\"\"\n", " sp = pd.read_csv(tsv_filename, sep='\\t', index_col=0, na_filter=False)\n", " print(\"{} samples total in the visualization.\".format(len(sp.index)))\n", " \n", " # Remove samples with an invalid log-ratio\n", " sp_valid = sp.loc[sp[\"Current_Natural_Log_Ratio\"] != \"null\"]\n", " print(\"{} samples in the visualization have a valid selected log-ratio.\".format(\n", " len(sp_valid.index)\n", " ))\n", " \n", " # Remove samples that aren't from fish gills\n", " sp_valid_gill = sp_valid.loc[sp_valid[\"sample_type_body_site\"] == \"fish gill\"]\n", " print(\"{} samples in the visualization with a valid selected log-ratio are gill samples.\".format(\n", " len(sp_valid_gill.index)\n", " ))\n", " \n", " # We need to manually set the age and log-ratio columns as numeric for plotting them. Commenting these\n", " # lines out will cause things to break when plotting these values.\n", " # (Setting the columns of the DataFrame in this way results in pandas giving you a\n", " # SettingWithCopyWarning, but after a few minutes of messing around with this I haven't figured out a\n", " # way to get around that...)\n", " sp_valid_gill[\"age_2\"] = pd.to_numeric(sp_valid_gill[\"age_2\"])\n", " sp_valid_gill[\"Current_Natural_Log_Ratio\"] = pd.to_numeric(sp_valid_gill[\"Current_Natural_Log_Ratio\"])\n", " \n", " return sp_valid_gill\n", "\n", "def make_scatterplot_of_log_ratios(sp_valid_gill):\n", " \"\"\"Draws a basic scatter-plot of estimated age vs. log-ratio for just gill samples.\n", " \n", " Useful as a basic sanity check before we compute the linear regression.\n", " \"\"\"\n", " \n", " # We use color and transparency values that match what's used in this scatterplotĀ in Qurro\n", " # (this color is one of the defaults in the tableau10 colorscheme --\n", " # see https://vega.github.io/vega/docs/schemes/#tableau10)\n", " sp_valid_gill.plot(kind=\"scatter\", x=\"age_2\", y=\"Current_Natural_Log_Ratio\", c=\"#e45756\", alpha=0.7)\n", " \n", "def perform_ols_regression_on_log_ratios(sp_valid_gill, output_figure_filename):\n", " \"\"\"Draws a scatter-plot of estimated age vs. log-ratio, with a line showing a linear regression.\n", " \n", " The linear regression is computed using scikit-learn. Our use of LinearRegression here is based on\n", " this example: https://towardsdatascience.com/linear-regression-in-6-lines-of-python-5e1d0cd05b8d.\n", " \"\"\"\n", " # Reshape the data to get into a format that LinearRegression accepts\n", " x = sp_valid_gill[\"age_2\"].values.reshape(-1, 1)\n", " y = sp_valid_gill[\"Current_Natural_Log_Ratio\"].values.reshape(-1, 1)\n", "\n", " num_samples = len(sp_valid_gill.index)\n", " \n", " # Perform linear regression\n", " lr = LinearRegression().fit(x, y)\n", " lr_y = lr.predict(x)\n", " \n", " # Compute the R^2 value of this regression model\n", " r2 = lr.score(x, y)\n", " print(\"R^2 = {}\".format(r2))\n", "\n", " # Plot the same scatterplot as before, but visualize the linear regression alongside the samples\n", " # NOTE: i've been having trouble getting transparency working, so these might end up being opaque in\n", " # the final published figures :(\n", " sp_valid_gill.plot(kind=\"scatter\", x=\"age_2\", y=\"Current_Natural_Log_Ratio\", c=\"#e45756\", alpha=0.7)\n", " pyplot.plot(x, lr_y, color=\"black\")\n", "\n", " # Make the titles informative (and large)\n", " pyplot.xlabel(\"Estimated fish age (age_2)\", fontsize=\"x-large\")\n", " pyplot.ylabel(\"Current Natural Log-Ratio\", fontsize=\"x-large\")\n", " # The double-backslashes in \\\\approx are needed in order to prevent the \\a from being interpreted\n", " # as an escape character. Using a raw string (r\"...\") would also circumvent this problem; shout out\n", " # to https://stackoverflow.com/a/24739481/10730311 for help in getting around this.\n", " pyplot.title(\"Gill Samples with a Valid Log-Ratio ($n = {}$)\\n$R^2 \\\\approx {:.4f}$\".format(num_samples, r2), fontsize=\"x-large\")\n", "\n", " # Make ticks consistent with the other plots from Qurro (edited programmatically in Vega-Lite using the\n", " # biggify.py script included in this repository)\n", " pyplot.yticks([-10, -5, 0, 5])\n", " pyplot.xticks([0, 1, 2, 3, 4])\n", "\n", " # Also, show gridlines (like in Fig. 1(c))\n", " pyplot.grid(True)\n", "\n", " # Export the plot\n", " pyplot.savefig(output_figure_filename, dpi=600)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Log-ratio of `Shewanella` to `Synechococcales`" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "639 samples total in the visualization.\n", "285 samples in the visualization have a valid selected log-ratio.\n", "143 samples in the visualization with a valid selected log-ratio are gill samples.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/marcus/Software/miniconda2/envs/skbio/lib/python3.6/site-packages/ipykernel_launcher.py:27: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", "/home/marcus/Software/miniconda2/envs/skbio/lib/python3.6/site-packages/ipykernel_launcher.py:28: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Current_Natural_Log_Ratioage_2sample_type_body_site
Sample ID
11721.s38.19.gill1.3862941.822654fish gill
11721.ep25ul.1000nl.s12.5.gill1.3426981.772148fish gill
11721.s38.13.gill6.5550720.864577fish gill
11721.s38.16.gill6.5408702.304387fish gill
11721.echo5ul.200nl.s9.6.gill6.8772221.772148fish gill
\n", "
" ], "text/plain": [ " Current_Natural_Log_Ratio age_2 \\\n", "Sample ID \n", "11721.s38.19.gill 1.386294 1.822654 \n", "11721.ep25ul.1000nl.s12.5.gill 1.342698 1.772148 \n", "11721.s38.13.gill 6.555072 0.864577 \n", "11721.s38.16.gill 6.540870 2.304387 \n", "11721.echo5ul.200nl.s9.6.gill 6.877222 1.772148 \n", "\n", " sample_type_body_site \n", "Sample ID \n", "11721.s38.19.gill fish gill \n", "11721.ep25ul.1000nl.s12.5.gill fish gill \n", "11721.s38.13.gill fish gill \n", "11721.s38.16.gill fish gill \n", "11721.echo5ul.200nl.s9.6.gill fish gill " ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = load_log_ratios(\"logratios.tsv\")\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "make_scatterplot_of_log_ratios(df)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "R^2 = 0.10082600085558602\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAE1CAYAAADwCQfKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzsnXmYVNXRuN/q6VkYhtWJwIAKiCioURRUoiIYjbhhTGLQuCbmM4nx09+nxmjM56dxCSZqIlETjRp3IZuKcY0LrmAUF9RBEQVlh2Ebhplhprvr98e93Xb39Ezf7ul1ut7nuc9Mn3vvudWnu0+dU1WnjqgqhmEYhuEVX74FMAzDMIoLUxyGYRhGSpjiMAzDMFLCFIdhGIaREqY4DMMwjJQwxWEYhmGkhCkOwzAMIyVMcRiGYRgpYYrDMAzDSAlTHIZhGEZKmOLwgIjcIyLPeX1djBTie/Aqk4jMFZE7cyFTpkjnOyQiV4rIkuxLV5hk8jsqIjUislJEJmSivkJGRG4XkRszWWdJKw4RGSgivxaRehFpFpFNIvKuiFwrIjtFXXoBcFI3ntNLRK4WkU9EpEVENorImyJyfvffRY8mpt1F5DkRuSdfwojIYyLyn07OVbmf6zVpVt+t71iUHHkbALjPVvcIisgKEblPRIamUVeizzojbeTyc+AtVX0zQ/V5RkQmud+lz922+mWS6w9323NJXPnpIrLA7bdaRGSRiFwoIhJXxa+AH4vIyEy9h5JVHK5ieAf4LvBr4CBgX+D/ATsAF4evVdUtqrqpG4/7I3AG8DNgLDAFuBXo3406ezwZaPdMcwcwQUT2SXDu20A/IK2ZTwG+13R5BRgC7Ax8DxgH/C0TFWeqjUSkCvgJcHv3pUqLGqAeuARY09WFIjIYuBd4NsHpdcDVwNeAPYEZ7uuYAamqrgSeB87truDRlZbkATwOrAb6dnJeov6/B3jO6+sEdW0Gzksiz5HAXGAjsAV4CTgg7pq5wF3ANe6XZjNwLc4A4ApgLbAeuDbBfXfjfLEagEacTrCqq/cA/DfwEdAKfAJcDvijzh8CvAZsdY/3gKM6eX9fB9qAavd1lVvvq3Ft0AbUxMvk/q9xx+So93cn8L84P8SNwH3hetJt7wT3+IDPgVsSnJsLPJXCZ5nsO1WFM+DYAmxy//81sCSJjMm+i+Xu92Cl29b1wPfirunlfj/Cz74t3We73yEl6neWrH06+6wTtFHS99KJnN8EthH7XR7gPudUHEXXiPN7+lE6/YvXA1gG/LKL79tzwKXAlcna373nEeCRBOXfB1ZnSu6SnHGIyEDgGOAPqtqY6Bp1WztDrAamus/tjBqcH+hEnBHEJ8DTIrJD3HXfwfnBHAJcCPwCeMK9/1CcmdIvROToBPft4F5zKs6P59edCSMiV7p1XQaMwTET/Aj4P/e8H5gDvAHs5x5XAs2dVPk6EHKfD3AwjrKZICK93bLDgTdVtSnB/RfgjGb/ijOiHeLWGf3+BuJ0MCcDx+GYIzrDa3tHUNUQjuI+VUR6hctFZDfgMJzONq26E/BrnFnMGW4924CfpnB/Z1wH/BfOzHov4AHgARH5etQ11wMnAKfjzMS3kMZoVUTqcD6XoHuESdY+yT7rVN5LIg4D3lHVQFTZvu7fC9169gUeBG6J+n5Gv7dfiEhTkuMXSeRIxv/iKLPrk10oDgfg/K5eTHDJG8BgERnTTZkcsqlNC/UADnA/kBPjyl8Hmtzjw6jye+jejONgnJFqEFiI08F8k6hZTSejjU3AqVFlc4F34677EHg/ruw94Ia4+5YBZVFl5+CM+HvHvwegGkcBTI2r9wxgs/t/eIQ2OYV2nwv8xv3/WpxOuD78HJwv99VdtPNzwD2d1PteXNkfgXkpyNahvTu5bigQAM6IKrseWEXUCNbDZ9npdwjo7X42/xVXz1t0Y8bhfq7bgXPjyh8BXoh69nbg7Lhr5nt8dgDn99PMl7OFG5Lcl6h9OnzWCb6jXb6XLp73KDA7ruxCnFnLqKiyfVz5hyWoYyAwKskx0MP3bhkJZhw45uzVwGD39ZWJ2h/HPNrkyh4A/reT5/R138uxXn8TXR0lOeOIIt6JNB1npHEHzg8oI6jqa8CuOKPte4FBwN+BOWFHloiMEJH7RWSJiDTiTJX7AbvEVfde3Os1OMoovmzHuLL/qGr0qO81oNKVK549ccwV/4geQeHYhPuJyFfUsTXfCTwjIk+JyKUisnuSpngRZ1aB+/f5cJmI9AX2B15IUkdnxLfLKpx2TkgK7R2DOvbiJ3BGuohIOXAWcLe6I9h0645iV5zPJn6U/arH+ztjFFABvBxX/hLOZx59zfy4a+aF/xGRQ7sYWb+B8xs6AMfePg+Icf5moH28vpfO6IWjmKMZBzyvqtEO6F1xFOCq+ApUdaOqLklybEzh/UQQkVqcWc/3VbVLHwjOrH1fYDxwHnChiJyd4Lrw++2V4FzK+DNRSRGyBMdsEjNtU9XlACKS1gfeFW6n8rp73CgipwH3A5Nwvuz/wvE//BRYjjOCeBXnxxFNe3zVnZR1Z1AQvvckYHGC8xsBVPW/RORm4Bs4duurReQ8Ve3M6fgCcIWI7MyXSmI7jjnsFfd9JDJJeKEt7nWyNvDa3om4A/iXO+0fC9QS6xTvTt2FQlem2rf40rQD7vfBpSWq8/1ARHYF/oCraF3y3T7rcWYM0YwDZsWV7QcsVMdEGYOrLJOZoq5T1evSkG8voA7nOxYu8zmPlfBs9yGImE/D7b1QRAbw5Ww+mvD7XZ+GPB0oScWhqhtF5Cngv0XkFlXdkgcxFrl/d3Rtu2OBY1T1GQARGUbHWUN3mCAiZVGzjq/hdNqfJrj2Q5wRykhVfbKrSlX1A+AD4CYR+ROOCawzxfGGW+8VwCequkZEXsT5wX4LeF1Vt3fxuDagrCt5vJCB9n4K+AKnMxwDPKuqyzJUNzifSRvOZ/RhVPnBKdSRiCU4n/kknM8szGFRr5e4z56IY0YMc1D4H1Vt4cvOKhlXAotE5HZVfSuF9kn2WXt5L53xNs7oHPf5vYA93PJo9ktQFuZPOD6Yrkh3APomsHdc2bk4frtjcJRtZ/hwAivi2RvHVP5OmjLFUJKKw+VcHHPNO64j+F0cW+HuOB9QsPNbU0NEXgIexhmprceZZl+HExX1Io59dz3wXyLyKY4T+zdAS6ZkcOu81Z0hjMQxI9yuqtviL1TVJhG5DrhORBTH3uzH+fKNU9Wfi8gonI7zcZwvch2OKa6zHxqq2iYirwFn4vzwwkr8A+A0nE6mK5YCU9xR7BZgi6rGz7a80K32VtWQiNyFYxfvg+MAzkjdbv3bXCV8jYisBT4Gzsb5bq7zUEWNiOwbV9aqqh+JyEycmeF6HPPed3Ac4UdGPfv2qGcvxvm8xpDGaFVVPxGRx3FGwUfhvX06fNZx9TYney9d8BTOrH8n18qwN46SWhB33X7APzp5XxtJUzGISA1OHwDOLGuw+3k1uSaubcQpPxFZB7S5A7Vw2VU4M/XPcAJmJuEEhPwlwWMn40QwJgwGSpWS9XGo6hd8GWN+Gc5o+EPgRhy7bLLIjFR4CieS6UmcTuAvOJEkB6tqgzvdPAnHproQxwn4exznWKb4O4499FWcEf6/cML8EqKqV+N0jP+F86N8FfgfHGceOFE+u7l1Lcb5gb1O1EiuE17EUULRvowXEpQl4kYcE8d7OJ1PWiPwDLX3XTjRQWtxlGcm6wbns3kUx5z5H5w1P7d6vPdAnJFl9PGoe+5y4M+uTGGFfZqqPh91/8/d9/SQ++wB7vuI9wt45bfAN0Rkcgrt4+Wz9vJeOqCqi3ACKk53i8YBq1R1bfgacRYtDqKLgVA3GM+Xn8sQHJPdO6S+BqgvzgDsQxyf1I9x+rILoy9y/ajfI4PrVsT1uBs9GBGZixOR8cN8y2IUJyLyArBJVb+db1kygYgcijPoGeWa3nosIvJdnNDefeMCZNKmlE1VhmEkQET2xjHTzMMxpZyOEx4avzaoaFHVV1xTz0hi/Ug9kUqcCK2Mmd9NcRiGEY/ipOSYiWPO/ghnzdPTeZUqw6jqHcmvKn5U9f5M12mmKsMwDCMlStY5bhiGYaSHKQ7DMAwjJUxxGIZhGClhisMwDMNICVMchmEYRkqY4jAMwzBSwhSHUVKIyE4i8qI4+8x/ICIX5Fsmwyg2bB2HUVKIyBBgiKq+7SabW4CzuK0+ya2GYbjYjMMoKVR1taq+7f7fhLMqemh+pTKM4sIUh9GjEJF/ioi6R1BEVojI9SLS4bsuIsNxcjK9kSVZjhGRd0Vku4gsE5ELPdwzSUQeE5HP3ffwy06uS1p3smtExCciV7g78bWIyBciMlMS7LFtGNGY4jB6GuNx0mwPAYbjbBr1M2J3oAvvifAP4MJM7VEQV/944DGclPr74uw1cp2I/DjJrTU4GyhdgrMFcFp1e3z+RcDFOGnUx+C00XeAmzy/UaMkMR+H0WMQkR1x9sc4Ojohn4hsAh5U1fPc1+U4+5E8p6q/7eYzRRP8iETkIWC4qn4tquy3wEmqOtxj3cuAO1X1mlTr9njNo0AwOlW6iNwIHK6q47zIaJQmNuMwehLjcXZufA1ARPq5Oxn2x9mQKLypzV3AomRKQ0SqXVPOm67p6O8icpKIDBSRASLyU5zZTCIOBuKzyT4N7OJuldodvNTt5ZpXgYNF5KsAIjISZ2vSJ7opn9HDsbTqRk9iPM5gaLWrIKqBEM7Oag+41xyMs7/E+yLyrlt2harOSVDfecBeOGaeIHA4zm52u7j1voize1sihtDR1LQm6tyKVN5YGnV7ueZGnP2p33a3CPbj7Kj3v92QzSgBTHEYPYnxwGycjq8Xzla3w4GfuFuWoqqvAuKxvjtV9TciMgjH9/Csql4iIoNx9jtvEZGvZPpN5JDvAOcC3wfexdnT/HfANTjbshpGQsxUZfQkxgPzVHWJqr6PsxnROJz9ltOhl4j8C2ekvgT4wjV9jQC+KiJ3Aud3cu9qYHBc2aCoc93BS91errkRuFlV71fV91X178AvgEtEpKqbMho9GFMcRo9AROpwTDALw2Wquh3HCX5WmtVOB94D9gBG44zEDwT+DfwNCAB/6OTe14Cj4sqmAp+ranfMVF7r9nJNbxyTWzRBnBmZ11mZUYqoqh12FP0BTMPZ8nSHuPLTcDr4r6RRp78b8kwA2oFrcRTPmUAL8OOoa84DPoq7rwYnfHZfYBVwi/v/qBTr9nLNXThRaCfimPSOAj4DHs/352lHYR95F8AOOzJxAL8CViUo/wrOqPqcPMh0LM6MZTvwOc6akejzVzpjt5iyya4CjD/mplK3x+f3xnH2fwa0Al8AtwED8/152lHYh63jMAzDMFLCfByGYRhGSpjiMAzDMFLCFIdhGIaREj1yAWBtba0OHz7c8/Xbtm2jd29LCOoVa6/UsPZKDWuv1MlUmy1YsKBBVZMuau2RimP48OG89dZbnq+fO3cukydPzp5APQxrr9Sw9koNa6/UyVSbicjnXq4zU5VhGIaREqY4DMMwjJQwxVFEhJqbCaxeTai52fM9gYYGWhcuJNDQkEXJDMMoJXqkj6Mn0lpfT+OsWaAhEB99TzmZqjFju7yn8aknaZo921npKULN9On0PfqYHElsGEZPxWYcRUCouZnGWbOQcj9lffog5X4aH57V5cwj0NDgKA2fD19lJerz0TR7ts08DMPoNqY4ioDQli2gIXyVlQDO31DQKe+EwKpVqCo+vzOp9Pn9qCqBVatyIrNhGD0XUxxFgK9fPxAfoe3bAZy/vjKnvBP8dXWICKFAwLknEEBE8NfV5URmwzB6LqY4igBfdTV9TzkZbQ8QbGxE2wP0PeVkfNXVnd7jr62lZvp0JBQitH07EgpRM306/traHEpuGEZPxJzjRULVmLFUXHopgbVrQME/OH5zt470PfoYqiccQGDVKvx1dUmVRqi5mdCWLfj69etSKRmGUdqY4igi2pYtSzmyyl9b62mWkU7UlmEYpYmZqoqEdCKrCqFuwzB6HqY4ioR0IqsKoW4je6SzINQwMoGZqoqE6MgqX2Wlp8iqVOsONjcjPh8aCmWsbiM7mGnRyCc24ygS0omsSqXuqokHEVi2jLZPPyWwbBlVEw8yB3mBYqZFI9/YjKOICEdWZTryKdTcTOu8+ZSPGAHiAw3ROm8+NYdNLinlUSxRZYlMi8Ht2x3ZC1huo+dgiqPI8FVXZ7xziHREvb7cCCbY2FhSHVExmX6yabY0DC94NlWJyBQReU5EVrvHv0VkchZlK3h6inMynZXpPYliM/1k02xpGF7wNOMQkVOAB4DHgBlu8WTgORE5VVVnZ0e8wqWYRqjJCHdEjQ/PIugqjVLqiIrR9JMts6VheMGrqeqXwC9V9ddRZTeLyC+A/wVKSnFEj1DDpoLGh2dRcemlRfsDLqaOKNO+iGI1/WTDbGkYXvCqOEYBf0tQ/jfgisyJUxwU4wjVC8XQEWVipheveLI54wo1N0N7O6Hm5qT1FYtz3jC8Ko71wFeBJXHl+7jnSopiHaEWO5mY6XWmeBLNuLrbkYefFdhjDxpmzOhSyfUk06fR8/HqHH8AuF1EfiQiY93jx8AfgfuzJ15hUijOyZ7inPdKwhXugXbalizx1AbJnOC+6mr8Q4bgq66mtb6ehhkz2HjbrTTMmEHrovrUZI16lpT5unS4F5tz3jBS8XGUATcD5YAA24GZlKCpCvLvE/A6Qg2Pmikvh/b2ojaDxM/0Ahs3EVyzmi2zHkb85UlH6Z2ZGANr1uDr1StmptHdmU0q5syeavo0ei6eFIeqBoCficgVOP4OgCWq2pI1yYqAfPkEvHZsYeUS2tZEaMMGfDvsgK93TcIOthjs6zG+iJYWgmtW4xs0CH///p4690QmxlBrK5vvvgtEIgrY338AaAjx+wm1tiLl5WiKHXkqIc5m+jSKjZRSjqhqi6q+7x4lrTTyiZekhBHlUuYjtHkz6nP+4pMOZpDummVySdWYsdReeil9Tz6Fsro6ynfYAfCWmDHexBhq3Y6IIJWVMSYiyssJtbTQtngx7cuW0bZ4MaHW1pQ68uhnaTDUpTkzXdNnqZkqjcKh0xmHiNwBXKiqTe7/naKq52RcMqNTvIxQw8oFidpzPBBwkhgG2iKj52IMLfZVV1MxahTiL095lB5tYgy1trD57rs7mogaGxERFMcmq4CIpCxn+Fn+116j9pvf7LI9UzV9mjPdyCddzTh240vFMtp93dlRkuRrxOdlhBpWLmjIkTUQAJEOmW9zlVI9023VnQCFsBPcP2hwQnMSAlJVReXo0ZQPH0Hl6NFIZWVabeKrroby8pTk8jLTMGe6kU86nXGo6pSo/yfnRJoiIt8jvmQj1Gh/gK9/f8fHMXAghDSmg82FfT1bbdXdAIXO1m9EKxTx+QrO52DOdCPfeE05cgVwg6o2x5X3An6mqr/KhnCFSqGYd5I556M71s6iqrKdbiTbbdXdAIXOlE/VxINomj0bVUVEqJk+vWA6ZXOmG/nGazju/wF/AuLnwtXuudJSHEU04vPSsWYztDhRWwWam2lbsoSKUaMKor3i2yidNPO5jEpLR9kXQ9ScUTx4VRxhH2E8uwGbMydOcdATR3zZCi2Ob6v2DRsIrV1L46yHwcPai3yQapr5fJgtU1H2+TSrZlphmQIsDLoMxxWRpSLyGY7SeEtEPos6PgdeAp7KhaCFRKGsHC8GotsqsGkTobVrKRsyhLL+/QvWqZvKGox8Oqq9ONPzKV+mw7yLKWy8p5NsxnEnzmzjV8BDQFPUuTZgKfBodkQrbLJq3ulho6pwW7UtWULjrIcp698fKFwTXyqmoPDspDuLBbNJvsyqmfZtFYpf0XDoUnGo6rUAIrIcmK2qrTmRqkjIhnkn39Fa2SK89oI01l7kA68DA1+/foRaWgisWOGsPld1Vujn6T11yPybJ7NqphVWMfkVSwFPK8dV9V5TGtknXbNCoawgTiZHsZn4vK6rCC8WhPQXC2aCRKacfLV5pneVLPVdKgsNr+G45cAvgO8Bu+AkOoygqmWZF630SGdUVSgzFK9y5Do5pBezX3dMg6EtWyKLBbU9gJT7CW3b1uEzy7b5sStTTj4ScmY6zLvUd6ksNLxGVV0JnAX8Fvg1TrbcEcCJOOG4RgZI1axQKHbfVOXIVXLIeGXW58QTKR88OKbz7K7iDX9mGgjgq0r8mWlrKw0zZmRVuScbdOQjIWfVmLH4zz+fwKpV+Ovq8NfWdru+YtmlsqfjNcnhycCPVPX3QAD4q5uf6hrga9kSrtRI1ayQq3QhySgUOWJkijP7aVsbm27+PRv+MDNixslExFGyzyzU3Exw48asRzUVoimntb6ejTNn0vi3v7Jx5syMREF5NR8a2cXrjGMIsND9fxvQ1/3/ceCqTAtVaOQyyimVUVWhrCfpTA7KywmsXp2X0WG0MtNgkOD6dSCCr6oKxMkQ3P/7Z2XE4drVZxZWntl26iYz5eQ6Uq9QZsNGdvCqOFYBOwJfAMuAScA7wF44M5AewzPPPMOTTz7JtGnTmDRpEsFPPsm5D8GrWaE7dl+vHYmX6xLJUTXxIDbOnJmRdkun04sZgStoKIT4fEh5OVJW5sipZEzxdvaZRZJJ5kC5d6bA8uEHsyiono1XxfECcALwFnAXcIuInAzsTY62jhWRZcBWIAgEVHV8Np4zdepUAGbOnNnh3KEjRnDkG29w8o03sttee2Xj8SmTjt3Xa0eSSocTnxdr48yZGRltttbXs+XBByHQDv5y+p12qqdOL1qZEWhHVPHV1iJlZZHO2z94cNYdrr7qasoGDkQ/CuTEqZsofUo+Rv6FMhs2soPXHQDPETfGUFX/LCKbgUNx9yLPonzxTFHVhmw+YP369fz5z3/m8ccfZ968eTHnXlm6lFeWLuWKvfeOKa+trWXatGlMmzaNI444gt69e9MdUh1hp+L49NqRdHVdMjkCq1dnZLQZam5m8913EdqwIbJGYvNdd7Hjr672VE+0Mmtbs5qmRx4l2NgY03nnwuEqVVXU5smpm6+Rv0VB9Wy8zjhQVY36/2/A3wBEJKVdBAud2tpaLrvsMi677DJCzc00zJiBlPvZ7vPx8qKPeHrRIv69ciVr1q6N3NPQ0MDdd9/N3Xff3aG+CRMmcPzxxzNt2jS++tWvJo3xT3Uv8VQ7Iq8dSVfXJSNTo83AmjWEGhrA73c2oAqFCDU0EFizhoqRIx05k7RDWJn5hwyhavc9El6bi4ijfEQ1QX5H/hYF1XPpVqcvItOBRRmSJRkKPCsiC0QkJzsORkfMVLS0cMTIkdzxwP2sXrMGVY0cS5cuZebMmRx55JEd6njzzTe54oor2HffffH5fM5WpSL06tWL6dOn8+CDD7Jx40bA+wLA7uTsiXQkLS2EWrcTamlJ2JF0J0onY4vOpGNmTXXLIfV2KMWInHwvuizFNi8FJGoikfgCkR8CR+Hkpvqdqr4lIocAfwD2AO5T1R9lXVCRoaq6UkR2BP4N/Leqvhx1/hzgHIBBgwbtP2vWLM91NzU1UVNT0/kFoRAEg1BWBj7vujYYDPL+++/z+uuv8/rrr7Ny5UpP9+1cV8fE/fdn4vj92WPkrlQOGuTsp+HKElizBkQQn6AhBVX8gwd7li3U2EjQVVYAZQMH4uvbt8N12tra4TqpqkreXpEHpddu0fcHVq1CA4FIfmbx+/HX1QF4a4fuypCBOjy3VzbJRDvkiIJoryIjU202ZcqUBV78x10qDhH5H+B6nFDcMUAIZwX5lcCtwC2quq7b0qaIiFwJNKnqDYnOjx8/Xt966y3P9c2dO5fJkydnRjiPrFu3jieffJLHH3+cOXPmEAh4C047+utf5/CKCqaO25ch7ug/2NjIwJ+eh3/IkKT3h81v+CRi/iGk1HbiLE1kCsple7UuqqfxwQfR9nakvJy+pzrO8cDq1Wy87VbK+vSJXBvfDpmIJkpUR8Uuw1Myv+Tj+1XMWHulTqbaTEQ8KY5kPo4fAj91HeJfxxnpnwSMVtUN3ZbSIyLSG/Cp6lb3/29Q5JtH7bjjjpx11lmcddZZMeXNH37Aa7+/mWc++ohnPvmED6J8KQBPPf88TwE/eyo2m/2we+5l2gknMG3aNCZPnkyl65uIJ+y7KKuO7XA7c5Zm0zbvxU9TNWYsFb+4vMN1ydaOUF7e7WiiRAECW+6+GyoqEZ/0qCSUhpEKyRTHcOBZAFV9XkQCwKW5VBoug4BHXMeyH3hIVZ/OsQw5oXrPvfj6zTczZcsWfhPXoW7dupVnn32WR+6/j3898yxbWr/MO7li5Upuu+02brvttg51Tpo0KRL1tevQoTl1lnamHFKZDSRSXsnWjmh7AG1vo3zQIOf6NKKJ4gMExO8nsH495cOGUdanT49Z1NbT0vgb2SeZ4ugFtES93g6syZ44iVHVz4B9cv3cfNHZKL9Pnz6cePTRnPC1r3XYQ/zjjz9mzpw5zJkzh1dffTXmvpdffpmXX36Ziy++OKa8X1UVR40ezTd/8H2O2bqV3hnuPDpTDplaW9DV2pHA1q0EV6/C17s3ZTU1aSnIDrOabc0I4HPDrXvCorZCSZJpFBdevGTfEpHvicj3gDJgWvh1VLmRA6KjiDbOnElg86ZIh7X77rvzs5/9jFdeeSUm4qu1tZWnn36ac889l2HDhsXUt6W1lb8uXMj3/t//0H/wYMrr6ijr3RsRYf/99+eqq67i7bffJlkARSK6ihDLZG6rcNQO7e2ROoNbtxJctQqCQQKff0772rVpRRPFRySBs4hQXX9Uvhe1dTedfj53BzSKGy/rOOJtHzfFvVac3QGNLJLKKD3a9FBZXc1RRx3FUUcdxa233hpz3fLly3ls1iwe+eMfeWHp0phzb7/9Nm+//TZXXnllTLnf72fixImcffbZHHvssdR2kvE0tGWLu9rbjwaDsetAysudzri5mbLq6ox0wOHZQbC52YnEUkUqK/EPHYq2tTPw/PPTys4avxah7fNlKS1qCzU3Q3s7oebmjM1KQs3NtCxYQNPTT3fL12JpQYx0SbYDYGHH7ZUQXn/kqZgevrJ1Kydt2MCJhx6CTJmMf+ha/VnCAAAgAElEQVRQympqaNu8mcUHHsSTr7/OnDlz+OijjyL3BAIBXnnlFV555ZUO9Y0ePTriS9mnstLpwMWJ3irbcUekvIL21avZ+uijaHsbwTWrCQ0ciK+mT7fXFoRnB1vuvQ8NBJyw3aFD8fXq5bTT1kZIM613tOkwlUVt4c8isMcerL/2WmqOnkqv/fbv1vtsra+n8aEHaV+xAhHBP2xYZKaQqqnP0oIY6WKKoUjwsiAvFdND5NqqSsTvR1UJrFxJqKWFMn85hx55JNdffz2LFi2KMX01NDRw6cUXM23MGCrLYvfvWrx4MTfccAOTJk2i34EHMvTe+xh2z70MvfsvTL/vPh5obmbRvfci5X7KBw2ifMQIfBWVDDz//IzY1avGjGWHiy+mfEgd5TvvDArbFy8muHYtm+68KyNpvcHborbozwIguGolm++8k4brrk1bjnCdIEhZGZSVEVi1CvH70zL15XtxoFG8eE45EkZE3geOUdXlWZDH6AQvuX9SMT3EhOXW1UUW2mlLK33PPKPTzmNAr158fdw4LuzbJzJK1fYAO/z853ywZAlz5szhsX/8gwXvvRdz30urVvPSjTd2qG9wTQ3HL1/ON089lcMPP5yqqqqU2iU+IshfW0vfM8+g8cGoUflOOyEVFTmNgAq3r/j9aHs7lJUhoRAgacsR+Xx7R92nSmjbtrRnCpYWxEiHlBUHTohuebKLipVCDk1M9iNPxfQQfW1Znz6w005o63YGXnxxl76AzvaX0MZG9tlnH/bZZx8uv+iiSI4vX2UljY2NvLT4E+b6/fzrscfYEDUDWtPUxJ8feog/P9TRTfa1r30tYvraY489OuT56swsVzVmLL4fnM2m2/9EWf/+zugccmq/j7RvUxOEgwtE8PWuTri1bCp1aiCAf+hQ2pcvR1RRhX7d3Ja10L7rRmGTjuLosRRDaGJXP/JUMpImurbfmWckdSB72V8ivu7evjJOvupKzhozlsannqRp9mzUNbl90aua51av4ulFH/H655/HPCucquXSuIy8ffv25dgpU5jiE74+Zgz9+vXrECzgHzwYqaxy/B1RqdRzZb/3VVdTNfEgts6aBaNGodu2UTZ0qBOR1Y09PyKp4kMhyocOpffU7vtNDCNV0lEcnwPtmRYk3/SUHctSMT2kY6bwur9EorpDzc20zptP2ZA6AmtWg8/HLsBPJk3iR/vvH5MupK2tjZdffjmSkmXZsmWRuhsbG3n4scd4GOCRR2Oeu/c//sEJ3/oW06ZNY8/p36Vp9l/zktY7/F7LR4xAKiqRqiqCDQ34qqroe+qpacthpiWjEEhZcahqYexglGF6UmhiKqYHL9fGm++kqoqB559PYNUq/HV1nc5SOmwqFPar9O1DcN1aZ4+NUCihjb6iooIjjjiCI444gptvvjkiR8OMGaxrbeHfS5bw5Jtv8dyKFTHPfL++nvfr67nmmmtiykWEaQsXcvzxx3PccccxyF1Rni0Ca9ag21sdU5m/jIrRowlu2kT/H5wdSQmfLuF2Da/jMAVi5BpPikNE6jo5pUCrqm7KnEj5wUITExMO/4xOMqitrWltC9tdG31Y8QypreWM2lpO3XNPAsuXUzZoEFJZRc307/J+07bICvoPPvggcq+q8thjj/HYY491qHfkyJERX8ohhxxCeXn3XHjhNgusXUtw3Tp0l+GOyayql5O9NwMUg1nV6Ll4DcddASxPcKwAGkRknYhcW8ybOlloYkdCzc1s+cvdtK9cSbChgfaVTkhpcONGpMyHlFcgZT7Pq42j2zhso+/3wx/ylcsvT0nxhEOSpaKCsqHDGPDjH1N76aVU77kXBx54INdeey3vv/8+qkpw2zbaV62iYcUKHnroIU4++eQOOzR+9tln/P73v+fwww+noqIismeKiHDEEUcwc+ZMlsYtkOyqzRpnzUIqKynfeWcU0LY2Qq3bM/Z9shXfRr7xaqo6Aye9+n1AeD/VicDpOCnW64CLgS3AbzIrYu6oGjMWvwcTTKkQWLuGwPr1iLsDHyIE169Hg0Hav/gicp2vf3/PJr3u2OgTOvRPO5WKEYlNP/Gj8hNPOZlTTjkl5hpVpb6+PjJLmT9/fsz5559/nueff54LLrggUnb22Wez++67R46RI0dGZikxJs/KSnyjRyPl5Qz44dmdypkqPcmsahQnXhXHqcBlqnpfVNkcEVkEnKKqR4vIKuB/KGLFYdP/ODSy2d6XiEAwgKri8/sJBQLOnuApmHe6E/7pVfF4DXYQEfbcc0/23HNPLrvsspg6mpubeeGFFyJKZe3atQwYMIDHH3+cu+66K3Kd3+9n5IgRjB4+nN12242hn3/OboN2ZLe6OnYoLwcR/IMyY6ICM6sa+cer4pgEnJeg/DXgj+7/LwAzMyFUPugpUVWZxD94ML7aWkIbNjgbPqni6z/AmYGIOHZ7EXwDBzpJBtMk1bUznhz6GRiVV1dXc9xxx3Hcccdxxx13xJzbtGkTixcv5uOPP+bD116j/uWXWfLuu/z7hRfYHgxGrutbWUnd8OFMePrpmFnKbrvtlvJixzCphF0buaGQ139lA6+KYyNwNHBLXPnR7jmA3sDWDMmVc0p9+p/oi++rrqb/2Wez5YEHob0Nyivo851vw6KPnNXYUTsIpjvazdYsL9uj8gEDBnDggQcyYe+9aViyBPneKfgqK2lvaWF5wwbWHXIIixcv5pMVK3jjrbd48cUXuf/++zutb+zYsREH/YEHHogvyfauFpZbOJSipcKr4rgR+J2ITADm40RTTQROBi5xrzkGeDvjEuaIUpj+J91UKdAOIaXP9On0GjcOcDuoy2N34Ctbuw5CigbaujXaTTjLe/BBfD8425ntpBgmHE2uRuXRqUVCrdvxV1SwS7++jJs0iWOnTwe+3NazqamJTz75hI8//pi//vWvPPLII5F66uvrqa+vZ8aMGR2eceyxxzJt2jSOO+446uq+DHC0Fd/5p1QtFZ4Uh6r+XkS+AC4EjneL64GTVTX87b8RSLgHeDHQ06f/yTZV0rY2guvXoaEQm27+PXrBBVSP2w/o2EFJRQX9zzoLBHx9+qaUNjzQ0BAJPojeQwNA29ppX7GCTbf/Cams6nLk5mWUl4tRua9fP7S1le0rVkRmYP7a2oQDjpqaGsaNG8e4ceM4+eSTI+WhUIgFCxYwZ84cHn/8cd6Ly/P1xBNP8MQTT3Sob+edd47MUg477DAqKioy/v6MrilVS4XnBYCq+k/gn12cD2REojzSU6f/XY2KwvtmBNevc3IplZej7e1snf1Xqnbfo0MbtNbXE1izhs0vvoC2tjpO8l69PE3RI+lGVBERep/4LWeW19ICqrQv/wIRoax/fzQQ6HK/Ea+jvK5G5ZmyS6uqE0Tg/k114yufz8eECROYMGECV199dcy5xsZGnnnmmYiDvrGxMXLuiy++4JZbbuGWW+ItyHDYYYdFlMqoUaPSeFfJKTW7fiJKwVKRiJRWjovIIcCe7sv3VfX1zIuUX3ri9L/LUVG/fo7ZKRRylEYoBD4fCB1GTZG03mPG4KuudkbZgH/06C47enBmGk2zZ6M+XyQaa9sj/6T62GNpfuIJ57nt7fiGDkXKypCysqSZfbszysuUXTq0ZQu+Xr2cNnAXSaabxDARffv25aSTTuKkk06KKVfVmO2CX3vttZjzL730Ei+99BIXXXRRTPnAgQMjCuXII4+kpqYmLblK0a6fiJ5uqegMTwv2ROQrIjIXeBmY4R6visiLIlLaix2KgK728vBVV9Nn+nRnBXd7uxM5VVuLlFd0GDVF7Pk+IdTq1KWAtrcn3f41vCufz++MVXzuHiCt89/AP3w45SNHQmUlwQ0b0GDQc2bf+PfjhUwuoIteDe+rqupWEsNUEBH22GMPLrnkEl599dWYPVNaWlp48skn+fGPfxzjEwHYuHEj99xzD9/61rfo06dPzGLH8ePHc9VVV/HOO+90OWuyBYixVI0ZS+2llzLwp+dRe+mlJaFAva70/j0wANhXVQeo6gBgHDAQ+F22hDMyQ7JV8b3GjaP/BRdQNmgwZTvuiM/1L3SWtl0DQQLLv4DWVmhpcfb4bm7ussP019UhIoTC+3UHAo55p9xPWXU1ZdXVlO+0E6JKcPPmLlfud3eVf6b3PC+0jANVVVUcffTR/PGPf2TlypUxSuWLL77gtttuY+rUqR3uW7BgAVdeeSX77bcfPp8volAqKys56aSTuP/++9mwYUNG26+n4GVzr56EV1PV0cBxqrowXKCq74nIT4E5WZHMyCjJ/DfV4/ajavc9urRZ+6qrqTnxm+h7Cx3Tkt8PgQDBFSsIVlbSZ/r0Tn84/tpaaqZPp2n2bELbtzs+jm99m+0LFkTsw5EUIj88G/+grqOqurUCPQN26Wj7fjH5xnbaaSd+8pOf8JOf/CSmPBAIMG/evIjpa/HixZFzbW1t/P3vf+fvf/97h/p2ra3lqN124xsjRjDV57N9GkoEr59zFbA5QfkmoDJz4hjZJJn/xot/p2LwEKR+EeW7DHdmHZWVEAziHzKE1nnzqTlscqd19D36GKonHBCT0qV19G4x9uE+3/k2vqpeGXk/Xd2Xjl06rCzC+6bH2/cLWWEkw+/3c+ihh3LooYfy29/+NuZcQ0MDTz31VESptLW1Rc592tDAbQ0N3DZvHsRtxjV16lSmTZvG8ccfz7Bhw3LyPvJFqQUKeFUcbwKXicj3w9FTIuIHLnPPGSWCM1p30o58WejD16dPB6dwoh+Tv7Y2JgdY9Gi9ffVqtv7jHzGZeLNlL051lhB2BmugneCqVZQNGYJ/wICSiNuvra3l9NNP5/TTT48pb1+/npcvuYRnli3lmU+WsHDlypjzTz/9NE8//TTnnntuTPnQoUM5/vjjmTZtGlOmTKGqqirmu1JsFEqgQC6Vl1fF8XPgGeAzEQlngTsI6At8IxuCGYVJZCMnBUIhVJXynXbq4BRO5ccU/pI33nQjgYaGyHqILXffTcVVv8raj8DrjCXaGSz+MoIiBNeto6xv36KJ289GpyKBAHsPG8q+Y/bg50c7ZcHGRgb+9Dxa+/Th3//+d2SWsnHjxsh9K1eu5E9/+hN/+tOfOtR54E47sc83vsGQIUPYfffdMyJnNimUBYDa2krDjBk5U16enOOqOh8YDdwLlLnHPcBoVf1P1qQzChKpquIrl19Ovx/+kPKhQx0FEuUUTifqJpKJ1w3FlbIyAuvXE1i7JofvLDHRzmApLwefz4n82rbNWYNS4HH7rfX1NMyYwcbbbqVhxgxaF9VnpN6uottqamo48cQT+ctf/sKGDRtiHPQff/wxN9xwA4cddliHOt9Yvpw77rorssd8+OjXrx+nn346f/vb32LWsuSbQggUCDU3O1sd5DDKLZUFgGuB/40uc8N0L1HVos2Ia6SHr7qa3occSq/99u8wkk1rnUWCTLziluebeGe61PRB1611NqISoaaLoIB8E2hoYMt99yFVlZRV98noiDhdX9Ho0aO56KKLuOiiiwisXs3G226lrE8ftgcCzPtsKfcvX847H37IF1Gmr8bGRh544AEeeOCBDvXtu+++kbUp++23HyIdcjpnjUJYABhWUrlcvd7djZfqgF9nQhCjOEkUhpjOOotwJl6CQcfsFQziq63N2I553SEm5HbzZnTLZnzDhlGx6674hw+ndd78glzD0Fpfz8YbbiCwehWB5csJbt2a8RFxd9cwRH9XKv1+Ju2yM+edeSZLFy+OmaWsXLmS22+/neOOO65DHe+++y6/+tWvGD9+fEwYcVlZWWTWs27duoy83w7yF0A4dvh3le66pnSw6Dkj46QzEk2UibffaacWzEg+7ExvW7KELbMext+/f+RcsLGx4HwcEXNhryrEXWwZWLUKdtop451Kd7ItJPqulA0c2KG+uro6zjnnHM4555yY8mAwyH/+85+IL6W+/kszXCgU4tFHH+XRRx/t8NxRo0ZFZikHH3wwfn/6XWG+w7EjfsePAjlbvW6Kw8gK6fyYEmXiLSR81dVUjBqF+MsLPjdRxFzYqzf+oUMJrFyJBgJo63b6nXlGQbVt/HdF/uPdbVpWVsbEiROZOHEiv/51rPFj06ZNPP300xGl0hw1K1yyZAk33XQTN910U4c6jzjiiIhS2WWXXTzJke9URVJVRW0OlVfR7hFuFD7prKYt9BW4hWCa8EK0CaispobynXemfEgdO1x8cUGmxMjG5z5gwABOOeUUHn74YbZt2xYxe4VCIRYuXMg111zDAQcc0OG+5557jvPPP5/hw4fHOOiHDBnCj370I5544glaWloyJmemyOVvp8sZh4h8L8n9O2dQFsMoCvJtmvBCQnPhmWfErKEpVUSEvffem7333pvLL7885lxzczPPP/98ZJYS7RtZs2YNd9xxR4fdIAEOOuigyCxl7NixOXXQ54NkpqqOIQwdKYC4F8PomkyvY8i3acILxaDgCo3q6mqOP/54jj/+eP785z/HnPvss894/PHHmTNnDi+88ELMufnz5zN//nx+8YtfxJTX1NREVs9PnTqV/lG+sWKmS8WhqmbKMoqeQlnZmw+8KLhSS5eRLiNHjuSCCy7gggsuiClvb2/n1VdfjcxSPvvss8i5pqYmHnroIR6KS8cCsNdee0VmKRMmTEi6XXAhUTySGkYaRKKLynxIeQVS5vO8OCrU3Exg9erItfGvewLZWhxYSpSXlzNlyhR+97vf8emnn8aEEa9evZo777yTE044oYNi+OCDD7juuus46KCDKCsri/GnnHDCCdx1112sWZP/BbCJsKgqo0cT2rKF0LYmQpu/zNHp698/afhs/CylauJBtM6b36NmLYWSLqMns2Pfvpx5zDF8/5RTYjdFi9ou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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "perform_ols_regression_on_log_ratios(df, \"fig1d.pdf\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Log-ratio of `Shewanella` to bottom ~10% of features for the gill differentials\n", "It's actually the bottom ~9.95% of features, since the number of features in this dataset isn't divisible by 10. I hope you can forgive me ;)\n", "\n", "Interestingly, although I expected initially that the denominator here would cover a broader swathe of samples than just `Synechococcales`, less samples have a valid log-ratio for this log-ratio than in the `Shewanella:Synechococcales` log-ratio (285 for that vs. 252 here). Furthermore, fewer gill samples have a valid log-ratio here as well (just compare the `n` values on the plot titles)." ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "639 samples total in the visualization.\n", "252 samples in the visualization have a valid selected log-ratio.\n", "96 samples in the visualization with a valid selected log-ratio are gill samples.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/marcus/Software/miniconda2/envs/skbio/lib/python3.6/site-packages/ipykernel_launcher.py:27: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", "/home/marcus/Software/miniconda2/envs/skbio/lib/python3.6/site-packages/ipykernel_launcher.py:28: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Current_Natural_Log_Ratioage_2sample_type_body_site
Sample ID
11721.s38.19.gill2.8581111.822654fish gill
11721.ep25ul.1000nl.s12.5.gill6.6372581.772148fish gill
11721.s38.13.gill7.4713630.864577fish gill
11721.s38.16.gill8.0449472.304387fish gill
11721.echo5ul.200nl.s9.6.gill6.8772221.772148fish gill
\n", "
" ], "text/plain": [ " Current_Natural_Log_Ratio age_2 \\\n", "Sample ID \n", "11721.s38.19.gill 2.858111 1.822654 \n", "11721.ep25ul.1000nl.s12.5.gill 6.637258 1.772148 \n", "11721.s38.13.gill 7.471363 0.864577 \n", "11721.s38.16.gill 8.044947 2.304387 \n", "11721.echo5ul.200nl.s9.6.gill 6.877222 1.772148 \n", "\n", " sample_type_body_site \n", "Sample ID \n", "11721.s38.19.gill fish gill \n", "11721.ep25ul.1000nl.s12.5.gill fish gill \n", "11721.s38.13.gill fish gill \n", "11721.s38.16.gill fish gill \n", "11721.echo5ul.200nl.s9.6.gill fish gill " ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df2 = load_log_ratios(\"10_logratios.tsv\")\n", "df2.head()" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "make_scatterplot_of_log_ratios(df2)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "R^2 = 0.1350102610054712\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAE1CAYAAADwCQfKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3Xl8XGXZ//HPd5K0aVpaKMHSUmihgIBbC5VFRFt4kMXnJ/AoAiKoKPAoCCo8ioAsAlKUgoCoICIiaHEBRAVkaauIoJYdCmrBQjege2nTLJO5fn/cJ+1kMsuZZLYk1/v1mldmznqdM5Nzn3s59y0zwznnnIsrUe0AnHPO9S+ecDjnnCuKJxzOOeeK4gmHc865onjC4ZxzriiecDjnnCuKJxzOOeeK4gmHc865onjC4ZxzriiecDjnnCuKJxy9IOkWSQ/F/dwf1eIxxI1J0lxJN1UiplLpzW9I0kWSFpQ/utpUyt+opBGSlkh6bym2Vw2SbpA0sxL78oQjjaTRki6XNF9Si6TVkp6WdJmk7dMWPRM4ug/7GSbpEkn/lrRR0ipJ/5B0Rt+PYkDrdt4lPSTplmoFI+m3kv6eY15j9L1e2svN9+k3lhZH1W4Aon1b9OqUtFjSrZK268W2sn3XJTlHka8B88zsHyXaXmyShkuaIekVSa2SnpP0sSzLNUv6gaSlktok/UfSyWmLfBP4X0k7lTvm+nLvoL+IEoa/AEngIuAZYC2wI3AscDbhh4qZre3j7n4ATI+29wwwEpgC7NDH7Q5oJTjvpXYj8HtJ7zGzZzLmfRQYBfQq51ODx9pbjwAfB+qAScD1wK+A9/V1w6U6R5Iagc8DJ5Zie71wI7AvcCrwCnA48AtJ68zsgSjGEcCfgSXAccCrwFjCeQXAzJZIehj4AuF6VT5m5q/QQ/DvgGXAyBzzlfb+FuChuJ+zbGsNcHqBeA4G5gKrCAnYn4C9M5aZC/wYuBR4M9ruZYSc5AXAG8By4LIs690MzABWAOsIP97GfMcAfBF4CWgF/g2cB9SnzX8/8CjwVvR6Bjgkx/EdBLQDTdHnxmi7f8k4B+3AiMyYoveW8ZqWdnw3Ad8AXo/O4a1d2+nt+c6yToLwD/y9LPPmAvcV8V0W+k01Em441gKro/eXAwsKxFjot9gQ/Q6WROd6PvCJjGWGRb+Prn1/v7f7jn5DRtr/WaHzk+u7znKOCh5LjjiPBDbQ/be8VbSf4wkJ3TrC/9Opvbm+5Nl3I9ABHJsx/bfAn9I+XwwsBIYW2N5ngGWljDHby4uqCEVUhFT+OjNbl20Zi76VElkGHBrtN5cRhH/Q/Qh3Z/8G7pe0dcZyHyP8w7wf+ApwLvCHaP0DCHce50o6LMt6W0fLHE/457k8VzCSLoq29XVgd0Ju6VTgwmh+PXAP8Ddgz+h1EdCSY5N/BVLR/gH2JyQ275U0PJp2IPAPM1ufZf0zCXezvyTceY2Ntpl+fKMJF5hjgf8mFEfkEvd8b2JmKULCfbykYV3TJe0CfJBwse3VtrO4nJCLOTHazgbgtCLWz+VbwMnAl4B3ArcBt0k6KG2ZK4AjgBMId8ZrCXe1RZE0jvC9dEavLoXOT6HvuphjyeaDwFNmlkybNjn6+5VoO5OB24Hvpf0+04/tXEnrC7zOzbLvBkKuoTVj+kZgX0kN0eePEkpErpa0TNJLkr4jqSljvb8B20ravcAx9025U6b+8AL2JtxdHJUx/a/A+uj1Qtr0W+hbjmN/wp1qJ/As4QJzJGm5mizrJAh3e8enTZsLPJ2x3AvAcxnTngGuzFhvIVCXNu0Uwo93eOYxAE2EBODQjO2eCKyJ3nfdoU0r4rzPBb4dvb+McBGe37Ufwj/BJXnO80PALTm2+0zGtB8AjxURW4/znWO57QjFmyemTbsCWEraHWyM7zLnbwgYHn03J2dsZx59yHFE32sb8IWM6XcBs9P23QZ8NmOZx2PuO0n4/2lhc27hygLrZTs/Pb7rLL/RvMeSZ393A3dkTPsKIdeyc9q090Txj8+yjdHAzgVeo3Ps/xHgH8DE6NgPIyQcBoyNltkY/QZuA6YCHwFeA27P2NbIaL0Px/2t9+blOY7ulPH5GMKdxo2Ef6CSMLNHCeW9BwA/BcYAvwbukSQASTtK+pmkBZLWEbLKo4AJGZvLLFt/nZAYZU57W8a0v5tZ+l3fo8DQKK5M7yAUV/wm/Q4KuAEYJWkbM1tNKB76o6T7JJ0j6e0FTsUcQq6C6O/DXdMkjQT2AmYX2EYumedlKeE8Z1XE+e7GzJYQcngnR9tpAD4N3GzRHWxvt51mEuG7ybzL/kvM9XPZGRhCKDtP9yfCd56+zOMZyzzW9UbSAXnurP9G+B/aG7gkWu/89A2V4PzEPZZchtHzjn8K8LCZpbdam0RIAJdmbsDMVpnZggKvVTn2/0lCMfMrhMTqSjbXjaWivwlCUd5nzGyemd1DSNw+kVFy0XUcwygjTziCBYQvqFv2zswWRT+cXF94r5lZ0sz+amYzzewIwsXmv4EPRIv8nlBZfhqheGAyoR5jSMamOjI3nWNaX77rrnWPjuLoer0L2IXo/JjZyYSL/YOE7P/zkk7Ns93ZwBRJO7A5kZhNSEQ+GB1HtiKJONozPhc6B3HPdzY3Au+Pigc+AjTTvVK8L9uuFfmKaufR/Xfxw7R5G6OL5vNmdgHwH+C6jPWrfX6WE3IM6aYQbqbS7Qk8a6GIsps+FFVhZq+a2cGEIrsdzOwdhBzGuig2CMXb/zKz9P/tF6K/6Qls13Esp4y8VRXhbkHSfcAXJX3PqtOi5cXo79uist09gMPN7I8AksbTM9fQF++VVJeW63gfIav/cpZlXyDcyexkZvfm26iZPQ88D1wl6YeEIrAbciz+t2i7FwD/NrPXJc0BZgH/A/zVzNry7K6dtFYlvVWC830fodjgZMLNxwNmtrBE24bwnbQTvqMX0qbvX8Q2sllA+M4/QPjOunww7fOCaN/7EYoRu+zb9cbMNkbLxXER8KKkG8xsXhHnp9B3HedYcnkSOL3rQ1RftVs0Pd2eWaZ1+SGhDiafvDegZtYCtEgaQqgLujstkXoEmC6p3jbXxXTl6BembeZdhCLwpwrE0ieecGz2BcIdxlNRRfDThLLZtxNyAp25Vy2OpD8BvyDcqS0nZLO/RciuziGU7y4HTpb0MqES+9uEu5BS2Rq4XtI1wE6EYoQbzGxD5oJmtl7St4BvSTJCeXM94Uc6xcy+JmlnwoXzd8AiYByhKC7XPxpm1i7pUeBTRHepUSL+PCH7flGBY/gP4Z9pEqHCdm3GHVlcfTrfZpaS9GNC0cEWhH/6kmw72v6GKBG+VNIbwD+BzxJ+m2/G2MQISZMzprWa2UuSrgUukbScULz3MUJF+MFp+74hbd//Inxfu9OLu1oz+7ek3xHqtA4h/vnp8V1nbLel0LHkcR8wU9L2ZraI8LuuA57IWG5P4Dc5jmsVvSyZkHQwIXf1IrA94XmMYYSGLl2uJDRr/r6kqwgNBK4Ebo2KibtMI7RMzNrIp1S8qCpiZq8Rsqe/IrQc+hvh7m4moVy2UMuMYtxHaMl0L+Ei8BNCS5L9zWxFdJdxNKFM9VlCJeB3CdnVUvk1oRXTXwh3+L8Hzsm1sJldQrgwnkz4p/wL8GU23+1sIBRbzSJcXH5DKGY6PXNbGeYQEqH0uozZWaZlM5PQnPgZwsWnV3fgJTrfPyYUNbxBSDxLuW0I383dwM+AvwNbEp6JiGMfwh1o+uvuaN55wI+imLoS7E+a2cNp638tOqafR/veKjqOzHqBuL4DfEjStCLOT5zvOs6x9GBmLxIaVJwQTZoCLDWzN7qWUXhocQx5boT6YGQU84vAnYTmxPtG9WddMT5DaPk5hXBT+xNCxf/n02IU8Aly5/BLRlFNvBtEJM0ltIj5XLVjcf2TpNnAajP7aLVjKQVJBxBuenaOit76HUkfJzy7NDmj4UvJeVGVcy4vSe8iFNM8RihSOYHQ80Hms0H9lpk9IuliQrHtC4WWr1FDCa2uyppogCcczrnCjFAkci2hePslwjNP91c1qhIzsxsLL1W7zOxnldqXF1U555wrileOO+ecK4onHM4554riCYdzzrmieMLhnHOuKJ5wOOecK4onHM4554riCYcbVCRtL2mOwrjyz0s6s9oxOdff+HMcblCRNJYwOM6TCuM4P0F4mG1+gVWdcxHPcbhBxcyWmdmT0fv1hKegt6tuVM71L55wuAFF0p2SLHp1Slos6QpJPX7rkiYS+mD6W5liOVzS05LaJC2U9JUY63xA0m8lvRodw/lZljlB0hOSVkvaKOlFSV+JekftWuaitPOQ/tq5rzE6531VuYFmKqGL6iuABsJYDDcRhuXc1N10VEz1G+Ar5Ri7QNJU4LeEMROOI3Rt/kNJLWb2wzyrjiAMmPTz6DiyeZMwfso/CYMXHQB8nzBmzDVpyy0kDMCUbtMYGn2I0Q1yXsfhBgxJbyOMh3FYegd8klYDt5vZ6dHnBsL4Iw+Z2Xf6uE9Zln8iST8HJprZ+9KmfQc42swmxtz2QuAmM7s0xrJ3AZjZUdHniwhjUeycZ50+x+gGJy+qcgPJVMJd96MAkkZFIxduSRiAqGuwmx8DLxZKNCQ1SbpA0j+ioqNfSzpa0mhJW0k6Dfi/HKvvD2T2Hns/MCEaGrUkFOwd7W9OxuzxUVHdYkn3SXpfxvyKxOgGHi+qcgPJVMLN0LIogWgCUoSiqtuiZfYnjCfxnKSno2kXmNk9WbZ3OvBOwhC2ncCBhNHrJkTbnQOcliOWscDrGdNeT5u3uJgDyyRpFGGkuCGEY77YzK5NW+TvwGcIxV4jgVOBRyQdamYPViJGN3B5wuEGkqnAHYRR0IYRhradCHw+GqIUM/sLoFwbyHCTmX1b0hhC3cMDZvZVSdsSxjffKGmbUh9ETG8BkwmJ4/uAyyUtNbMfA5jZvRnLPxLlIv4PeBDn+sCLqtxAMhV4zMwWmNlzhMGHphDGYe6NYZJ+T7gLXwC8FhV97Qi8W9JNwBk51l0GbJsxbUzavD4xs1R0nM9GFdnfBi4rsNpjhIS0IjG6gcsTDjcgSBpHKF55tmuambURKsE/3cvNHgM8A+wG7ApcSmh59CDwKyAJXJdj3UeBQzKmHQq8amblKAJKAI0FltkTWJT2udIxugHCi6rcQDE1+vtcxvQ/ArdI2sbMllOca80smfb530DcZqpXA3+VdBnwM0KC80VC8RkAkk4HTjez3dKmjQC6WkINAbaVNBlYb2YLomUuBh4hNDFuAD4AfA34Sdp2riIkmgsJdRwnE5omH1FMjM5lZWb+8le/fwHfBJZmmb4NoSL7lCrE9GFCjqUNeJXwzEj6/IvCv2C3adMIY3xnvuamLXM1oehsI7Ca0G3KaUBd2jK/IFRutxGe+3gIOLDYGP3lr2wvf47DOedcUbyOwznnXFE84XDOOVcUTzicc84VZUC2qmpubraJEyfGXn7Dhg0MHz68fAENMH6+iuPnqzh+vopXqnP2xBNPrDCzgg+1DsiEY+LEicybNy/28nPnzmXatGnlC2iA8fNVHD9fxfHzVbxSnTNJr8ZZzouqBrhUSwvJZctItbRUOxTn3AAxIHMcLmidP591s2aBpUAJRh53LI2771HtsJxz/ZznOAaoVEsL62bNQg311G2xBWqoZ90vZnnOwznXZ55wDFCptWvBUiSGDgUIf1OdYbpzzvWBJxwDVGLUKFCCVFsbQPibqAvTnXOuDzzhGKASTU2MPO5YrCNJ57p1WEeSkccdS6KpqdqhVZ03GHCub7xyfABr3H0PhpxzDqm1a0mMGuWJBt5gwLlS8BzHAJdoaqJ+7FhPNPAGA86ViiccA1yuYpnBWFzjDQacKw0vquqnUi0tBYugchXLDNbimvQGA4mhQ73BgHO95DmOfqh1/nxWzJjBqu9fz4oZM2h9cX6PZXIVyyRXrBi0xTXeYMC50vAcRz+TniB03TWv+8UshpxzTrcLYLZimc62NpJLl2adnlq7dlBcQEvRYCBObs+5gcwTjn4mV4KQeeHPVSxTP27coC+uSTQ1dU9ki0gIBmsxn3PpvKiqn4n7YF+uYpn65mYvrkkTp9ivi7fKci7wHEc/05UgrPvFLDqjRCPXhT9XsYw/3xHELfbbtHzM3F6leJGZqxZPOPqhYi78mcUyhaYPJsUmBLXUKsuLzFw1xS6qkjRd0kOSlkWvByVNK2NsLg9/sK/viu3Pq1ZaZXmRmau2WDkOSccBtwG/BWZEk6cBD0k63szuKE94zpVPMcV+XWqhmK8rp6T6elKtbaihHhtELeNc9cUtqjofON/MLk+bdo2kc4FvAJ5wDFADvRy9NwlBtmK+Sp6nxKhRWGsrbYsXo0QCS6Wob24eVC3jXHXFTTh2Bn6VZfqvgAtKF44rRqkvVskVK0guXUr9uHHUNzeXvRy9FPGXYht9re+pRn2DmaHwBkWfnauUuAnHcuDdwIKM6e+J5g1K1bwbL/XFat1997L+jjvCBUli+FFH0fbEk1lbHNVK/LVQQVxsy6yS7HPtWhLDhlG/665YRwdqaCC1YYMXVbmKiVs5fhtwg6RTJe0Rvf4X+AHws/KFV7uKaf9faqWuHE2uWBESjUSCxNChWCLB+jvvxNrbytIhYCnir5UK4mp0nNhVqW/JJInGRiyZHHQPcbrqiptwnA/cAlwDPAc8D1wN3MwgLKqq9kWr1Ber5NKlmBmJ+pABTdTXgxl0JMsygmDy9dextlbUtb9exF8rPd1WY6TFWmnd5QavWEVVZpYE/k/SBYT6DoAFZraxbJHVsGo+CJZqaSG1cSOYlex5gvpx45BEqr2DxJAGUskkSiQYcfTH2HDvfbFbHMXROn8+635+O8k33qDzzTepHz8eDRlSdPy18kxF3JZZpS7WrIXWXW7wKuoBwCiheK5MsfQb1bpopZfpp1pbUVsbNnRony/qyTffhBEjYOVKUm2t0NDAiOOOY/i++zHs3e8p2cVpU05t6FAadtiBjkWLSC5aRN124xn1yeOL2n5vmtKWS6GLuLW2smLGjJLXxfhDnK5aciYckm4EvmJm66P3OZnZKSWPrIZV46KVWQmrIUNItbax5Wc/S/2YbfvUKmndrFk0jBkD225Lat06LFHHiA9OA0p7ceqWUxs6lMSuu9K5Zg1bfe6zDNlxp7wxZrsox7nrrlQDhlznKdXSQueqVRWtPHeu3PLlOHZJm78r4O390lS6qCBb8Zi1tZFoHBZ739kuoj2229xM57p1RRe7xblAZ+bULJlEQxupH7Ntzu0WajmVL2GriVZXUZ1LrfRv5Vwp5Ew4zGx62vtpFYmmn6lkUUFfi8dyXURLUewW9wJdbE6tL01dq9FMNpuu81jtuhjnSilWqypJF0jq8d8maVhUYT5gdHR0sHDhwmqH0UNfWtLkawXW1xY6xbYwa9x9D5rPOYfRp51O8znn5M0B9KXlVM20umpqom706H7RAmowjkPveidu5fiFwA+BzF9UUzTvm6UMqpoOPfRQZs+enXP+SSedxIUXXsgOO+xQwaiC3haPFWoF1rXd5Ouvg8hbdFTstrOJm1PrS26omHXLXQ+ixkaaa7wFVC0U67n+I+5zHCJ7HccuwJrShVN9V1xxBePHj885/+abb2bChAlIyvo6+uijWb9+fdni602vuHGeNWhfuJA1t9zCmptvLuqBxnzb7usdbF9yQ3HXzfcgZynvwGu5N+NqP5fk+p+8OQ5J/yEkGAbMk9SZNrsO2JbsfVj1W1OnTmXRokXdpnV2dvLTn/6Ur3/967z55pt51//1r3/Nr3/965zzr7/+ej7/+c8jqSTxxlGobqEv9QG5tt2+cGFJ7mB7nctqaaF+y60YfcYZ0NGRdd18x12q+PuDWhugytW+QkVVNxFyG98Efg6k30q3A/8B7i5PaLWjrq6Ok046iZNOOinr/FdeeYUPf/jDvPTSSwW3ddppp3HaaadlnTdq1Cjmzp3L5MmT+xRvNvkuwH29cGRuG2DFjBklq5guthFC1mKXsWN7LJfruJNvvB4SlLoEqB4s1ev4Uy0t0NGxqT6pFtXKw5Su/8ibcJjZZQCSFgF3mFlrRaLqZ3baaSdefPHFnPN/85vf8LGPfazgdtauXcuUKVPyLrNo0aK8RWn55BwNcNQoLGV0rl0L9Q0ooeKf5E7bdnLZspLewRZTB1FM7inXBROD1Ib1pNZsLoVNbLll3vgzexaGzQlYcrfdWDFjRs3mWmrpYUrXP8TtcuSn5Q5kIPvoRz+as9vr9vZ2zjrrLL73ve/F2tb222+fd34qlcI2biyqaKd94UJSb60jtTzq6Li+ni0+8Ym86+a7mJfyDrbYSttick85L5gjR5JauTJ0+lhfTyqZJLVyJTQ0ZN1nZs/CI445hhEfnLYpAVNdYlO9Qa0++OddmLhixB0BsAE4F/gEMAHo9h9kZnWlD21wGDJkCNdddx3XXXcd0PNC+dIee/DB446Lvb1EInd7h5122omXX36527RUSwvrfn47qbfeQk1N4eJnxsa/PMqID07LegEp1IVGqe5ge1P3Umyile2CmVy2jMTWW5NasyY8pCiRGD0aOjp6rN+tZ+EokVl/xx0MmTCx39UbeBcmLq64zXEvAj4NfAe4nNBb7o7AUYTmuK4Esl0od5s/n47ly3NW8BZTyf7KK6/kXf766dM5audJoZvujvasF7m4XWiU4g62t019i020Mi+YiVGjSAwfQWKLLTaNsEfKoKEhJCppx5OtZ+FUWxup9esr3muuc5USN+E4FjjVzH4v6RLgl2b2sqQXgPcB3y9bhINItgtlx5o1rLzyStRQn/XuPr0ILLlsGau+fz11W2wBwOqWFna5OP4jNqfNmcNpc+ZsnvCdK7vNTyaTWBFdaPT1Dra3RV59TbTSEx9LtkOijsb99mXVtdf2yGVt6lk4mdyU45DEkJ122ryNzlRNP/jnXLHiJhxjgWej9xuAkdH73wEXlzqoasran1OlOsqLLpSdLS3hTjcqW6+fOJG6pqaCRTWZF9pRdXW88Y1v0Jxj+bPPPpuZM2fGjq++Ps/P5bJvlXz40r4UefU10WrcfQ/qzziD5NKlJLbaijU/+lG3XNba224n8bnQweSIY45h/R13kGpr21THUd/cTH1zM0POOYf6Rx+l+cgjPdFwA0bchGMp8DbgNWAh8AHgKeCdQLIskVVBtopYjIq15080NdG4376bK1oBRoygLrrgFCqqKfZCe+lJJ/HVpiawFJYyhh94IEN23JH6bUNvu8U+a5Jv+bPOOosrr7wy5/xcqlVpm/5bsI4k1tEeehAGrL2dziWLWf3DH6KhjYw87ljeduXMHq2qIHwnNDR4ouEGlLhPjs8Gjoje/xj4tqTHCM92DIgHALM9Pbv2tttZ9/PbK/ZEbaqlhdbHHqdhxx0ZMmln6idMgA0b6Iz2F6eoJm5fUJnHm2gcSsuf/rQp0YBQDGZmdG7YQMfSpXRu2ICZMWfOHF7917+KOraZM2fmfNpeEu3t7TnXrfRT1z1+C41DSa1cSWrjRqyzk+TixZhE3ZZbbvpNJJqaaHz3u7slGq70vD+t2hC3Oe4pim4nzexHktYABxCNRV7G+ComW/1C6q23wgVi5MhN08rZMmZTDMOGR1OGktp6a6y1jc5oXOk4RTVximniVjxnzYWlUowbMYLODRtyjkExZdIknn399djHPjSKI5dSF4Plk3lu6pqaSI0ejW1sJRUlng077IDq6lBdXVG/iUoVew5E3p9W7Yg9AqCl/eea2a+IchqS4uZaalrWitiGIUiV6xI7WwyJ4SPydptRyn1lHtumO++0J6jX3nwzySl7smrO7Jz/vKm1a3nwc58FQqsjzKCzkxFHH82IAw8qeTHYl7/8Za666qqitpdP1u9hxBaMPuMMUuvWsebmH6PomY5ifhN+4eu9Wukm3wV9uuhLOgbI/ch0P5KtU7xRnzyekccfX7EusXN1zFff3Fzyopo4nQCm1q4ltWE9Ha+9RserC+l49VWSb7wBZuHCmVDWoruuJ9GTixeDBGZYeztv/epXLL/sMlpfnL+pGCz9tfGFF3jjG9/gmTPPKOpYrr766rzFYG1Rk9i+npv65ubQWqoXvwnvSLBvaqWbfBcUzHFI+hxwCKFvqqvNbJ6k9wPXAbsBt5Y3xMrJVRFbycrZSlYGp++LhoaefSo1NHR/grq9HTo6sI4OOhYuBCn0gptRTJNoamLEYYey5qabUCqFtbVBY2PINViKtT+9lfqzz+5WH5B+Yd1u3Dje/ObFWEcya4uwKVOm8PTTT8c/zsbGvPOzFYPl+x568x15R4J94/1p1Za8OQ5JXyY8o7EjcCQwR9IXgd8SmuJOMLNTyx5lBWWriK105Wwl95doaiK5ejWrrr22Z9fiHR0ktt4aSeEJ6kQiFDsB1NVhnZ105uiKY9iee9Ewfjx122yDGhtRXR2kUiRff53k0iWsvPxyWp56ctPyxdxRPvXUU1lzLF2vYuXKqdQNH87ZV1yRswVbMd9RnK7tXW596WLflV6hoqrPAaeZ2VTgI8Bw4GhgVzO7wMzy9zHual7e0QGjJ6jrt9+ehokTqRszBoYMAQzbsAHa2yGVou2lnqWViaYmRh5/PGpoCE9ed3aGi3oyCckknStXsOaaa9j41FNh+RJeWHMlKJ0bNrD0ueeK2tY111yTtxhs48aNsbZT7QvfQGiNVMzoka68ChVVTQQeADCzhyUlgXPMbGW5A3OVka8IpX7s2B5PUNdtsw2gUPSUSGCdnWy4/36G7blXj4tg4+57MOTc89j45BO8dc/v6Hx9WUg4hg5FDQ2k2tt56447GPr2t5e9h9auiuk6S/HGN76Rs2L6qKOO4u67448U0FQgvs4NGzYVAZa6GDJuC62BVCnv/WnVhkIJxzAg/ZaqDYjfxtLVvEJlx5kXu41PPgELXiZqm03D9ttDKpX3ocTh7z+AobvtzsrLL6dz5YpNuRDV1UFCPYawLXX9TjEtcu6666682yq2NVjd8OE551188cVccMEFRW2vS9zEYDC0RvImzpUXpznu/0haF72vAz4iqVsRlZn9vOSRZZB41FDcAAAgAElEQVS0EHgL6ASSUfGZ66M4d/rpd3nD9twLvbaI+nHbkRjehCWTWEeyYJFSfXMzW3zyeNZccw2p9nZUV0fd294G9Q3d1i3HHWUpK6bNLOdFe926dYwqomjtwgsv5MILc/cRumHDhqw5mmISg4FeKV8ruanBlnjFSTgyOzDMbDBvhCfIK2G6ma2o0L4GjWLu9BNNTdSNHg2JBKkNG4oqUmqasic680u8dccdkBDUN1SknL+ULXLyXbRHjhy5qXI+vcPJpydM4D2vvMK3fvc7rn7s8dj7Gp4ntwKw4ooZ4fjydTQ5gFsj1UpuqlYSr0oqNALggHi4zxVWzJ2+GhsZHXUAmNk3UyHDpkxh6NvfXtG7s1LWn8S9g0+/YFtnivZ//Yuzdt2Vcw48kJHHH5/1wlJsMVjz187pPuGyb216e//993PIIYeUve6ommohN1UriVelxX5yvAYY8IAkA24wsxurHdBgZa2tWbsYj6saFZylqj+JewffdcFee9vtWHs7BqGbkoaGnBeWfE2JW1tbGTZsWOw4Dz300NwzL7mE1tbWgt281LpayE3VQuJVDSq23buk54DDzWxReULKud/tzGyJpLcBDwJfNLM/p80/BTgFYMyYMXvNmjUr9rbXr1/PiBEjSh3ywJRK8daaNQxra0MJbRrkqH7MGMjX7foAYq2tdK5atelz3ejRKMdDhtbezvr16xnW3k5XhsI6U9Rvs03OoWhji5o5U1fHs88/z5lnntm37UUOPvhgzj333KL2T56RJ4tVzP9jMd9FWUTPJiFF/w8GZtRvu21Jz0khpbqGTZ8+/Yk49ce9STjeAt5jZq/0Nri+knQRsN7MsvbTPXXqVJs3b17s7c2dO5dp06aVJrgBLrlsGXPnzGHK4kV0vvVWGAEvmaRh7DhGfurEAV+22yVuZWiqpYXZd9/Ne15esOmuONcT8eV0+OGHc99995VkW4888ghTR48uW7l+sf+P1a6Ybn1xPut+MQtSnZuKAiv9f1Cqa5ikWAlHv7hFlDQcSJjZW9H7DwHxh7ZzJdNVDNDZ0rJp2FTV16NhjYOibLdL3OK2rsYE9lKyqnUM9957b855nZ2d+QfpynDAAQf0nHjJJZveVroYrNrPdlRrzJhq6k3C8SrQUepAChgD3BVVHtYDPzez+yscgyPtQtjaFrohqa+nfrvtSAwbRue6dQO+bLc31NhIcw1fWOrq6vLWrzz//PO8613vir29fH2DXXrppZx33nlFxdcfVDvxqrSiEw4ze2c5Aimwz1eA91R6vy47NTay9dlns+rKK9GwRhLDhg2oZp7l0J8vLO985zu7JSyplhZWzJixqSXR92bP5qI/PhBrW+effz7nn39+zvmLFlW06tT1UqzaG0njcrzGStqq3EG62lPf3MzIT52Idaa807lBJrPfrc/vvQ8b57+QvX+wzk722Wef2NvefvvtmT59etZ+wc466yySyQEzUnW/FjfHsZjQHDYrSSuBHwHfMLNUKQJztW8wlu26IO53n0gkePzx3A89vvbaa0yYMCHWPq+66qqcA3bV19fz+OOPs9dee8XaluubuO3FTiT0UfVt4Kjo9W1gGXAq8D3gi8DZZYjR1bBiuxdP76V1IPTYOpiVovv/HXbYoUcuZc6cOZveP/744wXHUwFIJpNMnTo1Zy/GZ511FsuXL+91nK67uDmO44Gvm1n6oE33SHoROM7MDpO0FPgyIUFxrof0rhmstRUzIzFs2KDppsEVb5999snZdb2Zce211/KlL32p4Hby5VbGjh3LpZdeyoknnlhU67LBLG6O4wPAo1mmPxrNA5hNGPDJuR66dc3Q1ERyxQpSK1eG8ceLHEbVcyoOQhctZ555Zs7xV9avX88VV1xRMDFYtmwZn/3sZ2loaMiaWzn44IP5+9//XqGj6h/iJhyrgMOyTD8smgdhkKe3ShGUG3jSu2awjmg0QQnr6Chq/OjW+fNZMWNGz9EKC+3fE5tBZ/jw4Xz1q1+lo6Mja8KyYMECTjjhhILbeeihh9hnn31yFoN96Utf4s03qz+mXSV/43ETjpnA1ZJ+Kunzkv5X0k+j6V1Pbx8OPJlzC25QS+9XSA31oasSszCgU8ymvPlGK8ynt4mN67u4F7NqJOyTJk3i1ltvzZqopFIp7rvvPqZMmVJwO9dccw1jxozplpgMGTKEww47jO985zs8+eSTpFLlbTNkra0V/Y3HKtAzs+9Keg34CvD/osnzgWPNrGvkm/RExLlu0ntptbY26pubwz9oRtfs+bqP6E2HcoO199JaELe78czl7H3vq0K03Uni0EMPzdlZZEtLCz/4wQ8499xzaW9v7zG/o6OD+++/n/vvz/6c8nbbbcdBBx3EgQceyIEHHsj222/f61hTLS10rlpV0d947JogM7sTuDPPfG9g7fLKbMIJdEskCl1oetMb6mDtvbTa4ibY2ZbrXLUqjHlfw99PU1MTZ511FmeddVbW+atXr+ZPf/oTDz/8MLNnz2b+/O45gCVLlnDrrbdy6623Zl1/8uTJHHTQQRx00EEccMABeTsw7CrireRvvKgmBJLeD7wj+vicmf219CG5fKrdoVtfZT5B3fU+zoWmN2NL1ELX24NR3AQ723Jd0/vj77vLVlttxZFHHsmRRx7ZY56Z8corr/Dwww9vSlhWrOg+Pt3TTz/N008/zcyZM3usX19fz4EHHrgpYXn3rrsCVPQ3HivhkLQN8CtCC6quGsxRkv4EHO2j8lXGQB5pLO6FptiHDgfyQEa1LPa4JdmW65o+QEli0qRJTJo0iVNOOaXH/I6ODubNm8fs2bN5+OGHmTNnTrf5yWSSBx54gAce6NnNy5F77MENH/1o2X/jcSvHvwtsBUw2s63MbCtgCjAauLpcwbnNelsx3F+kX0CAvHdNxT541rj7HjSfcw6jTzud5nPO6beJbX9qGZbZLUmuLmmyLVc3evSgTtgbGhrYb7/9OO+885g9e3aPivvVq1dz9913c8YZZ/COd7yj27qPLV9ekd943KKqw4D/NrNnuyaY2TOSTgPuKUtkrptaL6vvaxFauXMG/bmTQeifuc24ucPM5eTPTOS15ZZbcsQRR3DEEUdsmlbpMYXiJhyNwJos01cD/Xv8yX6ilsvqc13Uik1MvO+r7Ppzy7Bixi2p9WNxm8VNOP4BfF3SZ7paT0mqB74ezXNlVqtl9bkuaqkjj2T93XcXfYfsF5Ceaj236QafuAnH14A/Aq9I6urqcl9gJGE0PlcBtXhHnvWitnEjb/3ylySGN/W7O+R8qtWirZZzm25wivsA4OOSdgVOB7puG28Bvmdm1X/WfhCptTvyrBe1lEFCA+oOudR1DMUkQptymz/7GR2rV5NobGTkCSf023Pp+r+4raowszfM7Btm9tHodQFgkr5axvhcjcvWKmaLY45B9Q2xWkj1B6Vu0dabLlDaFy6kY8kSOpcvp2PJEtoXLuzVvp0rhb72ITwOuBzvSn1Qy1aEpsahNVcf01ulrGPoTUV3csUK1t9xB9TVhXWSSdbfcQdN792b+ubmPh+fc8XyzuddSWQWodVifUxvlbKOoTeJUHLp0jB2SdQ9eKK+nlRbG8mlSz3hcFURu6jKuWKVYoS4WhD3YbZY2yriQccu9ePGIYlUNN52KplEEvXjxvXugJzrI89xOBdDqXJQvWlWXd/czIhjjmH9HXeEbuklRhxzjOc2XNXkTTgkfaLA+juUMBbnalqpWrQ17r4H9WecEYqaxo2LlQCMPOxwmt67d1HrOFcuhXIct8XYhpUiEOcGi9427a1vbvYEw9WEvHUcZpaI8aqrVLDO9XebWlXVJVDDEFSXGFCdVbrBwes4nKug1Nq1pDasJ7Vmc9dviS237NcPR5ZC+gORrvZ5wuFcJTU0kFq5EkskQrPaZJLUypXQ0FDtyKqmFoeOdfl5c1znKqmjg8TWWyMJi5rVJkaPho6OakdWFdmeyu8aOtbVLs9xOFdBiVGjSAwfgZqaUCqFJRJIiUFbRDNQh44d6DzH4VwFJZqaaNxvXzoXLaJj8WI6Fy2icb99B+1FMusDkV3TXc3yhMO5Ckq1tND62OM07LgjQybtTMOOO9L62ONlL5qp1WFnfejY/ilnUZWkG+NuxMx6jrjunOthU9HMsOGbpnWuW1fWoplaH3bWh47tf/LVcewScxv+AKBzMVV6UKb+MuxsrY0z4/LLmXCY2fRKBuLcYFDpIYB92FlXDt6qylVctYZgrRWV7HLeh5115RA74ZC0M3A0MAEYkj7PzE4qcVxugKr18vZKqVTRTKVzOG5wiJVwSDoE+C3wEmHM8WeAnQitsv5RtujcgNJfytsHmoE0qJarDXGb414CfNvMJgNtwDGELtX/DNxZptjcAJP1Ya9UZ5juymqgDKrlakPchGN34NbofRIYZmYbgAuBr5YjMDfw9Gb0O+dc7YmbcLSwuVjrdWBi9D4JjClxTG6AKuUQrM656olbOf4EsDehjmMO8C1J44HjgafKFJsbgLy83bn+L26O4zzg1ej9BcBi4DvAMODUMsTlBjAvb3eufyuY45CUIBRV/QvAzFYAHy5zXM4552pUnByHAc8BY8sci3POuX6gYMJhZga8DGxV/nCcc87Vurh1HBcC35a0XTmDyUfSoZL+KWmBpHOqFYdzzg12cVtVXQaMA16V9AawIX2mme1a6sDSSaoDrgcOJlTM/0PSPWY2v5z7dc4511PchOO2skZR2N7AAjN7BUDSLOAIwBMO55yrsFgJh5ldXO5ACtgOWJT2eTGwT5Vicc65QW3AdKsu6RTgFIAxY8Ywd+7c2OuuX7++qOUHOz9fxfHzVRw/X8Wr9DmL2ztuijwj/ZlZXckiym4JsH3a5/HRtPQYbgRuBJg6dapNmzYt9sbnzp1LMcsPdn6+iuPnqzh+vopX6XMWN8dxIt0TjgZgL8L4HJUoxvoHsIukHQkJxrHAJyqwX+eccxni1nFkqxy/RdIzwHTgByWNquf+k5JOB/4I1AE3m9kL5dync8657PpaxzEbuKoUgRRiZvcC91ZiX84553KL+wBgLocCPgqPc84NInErxx/InER4IHA34PxSB+Wcc652xS2qWkr3yvEUMA84w8weLnlUzjnnalbcyvFPlzkO55xz/USsOg5JsyVtmWX6SEmzSx+Wc865WhW3cnwaMCTL9KHAASWLxjnnXM3LW1QlaYe0j+MlNaZ9rgMOB14vR2DOOedqU6E6joWESnEjPL2dKQV8vcQxOeecq2GFEo4DCE1v/0zoxnxV2rx24FUze7NMsTnnnKtBeRMOM3sUIOojapGZpSoSlXPOuZoVtznuqwCSxgITyKgoN7M/lz4055xztSjuk+PbAr8APtA1ie4PBJa7W3XnnHM1Im5z3KsJXalPBTYC/wWcAPwLOKw8oTnnnKtFcbscmQYcaWZPRYM6LTKz2ZJaCH1VZfZl5ZxzboCKm+MYwebnNdYAzdH7pwkDOjnnnBsk4iYcC4BJ0fv5wAmShgLHAyvKEZhzzrnaFDfh+Anwjuj9DOBTQAth2NgZZYjLOedcjYrbHPfatPdzJe0GvBf4t5k9V67gnHPO1Z5eDR1rZouARSWOxTnnXD9QqJPDE+NsxMxuLU04zjnnal2hHMeP88wzQh2JAE84nHNukMhbOW5mDdlewNaEhwI7yN5rrnPOuQEqbqsqACTVSTqd0Dz3Y8BnzGzfskTmnHOuJsWuHJd0FHAF4eG/y4DrzKy9XIE555yrTQVzHJL2lvQIoZPD3wOTzGymJxrOOTc4FWpVNYtQJPUbYHcz+09FonLOOVezChVVfRxoBaYAf5SUdSEz27XEcTnnnKtRhRKOiysShXPOuX6j0NCxnnA455zrpqjmuM4555wnHM4554riCYdzzrmieMLhnHOuKLESDkk7KEtbXAU7lD4s55xztSpujuM/wDZZpo+O5jnnnBsk4iYc2Z/8gyagrUSxOOec6wcKdTlyQfTWgLMlrU+bXQfsD8wvU2zOOedqUKEnx0+I/orQZ1Vn2rx2QjHVqWWIyznnXI0q9OT4LgCS5gD/Y2arKxKVc865mhVrPA4zm17uQJxzzvUPxQzkNB34L2AMGZXqZnZSieNyzjlXo2IlHJLOAb4FvAQsJVSWO+ecG4Ti5jhOA043s++XMxjnnHO1L+5zHKOA+8oZiHPOuf4hbsJxN3BgOQNxzjnXP8QtqnoMuFTSO4FnCM9wbGJmPy91YM4552pT3ITj+ujvmVnmGVC2hEPSRcDJwPJo0rlmdm+59ueccy6/uM9xVLv79avN7Moqx+Cccw4fj8M551yRZBbvkQxJnwHOACYB7zGz/0j6KvCymf2mbAGGoqpPA+uAecBZ2bo+kXQKcArAmDFj9po1a1bsfaxfv54RI0aUItxBwc9Xcfx8FcfPV/FKdc6mT5/+hJlNLbRcrIQjuijPAK4GzgXeYWavRInJiX3tkkTSQ8C2WWadBzwOrCDUpVwCjC30pPrUqVNt3rx5sfc/d+5cpk2bFnv5wc7PV3H8fBXHz1fxSnXOJMVKOOJWjn8RONXMfhXlMro8AVzRmwDTmdl/xVlO0o+A3/d1f84553ovbh3HzsDfs0zfAIwsXTg9SRqb9vEo4Ply7s8551x+cXMcywiJx6sZ0/cDXilpRD19W9JkQlHVQnz8D+ecq6q4CcetwExJHydcwIdJOpxQTHV1uYIDMLMTCi/lnHOuUuImHJcCE4EXCaMBPhtN/wkws/RhOeecq1VxHwBMAp+OmsZOJdSNPGFmL5cxNuecczWoYMIhqYFQt3Gwmb1AqGdwzjk3SBVsVWVmHdHbzjLH4pxzrh+I2xz3JsJT48455wa5uJXj44CjJR1IeOhvQ/pMMzul1IE555yrTXETjknAk9H7cRnzfPxx55wbROImHIcCHWaWKmcwzjnnal/BOg5J9YSiqd3LH45zzrlaF6dVVRJYFGdZ55xzA1/cxGAmcJGkYeUMxjnnXO2LW8dxBLA3sETSi/RsVfWhUgfmnHOuNsVNOBZHL+ecc4Nc3L6qPlPuQJxzzvUPXuHtnHOuKLFyHJL+Q54H/cxsp5JF5JxzrqbFreO4KeNzA7AX8H7gmpJG5JxzrqbFreO4LNt0SV8Dxpc0IuecczWtr3UcvwaOL0Ugzjnn+oe+JhxTgPZSBOKcc65/iFs5fmPmJEIvuf8FXF/qoJxzztWuuJXju2R8TgFvAl8AflrSiJxzztW0uJXj08sdiHPOuf4hbx2HpISkd2fr3FBSUzTPHyJ0zrlBpNBF/3jgVrJXgLdH844pdVDOOedqV6GE47PATDPrzJwRjdNxJeDjjTvn3CBSKOHYDfhrnvmP4SMDOufcoFIo4RhF6F4klyHAyNKF45xzrtYVSjheBSbnmT8ZeK104TjnnKt1hRKOe4BLJI3InCFpJHBxtIxzzrlBotBzHDMIrab+Jek64MVo+h7A6UAHcEX5wnPOOVdr8iYcZrZK0v7AD4BL2JxDSQH3AV8ws5XlDdE551wtKfjkuJktBv6fpK2AnQn9VP3bzFaXOzjnnHO1J25fVUQJxT/KGItzzrl+wLsLcc45VxRPOJxzzhXFEw7nnHNF8YTDOedcUTzhcM45VxRPOJxzzhXFEw7nnHNF8YTDOedcUTzhcM45VxRPOJxzzhXFEw7nnHNFqYmEQ9LRkl6QlJI0NWPe1yUtkPRPSYdUK0bnnHNB7E4Oy+x54H+AG9InStoDOBZ4BzAOeEjSrmbWWfkQnXPOQY3kOMzsRTP7Z5ZZRwCzzKzNzP4DLAD2rmx0zjnn0tVEwpHHdsCitM+Lo2nOOeeqpGJFVZIeArbNMus8M/ttCbZ/CnBK9HG9pGw5mFyagRV9jWEQ8fNVHD9fxfHzVbxSnbMJcRaqWMJhZv/Vi9WWANunfR4fTcu2/RuBG3uxDyTNM7OphZd04OerWH6+iuPnq3iVPme1XlR1D3CspKGSdgR2Af5e5Zicc25Qq4mEQ9JRkhYD+wF/kPRHADN7AfglMB+4HzjNW1Q551x11URzXDO7C7grx7zLgMvKHEKvirgGMT9fxfHzVRw/X8Wr6DmTmVVyf8455/q5miiqcs45138M6oRD0qFRVyYLJJ1T7XhqnaSbJb0p6flqx9IfSNpe0hxJ86Mudc6sdky1TFKjpL9LeiY6XxdXO6b+QFKdpKck/b5S+xy0CYekOuB64DBgD+C4qIsTl9stwKHVDqIfSQJnmdkewL7Aaf4by6sNONDM3gNMBg6VtG+VY+oPzgRerOQOB23CQei6ZIGZvWJm7cAsQhcnLgcz+zOwqtpx9BdmtszMnozev0X45/aeD3KwYH30sSF6eSVsHpLGAx8GbqrkfgdzwuHdmbiKkTQRmAL8rbqR1Lao2OVp4E3gQTPz85Xfd4GvAqlK7nQwJxzOVYSkEcBvgC+Z2bpqx1PLzKzTzCYTeonYW9I7qx1TrZL038CbZvZEpfc9mBOO2N2ZONdbkhoIicbtZnZntePpL8xsDTAHr1PLZ3/gI5IWEoraD5R0WyV2PJgTjn8Au0jaUdIQwrgf91Q5JjeASBLwY+BFM7uq2vHUOknbSNoyej8MOBh4qbpR1S4z+7qZjTeziYTr12wz+2Ql9j1oEw4zSwKnA38kVFr+MurixOUg6RfAY8DbJS2W9Nlqx1Tj9gdOINwJPh29Dq92UDVsLDBH0rOEG7sHzaxiTUxdfP7kuHPOuaIM2hyHc8653vGEwznnXFE84XDOOVcUTzicc84VxRMO55xzRfGEw5WMpE9LSlY7jt6QZJLytoGXdLSklyV1SrpF0rRovfEx93GLpIdKE3FlSbpH0tnVjqM3JN0gaWa14xhIPOEYhKILmGV5rS+8duhYLVp+WsasO6hQf1+SHpJ0SyX2Fe2vDriZMJTxDoQeSf9KePZgaaXiqAZJBxE6Bf1etWNJJ6le0reiLsXfkrRC0h8l7ZOx6DeB/5W0UzXiHIg84Ri8HiFc9NJfffrHMrONZvZGCWKrRWOBEcC9ZrbEzNaaWbuZvW5mFe1grgq+AtxqZq3VDiTDUGA/YCah2/ppwOvAQ5ImdS1kZkuAh4EvVCHGAckTjsGr66KX/nqza6ak90t6NLqTeysaXOeQaHZXr8JzopzHwmidbkVVXZ8lTZf0nKSNkuZKGifpA9Gd4oYo97Bd2no7SrpT0lJJLdG6J6TNvwU4CPhUWm5pWjRvTJSjWh7F/aikD6QfeBTPs5Jao7/T850oSZ9OO+Y/d+0vs6hKUoOkq6Kn6tskLZM0K8v2TpH0qqR1URHQmAL7/4Skv0laG91V/0HSrhnLTJH0eLTff0fFagslnZ+2zAhJ10haEp3XpyT9T4F9b03oL+ruWompi5ltMLPpZnabmb1gZs8DJxHGQcl8Qv8u4Pg423WFecLhepBUT+i362/AntHrIqAlWmTP6O9HCXfi782zuQRwIfA5Qhcc2xGKtL4JfD6aNh5I78tpBDCbMMjWu4AbgZ+kXeDPJOSYfsnm3NJfFfo3mgNsEa07BbgXeFDS7tGxjQN+DzwRHcdZwDUFTskdhKIaCGO2jCUUU2X6IvBx4JPALsBHgMczlnkvMJ0whsIh0fFdWWD/Q4FLo3gPBjqBPyj0sYakpug4l0fbPwH4MvC2rg1IEvA74D3AMcA7gR8As6KiqFzeTxgT48kaiimfYcAQYEPG9L8B23b9DlwfmZm/BtmLMJJfElif8fpdNH8rwsViWo71x2ebD3waSGZ8NmBy2rT/i6btlTbty8CKAjH/FvhR2ueHgFuy7H8xUJ8xfTbw3ej9pcCr6csA/x3F9Mk8+58YLfP+tGnTomnjo8/XRPtSnvP+JjA0bdrXgGVFfn+jo/3uH30+Ofr+RqUts1u0zPlpsbamLxNNvxm4O8++vgS8UUsxFYjjJmAhMCJj+sho3x8u9//XYHjV4warvwGfypjWAmBmqyXdBPxR0mzgT8BdZvbPXuzHgOfSPr8e/X02Y9rWkurMrDO6W70A+H+Eu/shhDvcOQX29V5gW2BNuJndZCiwMXq/B/B3C51cdvlL/MPJ6yfAg8ACSQ9G739nYYTJLi+ZWVva56VAoaKqyYRc22SgGeg6uAnAo4RjetHM1natY2YvSVqTtpn3Es7jkoxzMwT4d57dDyNc3GsppqwkzQCOJAw/m9nQo+sYhhW7XdeTJxyD10YzW5BrppmdLOka4EOEoohLJJ1uZjcUuZ+UmXWmbzrafkfmNDZffL5DKBL6CvBPQrHDTGBUgX0lCD0dH5VlXkuWaSVlZk9L2pFwvqYTciCXSNrXNg/g1J65GpuPu4coEX2AkLh9BuhqfPAC4QKbvp18EsBashcrZsaUbjkhN1FLMXUTFXldAxwHHGRmz2ZZrOsYlsfdrsvNEw6Xk4XKxueBqyT9EDgFuIHN/9R1Zdr1BwgDH/0SQFIC2JXNFyiiGDL3Pw84EVhnaRX9GeYDJ3TlbqJp+5cq8OhO9y7gLknfApYBHySU5ffG7sA2wHlm9iKApPfRPbGZD3xO0qiuO3xJbwe2TFtmXvS5Mfpe43oSGCFpBzN7rUZi2kShmfRNhAr8aZZ7aIR3EephnurNflx3Xjk+eA2RtG2WlyTtLOkKhZZVEyTtBxxAuBgArCCUX38oWmerEsf2T+AISXtL2oNQOT4uY5n/AHtJmiSpWWGkvduj6X+Q9CFJEyXtI+nrko6M1vsB4aJ3o6Tdo0rYy0oRtKT/k3S8pHdEOY+TCBerf/Vhs68CbcAXo2M9iHB3nX43fzvh+7hV0rsVnmP4MaF4rmu52YR6oTslHSlpJ0l7SfqipJPz7P9pNid+tRITsKkRxyxCI4SPAyvTfscjMhafBvzFfOjekvCEY/A6gHBByHxtTSga2oXwT/kvwtCnfyUMfIWF5xZOI/yzLqb0d3FfJlyc5hDa3y8Bfp2xzMlHBJQAAAFYSURBVExCAvYMofhhfwvPGXyQcCf7kyj2Owktol6NYl9CqDvZm3BRvIZQJFYK66JtPUao1zkK+Ggv64YAMLMVhFZaBxOKgq4EzgZSacu0EJqfjiEMgHQb8F3Chbs1WsYIF9g7gasJI+v9gdC66+U8+08RcpknpE2rakxpxgMfIxRD/Znuv+NNT7lHRVmfiI7DlYAP5OTcACRpAqF10UfMrLfFZF3b2oqQCzzEzHp9k1DKmIrc78eBbxBa93UWWt4V5gmHcwOAQj9bSwhFdROAbxPu9t+e0Yqrt9v/ENBgZn+olZiKiOMEQguveZXa50DnlePODQxbAxcTHrBcRWgSe3SpLtBm9kClY5J0LnBunpgy6zFyLfezOMu5+DzH4ZyrSZJGk9EUOF2+5uSuvDzhcM45VxRvVeWcc64onnA455wriicczjnniuIJh3POuaJ4wuGcc64o/x/AjW/V0focKQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "perform_ols_regression_on_log_ratios(df2, \"fig2d.pdf\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.7" } }, "nbformat": 4, "nbformat_minor": 2 }