xopen("A3+AIS_original.hoc") access soma area(0.5) distance() proc geom_nseg() { soma area(0.5) // make sure diam reflects 3d points forall {nseg = int((L/(0.1*lambda_f(2000))+0.9)/2)*2+1} } //-------------------------------------------------------------- // Initialise user-defined membrane parameters // -------------------------------------------------------------- proc parameters() { celsius=37 // nominal temperature of simulation Ri=100 // intracellular resistivity ohm-cm Cm=0.9 // specific membrane capacitance in uF/cm^2 Rm=15000 // specific membrane resistivity in ohm/cm^2 v_init=-88 // to obtain a membrane potential of -75 at the soma spinescale=2 // factor used to membrane area to account for spines } // -------------------------------------------------------------------- // Axon and collaterals. Properties based on Sloper and Powell, 1979 // -------------------------------------------------------------------- create myelin[45], node[42] for i=0,44 { myelin[i] { nseg = 20 //for space plot L = 60 //spacing 100 times the diameter diam = 1.6 } } for i=0,41 { node[i] { nseg = 1 L = 1 diam = 1.1 } } //------------------------------------ // Axon topology //------------------------------------- axon connect myelin[0](1), 1 myelin[0] connect node[0](1), 0 for i=0,8 {node[i] connect myelin[i+1](1), 0 myelin[i+1] connect node[i+1](1), 0 } node[1] connect myelin[10](1), 0 myelin[10] connect node[10](1), 0 for i=10,13 {node[i] connect myelin[i+1](1), 0 myelin[i+1] connect node[i+1](1), 0 } node[0] connect myelin[15](1), 0 myelin[15] connect node[15](1), 0 node [15] connect myelin[44](1), 0 node[2] connect myelin[42](1), 0 myelin [42] connect myelin[43](1), 0 node[12] connect myelin[16](1), 0 myelin[16] connect node[16](1), 0 for i=16,29 {node[i] connect myelin[i+1](1), 0 myelin[i+1] connect node[i+1](1), 0 } node [20] connect myelin[31](1), 0 myelin [31] connect node[31](1), 0 for i=31,34 {node[i] connect myelin[i+1](1), 0 myelin[i+1] connect node[i+1](1), 0 } node[33] connect myelin[36](1), 0 myelin [36] connect node[36](1), 0 node[26] connect myelin[37](1), 0 myelin [37] connect node[37](1), 0 for i=37,39 {node[i] connect myelin[i+1](1), 0 myelin[i+1] connect node[i+1](1), 0 } node[16] connect myelin[41](1), 0 myelin [41] connect node[41](1), 0 // ---------------------------------------------------------------------------- // initialize passive and active properties and add spines by scaling Rm and Cm //----------------------------------------------------------------------------- na_segment = 3000 na_soma = 60 na_node= 2500 proc init_channels() { na_myelin=80 // in dendrites pS/um2 Km_soma=5 // units in pS/um2 Km_axon=50 Kv_soma=20 // (HVA Kv current, units in pS/um2) Kv_axon=2000 Kv1_soma=0.01 // 0.01 mOhm/cm2 = 100 pS/um2 (LVA-Kv current) Kv1_axon=0.20 spinescale=2 vshift_na=10 //provides AP threshold of ~ -60 mV at soma vshift_nax=10 // dendrites forall {insert pas g_pas=1/(Rm/spinescale) cm=Cm*spinescale Ra=Ri e_pas=v_init } forall {insert Kv1 gbar_Kv1=Kv1_soma*spinescale insert Km gbar_Km=Km_soma*spinescale insert Kv gbar_Kv=Kv_soma*spinescale } for i=0,42 { dend[i] {insert na gbar_na=na_soma*spinescale} } for i=0,86 { apic[i] {insert na gbar_na=na_soma*spinescale} } // soma-hillock area soma {nseg=8} soma {g_pas=1/Rm cm=Cm} soma {insert na gbar_na = na_soma} soma {insert Kv1 gbar_Kv1 = Kv1_soma} soma {insert Kv gbar_Kv = Kv_soma} soma {insert Km gbar_Km = Km_soma} // Subcellular properties of initial segment axon {nseg=20} axon {Rm=15000} axon {g_pas=1/Rm cm=Cm} axon {Ri=100} axon {e_pas=-75} axon {insert nax axon.gbar_nax(0:0.725)= na_segment:na_segment axon.gbar_nax(0.775:1)= na_segment:na_soma} axon {insert Kv1 axon.gbar_Kv1(0:0.725) = Kv1_soma:Kv1_axon axon.gbar_Kv1(0.775:1) = Kv1_axon:Kv1_axon} axon {insert Kv axon.gbar_Kv(0:0.725) = Kv_soma:Kv_axon axon.gbar_Kv(0.775:1) = Kv_axon:Kv_axon} axon {insert Km axon.gbar_Km(0:0.725) = Km_soma:Km_axon axon.gbar_Km(0.775:1) = Km_axon:Km_axon} // Myelinated axon properties for i=0,44 { myelin[i] {g_pas=1/Rm cm=0.02} myelin[i] {e_pas=-75} myelin[i] {insert Km gbar_Km = Km_soma} myelin[i] {insert Kv gbar_Kv = Kv_soma} myelin[i] {insert na gbar_na = na_myelin} } for i=0,41 { node[i] {g_pas=400/Rm cm=Cm} node[i] {e_pas=-75} node[i] {insert nax gbar_nax = na_node} node[i] {insert Km gbar_Km = Km_axon} node[i] {insert Kv1 gbar_Kv1 = Kv1_axon} node[i] {insert Kv gbar_Kv = Kv_axon} } forall ena=55 forall ek=-85 } // -------------------------------------------------------------------------- // Dendritic exponential distribution of Ih (Kole et al., 2006) // -------------------------------------------------------------------------- hfactor = 0.000429 hinvtau = 0.003087 spinescale = 2 forall {insert ih gh_ih = -0.0002 ehd_ih=-45 } access soma area(0.5) distance() //exponential in basal dendrites for i=0,42 { access dend[i] ghdbar_ih=gh_ih+(hfactor*(exp(hinvtau*distance(.5)))) ghdbar_ih=ghdbar_ih*spinescale } //exponential in apical dendrites for i=0,86 { access apic[i] ghdbar_ih=gh_ih+(hfactor*(exp(hinvtau*distance(.5)))) ghdbar_ih=ghdbar_ih*spinescale } soma {ghdbar_ih=ghdbar_ih/spinescale} // remove ih from the reconstructed axon axon {ghdbar_ih=0} for i=0,44 { myelin[i] {ghdbar_ih=0} } for i=0,41 { node[i] {ghdbar_ih=0} }