begintemplate GranuleCell
ndend1=4
ndend2=4
public pre_list, connect2target, subsets, is_art, is_connected
public vbc2gc, vmc2gc, vhc2gc, vgc2bc, vbc2bc, vmc2bc, vhc2bc, vgc2mc, vbc2mc, vmc2mc, vhc2mc, vgc2hc, vmc2hc
public soma, gcdend1, gcdend2
public all, gcldend, pdend, mdend, ddend
nst=10
objectvar stim[nst]
double stimdur[nst], stimdel[nst], stimamp[nst]
public stim, stimdur, stimamp, stimdel
create soma, gcdend1[ndend1], gcdend2[ndend2]
objref pre_list
proc init() {
pre_list = new List()
subsets()
gctemp()
synapse()
}
objref all, gcldend, pdend, mdend, ddend
proc subsets(){ local i
objref all, gcldend, pdend, mdend, ddend
all = new SectionList()
soma all.append()
for i=0, 3 gcdend1 [i] all.append()
for i=0, 3 gcdend2 [i] all.append()
gcldend = new SectionList()
gcdend1 [0] gcldend.append()
gcdend2 [0] gcldend.append()
pdend = new SectionList()
gcdend1 [1] pdend.append()
gcdend2 [1] pdend.append()
mdend = new SectionList()
gcdend1 [2] mdend.append()
gcdend2 [2] mdend.append()
ddend = new SectionList()
gcdend1 [3] ddend.append()
gcdend2 [3] ddend.append()
}
proc gctemp() {
soma {nseg=1 L=16.8 diam=16.8} // changed L & diam
gcdend1 [0] {nseg=1 L=50 diam=3}
for i = 1, 3 gcdend1 [i] {nseg=1 L=150 diam=3}
gcdend2 [0] {nseg=1 L=50 diam=3}
for i = 1, 3 gcdend2 [i] {nseg=1 L=150 diam=3}
forsec all {
insert ccanl
catau_ccanl = 10
caiinf_ccanl = 5.e-6
Ra=210
}
soma {
cm=1
insert ichan2 //ildikos ichan
gnatbar_ichan2=0.12 //original 0.030 to .055
gkfbar_ichan2=0.016 //original 0.015
gksbar_ichan2=0.006
gl_ichan2 = 0.00004
insert borgka
gkabar_borgka=0.012
insert nca // HAV-N- Ca channel
gncabar_nca=0.002 // check to modify- original 0.004
insert lca
glcabar_lca=0.005
insert cat
gcatbar_cat=0.000037
insert gskch
gskbar_gskch=0.001
insert cagk
gkbar_cagk=0.0006
}
forsec gcldend {
cm=1
insert ichan2
gnatbar_ichan2=0.018 //original 0.015
gkfbar_ichan2=0.004
gksbar_ichan2=0.006
gl_ichan2 = 0.00004
insert nca // HAV-N- Ca channel
gncabar_nca=0.003 // check to modify- original 0.004
insert lca
glcabar_lca=0.0075
insert cat
gcatbar_cat=0.000075
insert gskch
gskbar_gskch=0.0004
insert cagk
gkbar_cagk=0.0006
}
forsec pdend {
cm=1.6
insert ichan2
gnatbar_ichan2=0.013
gkfbar_ichan2=0.004
gksbar_ichan2=0.006
gl_ichan2 = 0.000063
insert nca // HAV-N- Ca channel
gncabar_nca=0.001 // check to modify- original 0.004
insert lca
glcabar_lca=0.0075
insert cat
gcatbar_cat=0.00025
insert gskch
gskbar_gskch=0.0002
insert cagk
gkbar_cagk=0.001
}
forsec mdend {
cm=1.6
insert ichan2
gnatbar_ichan2=0.008
gkfbar_ichan2=0.001
gksbar_ichan2=0.006
gl_ichan2 = 0.000063
insert nca // HAV-N- Ca channel
gncabar_nca=0.001 // check to modify- original 0.004
insert lca
glcabar_lca=0.0005
insert cat
gcatbar_cat=0.0005
insert gskch
gskbar_gskch=0.0
insert cagk
gkbar_cagk=0.0024
}
forsec ddend {
cm=1.6
insert ichan2
gnatbar_ichan2=0.0
gkfbar_ichan2=0.001
gksbar_ichan2=0.008
gl_ichan2 = 0.000063
insert nca // HAV-N- Ca channel
gncabar_nca=0.001 // check to modify- original 0.004
insert lca
glcabar_lca=0.0
insert cat
gcatbar_cat=0.001
insert gskch
gskbar_gskch=0.0
insert cagk
gkbar_cagk=0.0024
}
forsec all {
enat = 45
ekf = -90
eks = -90
ek=-90
elca=130
etca=130
esk=-90
el_ichan2 =-70
cao_ccanl=2
} // make catau slower70e-3 cao=2 cai=50.e-6
connect gcdend1[0](0), soma(1)
connect gcdend2[0](0), soma(1)
for i=1,3 {
connect gcdend1[i](0), gcdend1[i-1](1)
}
for i=1,3 {
connect gcdend2[i](0), gcdend2[i-1](1)
}
// current injection
//for i=0,0 {
//stimdel[i]=500
//stimdur[i]=200
//stimamp[i]=0.2
//soma stim[i] = new IClamp(0.5)
//stim.del[i]=stimdel[i]
//stim.dur[i]=stimdur[i]
//stim.amp[i]=stimamp[i]
//}
}
obfunc connect2target() { localobj nc //$o1 target point process, optional $o2 returned NetCon
soma nc = new NetCon(&v(1), $o1)
nc.threshold = -10
if (numarg() == 2) { $o2 = nc } // for backward compatibility
return nc
}
objref syn_
proc synapse() {
gcdend1[3] syn_ = new Exp2Syn(0.5) // PP syn_ based on Greg and Staley
syn_.tau1 = 1.5
syn_.tau2 = 5.5
syn_.e = 0
pre_list.append(syn_)
gcdend2[3] syn_ = new Exp2Syn(0.5) // PPsyn based on Greg and Staley
syn_.tau1 = 1.5
syn_.tau2 = 5.5
syn_.e = 0
pre_list.append(syn_)
gcdend1[1] syn_ = new Exp2Syn(0.5) // MC syn_ *** Estimated
syn_.tau1 = 1.5
syn_.tau2 = 5.5
syn_.e = 0
pre_list.append(syn_)
gcdend2[1] syn_ = new Exp2Syn(0.5) // MC syn_ *** Estimated
syn_.tau1 = 1.5
syn_.tau2 = 5.5
syn_.e = 0
pre_list.append(syn_)
gcdend1[2] syn_ = new Exp2Syn(0.5) // HIPP syn_ based on Harney and Jones corrected for temp
syn_.tau1 = 0.5
syn_.tau2 = 6
syn_.e = -70
pre_list.append(syn_)
gcdend2[2] syn_ = new Exp2Syn(0.5) // HIPP syn_ based on Harney and Jones corrected for temp
syn_.tau1 = 0.5
syn_.tau2 = 6
syn_.e = -70
pre_list.append(syn_)
soma syn_ = new Exp2Syn(0.5) // BC syn_ based on Bartos
syn_.tau1 = 0.26
syn_.tau2 = 5.5
syn_.e = -70
pre_list.append(syn_)
gcdend1[1] syn_ = new Exp2Syn(0.5) // Sprouted Syn*************
syn_.tau1 = 1.5
syn_.tau2 = 5.5
syn_.e = 0
pre_list.append(syn_)
gcdend2[1] syn_ = new Exp2Syn(0.5) // Sprouted Syn*********
syn_.tau1 = 1.5
syn_.tau2 = 5.5
syn_.e = 0
pre_list.append(syn_)
// Total of 11 synapses per GC 0,1 PP; 2,3 MC; 4,5 HIPP; 6 BC; 7,8 Sprout
}
func is_art() { return 0 }
endtemplate GranuleCell