/* * Models Of Respiratory Rhythm Generation In The Pre-Botzinger * Complex. I. Bursting Pacemaker Neurons * * Model Status * * This CellML model runs in OpenCell and COR to reproduce the * published results (Figure 5 A3 where E_L = -50 mv). Please note * that the model has to be run for a duration of 10000 ms with * a step size of 0.01 ms and a high point density of 100000 points/graph. * This model represents model 2 from the published paper (which * includes a slow potassium current). * * Model Structure * * ABSTRACT: A network of oscillatory bursting neurons with excitatory * coupling is hypothesized to define the primary kernel for respiratory * rhythm generation in the pre-Botzinger complex (pre-BotC) in * mammals. Two minimal models of these neurons are proposed. In * model 1, bursting arises via fast activation and slow inactivation * of a persistent Na+ current INaP-h. In model 2, bursting arises * via a fast-activating persistent Na+ current INaP and slow activation * of a K+ current IKS. In both models, action potentials are generated * via fast Na+ and K+ currents. The two models have few differences * in parameters to facilitate a rigorous comparison of the two * different burst-generating mechanisms. Both models are consistent * with many of the dynamic features of electrophysiological recordings * from pre-BotC oscillatory bursting neurons in vitro, including * voltage-dependent activity modes (silence, bursting, and beating), * a voltage-dependent burst frequency that can vary from 0.05 * to greater than 1 Hz, and a decaying spike frequency during * bursting. These results are robust and persist across a wide * range of parameter values for both models. However, the dynamics * of model 1 are more consistent with experimental data in that * the burst duration decreases as the baseline membrane potential * is depolarized and the model has a relatively flat membrane * potential trajectory during the interburst interval. We propose * several experimental tests to demonstrate the validity of either * model and to differentiate between the two mechanisms. * * The complete original paper reference is cited below: * * Models of Respiratory Rhythm Generation in the Pre-Botzinger * Complex. I. Bursting Pacemaker Neurons, Robert J. Butera, Jr., * John Rinzel and Jeffrey C. Smith, 1999, Journal of Neurophysiology, * 81, 382-397. PubMed ID: 10400966 * * diagram of the first model * * [[Image file: butera_1999a.png]] * * The first mathematical model is based on a single-compartment * Hodgkin-Huxley type formalism. It is composed of five ionic * currents across the plasma membrane: a fast sodium current, * INa; a delayed rectifier potassium current, IK; a persistent * sodium current, INaP; a passive leakage current, IL; and a tonic * current, Itonic_e (although this last current is considered * to be inactive in these models). * * diagram of the first model * * [[Image file: butera_1999b.png]] * * The second model appears identical to the first except with * the addition of a slow K+ current, IKS. (The removal of the * inactivation term "h" from INaP is not visible in the model * diagram.) */ import nsrunit; unit conversion on; // unit millisecond predefined // unit millivolt predefined //Warning: unit picoA_ renamed from picoA, as the latter is predefined in JSim with different fundamental units. unit picoA_=1E-9 ampere^1; unit nanoS=1E-9 kilogram^(-1)*meter^(-2)*second^3*ampere^2; unit picoF=1E-12 kilogram^(-1)*meter^(-2)*second^4*ampere^2; math main { realDomain time millisecond; time.min=0; extern time.max; extern time.delta; real V(time) millivolt; when(time=time.min) V=-55.0; real C picoF; C=21.0; real i_app picoA_; i_app=0.0; real i_NaP(time) picoA_; real i_Na(time) picoA_; real i_K(time) picoA_; real i_KS(time) picoA_; real i_L(time) picoA_; real i_tonic_e(time) picoA_; real E_Na millivolt; E_Na=50.0; real g_Na nanoS; g_Na=28.0; real fast_sodium_current.m_infinity(time) dimensionless; real fast_sodium_current.n(time) dimensionless; when(time=time.min) fast_sodium_current.n=0.01; real fast_sodium_current_m_gate.theta_m millivolt; fast_sodium_current_m_gate.theta_m=-34.0; real fast_sodium_current_m_gate.sigma_m millivolt; fast_sodium_current_m_gate.sigma_m=-5.0; real fast_sodium_current_n_gate.n_infinity(time) dimensionless; real fast_sodium_current_n_gate.tau_n(time) millisecond; real fast_sodium_current_n_gate.tau_n_max millisecond; fast_sodium_current_n_gate.tau_n_max=10.0; real fast_sodium_current_n_gate.theta_n millivolt; fast_sodium_current_n_gate.theta_n=-29.0; real fast_sodium_current_n_gate.sigma_n millivolt; fast_sodium_current_n_gate.sigma_n=-4.0; real E_K millivolt; E_K=-85.0; real g_K nanoS; g_K=11.2; real potassium_current.n(time) dimensionless; when(time=time.min) potassium_current.n=0.01; real potassium_current_n_gate.n_infinity(time) dimensionless; real potassium_current_n_gate.tau_n(time) millisecond; real potassium_current_n_gate.tau_n_max millisecond; potassium_current_n_gate.tau_n_max=10.0; real potassium_current_n_gate.theta_n millivolt; potassium_current_n_gate.theta_n=-29.0; real potassium_current_n_gate.sigma_n millivolt; potassium_current_n_gate.sigma_n=-4.0; real g_KS nanoS; g_KS=5.6; real k(time) dimensionless; when(time=time.min) k=0.22; real k_infinity(time) dimensionless; real tau_k(time) millisecond; real tau_k_max millisecond; tau_k_max=10000.0; real theta_k millivolt; theta_k=-38.0; real sigma_k millivolt; sigma_k=-6.0; real g_NaP nanoS; g_NaP=2.8; real persistent_sodium_current.m_infinity(time) dimensionless; real persistent_sodium_current_m_gate.theta_m millivolt; persistent_sodium_current_m_gate.theta_m=-40.0; real persistent_sodium_current_m_gate.sigma_m millivolt; persistent_sodium_current_m_gate.sigma_m=-6.0; real g_L nanoS; g_L=2.8; real E_L millivolt; E_L=-50.0; real g_tonic_e nanoS; g_tonic_e=0.0; real E_syn_e millivolt; E_syn_e=0.0; // // V:time=(((-1)*(i_NaP+i_KS+i_Na+i_K+i_L+i_tonic_e)+i_app)/C); // i_Na=(g_Na*fast_sodium_current.m_infinity^3*(1-fast_sodium_current.n)*(V-E_Na)); // fast_sodium_current.m_infinity=(1/(1+exp((V-fast_sodium_current_m_gate.theta_m)/fast_sodium_current_m_gate.sigma_m))); // fast_sodium_current.n:time=((fast_sodium_current_n_gate.n_infinity-fast_sodium_current.n)/fast_sodium_current_n_gate.tau_n); fast_sodium_current_n_gate.n_infinity=(1/(1+exp((V-fast_sodium_current_n_gate.theta_n)/fast_sodium_current_n_gate.sigma_n))); fast_sodium_current_n_gate.tau_n=(fast_sodium_current_n_gate.tau_n_max/cosh((V-fast_sodium_current_n_gate.theta_n)/(2*fast_sodium_current_n_gate.sigma_n))); // i_K=(g_K*potassium_current.n^4*(V-E_K)); // potassium_current.n:time=((potassium_current_n_gate.n_infinity-potassium_current.n)/potassium_current_n_gate.tau_n); potassium_current_n_gate.n_infinity=(1/(1+exp((V-potassium_current_n_gate.theta_n)/potassium_current_n_gate.sigma_n))); potassium_current_n_gate.tau_n=(potassium_current_n_gate.tau_n_max/cosh((V-potassium_current_n_gate.theta_n)/(2*potassium_current_n_gate.sigma_n))); // i_KS=(g_KS*k*(V-E_K)); // k:time=((k_infinity-k)/tau_k); k_infinity=(1/(1+exp((V-theta_k)/sigma_k))); tau_k=(tau_k_max/cosh((V-theta_k)/(2*sigma_k))); // i_NaP=(g_NaP*persistent_sodium_current.m_infinity*(V-E_Na)); // persistent_sodium_current.m_infinity=(1/(1+exp((V-persistent_sodium_current_m_gate.theta_m)/persistent_sodium_current_m_gate.sigma_m))); // i_L=(g_L*(V-E_L)); // i_tonic_e=(g_tonic_e*(V-E_syn_e)); }