From bf208f932b891b0bf1f014dc3805169c357f28ed Mon Sep 17 00:00:00 2001 From: amidlige <31928641+amidlige@users.noreply.github.com> Date: Thu, 9 Nov 2017 14:57:03 -0500 Subject: [PATCH 1/5] Question 1 --- tutorial10part1.py | 57 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 tutorial10part1.py diff --git a/tutorial10part1.py b/tutorial10part1.py new file mode 100644 index 0000000..9d3efa9 --- /dev/null +++ b/tutorial10part1.py @@ -0,0 +1,57 @@ +import pandas +import numpy +import scipy +import scipy.integrate as spint +from plotnine import * + +r_list=[-0.1,0.1,0.4,0.8,1] + +def growthRate(y,to,r,K): + N=y[0] + dNdt=r* (1-N/K)* N + + return [dNdt] + +for i in r_list: + params=(i,100) + N0=10 + times=range(0,1000) + +modelSim=spint.odeint(func=growthRate,y0=N0,t=times,args=params) +modelOutput=pandas.DataFrame({"t":times,"N":modelSim[:,0]}) +a=ggplot(modelOutput,aes(x="t",y="N"))+geom_line()+theme_classic() +a.draw() + +K_list=[10,50,100] +def carryingCapacity(y,to,r,K): + N=y[0] + dNdt=r* (1-N/K)* N + + return [dNdt] + +for i in K_list: + params=(0.2,i) + N0=1 + times=range(0,1000) + +modelSim=spint.odeint(func=carryingCapacity,y0=N0,t=times,args=params) +modelOutput=pandas.DataFrame({"t":times,"N":modelSim[:,0]}) +b=ggplot(modelOutput,aes(x="t",y="N"))+geom_line()+theme_classic() +b.draw() + +N_list=[1,50,100] +def popSize(y,to,r,K): + N=y[0] + dNdt=r* (1-N/K)* N + + return [dNdt] + +for i in N_list: + params=(0.1,50) + N0=i + times=range(0,1000) + +modelSim=spint.odeint(func=popSize,y0=N0,t=times,args=params) +modelOutput=pandas.DataFrame({"t":times,"N":modelSim[:,0]}) +c=ggplot(modelOutput,aes(x="t",y="N"))+geom_line()+theme_classic() +c.draw From 974e6d6b3733ebe8e54aecdb9495ffcea3c0111f Mon Sep 17 00:00:00 2001 From: amidlige <31928641+amidlige@users.noreply.github.com> Date: Thu, 9 Nov 2017 14:57:19 -0500 Subject: [PATCH 2/5] Add files via upload --- tutorial10part2.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 tutorial10part2.py diff --git a/tutorial10part2.py b/tutorial10part2.py new file mode 100644 index 0000000..cae5de1 --- /dev/null +++ b/tutorial10part2.py @@ -0,0 +1,37 @@ +import pandas +import numpy +import scipy +import scipy.integrate as spint +from plotnine import * + +beta=[0.0005,0.005,0.0001,0.00005,0.0001,0.0002,0.0001] +gamma=[0.05,0.5,0.1,0.1,0.05,0.05,0.06] +params_dict = {} +for i in range(len(beta)): + params_dict[beta[i]] = gamma[i] + +def disTrans(y, t, beta, gamma): + S=y + I=y + R=y + dSdt = -beta * S * I / N + dIdt = beta * S * I / N - gamma * I + dRdt = gamma * I + return dSdt + return dIdt + return dRdt + +for i in params_dict.keys(): + params=(i,params_dict[i]) + S0=999 + I0=1 + R0=0 + times=range(0,500) + + y0=S0, I0, R0 + modelSim=spint.odeint(func=disTrans,y0=S0 ,t=times,args=params) + modelOutput=pandas.DataFrame({"t":times,"y":modelSim[:,0]}) + +print modelOutput +g=ggplot(modelOutput,aes(x="t",y="y"))+geom_line()+theme_classic() +g.draw() \ No newline at end of file From e28496bae5926abc32d7496c4a150abf0f7a417d Mon Sep 17 00:00:00 2001 From: amidlige <31928641+amidlige@users.noreply.github.com> Date: Thu, 9 Nov 2017 14:59:28 -0500 Subject: [PATCH 3/5] Question 2 --- tutorial10part2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorial10part2.py b/tutorial10part2.py index cae5de1..7b9c5fe 100644 --- a/tutorial10part2.py +++ b/tutorial10part2.py @@ -29,7 +29,7 @@ def disTrans(y, t, beta, gamma): times=range(0,500) y0=S0, I0, R0 - modelSim=spint.odeint(func=disTrans,y0=S0 ,t=times,args=params) + modelSim=spint.odeint(func=disTrans,y0=(S0,I0,R0),t=times,args=params) modelOutput=pandas.DataFrame({"t":times,"y":modelSim[:,0]}) print modelOutput From 49d1d023445dce42d66a7131c921b1a5f4f7e752 Mon Sep 17 00:00:00 2001 From: amidlige <31928641+amidlige@users.noreply.github.com> Date: Thu, 9 Nov 2017 15:39:06 -0500 Subject: [PATCH 4/5] Question2 --- tutorial10part2.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/tutorial10part2.py b/tutorial10part2.py index 7b9c5fe..dcd71fc 100644 --- a/tutorial10part2.py +++ b/tutorial10part2.py @@ -14,9 +14,11 @@ def disTrans(y, t, beta, gamma): S=y I=y R=y + N=1000 dSdt = -beta * S * I / N dIdt = beta * S * I / N - gamma * I dRdt = gamma * I + return dSdt return dIdt return dRdt @@ -28,10 +30,12 @@ def disTrans(y, t, beta, gamma): R0=0 times=range(0,500) - y0=S0, I0, R0 - modelSim=spint.odeint(func=disTrans,y0=(S0,I0,R0),t=times,args=params) - modelOutput=pandas.DataFrame({"t":times,"y":modelSim[:,0]}) + modelSim=spint.odeint(func=disTrans,y0=S0,t=times,args=params) + modelSim2=spint.odeint(func=disTrans,y0=I0,t=times,args=params) + modelSim3=spint.odeint(func=disTrans,y0=R0,t=times,args=params) + modelOutput=pandas.DataFrame({"t":times,"S":modelSim[:,0],"I":modelSim2[:,0],"R":modelSim3[:,0]}) print modelOutput -g=ggplot(modelOutput,aes(x="t",y="y"))+geom_line()+theme_classic() -g.draw() \ No newline at end of file + +a=ggplot(modelOutput,aes(x="t",y="y0"))+geom_line(aes(x="t",y="S"),color='blue')+geom_line(aes(x="t",y="I"),color='red')+geom_line(aes(x="t",y="R"),color='green')+theme_classic() +a.draw() \ No newline at end of file From a397750701009c3888027c53aa616b5adc933ac9 Mon Sep 17 00:00:00 2001 From: amidlige <31928641+amidlige@users.noreply.github.com> Date: Thu, 9 Nov 2017 15:59:22 -0500 Subject: [PATCH 5/5] final Question2 --- tutorial10part2.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/tutorial10part2.py b/tutorial10part2.py index dcd71fc..b4dc72c 100644 --- a/tutorial10part2.py +++ b/tutorial10part2.py @@ -38,4 +38,17 @@ def disTrans(y, t, beta, gamma): print modelOutput a=ggplot(modelOutput,aes(x="t",y="y0"))+geom_line(aes(x="t",y="S"),color='blue')+geom_line(aes(x="t",y="I"),color='red')+geom_line(aes(x="t",y="R"),color='green')+theme_classic() -a.draw() \ No newline at end of file +a.draw() + +for i in I.modelOutput: + incidence=i-(i-1) + +for i in modelOutput: + prevalence= I(i) / (S(i)+ I(i)+ R(i)) + +for i in modelOutput: + percentAffected= (I(i)+ S(i)) / (S(i)+ I(i)+ R(i)) + +for i in modelOutput: + reproductionNumber= beta[i]* (S(i)+ I(i)+ R(i)) / gamma[i] + \ No newline at end of file