begintemplate Kom2branch
public soma, dend, ais, axon, all, somatic, basal, excitozone, axonal, abd, cv, somden
proc celldef() {
topol()
subsets()
geom()
geom_nseg()
}
create soma, dend[8], ais
//, axon
proc topol() { local i
connect dend[0](0), soma(0)
connect dend[1](0), dend[0](1)
connect dend[2](0), soma(1)
//for i = 2, 3 connect dend[i](0), soma(0.5)
for i = 3, 4 connect dend[i](0), dend[1](1)
//for i = 5, 6 connect dend[i](0), dend[2](1)
connect dend[5](0), dend[2](1)
connect dend[6](0), dend[2](0.5)
//for i = 8, 9 connect dend[i](0), dend[2](1)
//for i = 10, 11 connect dend[i](0), dend[3](1)
ndend=2
nbranch=4
prox_diam = 3.0
dend_diam = 1.5
taper=1.0
dend_len = 500.0
prox_len = 150.0
soma_diam = 15.0
soma_len = 25.0
abd_len = 50.0
abd_diam = 1.0
ais_len = 50.0
ais_diam=1.0
axon_len = 0.1
axon_diam = 0.5
//dend[0].nseg = 5
connect dend[7](0), dend[0](1)
connect ais(0), dend[7](1)
//connect axon(0), ais(1)
basic_shape()
}
proc basic_shape() {
soma {
pt3dclear()
pt3dadd(0,0,0,soma_diam)
for i = 1, 9 pt3dadd(i*soma_len/10.0,0,0,soma_diam)
pt3dadd(soma_len,0,0,soma_diam)
}
dend[0]{
pt3dclear()
pt3dadd(0,0,0,prox_diam)
for i = 1, 9 pt3dadd(-i*abd_len/10.0,0,0,prox_diam)
pt3dadd(-abd_len,0,0,prox_diam)
}
dend[1]{
pt3dclear()
pt3dadd(-abd_len,0,0,prox_diam)
for i = 1, 9 pt3dadd(-abd_len-i*(prox_len-abd_len)/10.0,0,0,prox_diam)
pt3dadd(-prox_len,0,0,prox_diam)
}
dend[3]{
pt3dclear()
pt3dadd(-prox_len,0,0,dend_diam)
for i = 1, 19 pt3dadd(-prox_len-i*0.707106781*0.5*dend_len/20.0,-i*0.707106781*0.5*dend_len/20.0,0,dend_diam/taper)
pt3dadd(-prox_len-0.707106781*0.5*dend_len,-0.707106781*0.5*dend_len,0,dend_diam/taper)
}
dend[4]{
pt3dclear()
pt3dadd(-prox_len,0,0,dend_diam)
for i = 1, 19 pt3dadd(-prox_len-i*0.707106781*(1.2*dend_len)/20.0,i*0.707106781*(1.2*dend_len)/20.0,0,dend_diam/taper) //taper is incorrect if !=1
pt3dadd(-prox_len-0.707106781*(1.2*dend_len),0.707106781*(1.2*dend_len),0,dend_diam/taper)
}
dend[2]{
pt3dclear()
pt3dadd(soma_len,0,0,prox_diam)
for i = 1, 9 pt3dadd(soma_len+i*(prox_len-abd_len)/10.0,0,0,prox_diam)
pt3dadd(soma_len+prox_len,0,0,prox_diam)
}
dend[5]{
pt3dclear()
pt3dadd(soma_len+prox_len,0,0,dend_diam)
for i = 1, 19 pt3dadd(soma_len+prox_len+i*0.707106781*1.25*dend_len/20.0,-i*0.707106781*1.25*dend_len/20.0,0,dend_diam)
pt3dadd(soma_len+prox_len+0.707106781*1.25*dend_len,-0.707106781*1.25*dend_len,0,dend_diam/taper)
}
dend[6]{
pt3dclear()
pt3dadd(soma_len+prox_len/2,0,0,dend_diam)
for i = 1, 19 pt3dadd(soma_len+prox_len/2+i*0.707106781*0.75*dend_len/20.0,i*0.707106781*0.75*dend_len/20.0,0,dend_diam)
pt3dadd(soma_len+prox_len/2+0.707106781*0.75*dend_len,0.707106781*0.75*dend_len,0,dend_diam/taper)
}
dend[7] {
pt3dclear()
pt3dadd(-abd_len,0,0,prox_diam)
pt3dadd(-abd_len,abd_len,0,ais_diam)
}
ais {
pt3dclear()
pt3dadd(-abd_len,abd_len,0,ais_diam)
pt3dadd(-abd_len,abd_len+ais_len,0,ais_diam)
}
/*axon {
pt3dclear()
pt3dadd(-prox_len/2,prox_diam/2+ais_len,0,axon_diam)
pt3dadd(-prox_len/2,prox_diam/2+ais_len+axon_len,0,axon_diam)
}*/
}
objref all, somatic, basal, excitozone, abd, axonal, somden
proc subsets() { local i
objref all, somatic, basal, excitozone, abd, axonal, somden
all = new SectionList()
somden = new SectionList()
soma all.append()
soma somden.append()
for i=0, 7 dend[i] all.append()
for i=0, 7 dend[i] somden.append()
somatic = new SectionList()
soma somatic.append()
excitozone = new SectionList()
//axonal = new SectionList()
//axon axonal.append()
abd = new SectionList()
dend[0] abd.append()
ais all.append()
ais excitozone.append()
//axon all.append()
basal = new SectionList()
for i=0, 7 dend[i] basal.append()
}
proc geom() {
}
proc geom_nseg() {
}
access soma
proc init(){
create soma, dend[8]
//, ais
access soma
celldef()
}
endtemplate Kom2branch