{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "#[Extrapolating weak selection in Evolutionary Games](dx.doi.org/10.1371/journal.pcbi.1003381)\n", "\n", "\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%pylab inline" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook assumes that *ews.py* and *visualization.py* are in the same folder of this notebook." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##Estimating the number of ranking changes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We need to specify some parameters to call the estimation procedure." ] }, { "cell_type": "code", "collapsed": false, "input": [ "!python ews.py" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Traceback (most recent call last):\r\n", " File \"ews.py\", line 298, in \r\n", " assert len(sys.argv) == 5, \"You must specify the SEED, the NUMBER_OF_STRATEGIES \" \\\r\n", "AssertionError: You must specify the SEED, the NUMBER_OF_STRATEGIES and the NUMBER_OF_REPETITIONS, and the DISTRIBUTION_TYPE 0 -- UNIFORM, 1 -- NORMAL\r\n" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us call the estimation procedure with **SEED=1234**, **3** strategies, **50** samples and uniformly distributed games. Fifty samples will not give a quality estimate, but it is fine for demonstration purposes. This will take a couple of minutes..." ] }, { "cell_type": "code", "collapsed": false, "input": [ "!python ews.py 1234 3 50 0" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Files n_3_dist_0_seed_1234_count.pickle and ma_n_3_dist_0_seed_1234_count.pickle have been created\r\n" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can list the newly created files" ] }, { "cell_type": "code", "collapsed": false, "input": [ "!ls -l *.pickle" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "-rw-rw-rw- 1 garcia staff 54 Oct 4 10:46 ma_n_3_dist_0_seed_1234_count.pickle\r\n", "-rw-rw-rw- 1 garcia staff 62 Oct 4 10:46 n_3_dist_0_seed_1234_count.pickle\r\n" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can inspect the results by [unpickling](http://docs.python.org/2/library/pickle.html) the new files." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import pickle\n", "filename_ranking_counts = 'n_3_dist_0_seed_1234_count.pickle'\n", "filename_most_abundant_counts = 'ma_n_3_dist_0_seed_1234_count.pickle'" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "ranking_changes = pickle.load(open(filename_ranking_counts))\n", "most_abundant_changes = pickle.load(open(filename_most_abundant_counts))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "ranking_changes" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 7, "text": [ "Counter({0: 34, 1: 13, 2: 3})" ] } ], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this paticular estimate, out of 50 samples, 34 have no ranking changes, 13 have one ranking change and 3 have two ranking changes." ] }, { "cell_type": "code", "collapsed": false, "input": [ "most_abundant_changes" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ "Counter({0: 42, 1: 8})" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "In 8 out of 50 cases, the most abundant strategy changes once." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#Inside the sampling procedure" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We first import *ews.py* to load all the function definitions. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "from ews import *" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first step in the estimation is to generate a random game. For this example, we use 3 strategies and uniformly distributed payoffs." ] }, { "cell_type": "code", "collapsed": false, "input": [ "number_of_strategies = 3\n", "distribution_type = 0 # for uniform\n", "a_random_game = random_game(number_of_strategies, distribution_type)\n", "print a_random_game" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[[ 0.89150299 0.18478255 0.43155487]\n", " [ 0.0920854 0.80987834 0.04519806]\n", " [ 0.88729132 0.56049353 0.20090459]]\n" ] } ], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us create a vector of selection intensities, in order to compute the abundance curves. Inside this process, for every intensity of selection we will compute the transition matrix of the markov chain that describes the imitation process, and then compute the stationary distribution." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We use the default limits in variables LEFT_LIMIT and RIGHT_LIMIT:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "'Intensity of selection interval = {}'.format((10**LEFT_LIMIT, 10**RIGHT_LIMIT))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 11, "text": [ "'Intensity of selection interval = (0.001, 4.466835921509632)'" ] } ], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "intensity_vector = np.logspace(LEFT_LIMIT, RIGHT_LIMIT, num=100,\n", " endpoint=True)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We create an auxliary matrix that contains the abundances vector across the values of our intensity vector.\n", "\n", "Therefore, this matrix has as many columns as strategies in our game, and as many rows as values in *intensity_vector*" ] }, { "cell_type": "code", "collapsed": false, "input": [ "population_size = 30\n", "matrix = get_curves_truncating(intensity_vector, a_random_game,\n", " population_size,\n", " truncate=True)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "What are the dimensions of matrix?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "matrix.shape" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ "(96, 3)" ] } ], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that if *matrix* has lesss than 100 values, the graph has been truncated to avoid overflow. This happens when selection is strong enough and the stationary distribution becomes a singleton." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now count how many intersections are there for this case:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "count_intersections(matrix)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 15, "text": [ "0" ] } ], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And how many changes in the most abundant strategy" ] }, { "cell_type": "code", "collapsed": false, "input": [ "count_most_abundant_changes(matrix)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 16, "text": [ "0" ] } ], "prompt_number": 16 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we use the function in visualization.py to build a graph." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from visualization import plot_abundance" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "plot_abundance(matrix, intensity_vector)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAcQAAAEPCAYAAADccLRoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdYU2f7B/BvAkFWwDBlo6IC7qpVtCpqXVhxK1SLo3W0\n+qta21qtrThaxLfD19rXOrEWi7Z2CCq4EGttXcVRxYkFAUFFUASUkOT+/XFKJDKjQAK5P9d1riRn\n5T7rufOcnPMcERERGGOMMQMn1nUAjDHGmD7ghMgYY4yBEyJjjDEGgBMiY4wxBoATImOMMQaAEyJj\njDEGQA8T4qRJk/DRRx/p7PsnT54MGxsbdOvWrcywbdu2YeDAgTqIqvYcPXoU3t7eug6jziQkJMDN\nzU3XYTyzmt5euj7e6lpdbv+UlBSIxWKoVKo6+T72/KpMiJ6ennB0dERhYaG638aNG9GnT59aCUgk\nEkEkEtXKvKty9OhRHDx4ELdu3cLx48fLDB8/fjz27dtXrXlt2bIFPXv2rOkQn5tYLMaNGzfUn3v2\n7InLly/rMKKycnJyMGLECFhaWsLT0xNRUVFaTX/y5EkEBARAJpPB1tYWXbt2xZYtW2on2Dr2PNur\nvH1Sl8fbs9DX46q2Pc8Pl5r40VMf13tRURGmTJkCa2trODk54csvv6xymmrVEFUqFf773/8+d4DV\nVVNtBWj7yyw1NRWenp4wNTWtke9/HgqFotbmre9tMcycOROmpqa4c+cOtm3bhjfffBNJSUnVmvbP\nP/9Ev3790KdPHyQnJ+PevXtYu3Yt4uLiajlqxuqn2ixrdCk0NBTJycm4efMmDh8+jJUrV1ZdoaEq\neHp60ooVK8jGxobu379PREQbNmwgf39/IiL6559/SCQSkVKpVE/Tu3dv2rhxIxERRUREUPfu3Wnu\n3LnUuHFjat68OR07dow2b95Mbm5u5ODgQN9++6162kmTJtGMGTOof//+JJVKqXfv3pSamqoefunS\nJXr55ZfJxsaGWrVqRT/88IN62MSJE2nGjBk0ePBgsrCwoEOHDpVZnoyMDBo6dCjZ2NiQl5cXbdiw\ngYiINm7cSKampmRkZESWlpYUGhpaZtqIiAh66aWX1J9FIhF988031KJFC2rcuDHNnDmTiIiSkpI0\n5iWTyYiI6PHjxzRv3jxyd3cnR0dHmjFjBj169IiIiA4fPkwuLi4UHh5OTZo0oZCQEMrOzqYhQ4ZQ\n48aNycbGhnr27EkqlUq9HCNHjiR7e3tq2rQprV69Wh2XUqmkTz75hJo3b05SqZQ6d+5MaWlp1LNn\nTxKJRGRhYUGWlpb0ww8/0OHDh8nV1VU9bVJSEvXu3ZsaN25MrVu3pujoaI31+9Zbb9GQIUNIKpVS\n165dKTk5WT18zpw55ODgQFZWVtS2bVu6cOFCmXVYlfz8fDIxMaFr166p+4WEhNAHH3xQrel79OhB\ns2bNqnB4yfJ+/vnn5ODgQE5OThQREaEevnv3burQoQNZWVmRm5ubxn5Qsq9/++235O7uTnZ2dvTJ\nJ5+ohxcWFlJISAjJZDLy8fGh8PBwjXVb2TY7ceIEderUiaysrMjR0ZHeeeedSuMv4eHhQZ999hm1\na9eOrK2tady4cfT48eMy01W0T06aNIlmzpxZ4Tat7Hh7Wu/evWnRokXUvXt3srS0pKFDh9Ldu3fp\n1VdfJSsrK+rSpQulpKSoxz927Bh17tyZrK2tqUuXLvTHH3+oh0VERFCzZs1IKpVS06ZNadu2bXTp\n0iVq1KhRmWV42ubNm8nHx4ekUik1a9aM1q1bV2b9ffrpp2RnZ0eenp60bds2jWUoKbtK4qjOMU8k\nHHfz5s0jOzs7atasGa1Zs0ajbKwqLhcXl3L3y3Xr1pFEIiETExOytLSkwMDAcpe7vOOvomk9PDwo\nPDyc2rZtS6ampqRQKCgsLExdZvj6+tIvv/xCRM9WnhERhYeHk5OTE7m4uNCGDRtIJBJRcnIynTx5\nkhwdHdVlGRHRTz/9RO3bty93uZ6Vs7MzHThwQP35448/pqCgoEqnqVZCPHjwII0cOZIWLVpERFUn\nRH9/f9q0aRMRCTuUsbExbdmyhVQqFS1atIhcXFxo1qxZJJfLaf/+/SSVSqmgoICIhEJXKpXS0aNH\nqaioiGbPnq3eIfPz88nV1ZW2bNlCSqWSzpw5Q3Z2dpSUlKSe1traWn1glVcw9OzZk2bOnElFRUV0\n9uxZsre3p/j4eCIi2rJli8bO/7TyDo6hQ4fSgwcP6ObNm2Rvb09xcXEVzmvOnDk0bNgwys3NpYcP\nH9LQoUNpwYIFRCQcEMbGxvTBBx+QXC6nR48e0QcffEAzZswghUJBCoWCfv/9dyISDrwXXniBli1b\nRsXFxXTjxg1q1qwZ7du3j4iIVq5cSW3btqWrV68SEdG5c+fo3r176phLF3ilC1i5XE7NmzensLAw\n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\n", "text": [ "" ] } ], "prompt_number": 18 }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can re-run the cells up to here to generate another example. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##Using the functions judiciously" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use the functions in *ews.py*, for instance, to replicate **Figure 3A**." ] }, { "cell_type": "code", "collapsed": false, "input": [ "figure_3a_game = np.array([[0.18,0.91,0.85],[0.11,0.59,0.78],[0.75,0.11,0.54]])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 19 }, { "cell_type": "code", "collapsed": false, "input": [ "intensity_vector = np.logspace(LEFT_LIMIT, RIGHT_LIMIT, num=100,\n", " endpoint=True)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 20 }, { "cell_type": "code", "collapsed": false, "input": [ "auxiliary_matrix = get_curves_truncating(intensity_vector, figure_3a_game, population_size=30, truncate=True)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 21 }, { "cell_type": "code", "collapsed": false, "input": [ "plot_abundance(auxiliary_matrix, intensity_vector)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 22 }, { "cell_type": "markdown", "metadata": {}, "source": [ "##Unit Tests" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also run the unit tests." ] }, { "cell_type": "code", "collapsed": false, "input": [ "!python tests.py" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ ".." ] }, { "output_type": "stream", "stream": "stdout", "text": [ "......\r\n", "----------------------------------------------------------------------\r\n", "Ran 8 tests in 2.885s\r\n", "\r\n", "OK\r\n" ] } ], "prompt_number": 23 } ], "metadata": {} } ] }