// granule.tem
// Template for three-compartment granule cell model
// Andrew Davison, The Babraham Institute, 2000
begintemplate Gran
public soma, periph, deep, AMPAr, NMDAr, spiketimes, spikecount
create soma, periph, deep, s2d, s2p
objref AMPAr, NMDAr, spiketimes, spikecount
proc init() { local Len, Erest, RM, p, q, Atotal, gsp, gsd, AMPAtau, NMDAalpha, NMDAbeta, Erev, rsd, rsp
create soma, periph, deep, s2d, s2p
spiketimes = new Vector()
lastspikecount = 0
Erest = -65 // mV
Atotal = 8353 // um2
gsp = 3.08e-10 // S/cm2
gsd = 4.34e-10
RM = 120000 // ohm.cm2
Len = 50
p = 0.0136
q = 0.308
rsd = 1/(gsd*Atotal)
rsp = 1/(gsp*Atotal)
NMDAalpha = 0.0163 // ms-1
NMDAbeta = 0.00292 // ms-1
AMPAtau = 5.5 // ms
Erev = 0 // mV
soma {
L = Len
diam = p*Atotal/(PI*Len)
Ra = PI/(4*Len*Atotal)
insert pas
e_pas = Erest // reversal potential mV
g_pas = 1/RM // membrane conductance S/cm2
insert nagrantab
insert kslowtab
insert kM
insert kA
gnabar_nagrantab = 0.1611 // S/cm2
gkbar_kslowtab = 0.1313
gkbar_kM = 0.1334
gkbar_kA = 0.0088
}
periph {
L = Len
diam = q*Atotal/(PI*Len)
Ra = PI/(4*Len*Atotal)
insert pas
e_pas = Erest
g_pas = 1/RM
insert nagrantab
insert kslowtab
gnabar_nagrantab = 0.1355
gkbar_kslowtab = 0.0243
AMPAr = new ExpSyn(0.5)
AMPAr.tau = AMPAtau
AMPAr.e = Erev
NMDAr = new NMDA(0.5)
NMDAr.Alpha = NMDAalpha
NMDAr.Beta = NMDAbeta
NMDAr.e = Erev
spikecount = new APCount(0.5)
spikecount.thresh = -30
spikecount.record(spiketimes)
}
deep {
L = Len
diam = (1-p-q)*Atotal/(PI*Len)
Ra = PI/(4*Len*Atotal)
insert pas
e_pas = Erest
g_pas = 1/RM
}
s2d {
diam = 1
Ra = PI*diam*diam/(4*Len*Atotal) * ( 1/gsd )
L = 1
}
s2p {
diam = 1
Ra = PI*diam*diam/(4*Len*Atotal) * ( 1/gsp )
L = 1
}
soma connect s2p(0), 0
s2p connect periph(0), 1
soma connect s2d(0), 1
s2d connect deep(0), 1
// set reversal potentials, etc.
forall if (ismembrane("na_ion")) {
ena = 45 // mV
}
forall if (ismembrane("k_ion")) {
ek = -70 // mV
}
}
endtemplate Gran
|