/* memb_CA1.hoc Procedures for setting active membrane properties in different layers of a CA1 cell. Version for Network paper (BPG 26-11-02) */ proc insert_Na() { // Lipowsky et al's INaP //soma {insert CA1NaP ena_CA1NaP=65 gnaP_CA1NaP=gbarINaP vhalf_CA1NaP=INaP_half} apical[1] {insert CA1NaP ena_CA1NaP=65 gnaP_CA1NaP=gbarINaP vhalf_CA1NaP=INaP_half} forsec layer_SR {insert CA1NaP ena_CA1NaP=65 gnaP_CA1NaP=gbarINaP vhalf_CA1NaP=INaP_half} usetable_CA1NaP=0 } proc insert_KA() { apical[1] {insert M99Ka gkbar_M99Ka=global_gka thmin_M99Ka=thminKA} access soma distance() // initialize origin to '0' end of soma forsec layer_SR { insert M99Ka gkbar_M99Ka=global_gka thmin_M99Ka=thminKA // adjust K-A for distal kinetics (proximal are default) if (distance(1)-soma.L > 100) { // distal dendrites (> 100um) x100 = (100-distance(0)+soma.L)/L if (x100 < 0) {x100 = 0} tmfac_M99Ka(x100:1)=2:2 afac_M99Ka(x100:1)=1.8:1.8 bfac_M99Ka(x100:1)=0.7:0.7 } } } proc insert_H() { apical[1] {insert L98NCh ghbar_L98NCh=global_gh t0l_L98NCh=tcH} forsec layer_SR {insert L98NCh ghbar_L98NCh=global_gh t0l_L98NCh=tcH} } proc insert_Ca() { // Warman et al's ICaG apical[1] {insert CA1CaG gcabar_CA1CaG=gbarICaG tc_CA1CaG=tcCaG} forsec layer_SR {insert CA1CaG gcabar_CA1CaG=gbarICaG tc_CA1CaG=tcCaG} } proc adjust_apical() { apical[1] { gnaP_CA1NaP=gbarINaP vhalf_CA1NaP=INaP_half gcabar_CA1CaG=gbarICaG tc_CA1CaG=tcCaG gkbar_M99Ka(0:1)=global_gka*(1+(distance(0)-soma.L)/dfacA):global_gka*(1+(distance(1)-soma.L)/dfacA) thmin_M99Ka = thminKA ghbar_L98NCh(0:1)=global_gh*(1+(distance(0)-soma.L)/dfacH):global_gh*(1+(distance(1)-soma.L)/dfacH) t0l_L98NCh=tcH } access soma distance() // initialize origin to '0' end of soma forsec layer_SR { gnaP_CA1NaP=gbarINaP vhalf_CA1NaP=INaP_half gcabar_CA1CaG=gbarICaG tc_CA1CaG=tcCaG gkbar_M99Ka(0:1)=global_gka*(1+(distance(0)-soma.L)/dfacA):global_gka*(1+(distance(1)-soma.L)/dfacA) thmin_M99Ka = thminKA ghbar_L98NCh(0:1)=global_gh*(1+(distance(0)-soma.L)/dfacH):global_gh*(1+(distance(1)-soma.L)/dfacH) t0l_L98NCh=tcH } } // A useful menu proc xmenumem() { xpanel("Active Channels") xlabel("Sodium Channels") xvalue("Na(P) gbar","gbarINaP",1) xvalue("Na(P) Vhalf","INaP_half",1) xlabel("Potassium Channels") xvalue("K(A) gbar","global_gka",1) xvalue("K(A) dist. fact.","dfacA",1) xvalue("K(A) tau(inact)","thminKA",1) xlabel("Nonspecific Cation Channels") xvalue("NC(H) gbar","global_gh",1) xvalue("NC(H) dist. fact.","dfacH",1) xvalue("NC(H) tau(act)","tcH",1) xlabel("Calcium Channels") xvalue("Ca(G) gbar","gbarICaG",1) xvalue("Ca(G) tau(inact)","tcCaG",1) xlabel("Control") xbutton("Update","adjust_apical()") xpanel() }