// The ball and stick model as a template with inputs length and v_init. begintemplate Cell public init, biophys public soma, iseg, axon, dend, spine_head, spine_neck proc init() { // $1 is branch length in microns // $2 is v_init bLength = $1 voltInput = $2 biophys(bLength,voltInput) } create iseg[40] create axon create soma create dend[1] create spine_head[1] create spine_neck[1] proc biophys() { length = $1 // length of dendrite in microns v_init = $2 // resting membrane potential celsius=37 // nominal temperature of simulation Ri=100 // internal resistivity in ohm-cm Cm=1.0 // specific membrane capacitance in uF/cm^2 Rm=15000 // specific membrane resistivity in ohm/cm^2 na_soma=100 // somatic Na channel density in pS/um^2 kv_soma=100 // somatic k channel density in pS/um^2 access soma distance() create dend[length] create spine_head[length] create spine_neck[length] soma { nseg = 3 diam = 10 L = 20 insert na gbar_na=na_soma insert kv gbar_kv=kv_soma connect iseg[0](0), 0 nao = 150 ek = -96 } for i = 0, 39 { iseg[i] { nseg = 1 diam = 2 - (1.5*(i/40)) L = 1 insert na insert kv if (i < 5) { gbar_na = na_soma gbar_kv = kv_soma } else { gbar_na = 8000 gbar_kv = 2000 } nao = 150 ek = -96 if (i<39) connect iseg[i+1](0), 1 if (i==39) connect axon(0),1 } } axon { nseg = 201 L = 2000 diam = .5 insert na gbar_na = 300 insert kv gbar_kv = 60 nao = 150 ek = -96 } for i = 0, length-1 { access soma distance() access dend[i] nseg = 1 L = 1 diam = 5 - ((4*i)/(length-1)) if (i == 0) { connect soma(1), 0 } else { connect dend[i-1](1), 0 } //Adding spines for every micron dend[i] connect spine_neck[i](0),.5 spine_neck[i] connect spine_head[i](0),1 spine_neck[i] {nseg=1 L=1 diam=0.0504573} spine_head[i] {nseg=1 L=0.5 diam=0.5} } forall { insert pas g_pas = 1/Rm cm = Cm Ra = Ri e_pas = v_init } access axon } endtemplate Cell