//###################################### // // LayerVinit.hoc // -------------- // // Assign general and channel parameters for the Layer V neuron // // Author: Konstantin Stadler // Version: 20131108 // //###################################### // // This file consists of two parts: // // 1) Parameter // All numerical values necessary for the model // // 2) Allocation // Conversion of units (as required by the mod files) // Allocating channel properties // ************************************************************************** // // ************************************************************************** // // 1) Parameter // ************************************************************************** // // ************************************************************************** // //--------------------------------------------------------------------------- // General parameters //--------------------------------------------------------------------------- proc init_General() { local RmPoint, dis celsius = 32 Ri = 68.022 Cm = 1.5431 // parameters for the value of Rm along the dendrites RmSoma = 34963 RmEnd = 5357 RmHalfd = 405.84 RmSteep = 50 v_init = -89 // Junction potential corrected RMP under ZD 7288, Kole 2006 (PMID: 16467515) spinescale = 2.0 // scale total area to account for spines forall { Ra=Ri insert pas { g_pas = 1/RmSoma cm = Cm } insert cad } access dend1[21] //That's the soma distance() for i=0,1090 { //Rm is distributed sigmoidal (Stuart and Spruston 1998, PMID: 9570781) dend1[i] { dis = distance(0) RmPoint = RmEnd+(RmSoma-RmEnd)/(1+exp((dis-RmHalfd)/RmSteep)) g_pas = 1/RmPoint } } } // -------------------------------------------------------------------------- // Specific parameters, all in pS/um2 //--------------------------------------------------------------------------- proc init_AxonParameter() { g_Nax_Axon = 3500 temp_Nax_Axon = 23 g_KV_Axon = 40 temp_KV_Axon = 23 g_KM_Axon = 50 temp_KM_Axon = 35 vHact_KM_Axon = -27 vHtau_KM_Axon = -29 } proc init_SomaParameter() { g_Na_Soma = 420 temp_Na_Soma = 23 g_Nap_Soma = 10 g_KV_Soma = 20 temp_KV_Soma = 23 g_KM_Soma = 10 temp_KM_Soma = 35 vHact_KM_Soma = vHact_KM_Axon vHtau_KM_Soma = vHact_KM_Axon g_KAprox_Soma = 150 g_KAdist_Soma = 0 temp_KA_Soma = 23 g_KBK_Soma = 0.6 g_CaHVA_Soma = 2 g_CaLVA_Soma = 0 temp_Ca_Soma = 23 g_HCN_Soma = 0.95 pHCN1_Soma = 0.67 Vrev_HCN_Soma = -45 Vhakt_HCN_Soma = -100 k_HCN_Soma = -10 Vhtau_HCN_Soma = -100 temp_HCN_Soma = 24 a0t_hcn1_Soma = 0.00102 a0t_hcn2_Soma = 0.00022 } proc init_DendParameter() { // capacitance cm_Dend_Dist = Cm*spinescale cm_Dend_Prox = Cm // Na channel g_Na_ApiDendProx = 350 g_Na_ApiDendDist = 320 temp_Na_Dend=23 g_Na_BasDendStart = 150 Na_BasRedFaktor = 0.5 // KV channel g_KV_DendStart = g_KV_Soma g_KV_DendEnd = g_KV_Soma/17.2 KV_DendDecFac = 80 temp_KV_Dend = 21 // Km channel g_KM_DistDend = 0 temp_KM_Dend = temp_KM_Soma //=35 vHact_KM_Dend = vHact_KM_Axon vHtau_KM_Dend = vHact_KM_Axon // KA channels - following Acker & Antic 2009 KA_ProRed = 1/300 // reduction factor for the proximal KA channel type KA_BasIncFaktor = 0.7 // increase factor for the KA density of basal dendrites g_KA_BasDendStart = 150 // start density basal dendrites g_KA_Max = 2000 // maximal possible value g_KA_ApiDend = 300 // density for apical dendrites temp_KA_Dend = temp_KA_Soma // BK channels g_KBK_Dend = g_KBK_Soma // ca channels g_CaHVA_DistDend = 2 g_CaLVA_DistDend = 0.5 temp_Ca_Dend=temp_Ca_Soma //=23 // HCN, distribution based on Kole 2006 g_HCN_DendStart = g_HCN_Soma // HCN density at the begin of the dendrites g_HCN_DendEnd = 40 * g_HCN_DendStart // HCN density at the end of the dendrites HCN_DendLambda = 323 // steepness of the HCN increase, Kole 2006 (PMID: 16467515) pHCN1_Dend=0.67 //share of HCN1 Vrev_HCN_Dend = -45 // reversal potential Vhakt_HCN_Dend = Vhakt_HCN_Soma k_HCN_Dend = k_HCN_Soma Vhtau_HCN_Dend = -100 temp_HCN_Dend=temp_HCN_Soma a0t_hcn1_Dend = a0t_hcn1_Soma a0t_hcn2_Dend = a0t_hcn2_Soma //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // the 1st 100 um of the apical trunk and the 1st 20 um of the basals // only if these values differ from the above, overwrites the former //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! g_KM_ProxDend = 5 g_CaHVA_ProxDend = g_CaHVA_Soma g_CaLVA_ProxDend = 0 } // ************************************************************************** // // ************************************************************************** // // 2) Allocation // ************************************************************************** // // ************************************************************************** // //--------------------------------------------------------------------------- // Axon //--------------------------------------------------------------------------- proc init_Axon() { axon { insert nax gbar_nax = g_Nax_Axon temp_nax = temp_Nax_Axon insert kv gbar_kv = g_KV_Axon temp_kv = temp_KV_Axon insert km gbar_km = g_KM_Axon*(1E-4) temp_km = temp_KM_Axon vhalfl_km = vHact_KM_Axon vhalft_km = vHtau_KM_Axon } soma { insert nax gbar_nax = g_Nax_Axon temp_nax = temp_Nax_Axon insert kv gbar_kv = g_KV_Axon temp_kv = temp_KV_Axon insert km gbar_km = g_KM_Axon*(1E-4) temp_km = temp_KM_Axon vhalfl_km = vHact_KM_Axon vhalft_km = vHtau_KM_Axon } for i=0,13 { dend1[i] { insert nax gbar_nax = g_Nax_Axon temp_nax = temp_Nax_Axon insert kv gbar_kv = g_KV_Axon temp_kv = temp_KV_Axon insert km gbar_km = g_KM_Axon*(1E-4) temp_km = temp_KM_Axon vhalfl_km = vHact_KM_Axon vhalft_km = vHtau_KM_Axon } } } //--------------------------------------------------------------------------- // Soma //--------------------------------------------------------------------------- proc init_Soma() { for i=14,27 { dend1[i] { insert na gbar_na = g_Na_Soma temp_na = temp_Na_Soma insert nap gbar_nap = g_Nap_Soma * (1E-4) insert kv gbar_kv = g_KV_Soma temp_kv = temp_KV_Soma insert km gbar_km = g_KM_Soma*(1E-4) temp_km = temp_KM_Soma vhalfl_km = vHact_KM_Soma vhalft_km = vHtau_KM_Soma insert kap gkabar_kap = g_KAprox_Soma*(1E-4) temp_kap = temp_KA_Soma insert kad gkabar_kad = g_KAdist_Soma*(1E-4) temp_kad = temp_KA_Soma insert kBK gpeak_kBK = g_KBK_Soma*(1E-4) insert ca gbar_ca = g_CaHVA_Soma temp_ca = temp_Ca_Soma insert it2 gcabar_it2 = g_CaLVA_Soma*(1E-4) insert hcn1 insert hcn2 // HCN Parameter gpeak_hcn1 = g_HCN_Soma*(1E-4)*pHCN1_Soma gpeak_hcn2 = g_HCN_Soma*(1E-4)*(1-pHCN1_Soma) Vrev_hcn1 = Vrev_HCN_Soma Vrev_hcn2 = Vrev_HCN_Soma vhakt_hcn1 = Vhakt_HCN_Soma vhakt_hcn2 = Vhakt_HCN_Soma k_hcn1 = k_HCN_Soma k_hcn2 = k_HCN_Soma vhtau_hcn1 = Vhtau_HCN_Soma vhtau_hcn2 = Vhtau_HCN_Soma temp_hcn1 = temp_HCN_Soma temp_hcn2 = temp_HCN_Soma a0t_hcn1 = a0t_hcn1_Soma a0t_hcn2 = a0t_hcn2_Soma } } } //--------------------------------------------------------------------------- // Dendrites //--------------------------------------------------------------------------- proc init_Dend() {local dis,ratio,lD,NaTemp,KaTemp,HcnTemp,dif,y0_HCN,A_HCN access dend1[21] distance() //measuring distance starting at the soma ld=0 for i=28,1090 { //determine maximal length of the dendrite dend1[i] { dis=distance(.5) if (lD < dis) lD = dis } } // calculate HCN distribution parameter dif = g_HCN_DendEnd - g_HCN_DendStart A_HCN = dif / ( (exp(lD/HCN_DendLambda)) - 1) y0_HCN = g_HCN_DendStart - A_HCN // All Dendriten for i=28,1090 { dend1[i] { dis=distance(.5) g_pas=g_pas*spinescale cm=cm_Dend_Dist // all uniform distributions insert km gbar_km = g_KM_DistDend*(1E-4) //distal, proximal see below temp_km = temp_KM_Axon vhalfl_km = vHact_KM_Dend vhalft_km = vHtau_KM_Dend insert kBK gpeak_kBK = g_KBK_Dend*(1E-4)*spinescale insert ca gbar_ca = g_CaHVA_DistDend*spinescale temp_ca = temp_Ca_Dend insert it2 gcabar_it2 = g_CaLVA_DistDend*(1E-4)*spinescale //Na channel basal insert na NaTemp = g_Na_BasDendStart - dis * Na_BasRedFaktor if (NaTemp < 0) NaTemp=0 gbar_na = NaTemp*spinescale temp_na = temp_Na_Dend // Der Spinescale muss aus den prox. entfernt werden //KV channel insert kv dif = (g_KV_DendStart-g_KV_DendEnd) gbar_kv = g_KV_DendEnd + ( dif * exp (-dis/KV_DendDecFac)) if (gbar_kv < 0) gbar_kv=0 gbar_kv = gbar_kv * spinescale temp_kv = temp_KV_Dend //KA channels basal insert kap insert kad KaTemp = g_KA_BasDendStart + dis * KA_BasIncFaktor if (KaTemp>g_KA_Max) { KaTemp = g_KA_Max } ratio = KA_ProRed * dis // share distal/proximal KA type if (ratio < 0) ratio = 0 if (ratio > 1) ratio = 1 gkabar_kad = KaTemp*ratio*(1E-4)*spinescale gkabar_kap = KaTemp*(1-ratio)*(1E-4)*spinescale temp_kap = temp_KA_Dend temp_kad = temp_KA_Dend //HCN insert hcn1 insert hcn2 HcnTemp = y0_HCN+A_HCN*exp(dis / HCN_DendLambda) HcnTemp = HcnTemp*(1E-4)*spinescale gpeak_hcn1 = HcnTemp*pHCN1_Dend gpeak_hcn2 = HcnTemp*(1-pHCN1_Dend) Vrev_hcn1 = Vrev_HCN_Dend Vrev_hcn2 = Vrev_HCN_Dend vhakt_hcn1 = Vhakt_HCN_Dend vhakt_hcn2 = Vhakt_HCN_Dend k_hcn1 = k_HCN_Dend k_hcn2 = k_HCN_Dend vhtau_hcn1 = Vhtau_HCN_Dend vhtau_hcn2 = Vhtau_HCN_Dend temp_hcn1 = temp_HCN_Dend temp_hcn2 = temp_HCN_Dend a0t_hcn1 = a0t_hcn1_Dend a0t_hcn2 = a0t_hcn2_Dend } } // apical dendrites, overwrites the values of 'all dendrites' from above forsec ApikalDend { dis=distance(.5) gbar_na = g_Na_ApiDendDist*spinescale ratio = KA_ProRed * dis // share distal/proximal KA type if (ratio < 0) ratio = 0 if (ratio > 1) ratio = 1 gkabar_kad = g_KA_ApiDend*ratio*(1E-4)*spinescale gkabar_kap = g_KA_ApiDend*(1-ratio)*(1E-4)*spinescale } // the 1st 100 um of the apical trunk // overwrites the values from above / removes spinescale for i=28,32 { dend1[i] { g_pas=g_pas/spinescale cm=cm_Dend_Prox gbar_km = g_KM_ProxDend*(1E-4) gpeak_kBK = g_KBK_Dend*(1E-4) gbar_ca = g_CaHVA_ProxDend gcabar_it2 = g_CaLVA_ProxDend*(1E-4) gbar_na = g_Na_ApiDendProx gbar_kv = gbar_kv / spinescale gkabar_kap = gkabar_kap / spinescale gkabar_kad = gkabar_kad / spinescale gpeak_hcn1 = gpeak_hcn1 / spinescale gpeak_hcn2 = gpeak_hcn2 / spinescale } } for i=43,47 { dend1[i] { g_pas=g_pas/spinescale cm=cm_Dend_Prox gbar_km = g_KM_ProxDend*(1E-4) gpeak_kBK = g_KBK_Dend*(1E-4) gbar_ca = g_CaHVA_ProxDend gcabar_it2 = g_CaLVA_ProxDend*(1E-4) gbar_na = g_Na_ApiDendProx gbar_kv = gbar_kv / spinescale gkabar_kap = gkabar_kap / spinescale gkabar_kad = gkabar_kad / spinescale gpeak_hcn1 = gpeak_hcn1 / spinescale gpeak_hcn2 = gpeak_hcn2 / spinescale } } for i=71,72 { dend1[i] { g_pas=g_pas/spinescale cm=cm_Dend_Prox gbar_km = g_KM_ProxDend*(1E-4) gpeak_kBK = g_KBK_Dend*(1E-4) gbar_ca = g_CaHVA_ProxDend gcabar_it2 = g_CaLVA_ProxDend*(1E-4) gbar_na = g_Na_ApiDendProx gbar_kv = gbar_kv / spinescale gkabar_kap = gkabar_kap / spinescale gkabar_kad = gkabar_kad / spinescale gpeak_hcn1 = gpeak_hcn1 / spinescale gpeak_hcn2 = gpeak_hcn2 / spinescale } } // the 1st 20 um of the basals // overwrites the values from above / removes spinescale for i=777,778 { dend1[i] { g_pas=g_pas/spinescale cm=cm_Dend_Prox gbar_km = g_KM_ProxDend*(1E-4) gpeak_kBK = g_KBK_Dend*(1E-4) gbar_ca = g_CaHVA_ProxDend gcabar_it2 = g_CaLVA_ProxDend*(1E-4) gbar_na = gbar_na / spinescale gbar_kv = gbar_kv / spinescale gkabar_kap = gkabar_kap / spinescale gkabar_kad = gkabar_kad / spinescale gpeak_hcn1 = gpeak_hcn1 / spinescale gpeak_hcn2 = gpeak_hcn2 / spinescale } } for i=808,810 { dend1[i] { g_pas=g_pas/spinescale cm=cm_Dend_Prox gbar_km = g_KM_ProxDend*(1E-4) gpeak_kBK = g_KBK_Dend*(1E-4) gbar_ca = g_CaHVA_ProxDend gcabar_it2 = g_CaLVA_ProxDend*(1E-4) gbar_na = gbar_na / spinescale gbar_kv = gbar_kv / spinescale gkabar_kap = gkabar_kap / spinescale gkabar_kad = gkabar_kad / spinescale gpeak_hcn1 = gpeak_hcn1 / spinescale gpeak_hcn2 = gpeak_hcn2 / spinescale } } for i=923,924 { dend1[i] { g_pas=g_pas/spinescale cm=cm_Dend_Prox gbar_km = g_KM_ProxDend*(1E-4) gpeak_kBK = g_KBK_Dend*(1E-4) gbar_ca = g_CaHVA_ProxDend gcabar_it2 = g_CaLVA_ProxDend*(1E-4) gbar_na = gbar_na / spinescale gbar_kv = gbar_kv / spinescale gkabar_kap = gkabar_kap / spinescale gkabar_kad = gkabar_kad / spinescale gpeak_hcn1 = gpeak_hcn1 / spinescale gpeak_hcn2 = gpeak_hcn2 / spinescale } } for i=957,959 { dend1[i] { g_pas=g_pas/spinescale cm=cm_Dend_Prox gbar_km = g_KM_ProxDend*(1E-4) gpeak_kBK = g_KBK_Dend*(1E-4) gbar_ca = g_CaHVA_ProxDend gcabar_it2 = g_CaLVA_ProxDend*(1E-4) gbar_na = gbar_na / spinescale gbar_kv = gbar_kv / spinescale gkabar_kap = gkabar_kap / spinescale gkabar_kad = gkabar_kad / spinescale gpeak_hcn1 = gpeak_hcn1 / spinescale gpeak_hcn2 = gpeak_hcn2 / spinescale } } for i=1006,1007 { dend1[i] { g_pas=g_pas/spinescale cm=cm_Dend_Prox gbar_km = g_KM_ProxDend*(1E-4) gpeak_kBK = g_KBK_Dend*(1E-4) gbar_ca = g_CaHVA_ProxDend gcabar_it2 = g_CaLVA_ProxDend*(1E-4) gbar_na = gbar_na / spinescale gbar_kv = gbar_kv / spinescale gkabar_kap = gkabar_kap / spinescale gkabar_kad = gkabar_kad / spinescale gpeak_hcn1 = gpeak_hcn1 / spinescale gpeak_hcn2 = gpeak_hcn2 / spinescale } } for i=1055,1058 { dend1[i] { g_pas=g_pas/spinescale cm=cm_Dend_Prox gbar_km = g_KM_ProxDend*(1E-4) gpeak_kBK = g_KBK_Dend*(1E-4) gbar_ca = g_CaHVA_ProxDend gcabar_it2 = g_CaLVA_ProxDend*(1E-4) gbar_na = gbar_na / spinescale gbar_kv = gbar_kv / spinescale gkabar_kap = gkabar_kap / spinescale gkabar_kad = gkabar_kad / spinescale gpeak_hcn1 = gpeak_hcn1 / spinescale gpeak_hcn2 = gpeak_hcn2 / spinescale } } for i=1059,1060 { dend1[i] { g_pas=g_pas/spinescale cm=cm_Dend_Prox gbar_km = g_KM_ProxDend*(1E-4) gpeak_kBK = g_KBK_Dend*(1E-4) gbar_ca = g_CaHVA_ProxDend gcabar_it2 = g_CaLVA_ProxDend*(1E-4) gbar_na = gbar_na / spinescale gbar_kv = gbar_kv / spinescale gkabar_kap = gkabar_kap / spinescale gkabar_kad = gkabar_kad / spinescale gpeak_hcn1 = gpeak_hcn1 / spinescale gpeak_hcn2 = gpeak_hcn2 / spinescale } } for i=1067,1069 { dend1[i] { g_pas=g_pas/spinescale cm=cm_Dend_Prox gbar_km = g_KM_ProxDend*(1E-4) gpeak_kBK = g_KBK_Dend*(1E-4) gbar_ca = g_CaHVA_ProxDend gcabar_it2 = g_CaLVA_ProxDend*(1E-4) gbar_na = gbar_na / spinescale gbar_kv = gbar_kv / spinescale gkabar_kap = gkabar_kap / spinescale gkabar_kad = gkabar_kad / spinescale gpeak_hcn1 = gpeak_hcn1 / spinescale gpeak_hcn2 = gpeak_hcn2 / spinescale } } } //--------------------------------------------------------------------------- // reversal and start potential //--------------------------------------------------------------------------- proc init_Volt() { forall { vshift_na=-10 //provides AP threshold of ~ -60 mV at soma vshift_nax=-10 ena = 55 ek = -105 e_pas = v_init taur_cad = 100 } }