begintemplate PGcell
public soma, dend, gemmshaft, gemmbody
public AMPAr, spiketimes, dendspike, spikecount
create soma, dend, gemmshaft, gemmbody
objref AMPAr, spiketimes, dendspike, spikecount, dendcount
proc parameter() {
AMPAtau = 5.5 // ms
Erev = 0 // mV
shell_depth = 0.2 //
RM = 20e3 // ohm.cm2; 20!!!
EL = -65 // -65 mV !!!
ENA = 45 // 50
EK = -80 // -75/-80 !!!
ECA = 100
gNa_Soma = 50e-3 // 40 !!!
gNa_Dend = 20e-3 // 20
Sh_Na = 5 // 20 !!!
gKdr_Soma = 20e-3 // 20
gKdr_Dend = 5e-3 // 5 !!!
gA_Soma = 10e-3 // 10 !!!
gA_Dend = 30e-3 // 30
Sha_A = 0 // 9.9 / 0 !!!
Shi_A = -20 // 5.7 / 0 !!!
k_tauH = 2.5 // 1/2.5
sh_tauH = 0 // 0/-20
gH_Dend = 0.2e-3 // 0.2 !!!
gM_Soma = 1.0e-3 // 1 !!!
gM_Dend = 0.0e-3 // 0
gKCa_Soma = 0.0e-3 //
gKCa_Dend = 2.0e-3 // 2.0!!! Change this will change the number of bursts!!!
gCapn_Soma = 0.0e-3
gCapn_Dend = 1.0e-3 // 1.0 !!!
gCaT_Soma = 0.0e-3
gCaT_Dend = 3.0e-3 // 5 |5 |5 | 5 / 3 /5
Sha_T = -15 // -13|-8|-13| -10/-13/0
Shi_T = 0 // 3|0 |0 8/ 5 /5 % Posive shift makes burst firing !!!
K_tauH = 1.0
gcan_Dend = 0.0e-3 // 1.5 !!!
}
proc celldef() {
topol()
subsets()
segments()
geometry()
biophysics($1)
}
proc topol() {
connect dend(0), soma(1)
connect gemmshaft(0), dend(1)
connect gemmbody(0), gemmshaft(1)
}
// create subsets
objref pg_all, pgdendgemm, spine
proc subsets() {
// gemmules (body & shaft)
spine = new SectionList()
forsec "gemm" spine.append()
// dendrites & gemmules (body & shaft)
pgdendgemm = new SectionList()
forsec "dend" pgdendgemm.append()
forsec "gemm" pgdendgemm.append()
// all pg sections
pg_all = new SectionList()
forsec pgdendgemm pg_all.append()
soma pg_all.append()
}
proc segments() {
soma.nseg = 1
dend.nseg = 1
gemmshaft.nseg = 1
gemmbody.nseg = 1
}
proc geometry() {
soma { L=8 diam=8 }
dend { L=100 diam=1 } // L = 50/100 !!!
gemmshaft { L=1 diam=1 }
gemmbody { L=1 diam=1 }
define_shape() // Fill in empty pt3d info with est's using 'L' and 'diam' info
}
proc biophysics() {
parameter()
spiketimes = new Vector()
dendspike = new Vector()
spike_threshold = -10 // !!!
forsec pg_all { // insert passive current everywhere
Ra = 80 // OLD: 173
cm = 1.2 // 2 !!!
insert pas
g_pas = 1/RM // OLD: 2.3e-4 (4.3 K ohm*cm^2)
e_pas = EL
}
soma {
insert nax
gbar_nax = gNa_Soma
sh_nax = Sh_Na
insert kdrmt
gbar_kdrmt = gKdr_Soma
q10_kdrmt = 3
insert kamt
gbar_kamt = gA_Soma //
sha_kamt = Sha_A
shi_kamt = Shi_A
k_tauH_kamt = k_tauH
sh_tauH_kamt = sh_tauH
insert kM
gkbar_kM = gM_Soma //
insert Icapn
gbar_Icapn = gCapn_Soma
insert Ikca
gkbar_Ikca = gKCa_Soma
insert Icat
gbar_Icat = gCaT_Soma
sha_Icat = Sha_T
shi_Icat = Shi_T
insert cad2
depth_cad2 = shell_depth
ena = ENA
ek = EK
eca = ECA
spikecount = new APCount(0.5)
spikecount.thresh = spike_threshold
spikecount.record(spiketimes)
}
forsec pgdendgemm {
insert nax
gbar_nax = gNa_Dend
sh_nax = Sh_Na
insert kdrmt
gbar_kdrmt = gKdr_Dend
q10_kdrmt = 3
insert kamt
gbar_kamt = gA_Dend //
sha_kamt = Sha_A
shi_kamt = Shi_A
k_tauH_kamt = k_tauH
sh_tauH_kamt = sh_tauH
insert kM
gkbar_kM = gM_Dend //
insert hpg // PG cell h current from Cadetti and Belluzzi
eh_hpg = 0
ghbar_hpg = gH_Dend
insert Ican
gbar_Ican = gcan_Dend
insert Ikca
gkbar_Ikca = gKCa_Dend
insert Icapn
gbar_Icapn = gCapn_Dend
insert Icat
gbar_Icat = gCaT_Dend
sha_Icat = Sha_T
shi_Icat = Shi_T
k_tauH_Icat = K_tauH
insert cad2
depth_cad2 = shell_depth
ena = ENA
ek = EK
eca = ECA
}
forsec spine {
insert Inic
enic_Inic = 3.2
gbar_Inic = $1 // S/cm2
}
gemmbody{
AMPAr = new ExpSyn(0.5)
AMPAr.tau = AMPAtau
AMPAr.e = Erev
dendcount = new APCount(0.5)
dendcount.thresh = spike_threshold
dendcount.record(dendspike)
}
}
proc init() {
celldef($1)
}
endtemplate PGcell