source("https://tbb.bio.uu.nl/rdb/grindR/grind.R")
model <- function(t, state, parms) {
with(as.list(c(state,parms)), {
Ina <- Gna*m*m*m*h*(Ena-V)
Ik <- Gk*n*n*n*n*(Ek-V)
Ir <- gr*(Er-V)
dV <- (Ina+Ik+Ir)/C
dm <- a*(1-m)*(V+25)/(exp((V+25)/10) -1) - 4*m*exp(V/18)
dh <- b*(1-h)*exp(V/20) - h/(exp((V+30)/10)+1)
dn <- c*(1-n)*(V+10)/(exp((V+10)/10) -1) - 0.125*n*exp(V/80)
return(list(c(dV,dm,dh,dn)))
})
}
p <- c(a=0.12,b=0.01,c=0.01,Gna=120,Gk=36,gr=0.3,Ena=-115, Ek=12, Er=-10.59, C=1)
s <- c(V=0.5,m=0.06,h=0.16,n=0.3)
par(mfrow=c(3,2), mar=c(2.5,1,1.5,1))
run(tmax=60,ymin=30,ymax=-120,tstep=0.1,show=c("V"),ylab="V",xlab="Time (ms)")
title("Potentiaal (geen prikkel)")
abline(h=-5,lty=3)
run(tmax=60,ymin=0,ymax=1,tstep=0.1,show=c("h","m","n"),ylab="V",xlab="Time (ms)")
title("Toestand Na+/K+ kanalen")
# par(mfrow=c(2,1))
run(tmax=60,ymin=30,ymax=-120,tstep=0.1,show=c("V"),ylab="V",xlab="Time (ms)",
arrest=40, after="if(t==30)state[\"V\"]<- -5;if(t==20)state[\"V\"]<- 5;if(t==10)state[\"V\"]<- 2;if(t==40)state[\"V\"]<- 9;if(t==50)state[\"V\"]<- -7;")
title("Potentiaal (kleine prikkels)")
abline(h=-5,lty=3)
run(tmax=60,ymin=0,ymax=1,tstep=0.1,show=c("h","m","n"),ylab="V",xlab="Time (ms)",
arrest=40, after="if(t==30)state[\"V\"]<- -5;if(t==20)state[\"V\"]<- 5;if(t==10)state[\"V\"]<- 2;if(t==40)state[\"V\"]<- 9;if(t==50)state[\"V\"]<- -7;")
title("Toestand Na+/K+ kanalen")
# par(mfrow=c(2,1))
# run(tmax=60,ymin=30,ymax=-120,tstep=0.1,show=c("V"),ylab="V",xlab="Time (ms)",
# arrest=40, after="if(t==30)state[\"V\"]<- -9")
# run(tmax=60,ymin=0,ymax=1,tstep=0.1,show=c("h","m","n"),ylab="V",xlab="Time (ms)",
# arrest=40, after="if(t==30)state[\"V\"]<- -9")
# par(mfrow=c(2,1))
run(tmax=60,ymin=30,ymax=-90,tstep=0.1,show=c("V"),ylab="V",xlab="Time (ms)",
arrest=40, after="if(t==30)state[\"V\"]<- -13")
title("Potentiaal (sterke prikkel)")
abline(h=-13,lty=3)
run(tmax=60,ymin=0,ymax=1,tstep=0.1,show=c("h","m","n"),ylab="V",xlab="Time (ms)",
arrest=40, after="if(t==30)state[\"V\"]<- -13")
title("Toestand Na+/K+ kanalen")
#
# run(tmax=100,ymin=30,ymax=-120,tstep=0.1,show=c("V"),ylab="V",xlab="Time (ms)")
#
# run(tmax=20,ymin=0,ymax=1,tstep=0.1,show=c("h","m","n"),ylab="State of channels",xlab="Time (ms)")
#
# f <- run(ymin=1,ymax=1e5,log="y",traject=T,tstep=0.1)
#
# p <- c(N=1e5,a1=0.3,a2=0.5,a3=0.1,d=0.1,h=100,k=0.0001,p=1,r=1.5)
# plane(ymax=1e5,xmax=1e5,ymin=0.01,xmin=0.01,log="xy")
# s <- c(I=10000,E1=10000,E2=0,E3=0)
# f <- run(ymin=1,ymax=1e5,log="y",traject=T,tstep=0.1)
# s<- newton(c(I=10000,E1=10000,E2=0,E3=0),plot=T)
# continue(s,x="a1",y="I",xmax=1,xmin=0,ymax=100000)
# continue(s,x="a1",y="E1",xmax=1,xmin=0,ymax=150000)