{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Calculate the frequency of daisy drive alleles for different systems and release sizes.\n", "

\n", "Select values for the following:\n", "* drive_init - the number of organisms to be released.\n", "

\n", "* C - either 'Single release' or 'Repeated releases every generation.' Repeated release option releases drive_init organisms.\n", "

\n", "* n - the number \n", "of elements in the daisy drive ranging from 1 element (A) to 6 elements (F->E->D->C->B->A)\n", "

\n", "* payload_cost - the fitness cost of the payload in element A. Select none (0.02), moderate (0.1), or severe (0.4)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "num_elements = {'A':1, 'B->A':2, 'C->B->A':3, 'D->C->B->A':4, 'E->D->C->B->A':5, 'F->E->D->C->B->A':6}\n", "#print num_elements.keys()\n", "\n", "cost1_elements = {'none':0, 'minor':0.05, 'moderate':0.1}\n", "#print cost1_elements.keys()\n", "\n", "cost2_elements = {'none':0.02, 'moderate':0.01, 'severe':0.4}\n", "#print cost2_elements.keys()\n", "\n", "driveinit_elements = {\n", "'One per thousand wild organisms': 0.001,\n", "'One per hundred wild organisms': 0.01,\n", "'One per ten wild organisms':0.1,\n", "'One for every wild organism':1}\n", "#print driveinit_elements.keys()\n", "\n", "#repeated seeding frequency, or 0 if you don’t want repeated seeding\n", "C_elements = {'Repeated seeding':1, 'No repeated seeding':0}" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from IPython.display import display\n", "from IPython.display import HTML\n", "import IPython.core.display as di # Example: di.display_html('

%s:

' % str, raw=True)\n", "\n", "# This line will hide code by default when the notebook is exported as HTML\n", "di.display_html('', raw=True)\n", "\n", "# This line will add a button to toggle visibility of code blocks, for use with the HTML export version\n", "#di.display_html('''''', raw=True)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import percache\n", "cache = percache.Cache(\"cache.txt\")\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "@cache\n", "def daisy_drive(n, cost2, P, C, drive_init, t_max):\n", " # create file with the input parameters for the matlab function\n", " #s = [n, cost1, cost2, P, C, drive_init, t_max]\n", " \n", " s = [n, cost2, P, C, drive_init, t_max]\n", " print s\n", " import csv\n", " with open('params.txt', 'w') as outfile:\n", " writer = csv.writer(outfile)\n", " writer.writerow(s)\n", "\n", " # execute matlab function (bash)\n", " !rm T.txt\n", " !rm Y.txt\n", " !/Applications/MATLAB_R2016a.app/bin/matlab -nodesktop -nosplash -r \"cd('/Users/erika/daisy_drive');simulate_applet2()\"\n", "\n", " # read in matlab output files\n", " from numpy import genfromtxt\n", " T = genfromtxt('T.txt', delimiter=',')\n", " Y = genfromtxt('Y.txt', delimiter=',')\n", " return(T,Y)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def plot(n, payload_cost, C, drive_init):\n", " n = num_elements[n]\n", " cost2 = cost2_elements[payload_cost]\n", " drive_init = driveinit_elements[drive_init]\n", " \n", " fig, ax = plt.subplots(figsize=(4, 3),\n", " subplot_kw={'axisbg':'#EEEEEE',\n", " 'axisbelow':True})\n", " ax.grid(color='w', linewidth=2, linestyle='solid')\n", " \n", " if C == 'Repeated seeding':\n", " C = drive_init\n", " else:\n", " C = 0\n", " \n", " (T,Y) = daisy_drive(n, cost2, 1, C, drive_init, 200)\n", "\n", " for i in range(0, n):\n", " if n > 1:\n", " Y_i = [b[i] for b in Y]\n", " else:\n", " Y_i = Y\n", " ax.plot(T, Y_i,lw=5, alpha=0.4)\n", " #ax.set_xlim(0, 10)\n", " #ax.set_ylim(-1.1, 1.1)\n", " return fig" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# hide silly little matplotlib warning\n", "import warnings\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
\n", " \n", "
Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
D->C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costnone\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costmoderate\" style=\"display:none\">\n", " \n", "
\n", " \n", "
E->D->C->B->Apayload_costsevere\" style=\"display:none\">\n", " \n", "
\n", " \n", " C: No repeated seeding: Repeated seeding: \n", "
\n", "drive_init: One per ten wild organisms: One per hundred wild organisms: One per thousand wild organisms: One for every wild organism: \n", "
\n", "n: A: B->A: A\" onchange=\"interactUpdate(this.parentNode);\"> C->B->A: B->A\" onchange=\"interactUpdate(this.parentNode);\"> D->C->B->A: C->B->A\" onchange=\"interactUpdate(this.parentNode);\"> E->D->C->B->A: D->C->B->A\" onchange=\"interactUpdate(this.parentNode);\"> F->E->D->C->B->A: E->D->C->B->A\" onchange=\"interactUpdate(this.parentNode);\">\n", "
\n", "payload_cost: none: moderate: severe: \n", "
\n", " " ], "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from ipywidgets import StaticInteract, RangeWidget, RadioWidget\n", "\n", "StaticInteract(plot,\n", " n=RadioWidget(['A', 'B->A', 'C->B->A', 'D->C->B->A', 'E->D->C->B->A', 'F->E->D->C->B->A']),\n", " payload_cost=RadioWidget(cost2_elements.keys()),\n", " C=RadioWidget(C_elements.keys()),\n", " drive_init=RadioWidget(driveinit_elements.keys()) )" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "cache.close()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.11" } }, "nbformat": 4, "nbformat_minor": 0 }