COMMENT Mechanism taken from Doron et al., 2017 https://senselab.med.yale.edu/ModelDB/ShowModel.cshtml?model=231427&file=/reproduction/Im.mod#tabs-2 Reference : Adams et al. 1982 - M-currents and other potassium currents in bullfrog sympathetic neurones corrected rates using q10 = 2.3, target temperature 34, orginal 21 --------------------------------------------------------------- neuromodulation is added as functions: modulation = 1 + damod*(maxMod-1)*level where: damod [0]: is a switch for turning modulation on or off {1/0} maxMod [1]: is the maximum modulation for this specific channel (read from the param file) e.g. 10% increase would correspond to a factor of 1.1 (100% +10%) {0-inf} level [0]: is an additional parameter for scaling modulation. Can be used simulate non static modulation by gradually changing the value from 0 to 1 {0-1} [] == default values {} == ranges ENDCOMMENT NEURON { SUFFIX Im USEION k READ ek WRITE ik RANGE gbar, gIm, ik RANGE damod, maxMod, level, max2, lev2 } UNITS { (S) = (siemens) (mV) = (millivolt) (mA) = (milliamp) } PARAMETER { gbar = 0.00001 (S/cm2) damod = 0 maxMod = 1 level = 0 max2 = 1 lev2 = 0 } ASSIGNED { v (mV) ek (mV) ik (mA/cm2) gIm (S/cm2) mInf mTau mAlpha mBeta } STATE { m } BREAKPOINT { SOLVE states METHOD cnexp gIm = gbar*m*modulation() ik = gIm*(v-ek) } DERIVATIVE states { rates() m' = (mInf-m)/mTau } INITIAL{ rates() m = mInf } PROCEDURE rates(){ LOCAL qt qt = 2.3^((34-21)/10) UNITSOFF mAlpha = 3.3e-3*exp(2.5*0.04*(v - -35)) mBeta = 3.3e-3*exp(-2.5*0.04*(v - -35)) mInf = mAlpha/(mAlpha + mBeta) mTau = (1/(mAlpha + mBeta))/qt UNITSON } FUNCTION modulation() { : returns modulation factor modulation = 1 + damod * ( (maxMod-1)*level + (max2-1)*lev2 ) if (modulation < 0) { modulation = 0 } }