Personal tools
You are here: Home Model Repository
 
Views

Models of Respiratory Rhythm Generation in the Pre-Botzinger Complex. I. Bursting Pacemaker Neurons

The CellML code.

XML source view

<!--  FILE :  butera_model_1999.xml

CREATED :  9th May 2002

LAST MODIFIED : 20th April 2005

AUTHOR :  Catherine Lloyd
          Bioengineering Institute
          The University of Auckland
          
MODEL STATUS :  This model conforms to the CellML 1.0 Specification released on
10th August 2001, and the 16/01/2002 CellML Metadata 1.0 Specification.

DESCRIPTION :  This file contains a CellML description of Butera et al's first 1999 mathematical model of respiratory rhythm generation in the pre-Botzinger complex in bursting pacemaker neurons.

CHANGES:  
  18/07/2002 - CML - Added more metadata.
  09/04/2003 - AAC - Added publication date information.
  20/04/2005 - PJV - Made MathML id's unique  
-->
<model xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cellml="http://www.cellml.org/cellml/1.0#" xmlns:bqs="http://www.cellml.org/bqs/1.0#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cmeta="http://www.cellml.org/metadata/1.0#" xmlns="http://www.cellml.org/cellml/1.0#" name="butera_rinzel_smith_1999_version01" cmeta:id="butera_rinzel_smith_1999_version01">
<documentation xmlns="http://cellml.org/tmp-documentation">
<article>
  
<articleinfo>
  
<title>Models Of Respiratory Rhythm Generation In The Pre-Botzinger Complex. I. Bursting Pacemaker Neurons</title>
  
<author>
    
<firstname>Catherine</firstname>
          
<surname>Lloyd</surname>
    
<affiliation>
      
<shortaffil>Bioengineering Institute, University of Auckland</shortaffil>
    
</affiliation>
  
</author>
</articleinfo>
  
<section id="sec_status">
    
<title>Model Status</title>
    
<para>
            This is the original unchecked version of the model imported from the previous
            CellML model repository, 24-Jan-2006.
          
</para>
  
</section>
  
<sect1 id="sec_structure">
<title>Model Structure</title>

<para>
Inhalation and exhalation movements associated with respiration in mammals are generated by networks of neurons in the lower brain stem that produce a rhythmic pattern of electrical activity.  The principal neuronal kernel for rhythm generation has been located in the pre-Botzinger complex, a subregion of the ventro-lateral medulla.  In order to understand respiratory rhythm generation, it is necessary to consider mechanisms incorporating intrinsic cellular pacemaker properties.  These mechanisms are captured by a hybrid pacemaker model (Smith 1997; Smith 
<emphasis>et al</emphasis>. 1995), in which a rhythm arises from the dynamic interactions of both intrinsic and synaptic properties within a bilaterally distributed population of coupled bursting pacemaker neurons.  ("Bursting" refers to a complicated pattern of electrical activity.  Bursts of action potential spikes (the "active" phase) are observed, separated by a "silent" phase of membrane repolarisation).
</para>

<para>  
In their 1999 paper, Robert J. Butera, J
<subscript>R</subscript>., John Rinzel and Jeffrey C. Smith present two computational versions of this hybrid pacemaker-network model (see <xref linkend="fig_cell_diagram1" /> and <xref linkend="fig_cell_diagram2" /> below).  In the first model, bursting arises via fast activation and slow inactivation of a persistent Na<superscript>+</superscript> current, I<subscript>NaP</subscript>.  In the second model, bursting arises via a fast-activating persistent Na<superscript>+</superscript> current, I<subscript>NaP</subscript>,(the inactivation term "h" has been removed) and slow activation of a K<superscript>+</superscript> current, I<subscript>KS</subscript>.  In both models, action potentials are generated via fast Na<superscript>+</superscript> and K<superscript>+</superscript> currents.  Both models are consistent with experimental data, and the authors suggest several experimental tests to demonstrate the validity of either model and to differentiate between the two mechanisms.
</para>

<para>
The complete original paper reference is cited below:
</para>

<para>
<ulink url="http://jn.physiology.org/cgi/content/abstract/82/1/382">Models of Respiratory Rhythm Generation in the Pre-Bötzinger Complex. I. Bursting Pacemaker Neurons</ulink>, Robert J. Butera, Jr., John Rinzel and Jeffrey C. Smith, 1999, <ulink url="http://jn.physiology.org/">
            
<emphasis>Journal of Neurophysiology</emphasis>
          
</ulink>, 81, 382-397.  (<ulink url="http://jn.physiology.org/cgi/content/full/82/1/382">Full text</ulink> and <ulink url="http://jn.physiology.org/cgi/reprint/82/1/382.pdf">PDF</ulink> versions of the article are available for Journal Members on the JN website.)  <ulink url="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&amp;db=PubMed&amp;list_uids=10400966&amp;dopt=Abstract">PubMed ID: 10400966</ulink> 
</para>

<para>
The raw CellML description of the model can be downloaded in various formats as described in 
<xref linkend="sec_download_this_model" />
</para>

<informalfigure float="0" id="fig_cell_diagram1">
<mediaobject>
  
<imageobject>
    
<objectinfo>
      
<title>diagram of the first model</title>
    
</objectinfo>
    
<imagedata fileref="../images/butera_model_1999/butera_1999a.png" />
  
</imageobject>
</mediaobject>
<caption>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, I<subscript>Na</subscript>; a delayed rectifier potassium current, I<subscript>K</subscript>; a persistent sodium current,  I<subscript>NaP</subscript>; a passive leakage current, I<subscript>L</subscript>; and a tonic current, I<subscript>tonic_e</subscript> (although this last current is considered to be inactive in these models).</caption>
</informalfigure>

<informalfigure float="0" id="fig_cell_diagram2">
<mediaobject>
  
<imageobject>
    
<objectinfo>
      
<title>diagram of the first model</title>
    
</objectinfo>
    
<imagedata fileref="../images/butera_model_1999/butera_1999b.png" />
  
</imageobject>
</mediaobject>
<caption>The second model appears identical to the first except with the addition of a slow K<superscript>+</superscript> current, I<subscript>KS</subscript>.  (The removal of the inactivation term "h" from I<subscript>NaP</subscript> is not visible in the model diagram.)</caption>
</informalfigure>

</sect1>
</article>
</documentation>
  
  
  
<!--
    Below, we define some additional units for association with variables and
    constants within the model. The identifiers are fairly self-explanatory.
  
-->
  
  
<units name="millisecond">
    
<unit units="second" prefix="milli" />
  
</units>
  
  
<units name="millivolt">
    
<unit units="volt" prefix="milli" />
  
</units>
  
  
<units name="picoA">
    
<unit units="ampere" prefix="nano" />
  
</units>
  
  
<units name="nanoS">
    
<unit units="siemens" prefix="nano" />
  
</units>
  
  
<units name="picoF">
    
<unit units="farad" prefix="pico" />
  
</units>
  
  
<!--
    The "environment" component is used to declare variables that are used by
    all or most of the other components, in this case just "time".
  
-->
  
<component name="environment">
    
<variable units="millisecond" public_interface="out" name="time" />
  
</component>
  
  
<component name="membrane">
    
<variable units="millivolt" public_interface="out" name="V" />
    
    
<variable units="picoF" name="C" initial_value="21.0" />
    
<variable units="picoA" name="i_app" initial_value="0.0" />
    
    
<variable units="millisecond" public_interface="in" name="time" />
    
<variable units="picoA" public_interface="in" name="i_NaP" />
    
<variable units="picoA" public_interface="in" name="i_Na" />
    
<variable units="picoA" public_interface="in" name="i_K" />
    
<variable units="picoA" public_interface="in" name="i_L" />
    
<variable units="picoA" public_interface="in" name="i_tonic_e" />
     
    
<math xmlns="http://www.w3.org/1998/Math/MathML">
      
<apply id="membrane_voltage_diff_eq">
        
<eq />
        
<apply>
          
<diff />
          
<bvar>
            
<ci> time </ci>
          
</bvar>
          
<ci> V </ci>
        
</apply>
        
<apply>
          
<divide />
          
<apply>
            
<plus />
            
<apply>
              
<minus />
              
<apply>
                
<plus />
                
<ci> i_NaP </ci>
                
<ci> i_Na </ci>
                
<ci> i_K </ci>
                
<ci> i_L </ci>
                
<ci> i_tonic_e </ci>
              
</apply>
            
</apply>
            
<ci> i_app </ci>
          
</apply>
          
<ci> C </ci>
        
</apply>
      
</apply>
    
</math>
  
</component>
  
  
<component name="fast_sodium_current">
    
<variable units="picoA" public_interface="out" name="i_Na" />
    
<variable units="millivolt" public_interface="out" name="E_Na" initial_value="50.0" />
    
    
<variable units="nanoS" name="g_Na" initial_value="28.0" />   
   
    
<variable units="millisecond" public_interface="in" private_interface="out" name="time" />
    
<variable units="millivolt" public_interface="in" private_interface="out" name="V" />
    
    
<variable units="dimensionless" private_interface="in" name="m_infinity" />
    
<variable units="dimensionless" private_interface="in" name="n" />
    
    
<math xmlns="http://www.w3.org/1998/Math/MathML">
      
<apply id="i_Na_calculation">
        
<eq />
        
<ci> i_Na </ci>
        
<apply>
          
<times />
          
<ci> g_Na </ci>
          
<apply>
            
<power />
            
<ci> m_infinity </ci>
            
<cn cellml:units="dimensionless"> 3.0 </cn>
          
</apply>
          
<apply>
            
<minus />
            
<cn cellml:units="dimensionless"> 1.0 </cn>
            
<ci> n </ci>
          
</apply>
          
<apply>
            
<minus />
            
<ci> V </ci>
            
<ci> E_Na </ci>
          
</apply>
        
</apply>
      
</apply>
    
</math>
  
</component>
  
  
<component name="fast_sodium_current_m_gate">
    
<variable units="dimensionless" public_interface="out" name="m_infinity" />
    
    
<variable units="millivolt" name="theta_m" initial_value="-34.0" />
    
<variable units="millivolt" name="omega_m" initial_value="-5.0" />
     
    
<variable units="millivolt" public_interface="in" name="V" />
    
    
<math xmlns="http://www.w3.org/1998/Math/MathML">
      
<apply id="fast_sodium_current_m_gate_m_infinity_calculation">
        
<eq />
        
<ci> m_infinity </ci>
        
<apply>
          
<divide />
          
<cn cellml:units="dimensionless"> 1.0 </cn>
          
<apply>
            
<plus />
            
<cn cellml:units="dimensionless"> 1.0 </cn>
            
<apply>
              
<exp />
              
<apply>
                
<divide />
                
<apply>
                  
<minus />
                  
<ci> V </ci>
                  
<ci> theta_m </ci>
                
</apply>
                
<ci> omega_m </ci>
              
</apply>
            
</apply>    
          
</apply>
        
</apply>
      
</apply>
    
</math>
  
</component>
  
  
<component name="fast_sodium_current_n_gate">
    
<variable units="dimensionless" public_interface="out" name="n" />
    
    
<variable units="dimensionless" name="n_infinity" />
    
<variable units="millisecond" name="tau_n" />
    
<variable units="millisecond" name="tau_n_max" initial_value="10.0" />
    
<variable units="millivolt" name="theta_n" initial_value="-29.0" />
    
<variable units="millivolt" name="omega_n" initial_value="-4.0" />
     
    
<variable units="millivolt" public_interface="in" name="V" />
    
<variable units="millisecond" public_interface="in" name="time" />
   
    
<math xmlns="http://www.w3.org/1998/Math/MathML">
      
<apply id="fast_sodium_current_n_gate_n_diff_eq">
        
<eq />
        
<apply>
          
<diff />
          
<bvar>
            
<ci> time </ci>
          
</bvar>
          
<ci> n </ci>
        
</apply>
        
<apply>
          
<divide />
          
<apply>
            
<minus />
            
<ci> n_infinity </ci>
            
<ci> n </ci>
          
</apply>
          
<ci> tau_n </ci>
        
</apply>
      
</apply>
      
      
<apply id="fast_sodium_current_n_gate_n_infinity_calculation">
        
<eq />
        
<ci> n_infinity </ci>
        
<apply>
          
<divide />
          
<cn cellml:units="dimensionless"> 1.0 </cn>
          
<apply>
            
<plus />
            
<cn cellml:units="dimensionless"> 1.0 </cn>
            
<apply>
              
<exp />
              
<apply>
                
<divide />
                
<apply>
                  
<minus />
                  
<ci> V </ci>
                  
<ci> theta_n </ci>
                
</apply>
                
<ci> omega_n </ci>
              
</apply>
            
</apply>    
          
</apply>
        
</apply>
      
</apply>
      
      
<apply id="fast_sodium_current_n_gate_tau_n_calculation">
        
<eq />
        
<ci> tau_n </ci>
        
<apply>
          
<divide />
          
<ci> tau_n_max </ci>
          
<apply>
            
<cosh />
            
<apply>
              
<divide />
              
<apply>
                
<minus />
                
<ci> V </ci>
                
<ci> theta_n </ci>
              
</apply>
              
<apply>
                
<times />
                
<cn cellml:units="dimensionless"> 2.0 </cn>
                
<ci> omega_n </ci>
              
</apply>
            
</apply>
          
</apply>
        
</apply>
      
</apply>
    
</math>
  
</component>
  
  
<component name="potassium_current">
    
<variable units="picoA" public_interface="out" name="i_K" />
    
    
<variable units="nanoS" name="g_K" initial_value="11.2" />   
    
<variable units="millivolt" name="E_K" initial_value="-85.0" />
    
    
<variable units="millisecond" public_interface="in" private_interface="out" name="time" />
    
<variable units="millivolt" public_interface="in" private_interface="out" name="V" />
    
    
<variable units="dimensionless" private_interface="in" name="n" />
    
    
<math xmlns="http://www.w3.org/1998/Math/MathML">
      
<apply id="i_K_calculation">
        
<eq />
        
<ci> i_K </ci>
        
<apply>
          
<times />
          
<ci> g_K </ci>
          
<apply>
            
<power />
            
<ci> n </ci>
            
<cn cellml:units="dimensionless"> 4.0 </cn>
          
</apply>
          
<apply>
            
<minus />
            
<ci> V </ci>
            
<ci> E_K </ci>
          
</apply>
        
</apply>
      
</apply>
    
</math>
  
</component>
  
  
<component name="potassium_current_n_gate">
    
<variable units="dimensionless" public_interface="out" name="n" />
    
    
<variable units="dimensionless" name="n_infinity" />
    
<variable units="millisecond" name="tau_n" />
    
<variable units="millisecond" name="tau_n_max" initial_value="10.0" />
    
<variable units="millivolt" name="theta_n" initial_value="-29.0" />
    
<variable units="millivolt" name="omega_n" initial_value="-4.0" />
     
    
<variable units="millivolt" public_interface="in" name="V" />
    
<variable units="millisecond" public_interface="in" name="time" />
   
    
<math xmlns="http://www.w3.org/1998/Math/MathML">
      
<apply id="potassium_current_n_gate_n_diff_eq">
        
<eq />
        
<apply>
          
<diff />
          
<bvar>
            
<ci> time </ci>
          
</bvar>
          
<ci> n </ci>
        
</apply>
        
<apply>
          
<divide />
          
<apply>
            
<minus />
            
<ci> n_infinity </ci>
            
<ci> n </ci>
          
</apply>
          
<ci> tau_n </ci>
        
</apply>
      
</apply>
      
      
<apply id="potassium_current_n_gate_n_infinity_calculation">
        
<eq />
        
<ci> n_infinity </ci>
        
<apply>
          
<divide />
          
<cn cellml:units="dimensionless"> 1.0 </cn>
          
<apply>
            
<plus />
            
<cn cellml:units="dimensionless"> 1.0 </cn>
            
<apply>
              
<exp />
              
<apply>
                
<divide />
                
<apply>
                  
<minus />
                  
<ci> V </ci>
                  
<ci> theta_n </ci>
                
</apply>
                
<ci> omega_n </ci>
              
</apply>
            
</apply>    
          
</apply>
        
</apply>
      
</apply>
      
      
<apply id="potassium_current_n_gate_tau_n_calculation">
        
<eq />
        
<ci> tau_n </ci>
        
<apply>
          
<divide />
          
<ci> tau_n_max </ci>
          
<apply>
            
<cosh />
            
<apply>
              
<divide />
              
<apply>
                
<minus />
                
<ci> V </ci>
                
<ci> theta_n </ci>
              
</apply>
              
<apply>
                
<times />
                
<cn cellml:units="dimensionless"> 2.0 </cn>
                
<ci> omega_n </ci>
              
</apply>
            
</apply>
          
</apply>
        
</apply>
      
</apply>
    
</math>
  
</component>
  
  
<component name="persistent_sodium_current">
    
<variable units="picoA" public_interface="out" name="i_NaP" />
    
    
<variable units="nanoS" name="g_NaP" initial_value="2.8" />   
   
    
<variable units="millisecond" public_interface="in" private_interface="out" name="time" />
    
<variable units="millivolt" public_interface="in" private_interface="out" name="V" />
    
<variable units="millivolt" public_interface="in" name="E_Na" />         
    
    
<variable units="dimensionless" private_interface="in" name="m_infinity" />
    
<variable units="dimensionless" private_interface="in" name="h" />
    
    
<math xmlns="http://www.w3.org/1998/Math/MathML">
      
<apply id="i_NaP_calculation">
        
<eq />
        
<ci> i_NaP </ci>
        
<apply>
          
<times />
          
<ci> g_NaP </ci>
          
<ci> m_infinity </ci>
          
<ci> h </ci>
          
<apply>
            
<minus />
            
<ci> V </ci>
            
<ci> E_Na </ci>
          
</apply>
        
</apply>
      
</apply>
    
</math>
  
</component>
  
  
<component name="persistent_sodium_current_m_gate">
    
<variable units="dimensionless" public_interface="out" name="m_infinity" />
    
    
<variable units="millivolt" name="theta_m" initial_value="-40.0" />
    
<variable units="millivolt" name="omega_m" initial_value="-6.0" />
     
    
<variable units="millivolt" public_interface="in" name="V" />
    
    
<math xmlns="http://www.w3.org/1998/Math/MathML">
      
<apply id="persistent_sodium_current_m_gate_m_infinity_calculation">
        
<eq />
        
<ci> m_infinity </ci>
        
<apply>
          
<divide />
          
<cn cellml:units="dimensionless"> 1.0 </cn>
          
<apply>
            
<plus />
            
<cn cellml:units="dimensionless"> 1.0 </cn>
            
<apply>
              
<exp />
              
<apply>
                
<divide />
                
<apply>
                  
<minus />
                  
<ci> V </ci>
                  
<ci> theta_m </ci>
                
</apply>
                
<ci> omega_m </ci>
              
</apply>
            
</apply>    
          
</apply>
        
</apply>
      
</apply>
    
</math>
  
</component>
  
  
<component name="persistent_sodium_current_h_gate">
    
<variable units="dimensionless" public_interface="out" name="h" />
    
    
<variable units="dimensionless" name="h_infinity" />
    
<variable units="millisecond" name="tau_h" />
    
<variable units="millisecond" name="tau_h_max" initial_value="10000.0" />
    
<variable units="millivolt" name="theta_h" initial_value="-48.0" />
    
<variable units="millivolt" name="omega_h" initial_value="6.0" />
     
    
<variable units="millivolt" public_interface="in" name="V" />
    
<variable units="millisecond" public_interface="in" name="time" />
   
    
<math xmlns="http://www.w3.org/1998/Math/MathML">
      
<apply id="h_diff_eq">
        
<eq />
        
<apply>
          
<diff />
          
<bvar>
            
<ci> time </ci>
          
</bvar>
          
<ci> h </ci>
        
</apply>
        
<apply>
          
<divide />
          
<apply>
            
<minus />
            
<ci> h_infinity </ci>
            
<ci> h </ci>
          
</apply>
          
<ci> tau_h </ci>
        
</apply>
      
</apply>
      
      
<apply id="h_infinity_calculation">
        
<eq />
        
<ci> h_infinity </ci>
        
<apply>
          
<divide />
          
<cn cellml:units="dimensionless"> 1.0 </cn>
          
<apply>
            
<plus />
            
<cn cellml:units="dimensionless"> 1.0 </cn>
            
<apply>
              
<exp />
              
<apply>
                
<divide />
                
<apply>
                  
<minus />
                  
<ci> V </ci>
                  
<ci> theta_h </ci>
                
</apply>
                
<ci> omega_h </ci>
              
</apply>
            
</apply>    
          
</apply>
        
</apply>
      
</apply>
      
      
<apply id="tau_h_calculation">
        
<eq />
        
<ci> tau_h </ci>
        
<apply>
          
<divide />
          
<ci> tau_h_max </ci>
          
<apply>
            
<cosh />
            
<apply>
              
<divide />
              
<apply>
                
<minus />
                
<ci> V </ci>
                
<ci> theta_h </ci>
              
</apply>
              
<apply>
                
<times />
                
<cn cellml:units="dimensionless"> 2.0 </cn>
                
<ci> omega_h </ci>
              
</apply>
            
</apply>
          
</apply>
        
</apply>
      
</apply>
    
</math>
  
</component>
  
  
<component name="leakage_current">
    
<variable units="picoA" public_interface="out" name="i_L" />
     
    
<variable units="nanoS" name="g_L" initial_value="2.8" />
    
<variable units="millivolt" name="E_L" initial_value="-65.0" /> 
    
    
<variable units="millisecond" public_interface="in" name="time" />
    
<variable units="millivolt" public_interface="in" name="V" />
    
    
<math xmlns="http://www.w3.org/1998/Math/MathML">
      
<apply id="i_L_calculation">
        
<eq />
        
<ci> i_L </ci>
        
<apply>
          
<times />
          
<ci> g_L </ci>
          
<apply>
            
<minus />
            
<ci> V </ci>
            
<ci> E_L </ci>
          
</apply>
        
</apply>
      
</apply>
    
</math>
  
</component>
  
  
<component name="tonic_current">
    
<variable units="picoA" public_interface="out" name="i_tonic_e" />
     
    
<variable units="nanoS" name="g_tonic_e" initial_value="0.0" />
    
<variable units="millivolt" name="E_syn_e" initial_value="0.0" /> 
    
    
<variable units="millisecond" public_interface="in" name="time" />
    
<variable units="millivolt" public_interface="in" name="V" />
    
    
<math xmlns="http://www.w3.org/1998/Math/MathMtonic_e">
      
<apply id="i_tonic_e_calculation">
        
<eq />
        
<ci> i_tonic_e </ci>
        
<apply>
          
<times />
          
<ci> g_tonic_e </ci>
          
<apply>
            
<minus />
            
<ci> V </ci>
            
<ci> E_syn_e </ci>
          
</apply>
        
</apply>
      
</apply>
    
</math>
  
</component>
  
  
<group>
    
<relationship_ref relationship="containment" />
    
<component_ref component="membrane">
      
<component_ref component="fast_sodium_current">
        
<component_ref component="fast_sodium_current_m_gate" />
        
<component_ref component="fast_sodium_current_n_gate" />
      
</componen