TITLE Voltage-gated potassium channel from Kv4 subunits COMMENT NEURON implementation of a potassium channel from Kv4 subunits Kv4 activation from Sacco inactivation from SD Yunliang Zang April 16th 2015 ENDCOMMENT NEURON { SUFFIX Kv4s USEION k READ ek WRITE ik RANGE gk, gbar, ik,vshift : GLOBAL ninf, taun, hinf, tauh : THREADSAFE } UNITS { (mV) = (millivolt) (mA) = (milliamp) (nA) = (nanoamp) (pA) = (picoamp) (S) = (siemens) (nS) = (nanosiemens) (pS) = (picosiemens) (um) = (micron) (molar) = (1/liter) (mM) = (millimolar) } CONSTANT { q10 = 3 F = 9.6485e4 (coulombs) R = 8.3145 (joule/kelvin) can = 0.15743 (1/ms) cvan = 57 (mV) ckan = -32.19976 (mV) cbn = 0.15743 (1/ms) cvbn = 57 (mV) ckbn = 37.51346 (mV) cah = 0.01342 (1/ms) cvah = 60 (mV) ckah = -7.86476 (mV) cbh = 0.04477 (1/ms) cvbh = 54 (mV) ckbh = 11.3615 (mV) vh = -75.30348 (mV) kh = -6.06329 (mV) ki = 150 (mM) :from Stephane ko = 2.5 (mM) } PARAMETER { v (mV) celsius (degC) vshift = 0 gbar = 0.0039 (mho/cm2) <0,1e9> } ASSIGNED { ik (mA/cm2) ek (mV) gk (mho/cm2) g (coulombs/cm3) T (kelvin) qt E (volt) zeta ninf taun (ms) alphan (1/ms) betan (1/ms) alphah (1/ms) betah (1/ms) hinf : h1inf : h2inf tauh (ms) : tauh2 (ms) } STATE { n h } INITIAL { T = kelvinfkt (celsius) qt = q10^((celsius-23 (degC))/10 (degC)) rates(v) n = ninf h = hinf } BREAKPOINT { SOLVE states METHOD cnexp gk = gbar * n*n*n*n*h ik = gk * (v - ek) } DERIVATIVE states { rates(v) n' = (ninf-n)/taun h' = (hinf-h)/tauh } PROCEDURE rates(v (mV)) { alphan = alphanfkt(v) betan = betanfkt(v) : ninf = alphan / (alphan+betan) : ninf = (1/(1+exp(-(v+27)/8.8)))^(1/4) ninf = 1.0 / (1.0 + exp((-49 - v)/12.5)) taun = 1/((alphan+betan)*qt) alphah = alphahfkt(v) betah = betahfkt(v) : h1inf = alphah / (alphah + betah) : h2inf = alphah / (alphah + betah) hinf = 1/(1+exp((v-(vh-vshift))/-kh)) : h2inf =1/(1+exp((v-(vh-vshift))/-kh)) : tauh1 = (1.96+2*1.59/(exp((-92-v)/13.8)+exp((v+92)/13.8)))/qt tauh =100/qt g = ghk(v, ki, ko, 1) } FUNCTION ghk( v (mV), ki (mM), ko (mM), z ) (coulombs/cm3) { E = (1e-3) * v zeta = (z*F*E)/(R*T) if ( fabs(1-exp(-zeta)) < 1e-6 ) { ghk = (1e-6) * (z*F) * (ki - ko*exp(-zeta)) * (1 + zeta/2) } else { ghk = (1e-6) * (z*zeta*F) * (ki - ko*exp(-zeta)) / (1-exp(-zeta)) } } FUNCTION alphanfkt(v (mV)) (1/ms) { alphanfkt = can * exp(-(v+cvan)/ckan) } FUNCTION betanfkt(v (mV)) (1/ms) { betanfkt = cbn * exp(-(v+cvbn)/ckbn) } FUNCTION kelvinfkt( t (degC) ) (kelvin) { kelvinfkt = 273.19 + t } FUNCTION alphahfkt(v (mV)) (1/ms) { alphahfkt = cah / (1+exp(-(v+cvah)/ckah)) } FUNCTION betahfkt(v (mV)) (1/ms) { betahfkt = cbh / (1+exp(-(v+cvbh)/ckbh)) }