# Modified Morris-Lecar model from Prescott (2008, 2008) + T-current from Rubin (2004)+h-current from Izhikevich
# modified from ml_salka.ode

#stim used in experiments, mean=0, std=0.1
table Iext stim.tab
#Iext(t)=0

nd=normal(0,0.4)
par dc_noise=17.0057
aux noise=dc_noise+nd

dV/dt = (i_dc(t)+amp*Iext(t)+dc_noise+nd-gna*minf(V)*(V-Vna)-gk*y*(V-VK)-gl*(V-Vl)-itf(V,mtinf(V),h)-gh*hh*(v-Vh))/c
dy/dt = phi_y*(yinf(V)-y)/tauy(V)
dh/dt = qht*(htinf(V)-h)/tauht(V)
dhh/dt=(hhinf(V)-hh)/tauhh(V)
par c=2

# HERE IS EVERYTHING YOU NEED TO KNOW ABOUT THE STIMULuS

i_dc(t)=idc
# idc is -20.89 voor -80, -2 voor -70, 16.27 voor -60, 31.43 voor -50
par idc=31
par amp=200
aux stim=i_dc(t)+amp*Iext(t)

init V=-50, y=0, h=0, hh=0.03

# FAST INWARD CURRENT (INa or activation variable)
# This is assumed to activate instantaneously with changes in voltage
# voltage-dependent activation curve is described by m
minf(V)=.5*(1+tanh((V-beta_m)/gamma_m))
# maximal conductance and reversal potential
par beta_m=-1.2,gamma_m=18
par gna=20,vna=50

# DELAYED RECTIFIER CURRENT (IKdr or recovery variable)
# this current activates more slowly than INa
# In this code, activation of IKdr is controlled by y
yinf(V)=.5*(1+tanh((V-beta_y)/gamma_y))
tauy(V)=1/cosh((V-beta_y)/(2*gamma_y))
# in the 2D model, varying beta_w shifts the w activation curve (w=y here) and can convert the neuron between class 1, 2, and 3 
par beta_y=0, gamma_y=10
# maximal conductance and reversal potential
par gk=20, vk=-100, phi_y=0.15

# LEAK CURRENT (Il)
# just a passive leak conductance
par gl=2, vl=-70

# T CURRENT (IT)
itf(v,mt,ht)=gtbar*mt^2*ht*v
# fast (instantaneous) activation
mtinf(v)  = 1/(1+exp(-(v+60)/6.2)) 
# slow inactivation
htinf(v)  = 1/(1+exp((v+84)/4))
tauht(v)=(28+apt*exp((v+25)/(-10.5)))
par gtbar=20,qht=2.5,apt=1

# h CURRENT (Ih)
hhinf(v)=1/(1+exp((Vhhalf-v)/k))
tauhh(v)=Cbase+Camp*exp(-(Vm-v)^2/sh^2)
par Cbase=10, Camp=50, sh=20, Vhhalf=-82, k=-9, Vm=-75, Vh=-30, gh=1.5


# following parameters control duration of simulation and axes of default plot
@ total=303000,xlo=0,xhi=6000,ylo=-100,yhi=50
@ meth=euler, dt=0.1, bounds=1000     
@ MAXSTOR=3030010
done