// Octopus cell, stick representation
// From Spencer et al., Front. Comput. Neurosci., 22 October 2012 | https://doi.org/10.3389/fncom.2012.00083
// Figure 1.
load_file("nrngui.hoc")
load_proc("nrnmainmenu")
objref syn
objref ncl, weight
objref apc
strdef name
tstop = 1000
RM= 5000 // ohm cm2
ra=150 // ohm cm
c_m=0.9 //muF cm2
resting_Vm=-65
speccm = 0.9
totcap =12 // total cap in pF for cell
somaarea = totcap *1E-6 / 1 // pf -> uF,assumes 1 uF/cm2; result is in cm2
lstd = 1E4*sqrt(somaarea/PI) // convert from cm to um
create soma
soma {nseg=1 diam=lstd L=lstd
insert klt ek_lt = -70
insert kht ek_kht = -70
insert jsrnaf ena_jsrnaf = 50
insert ka ek_ka=-70
insert ih eh_ih=-43
insert hcno eh_hcno = -43
insert leak g_leak=1/10000 erev_leak = -65
Ra=150 cm=1}
access soma
// convert from nanosiemens to mho/cm2.
func nstomho() {
return (1E-9*$1/somaarea)
}
soma {
insert pas
Ra=ra
cm=c_m
e_pas=resting_Vm
g_pas=1/RM
}
soma{
gnabar_jsrnaf = nstomho(1000)
gkhtbar_kht = 10*nstomho(150)
gkltbar_klt = 10*nstomho(600)
gkabar_ka = 15*nstomho(200)
ghbar_ih = nstomho(0)
gbar_hcno = 2.5*nstomho(40)
//gnabar_jsrnaf=0
//gkhtbar_kht = 0
//gkltbar_klt = 0
//gkabar_ka = 0
//ghbar_ih = 0
//gbar_hcno = 0
g_leak = 2*nstomho(2)
print " " , lstd
print " " , gnabar_jsrnaf
print " " , gkltbar_klt
print " " , gkhtbar_kht
print " " , gkabar_ka
print " " , gbar_hcno
print " " , g_leak
print " ", diam
print " ", L
}
objref syn[500], psyn[500], stim, stim1
nsyn=1
gmax=0 //uS (Minimum:0.5nS and Maximum 35nS)
/*
sections[6] {
syn[0]= new syn_g_Octopus(1)
syn[0].onset=100
syn[0].gmax=gmax
}
*/
objref gly
ginhmax=0.0
soma { gly= new syn_gi(0.5)
gly.onset=400
gly.gmax=ginhmax
gly.tau0=5
gly.tau1=25
}
amp=5
dur=150
amp1=-2
dur1=20
soma stim = new IClamp(0.5)
stim.del = 400
stim.dur = dur
stim.amp = amp
/*
sections [0] stim1 = new IClamp(0.5)
stim1.del = 420
stim1.dur = dur1
stim1.amp = amp1
*/
objref g[20]
ngraph=0
proc addgraph() { local ii // define subroutine to add a new graph
// addgraph("variable", minvalue, maxvalue)
ngraph = ngraph+1
ii = ngraph-1
g[ii] = new Graph()
g[ii].size(0,tstop,$2,$3)
g[ii].xaxis()
g[ii].yaxis()
g[ii].addvar($s1,1,0)
g[ii].save_name("graphList[0].")
graphList[0].append(g[ii])
}
objref stfunc,shape
shape=new Shape(0)
shape.view(-792.112, -154.611, 1363.32, 1185.94, 5, 340, 300, 260)
shape.show(0)
proc make_shape_plot(){//DRAWS THE POINTS ON THE CELL
shape.point_mark_remove()
for i=0,nsyn{
shape.point_mark(syn[i], 2, 4, 4)
}
}///END SHAPE
addgraph("soma.v(0.5)",-100,100)
//addgraph("sections[6].v(0.5)",-100,100)
//addgraph("syn[0].inmda",-1,1)
//addgraph("dend.v(0.5)",-100,100)
//addgraph("soma.i_pas(0.5)",-100,100)
//g[0].addexpr("soma.v(0)",2,1)
//g[1].addexpr("syn[1].gampa",-1,1)
//g[2].addexpr("syn[1].iampa",-1,1)
make_shape_plot()
nrncontrolmenu()