// CA1 Model //
// Primary Model - Kv1 //
load_file("nrngui.hoc")
cvode_active(1)
xopen("geo9068802.hoc") //geometry file
xopen("fixnseg.hoc")
dist=7
numbasal=70
Rm = 35000
Rm_node=1000
Cm = 1
RaAll= 150
RaAx = 50
Vrest = -70
gna = 0.09
AXONM = 3
gkdr =0.03
celsius = 31.0
ka = 0.001
ghd=0.00000005
gkm= 0.02
gcat= 0.0001
gahp=0.00001
objref g, b,c, stim, s, rsyn, nc, m, gt, gk
//topological parameters//
axonnodes=17
paranodes1=33
paranodes2=33
axoninter=17
//electrical parameters//
rhoa=0.5e6 //Ohm-um//
mycm=0.1 //uF/cm2/lamella membrane//
mygm=0.001 //S/cm2/lamella membrane//
paralength1=3
nodelength=1.0
space_p1=0.0018
space_p2=0.008
space_i=0.008
fiberD=0.65
axonD=0.5
nodeD=0.234
paraD1=0.5
paraD2=0.5
paralength2=5
interlength=83
nl=15
Rpx=5.8e+05
Rpn0=(rhoa*.01)/(PI*((((nodeD/2)+space_p1)^2)-((nodeD/2)^2)))
for i=0,axonnodes-1 {
node[i]{
nseg=1
diam=nodeD
L=nodelength
Ra=50
cm=1
insert km gbar_km= 0.2
insert Kv1 gbar_Kv1= 0.07
insert nax gbar_nax=gna*AXONM*3
insert pas
g_pas=0.001
e_pas=-70
insert extracellular xraxial=Rpn0 xg=1e10 xc=0
insert chanrhod
channel_density_chanrhod=2.8e010
}
}
for i=0, paranodes1-1 {
MYSA[i]{
nseg=1
diam=paraD1
L=paralength1
Ra=50
cm=2*0.468
insert pas
g_pas=0.001*0.468
e_pas=-70
insert extracellular xraxial=Rpn0 xg=mygm/(nl*2) xc=mycm/(nl*2)
insert km gbar_km= 0.0008
insert Kv1 gbar_Kv1= 0.07
insert nax gbar_nax= 0.04
insert chanrhod
channel_density_chanrhod=2.8e010
}
}
for i=0, paranodes2-1 {
FLUT[i]{
nseg=1
diam=paraD2
L=paralength2
Ra=50
cm=2*0.668
insert pas
g_pas=0.0001*0.668
e_pas=-70
insert extracellular xraxial=Rpx xg=mygm/(nl*2) xc=mycm/(nl*2)
insert km gbar_km= 0.0008
insert nax gbar_nax=0.04
insert Kv1 gbar_Kv1=0.2
insert chanrhod
channel_density_chanrhod=2.8e010
}
}
for i=0, axoninter-1 {
STIN[i]{
nseg=3
diam=axonD
L=interlength
Ra=50
cm=2*0.668
insert pas
g_pas=0.0001*0.668
e_pas=-70
insert extracellular xraxial=Rpx xg=mygm/(nl*2) xc=mycm/(nl*2)
insert km gbar_km= 0.0008
insert nax gbar_nax= 0.04
insert Kv1 gbar_Kv1= 0.08
insert chanrhod
channel_density_chanrhod=2.8e010
}
}
forsec "hill" {insert pas e_pas=Vrest g_pas=1/Rm Ra=RaAll cm=Cm}
forsec "ais" {insert pas e_pas=Vrest g_pas =1/Rm Ra=RaAx cm=Cm}
forsec "soma" {insert pas e_pas=Vrest g_pas =1/Rm Ra=RaAll cm=Cm}
forsec "dendrite"{insert pas e_pas=Vrest g_pas =1/Rm Ra=RaAll cm=Cm}
forsec "user5" {insert pas e_pas=Vrest g_pas =1/Rm Ra=RaAll cm=Cm}
access soma
freq=50
distance()
geom_nseg()
forsec "hill" {
insert km gbar_km= 0
insert na3 gbar_na3=gna*AXONM
insert kdr gkdrbar_kdr=0.001
insert chanrhod
channel_density_chanrhod=1.3e011
}
forsec "ais" {
insert km gbar_km= 0.04
insert nax gbar_nax= gna*AXONM*13
insert kdr gkdrbar_kdr=0.001
//insert Kv1 gbar_Kv1= 0.0007
insert chanrhod
channel_density_chanrhod=1.3e011
}
forsec "soma" {
insert km gbar_km=0
insert hd ghdbar_hd=0
insert na3 gbar_na3=gna*AXONM
insert kdr gkdrbar_kdr= 0.001
insert kap gkabar_kap = ka
insert cat gcatbar_cat=gcat
insert cacum tau_cacum=100 depth_cacum=diam/2
insert KahpM95 gbar_KahpM95 = gahp
//insert Kv1 gbar_Kv1= 0.0007
insert chanrhod
channel_density_chanrhod=1.3e011
}
for i=0, numbasal-1 dendrite[i] {
insert na3 gbar_na3=0
insert cat gcatbar_cat=gcat
insert cacum tau_cacum=100 depth_cacum=diam/2
insert KahpM95 gbar_KahpM95 = gahp
insert chanrhod
channel_density_chanrhod=1.3e011
}
forsec "apical_dendrite" {
insert hd ghdbar_hd=ghd
insert na3 gbar_na3= 0.02
insert kdr gkdrbar_kdr= gkdr
insert kap gkabar_kap=0
insert kad gkabar_kad=0
insert cacum tau_cacum=100 depth_cacum=diam/2
insert KahpM95 gbar_KahpM95 = gahp
insert cat gcatbar_cat=gcat
insert chanrhod
channel_density_chanrhod=1.3e011
for (x,0) { xdist = distance(x)
ghdbar_hd(x) = ghd*(1+3*xdist/100)
if (xdist > 100){
gkabar_kad(x) = ka*(1+xdist/100)
} else {
gkabar_kap(x) = ka*(1+xdist/100)
}
}
}
forsec "user5" {
insert hd ghdbar_hd=ghd
insert na3 gbar_na3=0.02
insert kdr gkdrbar_kdr= gkdr
insert kap gkabar_kap=0
insert kad gkabar_kad=0
insert cacum tau_cacum=100 depth_cacum=diam/2
insert cat gcatbar_cat=gcat
insert KahpM95 gbar_KahpM95 = gahp
insert chanrhod
channel_density_chanrhod=1.3e011
for (x,0) { xdist = distance(x)
ghdbar_hd(x) = ghd*(1+3*xdist/100)
if (xdist > 100){
gkabar_kad(x) = ka*(1+xdist/100)
} else {
gkabar_kap(x) = ka*(1+xdist/100)
}
}
}
proc init() {
t=0
forall {
v=Vrest
if (ismembrane("nax") || ismembrane("na3")) {ena=55}
if (ismembrane("KahpM95") || ismembrane("kap") || ismembrane("kad")) {ek=-90}
if (ismembrane("hd") ) {ehd_hd=-30}
}
finitialize(Vrest)
fcurrent()
forall {
for (x) {
if (ismembrane("na3")||ismembrane("nax")){e_pas(x)=v(x)+(ina(x)+ik(x))/g_pas(x)}
if (ismembrane("hd")) {e_pas(x)=e_pas(x)+i_hd(x)/g_pas(x)}
if (ismembrane("cat")){e_pas(x)=e_pas(x)+ica(x)/g_pas(x)}
}
}
}
//returns total surface area
//proc totalarea() { local sum
//finitialize()
//sum = 0
//forall for (x,0) sum += area(x)
//print "total surface area = ", sum, " um2"
//}
//totalarea()