//-------------------------------------------------------------------------- // Author: Thomas Nowotny // // Institute: Institute for Nonlinear Dynamics // University of California San Diego // La Jolla, CA 92093-0402 // // email to: tnowotny@ucsd.edu // // initial version: 2002-01-24 // //-------------------------------------------------------------------------- //-------------------------------------------------------------------------- // adapted from LPneuronJorge with // a) own fit for Ih // b) GHK formalism for ICa + own fit with it //-------------------------------------------------------------------------- #ifndef LPRNEURON_H #define LPRNEURON_H #include "CN_neuron.h" #include #define LPR_PNO 73 #define LPR_IVARNO 16 //-------------------------------------------------------------------------- // parameters of the LPR neuron (typical set, can be modified at any time // later on. Modifications take effect immediately in the next evaluation) double stdLPR_p[LPR_PNO]= { 7.15, // 0 - gNa: Na conductance [muS] 50, // 1 - ENa: Na equi potential in mV 0.1247796343, // 2 - gCa1: first Ca conductance 0.07142141077, // 3 - gCa2: second Ca conductance 1.663612026, // 4 - goCa: KCa conductance -72, // 5 - EK: K rev. potential 1.43, // 6 - gd: Kd conductance in [muS] 0.8008791415, // 7 - gA: A channel conductance 0.0126874385, // 8 - gh: Ih channel conductance -20, // 9 - EIh: Ih channel rev. potential 0.001004288227, // 10 - gleak: leak conductance neuropil -50, // 11 - Eleak: leak reversal potential 0.1148312178, // 12 - Cmem: membrane capacitance neuropil 0.05049639866, // 13 - c_iCa: factor in Ca dynamics [mM/pCb] 0.01729930764, // 14 - k_Ca: time scale Ca removal [1/ms] 1, // 15 - tfac: rescaling all taum/tauh -9.342518882, // 16 - Vshift: shift of V to outside world 0, // 17 - IDC: DC input current to set dyn. regime 1, // 18 - tfac_fast: recaling fast taum/tauh (Na, Kd) 0.004017089073, // 19 - gVV: conductance between neuropil & soma 0.0543909161, // 20 - Cs: capacitance of soma 0.0006901584324, // 21 - gleaks: leak conduct. soma 11.4866, // 22 - RTF 1, // 23 - V_m 0.9, // 24 - s_m 0.045, // 25 - k_aCa1 0.02, // 26 - k_bCa1 0.0608644, // 27 - k_aCa2 15, // 28 - V_aCa1 -40, // 29 - V_bCa1 29.1336, // 30 - V_aCa2 -9.8, // 31 - s_aCa1 3.2, // 32 - s_bCa1 -4.43083, // 33 - s_aCa2 0.00155982, // 34 - P_Ca 15123.5, // 35 - Ca_out -15, // 36 - V_kbCa1 -10, // 37 - s_kbCa1 0.6, // 38 - k_oa 0.035, // 39 - k_ob 0, // 40 - V_ao1 -16, // 41 - V_ao2 -23, // 42 - s_ao1 -5, // 43 - s_ao2 0.6, // 44 - f 2.5, // 45 - c1 0.7, // 46 - c2 0.6, // 47 - c3 0.02, // 48 - Ca_0 0.14, // 49 - k_aA 0.05, // 50 - k_bA1 0.0036, // 51 - c_A2 -12, // 52 - V_aA -62, // 53 - V_bA -40, // 54 - V_kbA2 7, // 55 - V_x -26, // 56 - s_aA 6, // 57 - s_bA -12, // 58 - s_kbA2 -15, // 59 - s_x 0.00033, // 60 - c_r -70, // 61 - V_r -110, // 62 - V_kr 8, // 63 - s_r -21.6, // 64 - s_kr 0.01222505828, // 65 - I_scale -80, // 66 - E_M 0.2613041227, // 67 - g_M 0.0001386796618, // 68 - k_M -26.9916223, // 69 - V_M -5.957441281, // 70 - s_M -60.57875745, // 71 - V_kM -13.25674673, // 72 - s_kM }; double *LPR_p= stdLPR_p; char *LPR_p_text[LPR_PNO]= { "0 - gNa: Na conductance [muS]", "1 - ENa: Na equi potential in mV", "2 - gCa1: first Ca conductance", "3 - gCa2: second Ca conductance", "4 - goCa: KCa conductance", "5 - EK: K rev. potential", "6 - gd: Kd conductance in [muS]", "7 - gA: A channel conductance", "8 - gh: Ih channel conductance", "9 - EIh: Ih channel rev. potential", "10 - gleak: leak conductance neuropil", "11 - Eleak: leak reversal potential", "12 - Cmem: membrane capacitance neuropil", "13 - c_iCa: factor in Ca dynamics [mM/pCb]", "14 - k_Ca: time scale Ca removal [1/ms]", "15 - tfac: rescaling all taum/tauh", "16 - Vshift: shift of V to outside world", "17 - IDC: DC input current to set dyn. regime", "18 - tfac_fast: recaling fast taum/tauh (Na, Kd)", "19 - gVV: conductance between neuropil & soma", "20 - Cs: capacitance of soma", "21 - gleaks: leak conduct. soma", "22 - RTF", "23 - AreaAxon", "24 - Area", "25 - k_aCa1", "26 - k_bCa1", "27 - k_aCa2", "28 - V_aCa1", "29 - V_bCa1", "30 - V_aCa2", "31 - s_aCa1", "32 - s_bCa1", "33 - s_aCa2", "34 - P_Ca", "35 - Ca_out", "36 - V_kbCa1", "37 - s_kbCa1", "38 - k_oa", "39 - k_ob", "40 - V_ao1", "41 - V_ao2", "42 - s_ao1", "43 - s_ao2", "44 - f", "45 - c1", "46 - c2", "47 - c3", "48 - Ca_0", "49 - k_aA", "50 - k_bA1", "51 - c_A2", "52 - V_aA", "53 - V_bA", "54 - V_kbA2", "55 - V_x", "56 - s_aA", "57 - s_bA", "58 - s_kbA2", "59 - s_x", "60 - c_r", "61 - V_r", "62 - V_kr", "63 - s_r", "64 - s_kr", "65 - I_scale", "66 - E_M", "67 - g_M", "68 - k_M", "69 - V_M", "70 - s_M", "71 - V_kM", "72 - s_kM" }; //---------------------------------------------------------------------- // the following initial values reflect the steady state with no input double stdLPR_INIVARS[LPR_IVARNO]= { -56.0, // 0 - membrane potential 0.0, // 1 - Na channel activation mNa 0.2, // 2 - Na channel unblocking hNa 0.0, // 3 - Ca1 channel activation mCa1 1.0, // 4 - Ca1 channel unblocking hCa1 0.0, // 5 - Ca2 channel activation mCa2 0.0, // 6 - oCa channel activation moCa 1.0, // 7 - oCa channel unblocking hoCa 0.0, // 8 - d channel activation md 0.0, // 9 - A channel activation mA 1.0, // 10 - A channel unblocking hA1 1.0, // 11 - A channel unblocking hA2 0.0, // 12 - Ih channel activation 0.04, // 13 - Ca concentration 0.01, // 14 - M current activation var -56.0 // 15 - membrane potential soma }; double *LPR_INIVARS= stdLPR_INIVARS; char *LPR_INIVARSTEXT[LPR_IVARNO]= { "0 - membrane potential", "1 - Na channel activation mNa", "2 - Na channel unblocking hNa", "3 - Ca1 channel activation mCa1", "4 - Ca1 channel unblocking hCa1", "5 - Ca2 channel activation mCa2", "6 - oCa channel activation moCa", "7 - oCa channel unblocking hoCa", "8 - d channel activation md", "9 - A channel activation mA", "10 - A channel unblocking hA1", "11 - A channel unblocking hA2", "12 - Ih channel activation", "13 - Ca concentration", "14 - M current activation var", "15 - membrane potential soma" }; // the LPR neuron class itself class LPRneuron: public neuron { public: LPRneuron(int, double *); LPRneuron(int, vector, double *); virtual ~LPRneuron() { } inline virtual double E(double *); virtual void currents(ostream &, double *); virtual void derivative(double *, double *); }; // for fitting purposes: type == 0 means additive changes // type == 1 means multiplicative changes double LPR_p_type[LPR_PNO]= { 1, // 0 - gNa: Na conductance [muS] paper 0, // 1 - ENa: Na equi potential in mV 1, // 2 - gCa1: first Ca conductance 1, // 3 - gCa2: second Ca conductance 1, // 4 - goCa: KCa conductance 0, // 5 - EK: K rev. potential 1, // 6 - gd: Kd conductance in [muS] 1, // 7 - gA: A channel conductance 1, // 8 - gh: Ih channel conductance 0, // 9 - EIh: Ih channel rev. potential 1, // 10 - gleak: leak conductance neuropil 0, // 11 - Eleak: leak reversal potential 1, // 12 - Cmem: membrane capacitance neuropil 1, // 13 - c_iCa: factor in Ca dynamics [mM/pCb] 1, // 14 - k_Ca: time scale Ca removal [1/ms] 1, // 15 - tfac: rescaling all taum/tauh 0, // 16 - Vshift: shift of V to outside world 0, // 17 - IDC: DC input current to set dyn. regime 1, // 18 - tfac_fast: recaling fast taum/tauh (Na, Kd) 1, // 19 - gVV: conductance between neuropil & soma 1, // 20 - Cs: capacitance of soma 1, // 21 - gleaks: leak conduct. soma 1, // 22 - RTF 1, // 23 - AreaAxon 1, // 24 - Area 1, // 25 - k_aCa1 1, // 26 - k_bCa1 1, // 27 - k_aCa2 0, // 28 - V_aCa1 0, // 29 - V_bCa1 0, // 30 - V_aCa2 1, // 31 - s_aCa1 1, // 32 - s_bCa1 1, // 33 - s_aCa2 1, // 34 - P_Ca 1, // 35 - Ca_out 0, // 36 - V_kbCa1 1, // 37 - s_kbCa1 1, // 38 - k_oa 1, // 39 - k_ob 0, // 40 - V_ao1 0, // 41 - V_ao2 1, // 42 - s_ao1 1, // 43 - s_ao2 1, // 44 - f 1, // 45 - c1 1, // 46 - c2 1, // 47 - c3 1, // 48 - Ca_0 1, // 49 - k_aA 1, // 50 - k_bA1 1, // 51 - c_A2 0, // 52 - V_aA 0, // 53 - V_bA 0, // 54 - V_kbA2 0, // 55 - V_x 1, // 56 - s_aA 1, // 57 - s_bA 1, // 58 - s_kbA2 1, // 59 - s_x 1, // 60 - c_r 0, // 61 - V_r 0, // 62 - V_kr 1, // 63 - s_r 1, // 64 - s_kr 1, // 65 - I_scale 0, // 66 - E_M 1, // 67 - g_M 1, // 68 - k_M 0, // 69 - V_M 1, // 70 - s_M 0, // 71 - V_kM 1 // 72 - s_kM }; // for fitting purposes ... the LPR_p_sens(itivity) is basically the inverse // of the slope of the deviation of the neuron model perturbed in a given // parameter compared to the model with the original parameter set. // see "test_params" and "calc_sensitivity" for more details double LPR_p_sens[LPR_PNO]= { 5e-10, // 0 - gNa: Na conductance [muS] paper 1e-08, // 1 - ENa: Na equi potential in mV 5e-10, // 2 - gCa1: first Ca conductance 5e-10, // 3 - gCa2: second Ca conductance 5e-10, // 4 - goCa: KCa conductance 1e-08, // 5 - EK: K rev. potential 5e-10, // 6 - gd: Kd conductance in [muS] 5e-10, // 7 - gA: A channel conductance 1e-9, // 8 - gh: Ih channel conductance 1e-07, // 9 - EIh: Ih channel rev. potential 1e-09, // 10 - gleak: leak conductance neuropil 1e-09, // 11 - Eleak: leak reversal potential 1e-09, // 12 - Cmem: membrane capacitance neuropil 1e-09, // 13 - c_iCa: factor in Ca dynamics [mM/pCb] 1e-09, // 14 - k_Ca: time scale Ca removal [1/ms] 5e-10, // 15 - tfac: rescaling all taum/tauh 1e-8, // 16 - Vshift: shift of V to outside world 5e-9, // 17 - IDC: DC input current to set dyn. regime 5e-10, // 18 - tfac_fast: recaling fast taum/tauh (Na, Kd) 1e-9, // 19 - gVV: conductance between neuropil & soma 1e-9, // 20 - Cs: capacitance of soma 1e-9, // 21 - gleaks: leak conduct. soma 1e-09, // 22 - RTF 1e-9, // 23 - AreaAxon 1e-9, // 24 - Area 1e-9, // 25 - k_aCa1 1e-09, // 26 - k_bCa1 1e-08, // 27 - k_aCa2 1e-09, // 28 - V_aCa1 1e-09, // 29 - V_bCa1 1e-07, // 30 - V_aCa2 1e-11, // 31 - s_aCa1 1e-09, // 32 - s_bCa1 1e-08, // 33 - s_aCa2 5e-10, // 34 - P_Ca 5e-10, // 35 - Ca_out 1e-08, // 36 - V_kbCa1 5e-10, // 37 - s_kbCa1 1e-08, // 38 - k_oa 1e-08, // 39 - k_ob 5e-08, // 40 - V_ao1 1e-08, // 41 - V_ao2 1e-09, // 42 - s_ao1 5e-10, // 43 - s_ao2 1e-08, // 44 - f 1e-09, // 45 - c1 1e-09, // 46 - c2 1e-09, // 47 - c3 5e-9, // 48 - Ca_0 1e-08, // 49 - k_aA 1e-07, // 50 - k_bA1 1e-08, // 51 - c_A2 1e-08, // 52 - V_aA 1e-08, // 53 - V_bA 1e-07, // 54 - V_kbA2 1e-06, // 55 - V_x 5e-10, // 56 - s_aA 1e-9, // 57 - s_bA 1e-08, // 58 - s_kbA2 1e-07, // 59 - s_x 5e-08, // 60 - c_r 1e-07, // 61 - V_r 1e-06, // 62 - V_kr 1e-08, // 63 - s_r 1e-07, // 64 - s_kr 1e-9, // 65 - I_scale 1e-07, // 66 - E_M 1e-9, // 67 - g_M 1e-9, // 68 - k_M 1e-8, // 69 - V_M 1e-9, // 70 - s_M 1e-8, // 71 - V_kM 1e-9, // 72 - s_kM }; #endif