strdef modelName, loadProgram, cellName, outputFile, cellPath, loadProgram
objref trunc, secR, fi,vC, mbSec, random
objref sh, axonal, dendritic, dendritic_only, stimSec
objref st, st2, syn,trunc,mbSec, middleSec
create somaA,iseg,hill,myelin[2],node[2],dendA1_0
access somaA
sprint(cellPath,"")
load_file("nrngui.hoc")
spA = 2
ra = 80
global_ra = ra
rm = 30000
c_m = 0.6
cm_myelin = 0.04
g_pas_node = 0.02
v_init = -73.65
celsius = 34
Ek = -90
Ena = 60
gna_dend = 14
gna_node = 30000
gna_soma = 54
gna_myelin = 80
gkv_axon = 3000
gkv_soma = 600
gkv_dend = 30
gca_dend =1.5
gkm_dend =.1
gkca_dend=3.25
gca_soma = 3
gkm_soma = 0.2
gkca_soma = 6.5
gka_soma = 600
gka_dend = 300
gka_slope = 0
tauR = 80
caiExp = 4
rA = 0.05
rB = 0.1
vh1_sit2=56
vh2_sit2=415
ahc_sit2=30
v12m_sit2=45
v12h_sit2=65
amc_sit2=3
vshift_sit2=10
vm1_sit2=50
vm2_sit2=125
it2_init=5
gca_init=4.5
proc InitZone() {
mbSec.sec distance(0,1)
forall for(x) if(distance(x) <100) {
eta_ssca = gca_init/gamma_ssca
eta_sit2 = it2_init/gamma_sit2
}
printf("InitZone for calcium initiated\n",spA)
}
n_axon_seg = 5
proc create_axon() {local somaArea
create iseg,hill,myelin[n_axon_seg],node[n_axon_seg]
somaA {
somaArea=0
for(x) somaArea+=area(x)
equiv_diam = sqrt(somaArea/(4*PI))
}
iseg {
pt3dclear() pt3dadd(0,0,0,diam) pt3dadd(0,-1000,0,diam)
L = 15
nseg = 5
diam = equiv_diam/10
}
hill {
pt3dclear() pt3dadd(0,0,0,diam) pt3dadd(0,-1000,0,diam)
L = 10
nseg = 5
diam(0:1) = 4*iseg.diam:iseg.diam
}
for i=0,n_axon_seg-1 {
myelin[i] {
pt3dclear() pt3dadd(0,0,0,diam) pt3dadd(0,-1000,0,diam)
nseg = 5
L = 100
diam = iseg.diam
}
node[i] {
pt3dclear() pt3dadd(0,0,0,diam) pt3dadd(0,-1000,0,diam)
nseg = 1
L = 1.0
diam = iseg.diam*.75
}
}
somaA connect hill(0), 0.5
hill connect iseg(0), 1
iseg connect myelin[0](0), 1
myelin[0] connect node[0](0), 1
for i=0,n_axon_seg-2 {
node[i] connect myelin[i+1](0), 1
myelin[i+1] connect node[i+1](0), 1
}
}
proc add_spines() {
forsec dendritic_only {
cm *=spA
g_pas *=spA
eta_snap *=spA
eta_sk *=spA
eta_skm *=spA
eta_skca *=spA
eta_ssca *=spA
eta_ska *=spA
eta_sit2 *=spA }
printf("spine factor of %d is now incorporated\n",spA)
}
initzoneflag = 0
proc init_cell() {
forall {
insert pas
Ra = ra
cm = c_m
g_pas = 1/rm
e_pas = -70
}
forsec "myelin" cm = cm_myelin
forsec "node" g_pas = g_pas_node
forall insert sna deterministic_sna = 0
forsec "myelin" eta_sna = gna_myelin/gamma_sna
forsec "hill" eta_sna = gna_node/gamma_sna
forsec "iseg" eta_sna = gna_node/gamma_sna
forsec "node" eta_sna = gna_node/gamma_sna
forsec "iseg" { insert sk eta_sk = gkv_axon/gamma_sk}
forsec "hill" { insert sk eta_sk = gkv_axon/gamma_sk}
forsec dendritic_only {
uninsert sna
insert snap eta_snap = gna_dend/gamma_snap
insert sk eta_sk = gkv_dend/gamma_sk
insert skm eta_skm = gkm_dend/gamma_skm
insert skca eta_skca = gkca_dend/gamma_skca
insert ska eta_ska = gka_dend/gamma_ska
insert ssca eta_ssca = gca_dend/gamma_ssca
insert sit2 eta_sit2=0
insert cad2
}
somaA {
eta_sna = gna_soma/gamma_sna
insert sk eta_sk = gkv_soma/gamma_sk
insert skm eta_skm = gkm_soma/gamma_skm
insert skca eta_skca = gkca_soma/gamma_skca
insert ska eta_ska = gka_soma/gamma_ska
insert ssca eta_ssca = gca_soma/gamma_ssca
insert cad2
}
forall if(ismembrane("k_ion")) ek = Ek
forall if(ismembrane("sna")) {
ena = Ena
vshift_sna = -5
}
forall if(ismembrane("snap")) {
ena = Ena
vshift_snap = -5
}
forall if(ismembrane("ska")) {
ek = Ek
lmin_ska = 16.5
}
forall if(ismembrane("ca_ion")) {
eca = 140
ion_style("ca_ion",0,1,0,0,0)
}
taur_cad2 = tauR
caix_skca = caiExp
Ra_skca = rA
Rb_skca = rB
if (initzoneflag) { InitZone() }
add_spines()
}
proc load_3dcell() {
forall delete_section()
xopen($s1)
access somaA
forsec "axon" delete_section()
dendritic = new SectionList()
forall {
dendritic.append()
}
dendritic_only = new SectionList()
forsec dendritic dendritic_only.append()
somaA dendritic_only.remove()
}
proc LoadNInit() {
sprint(loadProgram,"%s.nrn",$s1)
load_3dcell(loadProgram)
create_axon()
init_cell()
}
proc Inumber2() {
st2=new IClamp(.5)
st2.del = start_at + 21.1
st2.dur = 5
st2.amp = 2.2
}
proc IatSoma() {
st=new IClamp(.5)
st.del = 1.1
st.dur = 5
st.amp = 2.0
}
proc EPSPAtDend() {
mbSec.sec {
syn = new epsp(1)
syn.tau0 = 0.8
syn.tau1 = 4
syn.onset = 3.1
syn.imax = 0.5
}
}
proc DoIt() {local i, j
init()
for i=0,999 {
for j=0,0.1/dt-1 fadvance()
}
}
forall delete_section()
cellName="d980329a-1"
printf("%s is the current cell\n",cellName)
LoadNInit(cellName)
IatSoma()
EPSPAtDend()
xopen("Display2.ses")
random = new RNG(0.5)
random.init_seed = 235809314
init()
random.init_seed = -1