TITLE K-D channel with activation for motor cortex : K-D current with activation, for motor cortex pyramidal neurons, per Miller et al. (2008) : Based on K-A current K-A current for Mitral Cells from Wang et al (1996), by M.Migliore Jan. 2002 : 2011-02-25 Ben Suter, first version, using MM's kamt.mod as a starting template : 2011-09-18 Ben Suter, set default parameter values to those found from MRF optimization for BS0284 model : : ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : Copyright 2011, Benjamin Suter : Used in model of corticospinal neuron BS0284 and published as: : "Intrinsic electrophysiology of mouse corticospinal neurons: a characteristic set of features embodied in a realistic computational model" : by Benjamin Suter, Michele Migliore, and Gordon Shepherd : Submitted September 2011 : ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: NEURON { THREADSAFE SUFFIX kdmc USEION k READ ek WRITE ik RANGE gbar, minf, mtau, hinf, htau, ik GLOBAL taumin } PARAMETER { gbar = 0.002 (mho/cm2) celsius ek (mV) : must be explicitly def. in hoc v (mV) : activation vhalfmt = -25 : original -20 : rough estimate from Miller et al (2008) Fig. 3D I-V curve km = 14 : manual fit to match this I-V curve : inactivation : NOTE: These values are still quite arbitrary (but get about the correct htau at -40 and -30 mV vhalfh = -5 : original -55 zetah = 0.02 : original 0.05 gmh = 0.2 : original 0.7 a0h = 0.00058 : original 0.00055 taumin = 0.1 (ms) : minimal value of time constant vhalfht = -100 : original -88 : measured by Storm (1988) kh = 8 : manual fit to match inactivation curve in Storm (1988) and Johnston+Wu textbook q10 = 3 } UNITS { (mA) = (milliamp) (mV) = (millivolt) (pS) = (picosiemens) (um) = (micron) } ASSIGNED { ik (mA/cm2) minf mtau (ms) hinf htau (ms) } STATE { m h } BREAKPOINT { SOLVE states METHOD cnexp ik = gbar*m*h*(v - ek) } INITIAL { trates(v) m = minf h = hinf } DERIVATIVE states { trates(v) m' = (minf-m)/mtau h' = (hinf-h)/htau } PROCEDURE trates(v) { LOCAL qt qt = q10^((celsius-34)/10) minf = 1/(1 + exp(-(v-vhalfmt)/km)) mtau = 1 hinf = 1/(1 + exp((v-vhalfht)/kh)) htau = exp(zetah*gmh*(v-vhalfh)) / (qt*a0h*(1 + exp(zetah*(v-vhalfh)))) if(htau < taumin) { htau = taumin } : min value of time constant }