/* * 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 4 A3 where E_L = -57.5 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 1 from the published * paper (which does not include 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 >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=-50.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_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 g_K nanoS; g_K=11.2; real E_K millivolt; E_K=-85.0; 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_NaP nanoS; g_NaP=2.8; real persistent_sodium_current.m_infinity(time) dimensionless; real h(time) dimensionless; when(time=time.min) h=0.46; 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 h_infinity(time) dimensionless; real tau_h(time) millisecond; real tau_h_max millisecond; tau_h_max=10000.0; real theta_h millivolt; theta_h=-48.0; real sigma_h millivolt; sigma_h=6.0; real g_L nanoS; g_L=2.8; real E_L millivolt; E_L=-57.5; 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_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_NaP=(g_NaP*persistent_sodium_current.m_infinity*h*(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))); // h:time=((h_infinity-h)/tau_h); h_infinity=(1/(1+exp((V-theta_h)/sigma_h))); tau_h=(tau_h_max/cosh((V-theta_h)/(2*sigma_h))); // i_L=(g_L*(V-E_L)); // i_tonic_e=(g_tonic_e*(V-E_syn_e)); }