begintemplate BasketCell
ndend1=4
ndend2=4
ndend3=4
ndend4=4
public pre_list, connect_pre, subsets, is_art, is_connected
public vbc2gc, vmc2gc, vhc2gc, vgc2bc, vbc2bc, vmc2bc, vhc2bc, vgc2mc, vbc2mc, vmc2mc, vhc2mc, vgc2hc, vmc2hc
public soma, bcdend1, bcdend2, bcdend3, bcdend4
public all, adend, bdend, cdend, ddend
create soma, bcdend1[ndend1], bcdend2[ndend2], bcdend3[ndend3], bcdend4[ndend4]
objref syn, pre_list
nst=10
objectvar stim[nst]
double stimdur[nst], stimdel[nst], stimamp[nst]
public stim, stimdur, stimamp, stimdel
objref syn
proc init() {
pre_list = new List()
subsets()
temp()
synapse()
}
objref all, adend, bdend, cdend, ddend
proc subsets() { local i
objref all, adend, bdend, cdend, ddend
all = new SectionList()
soma all.append()
for i=0, 3 bcdend1 [i] all.append()
for i=0, 3 bcdend2 [i] all.append()
for i=0, 3 bcdend3 [i] all.append()
for i=0, 3 bcdend4 [i] all.append()
adend = new SectionList()
bcdend1 [0] adend.append()
bcdend2 [0] adend.append()
bcdend3 [0] adend.append()
bcdend4 [0] adend.append()
bdend = new SectionList()
bcdend1 [1] bdend.append()
bcdend2 [1] bdend.append()
bcdend3 [1] bdend.append()
bcdend4 [1] bdend.append()
cdend = new SectionList()
bcdend1 [2] cdend.append()
bcdend2 [2] cdend.append()
bcdend3 [2] cdend.append()
bcdend4 [2] cdend.append()
ddend = new SectionList()
bcdend1 [3] ddend.append()
bcdend2 [3] ddend.append()
bcdend3 [3] ddend.append()
bcdend4 [3] ddend.append()
}
proc temp() {
soma {nseg=1 L=20 diam=15} // changed L & diam
bcdend1 [0] {nseg=1 L=75 diam=4} // bcdend 1 and 2 are apical
bcdend1 [1] {nseg=1 L=75 diam=3}
bcdend1 [2] {nseg=1 L=75 diam=2}
bcdend1 [3] {nseg=1 L=75 diam=1}
bcdend2 [0] {nseg=1 L=75 diam=4}
bcdend2 [1] {nseg=1 L=75 diam=3}
bcdend2 [2] {nseg=1 L=75 diam=2}
bcdend2 [3] {nseg=1 L=75 diam=1}
bcdend3 [0] {nseg=1 L=50 diam=4} // bcdend 3 and 4 are basal
bcdend3 [1] {nseg=1 L=50 diam=3}
bcdend3 [2] {nseg=1 L=50 diam=2}
bcdend3 [3] {nseg=1 L=50 diam=1}
bcdend4 [0] {nseg=1 L=50 diam=4}
bcdend4 [1] {nseg=1 L=50 diam=3}
bcdend4 [2] {nseg=1 L=50 diam=2}
bcdend4 [3] {nseg=1 L=50 diam=1}
forsec all {
insert ccanl
catau_ccanl = 10
caiinf_ccanl = 5.e-6
insert borgka
gkabar_borgka=0.00015
insert nca // HAV-N- Ca channel
gncabar_nca=0.0008 //check to modify- original 0.004
insert lca
glcabar_lca=0.005
insert gskch
gskbar_gskch=0.000002
insert cagk
gkbar_cagk=0.0002
}
soma {insert ichan2 //ildikos ichan
gnatbar_ichan2=0.12 //original 0.030 to .055
gkfbar_ichan2=0.013 //original 0.015
gl_ichan2 = 0.00018
cm=1.4
}
forsec adend {insert ichan2
gnatbar_ichan2=0.12 //original 0.015
gkfbar_ichan2=0.013
gl_ichan2 = 0.00018
cm=1.4
}
forsec bdend {insert ichan2
gnatbar_ichan2=0.0
gkfbar_ichan2=0.00
gl_ichan2 = 0.00018
cm=1.4}
forsec cdend {insert ichan2
gnatbar_ichan2=0.0
gkfbar_ichan2=0.00
gl_ichan2 = 0.00018
cm=1.4}
forsec ddend {insert ichan2
gnatbar_ichan2=0.0
gkfbar_ichan2=0.00
gl_ichan2 = 0.00018
cm=1.4}
connect bcdend1[0](0), soma(1)
connect bcdend2[0](0), soma(1)
connect bcdend3[0](0), soma(0)
connect bcdend4[0](0), soma(0)
for i=1,3 {
connect bcdend1[i](0), bcdend1[i-1](1)
}
for i=1,3 {
connect bcdend2[i](0), bcdend2[i-1](1)
}
for i=1,3 {
connect bcdend3[i](0), bcdend3[i-1](1)
}
for i=1,3 {
connect bcdend4[i](0), bcdend4[i-1](1)
}
forsec all {Ra=100}
forsec all {enat = 55 ekf = -90 ek=-90 elca=130 esk=-90
el_ichan2 =-60.06
cao_ccanl=2 } // make catau slower70e-3 cao=2 cai=50.e-6
//for i=0,0 {
//stimdel[i]=1000
//stimdur[i]=200
//stimamp[i]=0.5
/* 0.4 stim when we want the cell to fire with regular spikes */
//soma stim[i] = new IClamp(0.5)
//stim.del[i]=stimdel[i]
//stim.dur[i]=stimdur[i]
//stim.amp[i]=stimamp[i]
//}
}
objref syn
proc synapse() {
bcdend1 [3] syn = new Exp2Syn(0.5) //PP(AMPA) syn to apical dist dend Dingledine '95
syn.tau1 = 2 syn.tau2 = 6.3 syn.e = 0 // *** check Tau rise 2ms is the rise time
pre_list.append(syn) // # 0
bcdend2 [3] syn = new Exp2Syn(0.5) //PP(AMPA) syn to apical dist dend Dingledine '95
syn.tau1 = 2 syn.tau2 = 6.3 syn.e = 0 // *** check Tau rise 2ms is the rise time
pre_list.append(syn) // # 1
bcdend1 [0] syn = new Exp2Syn(0.5) //GC(AMPA) syn to prox dend Geiger '97
syn.tau1 = .3 syn.tau2 = .6 syn.e = 0
pre_list.append(syn) // # 2
bcdend2 [0] syn = new Exp2Syn(0.5) //GC(AMPA) syn to prox dend Geiger '97
syn.tau1 = .3 syn.tau2 = .6 syn.e = 0
pre_list.append(syn) // # 3
bcdend3 [0] syn = new Exp2Syn(0.5) //GC(AMPA) syn to prox dend Geiger '97
syn.tau1 = .3 syn.tau2 = .6 syn.e = 0
pre_list.append(syn) // # 4
bcdend4 [0] syn = new Exp2Syn(0.5) //GC(AMPA) syn to prox dend Geiger '97
syn.tau1 = .3 syn.tau2 = .6 syn.e = 0
pre_list.append(syn) // # 5
bcdend1 [1] syn = new Exp2Syn(0.5) //MC(AMPA) syn to apical IML dend
syn.tau1 = 0.9 syn.tau2 = 3.6 syn.e = 0 // *** Estimated based on CA3>BC min stim Dingledine '95
pre_list.append(syn) // # 6
bcdend2 [1] syn = new Exp2Syn(0.5) //MC(AMPA) syn to apical IML dend
syn.tau1 = 0.9 syn.tau2 = 3.6 syn.e = 0 // *** Estimated based on CA3>BC min stim Dingledine '95
pre_list.append(syn) // # 7
bcdend1 [1] syn = new Exp2Syn(0.5) //BC(GABA) syn to apical IML dend Bartos
syn.tau1 = 0.16 syn.tau2 = 1.8 syn.e = -70
pre_list.append(syn) // # 8
bcdend2 [1] syn = new Exp2Syn(0.5) //BC(GABA) syn to apical IML dend Bartos
syn.tau1 = 0.16 syn.tau2 = 1.8 syn.e = -70
pre_list.append(syn) // # 9
bcdend1 [3] syn = new Exp2Syn(0.5) //HIPP(GABA) syn to apical distal dend
syn.tau1 = 0.4 syn.tau2 = 5.8 syn.e = -70 // *** Estimated as HIPP>GC
pre_list.append(syn) // # 10
bcdend2 [3] syn = new Exp2Syn(0.5) //HIPP(GABA) syn to apical distal dend
syn.tau1 = 0.4 syn.tau2 = 5.8 syn.e = -70 // *** Estimated as HIPP>GC
pre_list.append(syn) // # 11
// Total of 12 synapses 0,1 PP; 2-5 GC; 6,7 MC; 8,9 BC; 10,11 HIPP
}
proc connect_pre() { // $o1 target point process, $o2 returned NetCon
soma $o2 = new NetCon (&v(1), $o1)
//alternative statement $o1.soma pre_list.append(new NetCon(soma.v(1),syn,0,Delsyn,0))
}
func is_art() { return 0 }
endtemplate BasketCell