Skip to content

Instantly share code, notes, and snippets.

@dinaber
Last active March 24, 2020 20:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dinaber/0e8e12639a4a82f4a0faa11ad7774bde to your computer and use it in GitHub Desktop.
Save dinaber/0e8e12639a4a82f4a0faa11ad7774bde to your computer and use it in GitHub Desktop.
pooling_efficiency.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Worst-case calculation:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>6</th>\n",
" <th>7</th>\n",
" <th>8</th>\n",
" <th>9</th>\n",
" <th>...</th>\n",
" <th>23</th>\n",
" <th>24</th>\n",
" <th>25</th>\n",
" <th>26</th>\n",
" <th>27</th>\n",
" <th>28</th>\n",
" <th>29</th>\n",
" <th>30</th>\n",
" <th>31</th>\n",
" <th>32</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1.0</td>\n",
" <td>3.0</td>\n",
" <td>3.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1.0</td>\n",
" <td>5.0</td>\n",
" <td>7.0</td>\n",
" <td>7.0</td>\n",
" <td>7.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1.0</td>\n",
" <td>7.0</td>\n",
" <td>11.0</td>\n",
" <td>13.0</td>\n",
" <td>15.0</td>\n",
" <td>15.0</td>\n",
" <td>15.0</td>\n",
" <td>15.0</td>\n",
" <td>15.0</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>1.0</td>\n",
" <td>9.0</td>\n",
" <td>15.0</td>\n",
" <td>19.0</td>\n",
" <td>23.0</td>\n",
" <td>25.0</td>\n",
" <td>27.0</td>\n",
" <td>29.0</td>\n",
" <td>31.0</td>\n",
" <td>31.0</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>1.0</td>\n",
" <td>11.0</td>\n",
" <td>19.0</td>\n",
" <td>25.0</td>\n",
" <td>31.0</td>\n",
" <td>35.0</td>\n",
" <td>39.0</td>\n",
" <td>43.0</td>\n",
" <td>47.0</td>\n",
" <td>49.0</td>\n",
" <td>...</td>\n",
" <td>63.0</td>\n",
" <td>63.0</td>\n",
" <td>63.0</td>\n",
" <td>63.0</td>\n",
" <td>63.0</td>\n",
" <td>63.0</td>\n",
" <td>63.0</td>\n",
" <td>63.0</td>\n",
" <td>63.0</td>\n",
" <td>63.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>6 rows × 33 columns</p>\n",
"</div>"
],
"text/plain": [
" 0 1 2 3 4 5 6 7 8 9 ... 23 \\\n",
"1 1.0 1.0 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN \n",
"2 1.0 3.0 3.0 NaN NaN NaN NaN NaN NaN NaN ... NaN \n",
"4 1.0 5.0 7.0 7.0 7.0 NaN NaN NaN NaN NaN ... NaN \n",
"8 1.0 7.0 11.0 13.0 15.0 15.0 15.0 15.0 15.0 NaN ... NaN \n",
"16 1.0 9.0 15.0 19.0 23.0 25.0 27.0 29.0 31.0 31.0 ... NaN \n",
"32 1.0 11.0 19.0 25.0 31.0 35.0 39.0 43.0 47.0 49.0 ... 63.0 \n",
"\n",
" 24 25 26 27 28 29 30 31 32 \n",
"1 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n",
"2 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n",
"4 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n",
"8 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n",
"16 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n",
"32 63.0 63.0 63.0 63.0 63.0 63.0 63.0 63.0 63.0 \n",
"\n",
"[6 rows x 33 columns]"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"from scipy.special import comb\n",
"from matplotlib import pyplot as plt\n",
"%matplotlib inline\n",
"# k - the degree. 2^k is the number of samples.\n",
"# i - number of sick people\n",
"# G - cost\n",
"\n",
"MAX_K = 5\n",
"MAX_S = 2 ** MAX_K\n",
"G = np.full((MAX_K + 1, MAX_S + 1), fill_value=np.NaN) # rows are the size of S, columns are the number of sick people in the group\n",
"G[:, 0] = 1 # when there are no infected people, exactly 1 test is needed\n",
"G[0, :2] = 1 # When there is only one person the group, every feasible number of infected people (0 or 1) will be detected with a single test\n",
"\n",
"for k in range(1, MAX_K + 1): # start from the smallest groups that are not trivial (2 people)\n",
" s = 2 ** k\n",
" half_s = int(s//2)\n",
" for i in range(1, s + 1): # test for non trivial number of infected people\n",
" min_j = max((0, i-half_s))\n",
" max_j = min((i, half_s))\n",
" G[k, i] = 1 + max(G[k-1, j] + G[k-1, i - j] for j in range(min_j, max_j+1))\n",
"\n",
"\n",
"def prob(k, i, p):\n",
" return comb(2 ** k, i) * (p ** i) * (1 - p) ** (2 ** k - i)\n",
"\n",
"\n",
"def exp(k, p):\n",
" return sum(prob(k, i, p) * G[k, i] for i in range(0, 2 ** k + 1))\n",
"\n",
"# for \"test every positive pool\" strategy:\n",
"# The chanves that at least one is infected times the pool size\n",
"def all_exp(k, p):\n",
" return 1 + ((1 - (1-p)**(2 ** k))*2 ** k)\n",
"\n",
"\n",
"pd.DataFrame(G, index=[1,2,4,8,16,32])"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"ps = [0.001,0.01,0.02, 0.05, 0.1, 0.15, 0.2, 0.3, 0.5, 1]\n",
"E = np.zeros([6, len(ps)])\n",
"for k in range(0, 6):\n",
" for ix, p in enumerate(ps):\n",
" E[k,ix] = exp(k, p)* 2**(5-k)\n",
"E_df = pd.DataFrame(E, index=[1,2,4,8,16,32], columns=ps)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>0.001</th>\n",
" <th>0.01</th>\n",
" <th>0.02</th>\n",
" <th>0.05</th>\n",
" <th>0.1</th>\n",
" <th>0.15</th>\n",
" <th>0.2</th>\n",
" <th>0.3</th>\n",
" <th>0.5</th>\n",
" <th>1.0</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>32.000000</td>\n",
" <td>32.000000</td>\n",
" <td>32.000000</td>\n",
" <td>32.000000</td>\n",
" <td>32.000000</td>\n",
" <td>32.000000</td>\n",
" <td>32.000000</td>\n",
" <td>32.000000</td>\n",
" <td>32.000000</td>\n",
" <td>32.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>16.063968</td>\n",
" <td>16.636800</td>\n",
" <td>17.267200</td>\n",
" <td>19.120000</td>\n",
" <td>22.080000</td>\n",
" <td>24.880000</td>\n",
" <td>27.520000</td>\n",
" <td>32.320000</td>\n",
" <td>40.000000</td>\n",
" <td>48.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>8.127904</td>\n",
" <td>9.270400</td>\n",
" <td>10.521603</td>\n",
" <td>14.160100</td>\n",
" <td>19.841600</td>\n",
" <td>25.048100</td>\n",
" <td>29.785600</td>\n",
" <td>37.889600</td>\n",
" <td>49.000000</td>\n",
" <td>56.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>4.191776</td>\n",
" <td>5.897605</td>\n",
" <td>7.750485</td>\n",
" <td>13.043104</td>\n",
" <td>21.004040</td>\n",
" <td>27.957821</td>\n",
" <td>33.995315</td>\n",
" <td>43.670319</td>\n",
" <td>55.281250</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>2.255520</td>\n",
" <td>4.512068</td>\n",
" <td>6.929011</td>\n",
" <td>13.632170</td>\n",
" <td>23.175155</td>\n",
" <td>31.031972</td>\n",
" <td>37.529379</td>\n",
" <td>47.431678</td>\n",
" <td>58.804749</td>\n",
" <td>62.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>1.319008</td>\n",
" <td>4.101410</td>\n",
" <td>7.011544</td>\n",
" <td>14.733220</td>\n",
" <td>25.025670</td>\n",
" <td>33.104152</td>\n",
" <td>39.655088</td>\n",
" <td>49.367411</td>\n",
" <td>60.758026</td>\n",
" <td>63.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 0.001 0.010 0.020 0.050 0.100 0.150 \\\n",
"1 32.000000 32.000000 32.000000 32.000000 32.000000 32.000000 \n",
"2 16.063968 16.636800 17.267200 19.120000 22.080000 24.880000 \n",
"4 8.127904 9.270400 10.521603 14.160100 19.841600 25.048100 \n",
"8 4.191776 5.897605 7.750485 13.043104 21.004040 27.957821 \n",
"16 2.255520 4.512068 6.929011 13.632170 23.175155 31.031972 \n",
"32 1.319008 4.101410 7.011544 14.733220 25.025670 33.104152 \n",
"\n",
" 0.200 0.300 0.500 1.000 \n",
"1 32.000000 32.000000 32.000000 32.0 \n",
"2 27.520000 32.320000 40.000000 48.0 \n",
"4 29.785600 37.889600 49.000000 56.0 \n",
"8 33.995315 43.670319 55.281250 60.0 \n",
"16 37.529379 47.431678 58.804749 62.0 \n",
"32 39.655088 49.367411 60.758026 63.0 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display(E_df)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"# For pool size 32 also show the \"test every positive pool\" strategy:\n",
"k = 5\n",
"test_all = np.zeros([1, len(ps)])\n",
"for ix, p in enumerate(ps):\n",
" test_all[0][ix] = all_exp(k, p)* 2**(5-k)\n",
"test_all_df = pd.DataFrame(test_all, index=['test_all'], columns=ps)\n",
"E_df = pd.concat([E_df, test_all_df])"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x227756189e8>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA5IAAAL8CAYAAACS+IqMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3WmYVMXd9/FvMexbQBZRQBYhASExCEajRBDQgOIW3BVBQY27UaNogvEGcxsFTUSDRqMRo4i3K0YjSDCggqKIGhVUkCXiiqAiOwz1vJjlYYZhnDPTPd0D38919dXTderU+TfMC37UOVUhxogkSZIkSWVVLdMFSJIkSZKqFoOkJEmSJCkRg6QkSZIkKRGDpCRJkiQpEYOkJEmSJCkRg6QkSZIkKRGDpCRJkiQpEYOkJEmSJCkRg6QkSZIkKZHqmS4gWzRt2jS2bds202VIkiRJUka8/vrrX8YYm5Wlr0EyX9u2bZk7d26my5AkSZKkjAghLCtrX29tlSRJkiQlYpCUJEmSJCVikJQkSZIkJWKQlCRJkiQlYpCUJEmSJCVikJQkSZIkJWKQlCRJkiQlYpCUJEmSJCVikJQkSZIkJVI90wVUVTFGvv32W1avXs26devIzc3NdEnaCeXk5FC3bl0aNmxIgwYNCCFkuiRJkiTJIFkeMUa++OIL1q5dy2677UaLFi3IycnxH/lKqRgjubm5rFmzhi+//JL169fTvHlzf88kSZKUcQbJcvj2229Zu3Ytbdq0IScnJ9PlaCcVQqB69eo0atSIBg0asGzZMr799lsaNmyY6dIkSZK0i/MZyXJYvXo1u+22myFSlSYnJ4fddtuN1atXZ7oUSZIkySBZHuvWraN+/fqZLkO7mPr167Nu3bpMlyFJkiQZJMsjNzfX2UhVupycHBd1kiRJUlYwSJaTC56osvk7J0mSpGxhkJQkSZIkJWKQlCRJkiQlYpBU2rRt25YQAkuXLk3L+EuXLiWEQNu2bdMyviRJkqSSGSQlSZIkSYlUz3QBUnm1bNmSBQsWUKNGjUyXIkmSJO1SDJKqsmrUqEGnTp0yXYYkSZK0y/HW1ioqhFC4HcRdd91Ft27dqFu3Lk2aNOEXv/gF77zzzg7PXbZsGeeffz7t27enVq1aNG7cmEMPPZSJEyfu8JwYI3//+9/p3bs3jRs3pnbt2uy9995ccMEFfPTRRyn7Xl9//TXXXHMNXbp0oW7dutSpU4dWrVrRu3dvbrjhhiJ9d/SMZO/evQv/fHb0Gjp06HbXXrBgAcOGDaNdu3bUrl2bxo0b069fP5566qmUfT9JkiRpZ+CMZBX3q1/9inHjxvGzn/2MY445hnnz5vHEE08wdepUpk6dSs+ePYv0nzNnDv379+frr7+mXbt2HHfccaxcuZKZM2cyY8YMpkyZwoQJE4rsWRhj5PTTT2fixInUqFGD3r17s9tuu/Hqq68yfvx4Jk2axJQpU9h///0r9F3WrVvHwQcfzPz582nevDn9+vWjXr16fPrpp8yfP59XXnmFq6+++jvH6d+//w4X4JkyZQqff/45OTk5RdonTZrEkCFD2LRpE126dGHgwIGsWLGCF198kenTpzNy5EhGjRpVoe8nSZIk7TRijL5ipHv37rGs5s+fX+a+6QJEINatWzfOnDmzsH3r1q1xxIgREYitW7eO69evLzy2fv362Lp16wjESy+9NG7ZsqXw2Ntvvx2bN28egXjnnXcWudaf//znCMTdd989vvPOO4XtW7ZsiRdddFEEYps2beKGDRuKnNemTZsIxCVLlpTpO02YMCEC8cgjj4ybN28ucmzLli1x+vTpRdqWLFlSeO2yeOCBByIQmzVrFhctWlTY/tZbb8WaNWvG+vXrx3/+859FznnnnXcK/8yef/75Ml0nnbLhd0+SJEk7J2BuLGN+8tbWKu68887jkEMOKfwcQuD666+nffv2fPTRRzz22GOFxx555BE++ugj2rRpw0033VRkVq5r165cd911AIwdO7bINW6++WYARo8eTZcuXQrbc3JyGDt2LK1bt2bZsmU8+uijFfoun3/+OQD9+vWjevWik+U5OTn06dOn3GPPnDmTs846izp16vDUU0+x9957Fx77/e9/z6ZNm7jpppsYMGBAkfO6dOnCLbfcAsDtt99e7utLkiRJOxODZBV3+umnb9eWk5PDKaecAsCMGTMK22fOnAnAaaedVuJKp2eeeSYhBBYtWsTHH38MwPLly1m8eDHVqlVj8ODB251Ts2ZNTjvttO2uVR4/+clPALjxxht54IEH+Prrrys0XoH33nuP4447ji1btvDAAw9w4IEHFh7bunUrU6ZMIYTA8ccfX+L5vXr1AuDll19OST2SJElSVWeQrOLatWtXYnvBM4LLly8vbCsIhzs6p3bt2uy5555F+ha877HHHtSuXbvE8wpm9wr6llevXr248sor+eKLLxg8eDC77bYb++yzD+eccw5Tp04t15hffPEFRxxxBF999RVjx47lF7/4RZHjK1euZPXq1cQYad68eYkL8zRv3hyAFStWVOj7SZIkSTsLF9vZyRVfNKd4W3EFfSpyTkXceOON/PKXv2Ty5Mm89NJLzJo1i7vvvpu7776bww8/nGeeeWa72153ZP369Rx11FEsWbKEiy66iF/96lfb9cnNzQXyZnFLmt2VJEmStD2DZBW3dOlS9t133xLbgcIZRoBWrVoBsHjx4hLH2rBhA59++ikALVu2LHLOJ598wsaNG6lVq9Z25y1ZsqTIORXVrl07Lr30Ui699FIAXnrpJU455RSee+457r33Xs4555zvHGPr1q2ceuqpvPrqqxx99NH86U9/KrFf06ZNqVOnDuvXr+f222+nfv36KfkOkiRJUhLTn9+7xPa+fT6s5ErKxltbq7gHH3xwu7bc3FwefvhhIG9PxQIFz/o99NBDbNmyZbvzJkyYQIyRDh06FAmS7du3Z+vWrTzwwAPbnbN58+bC/Se3vVYq9ezZs3Dfx7feeqtM51x22WU8+eST9OjRg4ceeohq1Ur+Va9evTr9+vUDqPBiQZIkSdKuwiBZxY0fP56XXnqp8HOMkd/97ncsWrSIli1bMmjQoMJjJ5xwAq1bt2bJkiVcffXVbN26tfDY/Pnz+d3vfgfAFVdcUeQal112GQAjR47kvffeK2zPzc3lyiuvZNmyZbRp02aHi9WU1RNPPMELL7xQpC7Iu0X1X//6FwBt2rT5znHGjRvHrbfeStu2bXn66aepW7duqf2vvfZaatSowSWXXMKkSZO2u1V369atTJ8+nSlTpiT8RpIkSdLOyVtbq7izzz6bXr16ccghh7DHHnswb9483n//ferUqcODDz5InTp1CvvWrl2b//u//2PAgAGMHTuWJ554gv33359Vq1YxY8YMNm3axODBg7e7dfT8889n1qxZPPTQQ+y7774ceuihNG7cmFdffZXFixfTuHFjHnnkkRJve01i5syZ3HrrrTRr1oxu3brRrFkzvvnmG2bPns2qVavo1KkT55577neOU/AsZKtWrbjqqqtK7NOzZ0+GDx8OQI8ePbj//vs566yzOOWU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nLVr13LYYYfx4YcfMnLkSEaOHEmNGjUKj69cuZKVK1emu3RJkiRJ38EgqbQYPnx44nOuv/56PvzwQ8444wxGjRq13fEmTZrQpEmTVJQnSZIkJfevqzNdQdZwsR1lhU2bNnH33XcDMGLEiAxXI0mSJKk0zkgqK7z++uusXLmS1q1b07lzZ2bPns3TTz/NypUradGiBf379+enP/1ppsuUJEmShEFSWeLtt/NWue3YsSNDhw5lwoQJRY6PGjWKQYMG8fe//506depkokRJkiRJ+by1VVlh1apVALzwwgvcf//9XHHFFSxatIivvvqKyZMn07JlSx577DEuuOCCDFcqSZIkySCprLB161YAtmzZwrBhwxgzZgx77703jRo14uijj+bJJ58khMCECRNYvHhxhquVJEmSdm3e2qqs0KBBg8Kfzz777O2OF2wjMnfuXGbMmEH79u0rszxJklTFbHj27ZIP1KrcOqSdlTOSygpt27Yt/Lldu3Yl9ilo/+yzzyqjJEmSJEk7YJBUVthvv/0Kf165cmWJfb788ksA6tevXyk1SZIkSSqZQVJZoWXLlhxwwAEATJ8+fbvjX331FfPmzQPybnOVJEmSlDkGSWWN3/zmN0DeVh9vvvlmYfuGDRs477zz+Oabb+jevbv7SUqSJEkZ5mI7Sot58+Zx/vnnF36eP38+ANdccw1jx44tbH/llVcKfz7qqKO44oorGDt2LAcccAAHHHAATZo04dVXX+WTTz6hZcuWPPTQQ4QQKu+LSJIkSdqOQTJNag/4YaZLyKjVq1czZ86c7doXLlxY6nljxozhoIMO4rbbbuONN95g3bp17LXXXlx22WWMGDGCZs2apatkSZIkSWVkkFRa9O7dmxhjuc497rjjOO6441JckSRJkqRU8RlJSZIkSVIiBklJkiRJUiIGSUmSJElSIgZJSZIkSVIiBklJkiRJUiIGSUmSJElSIgZJSZIkSVIiBklJkiRJUiIGSUmSJElSIgZJSZIkSVIiBklJkiRJUiIGSUmSJElSIgZJSZIkSVIiBkmlxW233caJJ55I586dadKkCTVq1KBZs2b069ePBx54gBhjkf7r1q3jH//4B+effz49evSgWbNm1KpVi7Zt23LGGWfwxhtvZOibSJIkSSqueqYL2FlNf37vTJeQSN8+H6Z0vBtvvJEvvviCrl27ctBBB1Gv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7ruPEALLli0DoF27doQQCl9Lly4t7LtgwQKGDRtGu3btqF27No0bN6Zfv3489dRTJY79ySefcOGFF9KhQwdq165N3bp12Wuvvejfvz933XVXYb/evXtz6KGHAjBz5swi1+/du3e5vtf8+fO59tprOeigg9hzzz2pWbMmzZo144gjjmDKlCnlGlOSJEmqqnbp5xiVeh06dGDIkCE8+uijrF27lkGDBlG/fv3C4wU/T5o0iSFDhrBp0ya6dOnCwIEDWbFiBS+++CLTp09n5MiRjBo1qvC8Tz/9lO7du/PZZ5/Rpk0b+vfvT61atfj444955ZVXWLp0Keeccw4A/fv3p3bt2kydOpXdd9+d/v37F47TqVOncn2vW265hXvuuYfOnTuz77770rBhQxYvXsyzzz7Ls88+y80338xll11WrrElSZKkqiZxkAwhNAeGAb2BVuQ9R/kJ8G/g3hjj56kssKp6b87slM30FTwTeeXfHwFSe2trwfh0TM0zkj179qRnz57MmDGDtWvXMnbs2O0W2/nPf/7DkCFDqFmzJk8++SQDBgwoPPbuu+8yYMAARo8ezaGHHlo4s3j33Xfz2Wefce6553LHHXcUrnoKsHHjRubMmVP4ecSIERx44IFMnTqVTp06cd9991X4ew0ePJjf/va3232XOXPmcPjhhzNixAhOPPFEWrVqVeFrSZIkSdku0a2tIYRBwAfA9cBhQGdgH6BfftsHIYQTUl1kVTT+4nPzAloFFV9YZ9tnJlM5fmX6/e9/z6ZNm7jpppuKhEiALl26cMsttwBw++23F7Z//nne/0/079+/SIgEqFWrFoccUqHdar5Tr169Slx99oADDuDCCy9k8+bNTJ48Oa01SJIkSdmizDOSIYSDgUlADnkruv4dWJp/uC1wOtALmBhC+CTGOCullVYxJa22mtSOVmfd0WquFRm/smzdupUpU6YQQuD440ueBe3VqxcAL7/8cmHbT37yE8aPH89VV10FwGGHHUa9evXSX/A2vv32W5555hnefPNNVq1axaZNmwBYuHAhAB988EGl1iNJkiRlSpJbW68lbwbzvBhjScnjnhDCOcCdwEigfwl9dhkVDXvftcVHusdPl5UrV7J69WoAmjdvXmrfFStWFP48ePBgnnvuOSZOnMhxxx1HTk4OXbt25ZBDDuHkk0/moIPS+x0mT57MWWed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\n",
"text/plain": [
"<Figure size 1080x864 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"tE_df = E_df.transpose()\n",
"ax = tE_df.plot(kind=\"bar\", figsize=(15,12), fontsize=22, colormap='tab20')\n",
"ax.set_xlabel(\"p - probability of infection\", fontsize=22)\n",
"ax.set_ylabel(\"E(p,s) for 32 samples\", fontsize=22)\n",
"\n",
"bars = ax.patches\n",
"hatches = ''.join(h*len(tE_df) for h in ' x')\n",
"\n",
"for bar, hatch in zip(bars, hatches):\n",
" bar.set_hatch(hatch)\n",
"\n",
"ax.legend(title=\"pool size\", prop=dict(size=22), title_fontsize='22')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Average case calculation:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>6</th>\n",
" <th>7</th>\n",
" <th>8</th>\n",
" <th>9</th>\n",
" <th>...</th>\n",
" <th>23</th>\n",
" <th>24</th>\n",
" <th>25</th>\n",
" <th>26</th>\n",
" <th>27</th>\n",
" <th>28</th>\n",
" <th>29</th>\n",
" <th>30</th>\n",
" <th>31</th>\n",
" <th>32</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1.0</td>\n",
" <td>3.0</td>\n",
" <td>3.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1.0</td>\n",
" <td>5.0</td>\n",
" <td>6.333333</td>\n",
" <td>7.000000</td>\n",
" <td>7.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1.0</td>\n",
" <td>7.0</td>\n",
" <td>9.857143</td>\n",
" <td>11.857143</td>\n",
" <td>13.228571</td>\n",
" <td>14.142857</td>\n",
" <td>14.714286</td>\n",
" <td>15.000000</td>\n",
" <td>15.000000</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>1.0</td>\n",
" <td>9.0</td>\n",
" <td>13.533333</td>\n",
" <td>17.057143</td>\n",
" <td>19.870330</td>\n",
" <td>22.164835</td>\n",
" <td>24.062937</td>\n",
" <td>25.643357</td>\n",
" <td>26.958664</td>\n",
" <td>28.046154</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>1.0</td>\n",
" <td>11.0</td>\n",
" <td>17.322581</td>\n",
" <td>22.522581</td>\n",
" <td>26.936374</td>\n",
" <td>30.770857</td>\n",
" <td>34.156841</td>\n",
" <td>37.180466</td>\n",
" <td>39.901350</td>\n",
" <td>42.362932</td>\n",
" <td>...</td>\n",
" <td>60.62135</td>\n",
" <td>61.162402</td>\n",
" <td>61.629588</td>\n",
" <td>62.025584</td>\n",
" <td>62.352614</td>\n",
" <td>62.612458</td>\n",
" <td>62.806452</td>\n",
" <td>62.935484</td>\n",
" <td>63.0</td>\n",
" <td>63.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>6 rows × 33 columns</p>\n",
"</div>"
],
"text/plain": [
" 0 1 2 3 4 5 6 \\\n",
"1 1.0 1.0 NaN NaN NaN NaN NaN \n",
"2 1.0 3.0 3.000000 NaN NaN NaN NaN \n",
"4 1.0 5.0 6.333333 7.000000 7.000000 NaN NaN \n",
"8 1.0 7.0 9.857143 11.857143 13.228571 14.142857 14.714286 \n",
"16 1.0 9.0 13.533333 17.057143 19.870330 22.164835 24.062937 \n",
"32 1.0 11.0 17.322581 22.522581 26.936374 30.770857 34.156841 \n",
"\n",
" 7 8 9 ... 23 24 25 \\\n",
"1 NaN NaN NaN ... NaN NaN NaN \n",
"2 NaN NaN NaN ... NaN NaN NaN \n",
"4 NaN NaN NaN ... NaN NaN NaN \n",
"8 15.000000 15.000000 NaN ... NaN NaN NaN \n",
"16 25.643357 26.958664 28.046154 ... NaN NaN NaN \n",
"32 37.180466 39.901350 42.362932 ... 60.62135 61.162402 61.629588 \n",
"\n",
" 26 27 28 29 30 31 32 \n",
"1 NaN NaN NaN NaN NaN NaN NaN \n",
"2 NaN NaN NaN NaN NaN NaN NaN \n",
"4 NaN NaN NaN NaN NaN NaN NaN \n",
"8 NaN NaN NaN NaN NaN NaN NaN \n",
"16 NaN NaN NaN NaN NaN NaN NaN \n",
"32 62.025584 62.352614 62.612458 62.806452 62.935484 63.0 63.0 \n",
"\n",
"[6 rows x 33 columns]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"from scipy.special import comb\n",
"from matplotlib import pyplot as plt\n",
"from math import factorial\n",
"%matplotlib inline\n",
"# k - the degree. 2^k is the number of samples.\n",
"# i - number of sick people\n",
"# G - cost\n",
"\n",
"MAX_K = 5\n",
"MAX_S = 2 ** MAX_K\n",
"G = np.full((MAX_K + 1, MAX_S + 1), fill_value=np.NaN) # rows are the size of S, columns are the number of sick people in the group\n",
"G[:, 0] = 1 # when there are no sick people, exactly 1 test is needed\n",
"G[0, :2] = 1 # When there is only one person the group, every feasible number of sick people (0 or 1) will be detected with a single test\n",
"\n",
"def P(k, j, i):\n",
" # 2 groups, 2^k people in each group, i sick people in total, computes the proabablity of j sick people in the left group\n",
" s = 2**k\n",
" N = 2*s\n",
" if j>min(s,i) or j<max(0,i-s): \n",
" return 0\n",
" nom = (factorial(s) ** 2) * factorial(N-i)\n",
" denom = factorial(N) * factorial(s-j) * factorial(s-i+j)\n",
" prob = comb(i, j) * nom/denom\n",
" return prob\n",
" \n",
"for k in range(1, MAX_K + 1): # start from the smallest groups that are not trivial (2 people)\n",
" s = 2 ** k\n",
" half_s = int(s//2)\n",
" for i in range(1, s + 1): # test for non trivial number of sick people\n",
" min_j = max((0, i-half_s))\n",
" max_j = min((i, half_s))\n",
" G[k, i] = 1 + sum(P(k-1, j, i) * (G[k-1, j] + G[k-1, i - j]) for j in range(min_j, max_j+1))\n",
"\n",
"\n",
"def prob(k, i, p):\n",
" return comb(2 ** k, i) * (p ** i) * (1 - p) ** (2 ** k - i)\n",
"\n",
"\n",
"def avg_exp(k, p):\n",
" return sum(prob(k, i, p) * G[k, i] for i in range(0, 2 ** k + 1))\n",
"\n",
"pd.DataFrame(G, index=[1,2,4,8,16,32])"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"ps = [0.001,0.01,0.02, 0.05, 0.1, 0.15, 0.2, 0.3, 0.5, 1]\n",
"E = np.zeros([6, len(ps)])\n",
"for k in range(0, 6):\n",
" for ix, p in enumerate(ps):\n",
" E[k,ix] = avg_exp(k, p)* 2**(5-k)\n",
"avg_E_df = pd.DataFrame(E, index=[1,2,4,8,16,32], columns=ps)\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>0.001</th>\n",
" <th>0.01</th>\n",
" <th>0.02</th>\n",
" <th>0.05</th>\n",
" <th>0.1</th>\n",
" <th>0.15</th>\n",
" <th>0.2</th>\n",
" <th>0.3</th>\n",
" <th>0.5</th>\n",
" <th>1.0</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>32.000000</td>\n",
" <td>32.000000</td>\n",
" <td>32.000000</td>\n",
" <td>32.000000</td>\n",
" <td>32.000000</td>\n",
" <td>32.000000</td>\n",
" <td>32.000000</td>\n",
" <td>32.000000</td>\n",
" <td>32.000000</td>\n",
" <td>32.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>16.063968</td>\n",
" <td>16.636800</td>\n",
" <td>17.267200</td>\n",
" <td>19.120000</td>\n",
" <td>22.080000</td>\n",
" <td>24.880000</td>\n",
" <td>27.520000</td>\n",
" <td>32.320000</td>\n",
" <td>40.000000</td>\n",
" <td>48.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>8.127872</td>\n",
" <td>9.267264</td>\n",
" <td>10.509309</td>\n",
" <td>14.087900</td>\n",
" <td>19.582400</td>\n",
" <td>24.527900</td>\n",
" <td>28.966400</td>\n",
" <td>36.478400</td>\n",
" <td>47.000000</td>\n",
" <td>56.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>4.191649</td>\n",
" <td>5.885306</td>\n",
" <td>7.703205</td>\n",
" <td>12.780537</td>\n",
" <td>20.138662</td>\n",
" <td>26.347976</td>\n",
" <td>31.624223</td>\n",
" <td>40.017216</td>\n",
" <td>50.968750</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>2.255171</td>\n",
" <td>4.479475</td>\n",
" <td>6.808014</td>\n",
" <td>13.020030</td>\n",
" <td>21.397454</td>\n",
" <td>28.050971</td>\n",
" <td>33.511633</td>\n",
" <td>42.003923</td>\n",
" <td>52.968689</td>\n",
" <td>62.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>1.318189</td>\n",
" <td>4.029515</td>\n",
" <td>6.760248</td>\n",
" <td>13.632607</td>\n",
" <td>22.328781</td>\n",
" <td>29.039945</td>\n",
" <td>34.510048</td>\n",
" <td>43.003901</td>\n",
" <td>53.968689</td>\n",
" <td>63.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 0.001 0.010 0.020 0.050 0.100 0.150 \\\n",
"1 32.000000 32.000000 32.000000 32.000000 32.000000 32.000000 \n",
"2 16.063968 16.636800 17.267200 19.120000 22.080000 24.880000 \n",
"4 8.127872 9.267264 10.509309 14.087900 19.582400 24.527900 \n",
"8 4.191649 5.885306 7.703205 12.780537 20.138662 26.347976 \n",
"16 2.255171 4.479475 6.808014 13.020030 21.397454 28.050971 \n",
"32 1.318189 4.029515 6.760248 13.632607 22.328781 29.039945 \n",
"\n",
" 0.200 0.300 0.500 1.000 \n",
"1 32.000000 32.000000 32.000000 32.0 \n",
"2 27.520000 32.320000 40.000000 48.0 \n",
"4 28.966400 36.478400 47.000000 56.0 \n",
"8 31.624223 40.017216 50.968750 60.0 \n",
"16 33.511633 42.003923 52.968689 62.0 \n",
"32 34.510048 43.003901 53.968689 63.0 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display(avg_E_df)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x22775616630>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA5IAAAL8CAYAAACS+IqMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3XeUVdXd//H3ZgapKkUQBKQIiYhGUYhYIogmauxBY6ygqD8RjUSNNSQGzKMG7CJGEyMWhFiwPkEJChZUmhoVC0gRrEhRBJQy+/fHvTPPMMwMc6bce4H3a627zpyz9z73O2Ncy0/2OXuHGCOSJEmSJFVUrWwXIEmSJEnavBgkJUmSJEmJGCQlSZIkSYkYJCVJkiRJiRgkJUmSJEmJGCQlSZIkSYkYJCVJkiRJiRgkJUmSJEmJGCQlSZIkSYnkZ7uAXLHDDjvEdu3aZbsMSZIkScqKGTNmfB1jbFaRvgbJtHbt2jF9+vRslyFJkiRJWRFCWFDRvj7aKkmSJElKxCApSZIkSUrEIClJkiRJSsQgKUmSJElKxCApSZIkSUrEIClJkiRJSsQgKUmSJElKxCApSZIkSUrEIClJkiRJSiQ/2wVsrmKMrFixgm+//ZZVq1axfv36bJekCsrPz2f77benSZMm5Of7r4AkSZKUlP8VXQkxRr766itWrlxJkyZNaNGiBXl5eYQQsl2aNiHGyJo1a1iyZAkLFy6kbdu21KrlxLwkSZKUhP8FXQkrVqxg5cqVtG3blkaNGpGfn2+I3EyEEKhTpw4tW7YkPz+fZcuWZbskSZIkabNjkKyEb7/9liZNmpCXl5ftUlRJIQQaNWrEypUrs12KJEmStNkxSFbCqlWraNiwYbbLUBXVr1+f1atXZ7sMSZIkabNjkKyE9evXOxu5BahVqxYFBQXZLkOSJEna7BgkK8l3Ijd//jOUJEmSKscgKUmSJElKxCApSZIkSUrEICnatWtHCIH58+fXyP3nz59PCIF27drVyP0lSZIkZZZBUpIkSZKUSH62C9CWr1WrVrz//vvUrl0726VIkiRJqgYGSdW42rVrs+uuu2a7DEmSJEnVxEdba1gIoWibibvvvpuuXbtSv359mjZtyq9+9SvefffdMscuWLCA888/nw4dOlCnTh0aN27MwQcfzOjRo8scE2PkgQceoFevXjRu3Ji6deuyyy67MHDgQBYuXFhtv9fy5cu56qqr6NKlC/Xr16devXq0bt2aXr16cd11123Qt6x3JHv16lX09ynr069fv42++/3336d///60b9+eunXr0rhxYw499FCeeuqpavv9JEmSJJXNGckM+d3vfsdtt93Gz372M4499lhmzpzJuHHjeO6553juuec48MADN+j/xhtvcPjhh7N8+XLat2/P8ccfz5IlS5g8eTKTJk1i/PjxjBo1aoO9EGOMnHbaaYwePZratWvTq1cvmjRpwtSpU7nzzjsZM2YM48ePp3v37lX6XVatWsUBBxzArFmzaN68OYceeigNGjTg888/Z9asWbz++utceeWVm7zP4YcfXuYCPOPHj+fLL78kLy9vg+tjxoyhb9++rFmzhi5dunDUUUexePFiXn75ZSZOnMjgwYMZMmRIlX4/SZIkSZsQY/QTI/vss0+sqFmzZlW4LxCBWL9+/Th58uSi6wUFBfGKK66IQGzTpk1cvXp1Udvq1atjmzZtIhAHDRoU161bV9T2zjvvxObNm0cg3nXXXRt814gRIyIQd9xxx/juu+8WXV+3bl288MILIxDbtm0bv//++w3GtW3bNgJx3rx5FfqdRo0aFYF45JFHxrVr127Qtm7dujhx4sQNrs2bN6/ouyviwQcfjEBs1qxZnDNnTtH1t99+O26zzTaxYcOG8X//9383GPPuu+8W/c1eeOGFCn1PjMn+WUqSJElbMmB6rGB+8tHWDBkwYAAHHXRQ0XkIgWuvvZYOHTqwcOFCHnvssaK2Rx55hIULF9K2bVv++te/bjArt/vuu3PNNdcAMHz48A2+48YbbwRg6NChdOnSpeh6Xl4ew4cPp02bNixYsIBHH320Sr/Ll19+CcChhx5Kfv6Gk9p5eXn07t270veePHkyZ511FvXq1eOpp55il112KWr7y1/+wpo1a/jrX//KEUccscG4Ll26cNNNNwFwxx13VPr7JUmSJG2aQTJDTjvttI2u5eXlcfLJJwMwadKkouuTJ08G4NRTTy11pdMzzzyTEAJz5szh008/BWDRokXMnTuXWrVqcfrpp280ZptttuHUU0/d6Lsq46c//SkAN9xwAw8++CDLly+v0v0KffDBBxx//PGsW7eOBx98kB49ehS1FRQUMH78eEIInHDCCaWO79mzJwCvvfZatdQjSZIk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\n",
"text/plain": [
"<Figure size 1080x864 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"tE_df = avg_E_df.transpose()\n",
"ax = tE_df.plot(kind=\"bar\", figsize=(15,12), fontsize=22)\n",
"ax.set_xlabel(\"p - probability of infection\", fontsize=22)\n",
"ax.set_ylabel(\"E(p,s) for 32 samples\", fontsize=22)\n",
"ax.legend(title=\"pool size\", prop=dict(size=22), title_fontsize='22')"
]
}
],
"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.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment