{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# A new statistical method to analyze Morris Water Maze data using Dirichlet distribution\n", "\n", "This notebook shows how you can easily reproduce the results presented in our paper and apply the Dirichlet test to your own data using Python. You only have to modify the names of the files to load your own data.\n", "\n", "Follow the instructions alongside the code and run the code to obtain your results !\n", "\n", "*Remember*: you need to have a working installation of Python (2 or 3) and Jupyter." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Load modules" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import sys\n", "sys.path.insert(0, '../')\n", "from dirichlet import dirichlet\n", "\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Load data\n", "Data must be passed as a numpy 2D array where each row [TQ,AQ1,OQ,AQ2] represents one sample (note that each row will be normalized so that its sum is 1). If your data is in a `.csv` file, you can use `pandas` or `numpy`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### With pandas (if this doesn't work, just use numpy)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "data_3tg = pd.read_csv('3Tg.csv')\n", "data_wt = pd.read_csv('wt.csv')" ] }, { "cell_type": "code", "execution_count": 3, "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>TQ</th>\n", " <th>AQ1</th>\n", " <th>OQ</th>\n", " <th>AQ2</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>45.3</td>\n", " <td>15.7</td>\n", " <td>27.6</td>\n", " <td>11.4</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>21.2</td>\n", " <td>21.9</td>\n", " <td>24.4</td>\n", " <td>32.5</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>26.2</td>\n", " <td>31.3</td>\n", " <td>21.5</td>\n", " <td>21.0</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>37.0</td>\n", " <td>24.5</td>\n", " <td>12.3</td>\n", " <td>26.3</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>30.2</td>\n", " <td>32.7</td>\n", " <td>16.8</td>\n", " <td>20.3</td>\n", " </tr>\n", " <tr>\n", " <th>5</th>\n", " <td>28.9</td>\n", " <td>20.9</td>\n", " <td>18.8</td>\n", " <td>31.5</td>\n", " </tr>\n", " <tr>\n", " <th>6</th>\n", " <td>22.8</td>\n", " <td>30.0</td>\n", " <td>29.1</td>\n", " <td>18.2</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " TQ AQ1 OQ AQ2\n", "0 45.3 15.7 27.6 11.4\n", "1 21.2 21.9 24.4 32.5\n", "2 26.2 31.3 21.5 21.0\n", "3 37.0 24.5 12.3 26.3\n", "4 30.2 32.7 16.8 20.3\n", "5 28.9 20.9 18.8 31.5\n", "6 22.8 30.0 29.1 18.2" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_3tg" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Pandas data frames need to be converted to numpy arrays\n", "data_3tg = data_3tg.to_numpy()\n", "data_wt = data_wt.to_numpy()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### With numpy" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# Load .csv files...\n", "data_3tg = np.loadtxt('3Tg.csv', delimiter=',', skiprows=1)\n", "data_wt = np.loadtxt('wt.csv', delimiter=',', skiprows=1)\n", "\n", "# or simple text files ...\n", "data_3tg = np.loadtxt('3Tg.txt')\n", "data_wt = np.loadtxt('wt.txt')\n", "\n", "# or create 2d arrays manually\n", "data_3tg = np.array([[45.3, 15.7, 27.6, 11.4],\n", " [21.2, 21.9, 24.4, 32.5],\n", " [26.2, 31.3, 21.5, 21. ],\n", " [37. , 24.5, 12.3, 26.3],\n", " [30.2, 32.7, 16.8, 20.3],\n", " [28.9, 20.9, 18.8, 31.5],\n", " [22.8, 30. , 29.1, 18.2]])\n", "data_wt = np.array([[44.3, 12.9, 26.2, 16.7],\n", " [28.2, 26.3, 27.6, 18. ],\n", " [41.1, 15.2, 13.9, 29.9],\n", " [57.5, 13.3, 13.2, 16.1],\n", " [52.9, 9.3, 10.3, 27.5],\n", " [41.9, 35.3, 14.7, 8.1],\n", " [30.9, 26.9, 17.4, 24.8]])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`data_3tg` should be a numpy 2D array at this point." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[45.3, 15.7, 27.6, 11.4],\n", " [21.2, 21.9, 24.4, 32.5],\n", " [26.2, 31.3, 21.5, 21. ],\n", " [37. , 24.5, 12.3, 26.3],\n", " [30.2, 32.7, 16.8, 20.3],\n", " [28.9, 20.9, 18.8, 31.5],\n", " [22.8, 30. , 29.1, 18.2]])" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_3tg" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Apply the test\n", "\n", "You can use the `test_uniform` function separetely. The first output is the $\\Lambda$ statistics, with our Bartlett correction if `do_MWM_correction` is set to `True`. The second output is the $p$-value. The third and fourth are the estimated $\\alpha_i$ parameters for the best fit (alternative) and the uniformity (null) hypotheses." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Result of the Dirichlet uniformity test for group 3Tg:\n", "# likelihood-ratio statistic (with MWM correction) = 3.95865\n", "# p-value = 0.265964\n", "# MLE params under null hypothesis (uniformity) :[8.40402434 8.40402434 8.40402434 8.40402434]\n", "# MLE params under alternative hypothesis :[12.55460935 10.6084696 9.02098363 9.49037119]\n", "\n", "Result of the Dirichlet uniformity test for group wt:\n", "# likelihood-ratio statistic (with MWM correction) = 14.621\n", "# p-value = 0.00217089\n", "# MLE params under null hypothesis (uniformity) :[3.01649146 3.01649146 3.01649146 3.01649146]\n", "# MLE params under alternative hypothesis :[11.42349023 5.25568502 4.89513099 5.44866848]\n" ] } ], "source": [ "stat, pval, alpha_best, alpha_uni = dirichlet.test_uniform(data_3tg, label='3Tg', do_MWM_correction=True, verbose=True)\n", "stat, pval, alpha_best, alpha_uni = dirichlet.test_uniform(data_wt, label='wt', do_MWM_correction=True, verbose=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "Or use the `plot` function to make the plot. If `do_test_uniform` is `True`, then the uniformity test is run. `save_figure` allows you to save to a file." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Result of the Dirichlet uniformity test for group 3Tg:\n", "# likelihood-ratio statistic (with MWM correction) = 3.95865\n", "# p-value = 0.265964\n", "# MLE params under null hypothesis (uniformity) :[8.40402434 8.40402434 8.40402434 8.40402434]\n", "# MLE params under alternative hypothesis :[12.55460935 10.6084696 9.02098363 9.49037119]\n", "\n", "Result of the Dirichlet uniformity test for group wt:\n", "# likelihood-ratio statistic (with MWM correction) = 14.621\n", "# p-value = 0.00217089\n", "# MLE params under null hypothesis (uniformity) :[3.01649146 3.01649146 3.01649146 3.01649146]\n", "# MLE params under alternative hypothesis :[11.42349023 5.25568502 4.89513099 5.44866848]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 144x216 with 1 Axes>" ] }, "metadata": { "image/png": { "height": 239, "width": 162 }, "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUUAAAHfCAYAAADHicp4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAH5BJREFUeJzt3XmUZGWdp/HnFVS0WAoQVCyRRRZxK+sthRYBEeFUKwpu7fEoCIwWtHoQ1J6mdY4UjozOTIsLo0JBI26D7QritA6LgDQMKK+iiOxY7CqyWRTi0tz5496AX0ZFREZk5o2sqnw+58S5me99733fmxH1rfeukaqqQpJUe9xsd0CS1iSGoiQFhqIkBYaiJAWGoiQFhqIkBYaiJAWGoiQFhqIkBYaiJAWGoiQFhqIkBYaiJAWGoiQFhqIkBYaiJAWGoiQFhqIkBYaiJAWGoiQFhqIkBYaiJAWGoiQFhqIkBYaiJAWGoiQFhqIkBYaiJAWGoiQFhqIkBYaiJAWGoiQFhqIkBYaiJAWGoiQFhqIkBYaiJAXrz3YHpH5SSvOBowCqqlo2u73RXJGqqprtPkg9pZS2AX4NUFVVmtXOaM5w91mSAkNRkgJDUTMqpXRTSqlKKb26x7wTm3lVSmnXHvPPaOYtSyldSLPr3Myrul7LWt0QzVmGombaRc10zx7z9go/D5p/EXAv8Psw77ddrwen102pN0+0aEallA4BvgBcXlXVbqF8c+Bu6jDbCPg/VVXtH+bvAFwP/BmYX1XVHz3RotngSFEzrTNSzCmlDUP5HkACvko9CnxZSil+/jqjxB9XVfXH9rsp9WYoakZVVfVr4Hbqa2BfGmZ1Qu8C4N+BTYCFPeZfhDSLDEW1oRNs8RhiDL3J5kuzxlBUGyaEXkppE+CFwLVVVf22x/xtgWcCfwUuHW9XpYkMRbXhR830xSmlJ1EfT3wcj4XhlcAfgD1SSonHRomlqqpVY+2p1MVQ1Iyrquo66stmngD8DY+F3oXN/P+gPq64GfB83HXWGsRQVFs6o8W96B16k80HeKTzQzOilFpnKKotnYDbH1gEXF9V1V095h8EbAt0Ro/RH8LP89vopNTNUFRbOiPBRcB6rD4KvAJYBby4+f3KqqpiCFJV1f3Anc2vh7bUT2kCQ1Ft+SVwT/j9wjizqqruM839jiee2kw/kVJ6MKW0onkdNWM9lQJDUa2o6vtHLw5FvUKv1zHGbh8B/hH4BfUdMc9qXu5OqxXe+yxJgSNFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEWNXUrpmSmlb6aUHkgp/SGl9O2U0tYzuewI9d6YUvpWSumWlNIfU0rXpZQ+llLaaCr1Jun7Z1JK3+tRvqz5wq9+y/Wcn1I6KqV0Vdd33Wia/GNqrFJKTwZ+COwMvJ36KTk7ABeklObNxLIjtvEB6if0fBBYAnwe+Hvg3K6wGbZev75vDxwBLGt+3z2l9HddddZLKf19SmmnyeY3RScDWzTbqJlSVZUvX2N7Ae+lDpdnh7Jtqb+K4H0zsewobQBb9GjnYKACXjFqvQF9PxH4Sfj9mcApwLnA14CTqB+Q8XFg08nmh/X8D+Dq2X5f16XXrHdgbX8BlwNfp35wwU3Aw9QPL9hntvu2Jr6A84FLepRfBFw0E8tOp42m3nOasDtohuo9EbgPOLrHvP2az8z9wIumMH9R04eXzvZ7u6683H2ehpTS+sALgFcDLwOOAt5C/fWe326+AH6dkWrrD/Fab8Bqnkv9WLFuVwO7TNKFYZedThvw2JPAr5mhertRP9Xn0acGpZS2SimdBPwDcCb1aPCzzXHKTSebH9Z9JbCSepdeM8BQnJ5dgA2oH5i6b1VVZ1dV9R3qY00bA3vOZudasBfwlyFe5w9Yx2bUo6Zu91LvNg4y7LJTbiOl9AzqUf95VVVdMd16jd2oR3O/CGXbARdUVbUvcC1wGfUXfN0KbDnEfACqqnoE+HnThmbA+rPdgbXcomb6war+MqaOa5vp5gAppRXAn4A/AhsCNwKfqqrqB838K4E9qqpa2auRyeY3dSrqY033jzKvq94y4ONVVT3cp0rhsSdlD9K3n2uylNKGwFnUxx77Pul72HrBVsAfqqr6c6egqqrur16g+Qx9vvn1uknmR3cDOw7RDw3BUJyeDNxZVdUlXeVbNdPbQ9mbq6q6EiCl9Ergqymlw6uqOrOqqoW9Vp5SWr+qqr/2m9+CY4FPUR/D6uVB6t21yQx6SOd99B6t9RvdTWXZkdtovor1bOoR2l5VVd0+nXpdNqD+T7GnqqqWDVp4svnU/9k+aYh+aAjuPk/PIuCOHuVvBh5i4pOnH1VV1XnUl2Z8EOqRXEppfvj52JTST4BP95i/a0rpRymlXzSvt4ZVH5FSurx5XP+7+3U6pbQ4pXR+SumKlNKVKaWDm+NXABc3Zdv0WHQmdp+vpj7m120X4FcDlhtl2ZHaSCk9HvgmsBh4VVVVV/VqfNh6PdxDu08K3wz4fYvrn1tm+0zP2vqi/g/lQervN14/lG9F/S10/z2UrQAWdi3/IuCh5ucKmB9+PrarbkX9j2pT4DfAy5vyBDwl1Hl/8/N21F8KtXGP9c+nPga1IPx+I7BTrNdnmzeiDoTJXjsNWMdR1Lud24WybajD9P2T/M2HWnaUNpr38evUo62+VwwMW6/Psp1Ldxa09Fm8FvjSbP+bWFdes96BtfVFPeqoqA98fwXYh/oi2puAHwMbhLq9QnHRgFBc0FW3E4qvBi7u058KeFr4/TbgeT3W/yrgAerd4M5rBfC6yUJxhv5u85oQvgo4AHhtE9I3AxuGens1wXbwFJYdql5T9/PNdn+U+mRFfC0YtV6fbd6mWfb1Lfw951N/P/Y7ZvvfxLrymvUOrK0v4G3NB/15wPeod5d/S32R7kZddXuF4hHA5c3P3aE4v6vusKE4v1ebXet/NXDpMOto8W+3NfAt6hH1SupLTrbpqvPypj+HjLrsiPVWNO30ei0btd6Abb4c+EILf8u3Uh8D3ny2/02sK69Z78Da+gJOAG4bsu6EUAT2pt4NPqD5fdhQnGz3eZhQ3BS4C1gS6u5CfVb8AeBZs/23XRdfwCHN3/fJM7ze7wNfnu3tW5denmiZukx9icqw/rU5gXED9Vd2HlxV1VmjNFhV1X3Uu4MfTSn9gnqXcL8prOPVwD+klH6eUvoV8BngCcD/pL6Xt9+JFk3dV4A7gXfN1ApTSguBVwDHzdQ65VecTklKKVHfdvXPVVX919nuj9YOKaXdgEVVVX1uhta3hPr60zNmYn2qGYqSFHjxtqSRlFLeSH11wELghdSXan015/y2We3YDDEUJY3qv1CH4YPUd23tPLvdmVmeaJE0qqOp77XemPrhJ+sUR4qSRpJzvqDzcymjXICxdnCkKEmBoShJgaEoScGcO6ZYShl0YebhOeflTb2l1N+W1lPOOYV1Fh574Gy3U3LOS5t6mfop3f0szjmXpu5y4J196v0055xD+25TH27T1Laps9xcNOcu3h71g7loi3Nb68tP79730Z/bbCdtfUyCepsWbXFu339s0zWu7fnp3fsennNeXt368VY/vJ3taXNbQjuHt/zeLKaFUCylvBy4gHXoOsU5F4qjavMfXiesbGdq7bQdiutSO/G9mUnrYih6TFGSAkNRkoI5d6JF0vSUUg4EDmx+fVoz/ZtSyunNz7/POX9g7B2bIYaipFEtpP7qjWi75gVwC2AoSpobcs7LqL+Ncp3kMUVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkK/DY/aTIX/rDd9R98TLvr10gcKUpSYChKUmAoSlJgKEpSYChKUmAoSlJgKEpSYChKUmAoSlJgKEpSYChKUmAoSlJgKEpSYChKUmAoSlJgKEpSYChKUmAoSlJgKEpSYChKUmAoSlJgKEpSYChKUmAoSlJgKEpSYChKUrD+bHdA66gLf9jeug8+pr11a84zFDU2j3v7uSPVf+SL+7bUE6k/Q3EyjnikOcVQ1Nj0GvnF0aMjQ60JPNEiSYGhKEmBu89rCo9dSmsER4qSFBiKkhQYipIUGIqSFBiKkhSkqqpmuw9jlVJaBhw7ZPVTHvnivu+MBUtP+xWnXnTHUAt/+MDtWPa67SeUvfaTP+N7V/5+qOVPOuQ5LN17wYSyxR++jJ/esnKo5c86aiGvedEWpIPPSZ2yrZ66cXXX74Zb/iffew/5+c+YUPa4Z/3TUMsC3P6pPdhq0w0e/f3O+x5mwVEXD71898Xc5dd/4MXLLh9q2advuRF3/OSDE8rOPu8aDvhPXxpq+UXP24py1R0JoPrSfhXA8gtu54jTrxlq+f0XPoXvHv2iCWXLvnMTHznz5qGWf8dbXszyj79+QtnSY77NqWf8ZKjlP3zUPiw7+pWP/p62PiallM4G9h9m+aqq0uS11k2OFCUpMBQlKZhzu8+j6uw6tSHu1o6tnVs/3l47Wx8z8vZM5d7nzva0uS3w2Pa0+d7AeLYnvjcazJGiJAWGoiQFhqIkBYaiJAWGoiQFhqIkBT5PUZrEQ6euaHX98w5udfWtKKUsAD4CLAE2B+4CzgSOyznfN8TyLwcuGKKprXPOt4XlBl22dHnOebch1jmQoShpJKWU7YFLgS2Bs4BrgZcA7wWWlFJ2zznfM8lqVgDH9Zn3fOD1wC9jIAa3AKf3KL990s4PwVDU2Ez2Fafd8/0iqzXW56gD8cic84mdwlLKCcDRwPHAEYNWkHNeASzrNa+Uckbz4yl9Fl+Rc+657EzwmKKkoTWjxP2oR3qf7Zp9LLAKOKiUMm+K638K8Drgj8BwT++YYY4UNTaO/NYJezfTc3LOj8QZOeeVpZRLqENzN+D8Kaz/7cATgS/lnO/vU2d+KeUw4GnAA0DJOV82hbZ6MhQljWKnZnp9n/k3UIfijkwtFDuP6jt5QJ0XAv8SC0opPwcOyjlfNYU2J3D3WdIoNmmmD/SZ3ymfP+qKSyl7UYfuL3POl/apdgKwO7AFsBHwYuCb1EH5w1LKM/osN7Q5N1Kc5JT+4Tnn5U29pcDJi8bUlzbbCe0tXbRFq+sfy/aUUpZ23qc2dbZn5/G0c/iiq9v7mtvy3H0zcMWAKotzzqXpz/Kc89LWOtNfp82+723O+f1dRVcAbyqlfBN4A/AB6pM9U+ZIUdIoOiPBTfrM75T3Ox7YUyllM+pQ+yPw5Sn066RmuucUlp1gzo0Uc85DPVeuGYksr66mtWfcxb602U5ob3l167mDjtVMd/1j2Z5xjBKbdhLAKtp9bzrtVFcPPI423TYKMOxnf9Ao8bpmumOf+Ts0037HHPvpnGD54oATLIPc3UyndNY7cqQoaRSdu1D2K6VMyI9SykbUx/seAkY9G9w5wTLV//A6d7IM9yU4AxiKkoaWc74JOAfYBnh31+zjqEdqX845r+oUllJ2LqX0PTRbStkDeA6DT7BQSnlBKeXxvcqpLxgH+MqQm9LXnNt9ljRt76K+ze8zpZR9gGuAXamvYbwe+FBX/c5XIPbbfZ/0BEvjfcBrSikXA7cBf6I+D7YEWI/6Dpgz+i8+HENR0khyzjeVUhbz2AMhXkX9QIhPM+QDITpKKZsCb2S4EyxnAhsDLwBeAWwA3AN8Hzgl5/zdETelJ0NR0siaBzUcOmTdvid4mgB90pDrOZM6GFvlMUVJChwpau11YXsXOwNw8DHtrl9rJEeKkhQYipIUGIqSFBiKkhQYipIUePZZrWjzG/DWxm+/09rDkaIkBY4U55o2r+3zuj6tAxwpSlJgKEpSYChKUmAoSlJgKEpSYChKUmAoSlJgKEpSYChKUmAoSlJgKEpSYChKUmAoSlJgKEpSYChKUmAoSlLgQ2Y1NhtefMNI9R/cY4eWeiL150hRkgJHihqbXiO/OHp0ZKg1gSNFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQq8TlFrrYdOXdHq+ucd3OrqtYaac6GYUloGHDtk9VMe+eK+EwqWnvYrTr3ojqEW/vCB27HsddtPKHvtJ3/G9678ff3L21M1aPmTDnkOS/deMKFs8Ycv46e3rByq/bOOWshrXrTFhLJnvPci7rr/z0Mt/5Nlu5K33XhC2ePefm7/Bbq254aXbMvTn/jYR+yuP/2VHX78676Ld98G2H0x989WPsweV94GafDfDeBpT1iPG3fdbkLZv93zIH/3q7smWxSAhRs+kZ91lZ121wMceePvhlr+bzebxzeeu9WEsuNvuYeP3Xrv6pV7bM879noGyw/bZULZdD97KaWzgf2HWb6qqjRUQ+sgd58lKTAUJSlIVTXpnsicVn1pv9b+QOngcx7dRVnX2lm1545DtTOVe5/n/ej6NEobUzXudsb13mgwR4qSFBiKkhQYipIUGIqSFBiKkhQYipIUGIqSFMy52/w0eyb7Nr/JbvOTxsGRoiQFjhQ1No78tDYwFKU1RJuPQvMxaMMzFNWK8y5u71bbA1pbs2QoTsr/vaW5xRMtkhQYipIUuPs8x3g4QBrMkaIkBYaiJAWGoiQFhqIkBYaiJAWGoiQFXpKzhvBSGWnN4EhRkgJDUZICQ1GSAkNRkgJPtGit1eYzG8HnNs5VjhQlKXCkKGlkpZQFwEeAJcDmwF3AmcBxOef7hlzHhcBeA6o8Kef88DS7OjJDUdJISinbA5cCWwJnAdcCLwHeCywppeyec75nhFUe16f8r9Pq6BQZipJG9TnqQDwy53xip7CUcgJwNHA8cMSwK8s5L5vpDk6HxxQlDa0ZJe4HrAA+2zX7WGAVcFApZd6YuzZjHClKGsXezfScnPMjcUbOeWUp5RLq0NwNOH+YFZZS3gxsC/wZuAb4Yc75TzPX5dE4UpQ0ip2a6fV95t/QTHccYZ1fAz4GfAL4N+DWUsobp9a96TMUJY1ik2b6QJ/5nfL5Q6zrLOA1wALgScDO1OE4H/jXUsqSafRzyubc7nMppRow+/Cc8/Km3lLg5J3H1Jc22wntLR3X9rSplLK08z613E4F7b83TTuHt/zeZOCKAVUW55xLU3d5znlpi90BIOf8ya6i64APllLuBE6kDsgftN2Pbo4UJY2iMxLcpM/8Tvn902jjVOrLcRaWUjaaxnqmZM6NFHPOQ90b1oxElq+C1kY/sS9tthPaW74KTm5x/Y9uz+3t/t1aHyU27SRo/70J7bT53hRg2M/+oFHidc203zHDHZppv2OOw7T/cCllJbApMA9YOdV1TYUjRUmjuKCZ7ldKmZAfzahud+Ah4LKpNlBK2Yk6EFcCv5/qeqbKUJQ0tJzzTcA5wDbAu7tmH0c9svtyznlVp7CUsnMpZcIh01LKtqWUzbrXX0rZAvhC8+vXcs5jv6tlzu0+S5q2d1Hf5veZUso+1NcW7kp9DeP1wIe66l/TTOPu+17ASaWUfwduBu4FtgZeRX1c8grgP7e1AYM4UpQ0kma0uBg4nToM3w9sD3wa2G3I+54L9fWJTwXe0KxjCXAVcCSwe855OidrpsyRoqSR5ZxvAw4dsu5qJ3hyzlcBh8xwt2aEI0VJCgxFSQoMRUkKDEVJCgxFSQoMRUkKvCRHY3PgiLfDnjnSI/mkmeFIUZICR4oam14jvzh6dGSoNYEjRUkKDEVJCgxFSQo8pjiJ8y4e6mHFU3JAa2uWNFWOFCUpMBQlKTAUJSkwFCUpMBQlKZhzZ59TSsuAY4esfkr3XRaf5bec++j3gQ/2ZjbjLTxlQtlHuYMrWNXpzMDvE/7Ms7fksKdP/M7xl/3sVq588E9Dtf/1XZ7OqzbfcELZsy+/md/8+T+GWv7ihc/kRRttMKFsw4tv6L9A1/acxnZsFj5i9/JXDuPmvot33xvd/be/kYf5ALdO+ncD2JT1+ALbTyj7MQ/y37hzskUB2I4nrnZ1wGl3PcCRN/5uqOX/drN5fOO5W00oO/6We/jYrfeuXrnH9hzytI35Xzs8dULZe274Laf/5g9Dtf9PW2/Gh561eVcz6Wxg/2GWr6qqvcsu1nCOFCUpmHMjRWlUnWtVr5mkXnT3vatf49p/jKw1SaqqSfdE5rSz0k6t/YEOqK579F/Nqj13bK2deT+6fuztDPt3m8oDITp/tzbfm9loZ1zvjQZz91mSAnef5xhvW5QGc6QoSYGhKEmBoShJgaEoSYGhKEmBZ581NpN9xelkt/lJ4+BIUZICR4oaG0d+Whs4UpSkwFCUpMBQlKTAUJSkwFCUpMBQlKTAUJSkwFCUpMBQlKTAUJSkwFCUpMBQlKTAUJSkwFCUpMBQlKTAUJSkwFCUpMBQlKTAUJSkwFCUpMBQlKTAUJSkwFCUpMBQlKTAUJSkYP3Z7oCk2nkXp9bWfUBra173OFKUpMBQlKTAUJSkwFCUpMBQlKTAUJSkwFCUpMBQlKTAUJSkwDta1hDezSCtGRwpSlJgKEpS4O6zpJGVUhYAHwGWAJsDdwFnAsflnO8bYvl5wIHAq4FFwDOBR4DrgDOAE3POf+6xXDVgtZfnnHcbcVNWYyhKGkkpZXvgUmBL4CzgWuAlwHuBJaWU3XPO90yymj2ArwD3AhdQB+qmwGuBfwZeX0rZJ+f8cI9lbwFO71F+++hbszpDUdKoPkcdiEfmnE/sFJZSTgCOBo4HjphkHb8B3gZ8I44ISykfAC4EXgq8G/hEj2VX5JyXTaP/A3lMUdLQmlHifsAK4LNds48FVgEHNbvHfeWcr8w5f7V7FznnvJLHgvDlM9HnUTlSlDSKvZvpOTnnR+KMnPPKUsol1KG5G3D+FNv4SzP9a5/580sphwFPAx4ASs75sim2tRpDUdIodmqm1/eZfwN1KO7I1EPxsGb6gz7zXwj8SywopfwcOCjnfNUU23zUnAvFSc5eHZ5zXt7UWwqcPIt9aaO9pS2vfyzbU0pZ2nmfWm5nXNtTAYe33EYGrhhQZXHOuTR1l+ec+31WNmmmD/SZ3ymfP3ovoZTyHuoz2lcCp/WocgLwLepQfhjYGfhH4I3AD0spC3POd0yl7Y45F4qS1kyllNcDn6I+CfOGnPNfuuvknN/fVXQF8KZSyjeBNwAfoD7ZM2VzLhRzzkPdT9eMRJbfDq2NFmJf2mwntLf89hZHv+PannGMEpt2ErT/3oR22nxvCjDsZ3/QHkVnJLhJn/md8vuH7BoApZQDga8BvwP2zjnfPMrywEnUobjniMutxrPPkkZxXTPdsc/8HZppv2OOqymlvAn4BvBbYK+c83WTLNLL3c104FnvYRiKkkZxQTPdr5QyIT9KKRsBuwMPAUOdDS6lvJX6DpY7qQPxhin2q3Mny6gjzNUYipKGlnO+CTgH2Ib64uroOOqR2pdzzqs6haWUnUspO3evq5TyduBLwK3AnpPtMpdSXlBKeXyvcuoLxqG+S2Za5twxRUnT9i7q2/w+U0rZB7gG2JX6GsbrgQ911b+mmT56TLOUsjf12eXHUY8+Dy2ldLdzf875U+H39wGvKaVcDNwG/In67PMSYD3gFOpR57QYipJGknO+qZSymMceCPEq6gdCfJohHwgBPIvH9lQP61PnFuqz0R1nAhsDLwBeAWwA3AN8Hzgl5/zdETelJ0NR0shyzrcBhw5Zd7Wz3jnn0+n9UIdB6zmTOhhb5TFFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCgxFSQoMRUkKDEVJCtaf7Q5IWvuUUhYAHwGWAJsDdwFnAsflnO+bzb5NlyNFSSMppWwPFOBQ4MfAJ4GbgfcC/6+Usvksdm/aHClKGtXngC2BI3POJ3YKSyknAEcDxwNHzFLfps2RoqShNaPE/YAVwGe7Zh8LrAIOKqXMG3PXZoyhKGkUezfTc3LOj8QZOeeVwCXAk4Hdxt2xmWIoShrFTs30+j7zb2imO46hL60wFCWNYpNm+kCf+Z3y+WPoSyvm3ImWUko1YPbhOeflTb2lwMmz2Jc22lva8vrHsj2llKWd96nldsa1PRVweMttZOCKAVUW55xLU3d5zrnVz8qabM6F4qgWXPG/e5bnnFPn51JKARb1WcUpnQ/YoA9m086EDybwzj7r/GnOOYf2BwZ9j3Z6msltCu20sU0AHFBdlyb7z2smtqnH36yVbTqgui419drappnQGQlu0md+p/z+GWpv7FJVjXWwImktVkp5B3AKsDznvNrotpTyf6nPTr8y53z+uPs3EzymKGkUFzTT/UopE/KjlLIRsDvwEHDZuDs2UwxFSUPLOd8EnANsA7y7a/ZxwDzgyznnVWPu2oxx91nSSJoLuC+lvqvlLOAaYFfqaxivB16ac75n9no4PYaipJGVUp7J6g+E+A7rwAMhDEVJCjymKEmBoShJgaEoSYGhKEmBoShJgaEoSYGhKEmBoShJgaEoSYGhKEmBoShJgaEoSYGhKEmBoShJgaEoSYGhKEmBoShJgaEoSYGhKEmBoShJgaEoSYGhKEmBoShJgaEoSYGhKEmBoShJgaEoSYGhKEmBoShJgaEoSYGhKEmBoShJgaEoSYGhKEmBoShJgaEoSYGhKEmBoShJgaEoSYGhKEmBoShJgaEoSYGhKEmBoShJwf8HJ0yP8Y32YegAAAAASUVORK5CYII=\n", "text/plain": [ "<Figure size 144x216 with 1 Axes>" ] }, "metadata": { "image/png": { "height": 239, "width": 162 }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "dirichlet.plot(data_3tg, label='3Tg', do_test_uniform=True, do_MWM_correction=True, verbose=True, save_figure='3Tg.png')\n", "dirichlet.plot(data_wt, label='wt', do_test_uniform=True, do_MWM_correction=True, verbose=True, save_figure='wt.png')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.2" } }, "nbformat": 4, "nbformat_minor": 4 }