//genesis /*************************** MS Model, Version 9.1 ********************* **************************** NMDA_CDIGate.g ********************* ****************************************************************************** *****************************************************************************/ // This is an implementation of a CDI gate for the NMDA receptor. // CDI model reference: Farinella et a. 2014 Plos Comp Bio. // Steady-State: exp(-8*[Ca]) where [Ca] is internal calcium concentration (mM) // Tau: 1000 ms. // This is a hack to use a calcium-dependent channel gate to implement NMDAR_CDI. // This object will not contribute any conductance to a compartment, rather, it // will be set up only to pass its GK (equivalent to its Z gate value) value as // a message to the MOD field of the NMDA channel object function make_NMDA_CDI_gate(chanpath) int nStep = 2000 float nmdacdi = 1.0 float CaMax = 0.1 // 100 uM float CaMin = 0 float delta = (CaMax - CaMin)/nStep float nmdacdi_fact = 8.0 float tau = 1.0 //1 second int i float Ca = 0.0 str chanpath //pushe /library //if (({exists {chanpath}})) // return //end create tabchannel {chanpath} setfield ^ Ek {0e-3} \ Gbar 1 \ //Gbar=1 so GK will be value of Zgate Ik 0 \ Gk 0 \ Xpower 0 \ Ypower 0 \ Zpower 1 call {chanpath} TABCREATE Z {nStep} {CaMin} {CaMax} // Creates nStep entries for (i = 0; i < {nStep}; i = i + 1) Ca=i*delta nmdacdi = {exp {-1*{nmdacdi_fact}*{Ca}}} setfield {chanpath} Z_B->table[{i}] {nmdacdi} setfield {chanpath} Z_A->table[{i}] {tau} end tweaktau {chanpath} Z pope end