//********************** MOSSY CELL ****************************************
// Mossy Cell template
// extracted from
// Dentate gyrus network model
// Santhakumar V, Aradi I, Soltesz I (2005) J Neurophysiol 93:437-53
// https://senselab.med.yale.edu/ModelDB/showModel.cshtml?model=51781&file=\dentategyrusnet2005\DG500_M7.hoc
// ModelDB file along with publication:
// Yim MY, Hanuschkin A, Wolfart J (2015) Hippocampus 25:297-308.
// http://onlinelibrary.wiley.com/doi/10.1002/hipo.22373/abstract
// modified by
// Man Yi Yim / 2015
// Alexander Hanuschkin / 2011
objref Mcell[nmcell]
begintemplate MossyCell
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, mcdend1, mcdend2, mcdend3, mcdend4
create soma, mcdend1[ndend1], mcdend2[ndend2], mcdend3[ndend3], mcdend4[ndend4]
public all, adend, bdend, cdend, ddend
objref syn, pre_list, fl
//to include steady state current injection
nst=1
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, pdend, ddend
proc subsets() { local i
objref all, pdend, ddend
all = new SectionList()
soma all.append()
for i=0, 3 mcdend1 [i] all.append()
for i=0, 3 mcdend2 [i] all.append()
for i=0, 3 mcdend3 [i] all.append()
for i=0, 3 mcdend4 [i] all.append()
pdend = new SectionList()
mcdend1 [0] pdend.append()
mcdend2 [0] pdend.append()
mcdend3 [0] pdend.append()
mcdend4 [0] pdend.append()
ddend = new SectionList()
for i=1, 3 mcdend1 [i] ddend.append()
for i=1, 3 mcdend2 [i] ddend.append()
for i=1, 3 mcdend3 [i] ddend.append()
for i=1, 3 mcdend4 [i] ddend.append()
}
proc temp() {
soma {nseg=1 L=20 diam=20}
mcdend1 [0] {nseg=1 L=50 diam=5.78}
mcdend1 [1] {nseg=1 L=50 diam=4}
mcdend1 [2] {nseg=1 L=50 diam=2.5}
mcdend1 [3] {nseg=1 L=50 diam=1}
mcdend2 [0] {nseg=1 L=50 diam=5.78}
mcdend2 [1] {nseg=1 L=50 diam=4}
mcdend2 [2] {nseg=1 L=50 diam=2.5}
mcdend2 [3] {nseg=1 L=50 diam=1}
mcdend3 [0] {nseg=1 L=50 diam=5.78}
mcdend3 [1] {nseg=1 L=50 diam=4}
mcdend3 [2] {nseg=1 L=50 diam=2.5}
mcdend3 [3] {nseg=1 L=50 diam=1}
mcdend4 [0] {nseg=1 L=50 diam=5.78}
mcdend4 [1] {nseg=1 L=50 diam=4}
mcdend4 [2] {nseg=1 L=50 diam=2.5}
mcdend4 [3] {nseg=1 L=50 diam=1}
forall {
insert ccanl
catau_ccanl = 10
caiinf_ccanl = 5.e-6
insert ka
gkabar_ka=0.00001
insert nca
gncabar_nca=0.00008
insert lca
glcabar_lca=0.0006
insert sk
gskbar_sk=0.016
insert bk
gkbar_bk=0.0165
insert ih
ghyfbar_ih=0.000005
ghysbar_ih=0.000005
}
soma {insert ichan2
gnatbar_ichan2=0.12
gkfbar_ichan2=0.0005
gl_ichan2 = 0.000011
cm=0.6}
forsec pdend {insert ichan2
gnatbar_ichan2=0.12
gkfbar_ichan2=0.0005
gl_ichan2 = 0.000044
cm=2.4}
forsec ddend {insert ichan2
gnatbar_ichan2=0.0
gkfbar_ichan2=0.00
gl_ichan2 = 0.000044
cm=2.4}
connect mcdend1[0](0), soma(1)
connect mcdend2[0](0), soma(1)
connect mcdend3[0](0), soma(0)
connect mcdend4[0](0), soma(0)
for i=1,3 {connect mcdend1[i](0), mcdend1[i-1](1)}
for i=1,3 {connect mcdend2[i](0), mcdend2[i-1](1)}
for i=1,3 {connect mcdend3[i](0), mcdend3[i-1](1)}
for i=1,3 {connect mcdend4[i](0), mcdend4[i-1](1)}
forall {Ra=100}
forall {
ena = 50 // ena was unified from enat=55 (BC, HIPP, MC) and enat=45 (GC) in Santhakumar et al. (2005) <ah>
ek = -90 // simplified ekf=eks=ek=esk; note the eK was erroneously reported as -105mV in the Yim et al. 2015 <ah>
ehyf = -40
ehys = -40
el_ichan2 = -59
cao_ccanl = 2 }
}
//Defining synapses on to Mossy Cells
objref syn
proc synapse() {
mcdend1 [3] syn = new Exp2Syn(0.7) //PP(AMPA) syn to dist dend similar to PP to GC
syn.tau1 = 1.5 syn.tau2 = 5.5 syn.e = 0
pre_list.append(syn)
mcdend2 [3] syn = new Exp2Syn(0.7) //PP(AMPA) syn to dist dend similar to PP to GC
syn.tau1 = 1.5 syn.tau2 = 5.5 syn.e = 0
pre_list.append(syn)
mcdend3 [3] syn = new Exp2Syn(0.7) //PP(AMPA) syn to dist dend similar to PP to GC
syn.tau1 = 1.5 syn.tau2 = 5.5 syn.e = 0
pre_list.append(syn)
mcdend4 [3] syn = new Exp2Syn(0.7) //PP(AMPA) syn to dist dend similar to PP to GC
syn.tau1 = 1.5 syn.tau2 = 5.5 syn.e = 0
pre_list.append(syn)
mcdend1 [0] syn = new Exp2Syn(0.5) //GC(AMPA) syn to prox dend similar to GC>CA3 Jonas '93
syn.tau1 = 0.5 syn.tau2 = 6.2 syn.e = 0
pre_list.append(syn)
mcdend2 [0] syn = new Exp2Syn(0.5) //GC(AMPA) syn to prox dend similar to GC>CA3 Jonas '93
syn.tau1 = 0.5 syn.tau2 = 6.2 syn.e = 0
pre_list.append(syn)
mcdend3 [0] syn = new Exp2Syn(0.5) //GC(AMPA) syn to prox dend similar to GC>CA3 Jonas '93
syn.tau1 = 0.5 syn.tau2 = 6.2 syn.e = 0
pre_list.append(syn)
mcdend4 [0] syn = new Exp2Syn(0.5) //GC(AMPA) syn to prox dend similar to GC>CA3 Jonas '93
syn.tau1 = 0.5 syn.tau2 = 6.2 syn.e = 0
pre_list.append(syn)
mcdend1 [0] syn = new Exp2Syn(0.5) //MC(AMPA) syn to prox dend similar to CA#>CA3 Aaron
syn.tau1 = 0.45 syn.tau2 =2.2 syn.e = 0
pre_list.append(syn)
mcdend2 [0] syn = new Exp2Syn(0.5) //MC(AMPA) syn to prox dend similar to CA#>CA3 Aaron
syn.tau1 = 0.45 syn.tau2 = 2.2 syn.e = 0
pre_list.append(syn)
mcdend3 [0] syn = new Exp2Syn(0.5) //MC(AMPA) syn to prox dend similar to CA#>CA3 Aaron
syn.tau1 = 0.45 syn.tau2 = 2.2 syn.e = 0
pre_list.append(syn)
mcdend4 [0] syn = new Exp2Syn(0.5) //MC(AMPA) syn to prox dend similar to CA#>CA3 Aaron
syn.tau1 = 0.45 syn.tau2 = 2.2 syn.e = 0
pre_list.append(syn)
soma syn = new Exp2Syn(0.5) //BC(GABA) syn to prox dend based on BC>CA3 Bartos PNAS (mice)
syn.tau1 = 0.3 syn.tau2 = 3.3 syn.e = -70
pre_list.append(syn)
mcdend1 [2] syn = new Exp2Syn(0.5) //HIPP(GABA) syn to prox dend based on Hilar>GC Harney&Jones
syn.tau1 = .5 syn.tau2 = 6 syn.e = -70
pre_list.append(syn)
mcdend2 [2] syn = new Exp2Syn(0.5) //HIPP(GABA) syn to prox dend based on Hilar>GC Harney&Jones
syn.tau1 = .5 syn.tau2 = 6 syn.e = -70
pre_list.append(syn)
mcdend3 [2] syn = new Exp2Syn(0.5) //HIPP(GABA) syn to prox dend based on Hilar>GC Harney&Jones
syn.tau1 = .5 syn.tau2 = 6 syn.e = -70
pre_list.append(syn)
mcdend4 [2] syn = new Exp2Syn(0.5) //HIPP(GABA) syn to prox dend based on Hilar>GC Harney&Jones
syn.tau1 = .5 syn.tau2 = 6 syn.e =-70
pre_list.append(syn)
// Total of 17 synapses 0-3 PP; 4-7 GC; 8-11 MC; 12 BC; 13-16 HIPP
}
proc connect_pre() {
soma $o2 = new NetCon (&v(1), $o1)
}
func is_art() { return 0 }
endtemplate MossyCell