// genesis
// this is a copy of the channels of the granule cell model
// used also for the axons in Maex & De Schutter 2007
/*********************************************************************
** The current equations themselves
*********************************************************************/
float offset = 0.010 // 0.0 // 0.010
function make_Axon_chans
float temperature = 5
int i, cdivs
float zinf, ztau, c, dc, cmin, cmax
float x, dx, y
float a, b
/* The folowing variables are temporary (not temperature) variables
used to speed up computations */
float mintau
float tau
float temp1
float temp2
/* Equations specific to the Granule cell, made by CP */
/* Inactivating Na current */
create tabchannel Axon_InNa
setfield Axon_InNa Ek {ENa} Gbar 70 Ik 0 Gk 0 Xpower 3 Ypower 1 \
Zpower 0
call Axon_InNa TABCREATE X {tab_xdivs} {tab_xmin} {tab_xmax}
x = {tab_xmin} - {offset}
dx = ({tab_xmax} - {tab_xmin})/{tab_xdivs}
mintau = (1e-3*0.05)
temp1 = (1e3*1.5)
openfile Axon_InNa_a_max_37.test w
openfile Axon_InNa_a_tau_37.test w
for (i = 0; i <= ({tab_xdivs}); i = i + 1)
temp2 = ((x) + 39e-3) // instead of ((x) + 39e-3)
a = (temp1)*({exp {0.081e3*(temp2)}})
b = (temp1)*({exp {-0.066e3*(temp2)}})
tau = 1/(a + b)
if (tau < (mintau)) // tau_min is 0.05*5e-3
setfield Axon_InNa X_A->table[{i}] {mintau / temperature}
else
setfield Axon_InNa X_A->table[{i}] {tau / temperature}
end
//Xinf
setfield Axon_InNa X_B->table[{i}] {a*tau}
writefile Axon_InNa_a_max_37.test {x} {getfield Axon_InNa X_B->table[{i}]}
writefile Axon_InNa_a_tau_37.test {x} {getfield Axon_InNa X_A->table[{i}]}
x = x + dx
end
tweaktau Axon_InNa X
setfield Axon_InNa X_A->calc_mode 1 X_B->calc_mode 1
closefile Axon_InNa_a_max_37.test
closefile Axon_InNa_a_tau_37.test
call Axon_InNa TABCREATE Y {tab_xdivs} {tab_xmin} {tab_xmax}
x = {tab_xmin} - {offset}
mintau = (1e-3*0.225)
temp1 = (1e3*0.12)
openfile Axon_InNa_i_max_37.test w
openfile Axon_InNa_i_tau_37.test w
// trying to increase threshold
for (i = 0; i <= ({tab_xdivs}); i = i + 1)
temp2 = (0.089e3)*(((x) + 50e-3)) // instead of (0.089e3)*(((x) + 50e-3))
a = (temp1)*({exp {-(temp2)}})
b = (temp1)*({exp {temp2}})
tau = 1/(a + b)
if (tau < mintau) // tau_min is 0.225*5e-3
setfield Axon_InNa Y_A->table[{i}] {mintau / temperature}
else
//Xinf
setfield Axon_InNa Y_A->table[{i}] {tau / temperature}
end
setfield Axon_InNa Y_B->table[{i}] {a*tau}
writefile Axon_InNa_i_max_37.test {x} {getfield Axon_InNa Y_B->table[{i}]}
writefile Axon_InNa_i_tau_37.test {x} {getfield Axon_InNa Y_A->table[{i}]}
x = x + dx
end
tweaktau Axon_InNa Y
setfield Axon_InNa Y_A->calc_mode 1 Y_B->calc_mode 1
closefile Axon_InNa_i_max_37.test
closefile Axon_InNa_i_tau_37.test
call Axon_InNa TABSAVE tabAxonInNa.dat
call Axon_InNa TABFILL X 3000 0
call Axon_InNa TABFILL Y 3000 0
// Delayed Rectifier K current
create tabchannel Axon_KDr
setfield Axon_KDr Ek {EK} Gbar 19 Ik 0 Gk 0 Xpower 4 Ypower 1 \
Zpower 0
call Axon_KDr TABCREATE X {tab_xdivs} {tab_xmin} {tab_xmax}
x = {tab_xmin} - {offset}
dx = ({tab_xmax} - {tab_xmin})/{tab_xdivs}
temp1 = 1e3*0.17
openfile Axon_Kdr_a_max.test w
openfile Axon_Kdr_a_tau.test w
for (i = 0; i <= ({tab_xdivs}); i = i + 1)
temp2 = x + 38e-3
a = temp1*({exp {0.073e3*(temp2)}})
b = temp1*({exp {-0.018e3*(temp2)}})
setfield Axon_KDr X_A->table[{i}] {temperature * a}
setfield Axon_KDr X_B->table[{i}] {temperature * (a + b)}
writefile Axon_Kdr_a_tau.test {x} {1 / (temperature * (a + b))}
writefile Axon_Kdr_a_max.test {x} {a / (a + b)}
x = x + dx
end
setfield Axon_KDr X_A->calc_mode 1 X_B->calc_mode 1
closefile Axon_Kdr_a_max.test
closefile Axon_Kdr_a_tau.test
call Axon_KDr TABCREATE Y {tab_xdivs} {tab_xmin} {tab_xmax}
x = {tab_xmin} - {offset}
openfile Axon_KDr_i_max.test w
openfile Axon_KDr_i_tau.test w
for (i = 0; i <= ({tab_xdivs}); i = i + 1)
if (x > -0.046)
a = 0.76
else a = 1e3*(0.0007 + 0.000065*({exp {-0.08e3*(x + 46e-3)}}))
end
b = 1e3*(110e-5)/(1 + ({exp {-0.0807e3*(x + 44e-3)}}))
setfield Axon_KDr Y_A->table[{i}] {temperature * a}
setfield Axon_KDr Y_B->table[{i}] {temperature * (a + b)}
writefile Axon_KDr_i_tau.test {x} {1 / (temperature * (a + b))}
writefile Axon_KDr_i_max.test {x} {a / (a + b)}
x = x + dx
end
setfield Axon_KDr Y_A->calc_mode 1 Y_B->calc_mode 1
closefile Axon_KDr_i_tau.test
closefile Axon_KDr_i_max.test
call Axon_KDr TABSAVE tabAxonKDr.dat
call Axon_KDr TABFILL X 3000 0
call Axon_KDr TABFILL Y 3000 0
end
|