Personal tools
You are here: Home Model Repository
 
Views

Voltage clamp experiments in striated muscle fibres

The CellML code.

XML source view

<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#" cmeta:id="Adrian_Chandler_Hodgkin_Frog_Sartorius_1970" name="adrian_model_1970">

  
<!-- Model description -->
<documentation xmlns="http://cellml.org/tmp-documentation">
<article>
  
<articleinfo>
  
<title>Voltage Clamp Experiments in Striated Muscle Fibres</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>
In this 1970 publication, Adrian, Chandler and Hodgkin developed a mathematical model of an action potential in frog striated muscle.  Their model was based on data from voltage-clamp experiments, and they include descriptions of three currents:
</para>
<itemizedlist>
  
<listitem>
            
<para>
              
<emphasis>I<subscript>Na</subscript>
              
</emphasis>, a fast inward sodium current;</para>
          
</listitem>
  
<listitem>
            
<para>
              
<emphasis>I<subscript>K</subscript>
              
</emphasis>, a slow outward potassium current; and</para>
          
</listitem>     
  
<listitem>
            
<para>
              
<emphasis>I<subscript>L</subscript>
              
</emphasis>, a leak current.</para>
          
</listitem>
</itemizedlist> 
<para>
The style of the model equations is based on the 
<ulink url="http://www.cellml.org/models/hodgkin_huxley_1952_version06">The Hodgkin-Huxley Squid Axon Model, 1952</ulink>.  However, the authors acknowledge that the situation in striated muscle is complicated by tubular resistance and capacity.  The transverse tubular system which exists in striated myocytes is represented in the model by a linear resistance and capacity in series.   
</para>

<para>
The model has been described here in CellML (the raw CellML description of the Adrian 
<emphasis>et al.</emphasis> 1970 model can be downloaded in various formats as described in <xref linkend="sec_download_this_model" />).     
</para>

<para>
As the paper was published in 1970, there is no online version.  However, the complete reference is cited below:
</para>

<para>
Voltage Clamp Experiments in Striated Muscle Fibres.  R. H. Adrian, W. K. Chandler, and A. L. Hodgkin.  
<emphasis>Journal of Physiology</emphasis>, (1970), 208, pp 607-644.  <ulink url="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&amp;db=PubMed&amp;list_uids=5499787&amp;dopt=Abstract">PubMed ID: 5499787</ulink>
</para>

<para>
In order to complete the model and run simulations, some parameters were also taken from the following paper:
</para>

<para>
Reconstruction of the Action Potential of Frog Sartorius Muscle.  R. H. Adrian and L. D. Peachey. 
<emphasis>Journal of Physiology</emphasis>, (1973), 235, pp 103-131.  <ulink url="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&amp;db=PubMed&amp;list_uids=4778131&amp;dopt=Abstract">PubMed ID: 4778131</ulink>
</para>


</sect1>
</article>
</documentation>
  

<!-- ======================================================== -->

  
<!-- Global units -->
  
<units name="mV">
    
<unit units="volt" prefix="milli" />
  
</units>
  
<units name="uApmmsq">
    
<unit units="ampere" prefix="micro" />
    
<unit units="metre" prefix="milli" exponent="-2" />
  
</units>
  
<units name="uApmmcu">
    
<unit units="ampere" prefix="micro" />
    
<unit units="metre" prefix="milli" exponent="-3" />
  
</units>
  
<units name="uFpmmsq">
    
<unit units="farad" prefix="micro" />
    
<unit units="metre" prefix="milli" exponent="-1" />
  
</units>
  
<units name="mSpmmsq">
    
<unit units="siemens" prefix="milli" />
    
<unit units="metre" prefix="milli" exponent="-2" />
  
</units>
  
<units name="mmsqpmS">
    
<unit units="metre" prefix="milli" exponent="2" />
    
<unit units="siemens" prefix="milli" exponent="-1" />
  
</units>
  
<units name="ms">
    
<unit units="second" prefix="milli" />
  
</units>
  
<units name="pms">
    
<unit units="ms" exponent="-1" />
  
</units>
  
<units name="pmm">
    
<unit units="metre" prefix="milli" exponent="-1" />
  
</units>

<!-- ======================================================== -->

  
<component cmeta:id="interface" name="interface">
    

    
<!-- Variables to be set externally -->
    
<variable units="ms" private_interface="out" name="t" />
    
<variable units="uFpmmsq" private_interface="out" name="Cm" initial_value="0.009" />
    
<variable units="pmm" private_interface="out" name="Am" initial_value="200.0" />
    
<variable units="uApmmcu" private_interface="out" name="Istim" />

    
<!-- ODE variables available externally -->
    
<variable units="mV" public_interface="out" private_interface="in" name="Vm" />
    
<variable units="mV" public_interface="out" private_interface="in" name="Vt" />
    
<variable units="dimensionless" public_interface="out" private_interface="in" name="m" />
    
<variable units="dimensionless" public_interface="out" private_interface="in" name="h" />
    
<variable units="dimensionless" public_interface="out" private_interface="in" name="n" />

    
<!-- Derived variables available externally -->
    
<variable units="uApmmsq" public_interface="out" private_interface="in" name="INa" />
    
<variable units="uApmmsq" public_interface="out" private_interface="in" name="IK" />
    
<variable units="uApmmsq" public_interface="out" private_interface="in" name="IL" />
    
<variable units="uApmmsq" public_interface="out" private_interface="in" name="IT" />

    
<!-- Stimulus variable available externally -->
    
<variable units="uApmmcu" public_interface="out" name="IStimC" />
    
<variable units="pmm" public_interface="out" name="AmC" />

    
<!-- Maths -->
    
<math xmlns="http://www.w3.org/1998/Math/MathML" cmeta:id="IStim_external_eq">
      
<!-- Stimulus variable -->
      
<apply id="IStim_external_eq">
        
<eq />
        
<ci>IStimC</ci>
        
<ci>Istim</ci>
      
</apply>
    
</math>
    
<math xmlns="http://www.w3.org/1998/Math/MathML" cmeta:id="Am_external_eq">
      
<!-- Am variable -->
      
<apply id="Am_external_eq">
        
<eq />
        
<ci>AmC</ci>
        
<ci>Am</ci>
      
</apply>
    
</math>
  
</component>
  
<!-- interface -->

<!-- ======================================================== -->

  
<component cmeta:id="membrane" name="membrane">
    

    
<!-- Inputs -->
    
<variable units="ms" public_interface="in" private_interface="out" name="t" />
    
<variable units="uFpmmsq" public_interface="in" private_interface="out" name="Cm" />
    
<variable units="pmm" public_interface="in" private_interface="out" name="Am" />
    
<variable units="uApmmcu" public_interface="in" private_interface="out" name="Istim" />

    
<!-- Outputs -->
    
<variable units="mV" public_interface="out" private_interface="out" name="Vm" initial_value="-95.0" />

    
<!-- Encapsulated outputs -->
    
<variable units="dimensionless" public_interface="out" private_interface="in" name="m" />
    
<variable units="dimensionless" public_interface="out" private_interface="in" name="h" />
    
<variable units="dimensionless" public_interface="out" private_interface="in" name="n" />
    
<variable units="uApmmsq" public_interface="out" private_interface="in" name="INa" />
    
<variable units="uApmmsq" public_interface="out" private_interface="in" name="IK" />
    
<variable units="uApmmsq" public_interface="out" private_interface="in" name="IL" />
    
<variable units="uApmmsq" public_interface="out" private_interface="in" name="IT" />
    
<variable units="mV" public_interface="out" private_interface="in" name="Vt" />

    
<!-- Maths -->
    
<math xmlns="http://www.w3.org/1998/Math/MathML" cmeta:id="dV_dt_eq">
      
<!-- dVm/dt calculation -->
      
<apply id="dV_dt_eq">
        
<eq />
        
<apply>
          
<diff />
          
<bvar>
            
<ci>t</ci>
          
</bvar>
          
<ci>Vm</ci>
        
</apply>
        
<apply>
          
<divide />
          
<apply>
            
<minus />
            
<ci>Istim</ci>
            
<apply>
              
<plus />
              
<ci>INa</ci>
              
<ci>IK</ci>
              
<ci>IL</ci>
              
<ci>IT</ci>
            
</apply>
          
</apply>
          
<ci>Cm</ci>
        
</apply>
      
</apply>
    
</math>
  
</component>
  
<!-- membrane -->

<!-- ======================================================== -->

  
<component cmeta:id="sodium_current" name="sodium_current">
    

    
<!-- Inputs -->
    
<variable units="ms" public_interface="in" private_interface="out" name="t" />
    
<variable units="mV" public_interface="in" private_interface="out" name="Vm" />

    
<!-- Outputs -->
    
<variable units="uApmmsq" public_interface="out" name="INa" />

    
<!-- Encapsulated outputs -->
    
<variable units="dimensionless" public_interface="out" private_interface="in" name="m" />
    
<variable units="dimensionless" public_interface="out" private_interface="in" name="h" />

    
<!-- Local constants -->
    
<variable units="mSpmmsq" name="gNa_max" initial_value="1.8" />
    
<variable units="mV" name="ENa" initial_value="50.0" />

    
<!-- Maths -->
    
<math xmlns="http://www.w3.org/1998/Math/MathML" cmeta:id="INa_eq">
      
<!-- INa calculation -->
      
<apply id="INa_eq">
        
<eq />
        
<ci>INa</ci>
        
<apply>
          
<times />
          
<ci>gNa_max</ci>
          
<ci>m</ci>
          
<ci>m</ci>
          
<ci>m</ci>
          
<ci>h</ci>
          
<apply>
            
<minus />
            
<ci>Vm</ci>
            
<ci>ENa</ci>
          
</apply>
        
</apply>
      
</apply>
    
</math>
  
</component>
  
<!-- sodium_current -->

<!-- ======================================================== -->

  
<component cmeta:id="sodium_current_m_gate" name="sodium_current_m_gate">
    

    
<!-- Inputs -->
    
<variable units="ms" public_interface="in" private_interface="out" name="t" />
    
<variable units="mV" public_interface="in" private_interface="out" name="Vm" />

    
<!-- Outputs -->
    
<variable units="dimensionless" public_interface="out" name="m" initial_value="0.0" />

    
<!-- Local variables -->
    
<variable units="pms" name="alpha_m" />
    
<variable units="pms" name="beta_m" />

    
<!-- Local constants -->
    
<variable units="pms" name="alpha_m_max" initial_value="0.208" />
    
<variable units="pms" name="beta_m_max" initial_value="2.081" />
    
<variable units="mV" name="Em" initial_value="-42.0" />
    
<variable units="dimensionless" name="v_alpha_m" initial_value="10.0" />
    
<variable units="mV" name="v_beta_m" initial_value="18.0" />

    
<!-- Maths -->
    
<math xmlns="http://www.w3.org/1998/Math/MathML" cmeta:id="dm_dt_eq">
      
<!-- alpha_m calculation -->
      
<apply id="alpha_m_calculation">
        
<eq />
        
<ci>alpha_m</ci>
        
<apply>
          
<divide />
          
<apply>
            
<times />
            
<ci>alpha_m_max</ci>
            
<apply>
              
<minus />
              
<ci>Vm</ci>
              
<ci>Em</ci>
            
</apply>
          
</apply>
          
<apply>
            
<minus />
            
<cn cellml:units="mV">1.0</cn>
            
<apply>
              
<exp />
              
<apply>
                
<divide />
                
<apply>
                  
<minus />
                  
<ci>Em</ci>
                  
<ci>Vm</ci>
                
</apply>
                
<ci>v_alpha_m</ci>
              
</apply>
            
</apply>
          
</apply>
        
</apply>
      
</apply>

      
<!-- beta_m calculation -->
      
<apply id="beta_m_calculation">
        
<eq />
        
<ci>beta_m</ci>
        
<apply>
          
<times />
          
<ci>beta_m_max</ci>
          
<apply>
            
<exp />
            
<apply>
              
<divide />
              
<apply>
                
<minus />
                
<ci>Em</ci>
                
<ci>Vm</ci>
              
</apply>
              
<ci>v_beta_m</ci>
            
</apply>
          
</apply>
        
</apply>
      
</apply>

      
<!-- dm/dt calculation -->
      
<apply id="dm_dt_eq">
        
<eq />
        
<apply>
          
<diff />
          
<bvar>
            
<ci>t</ci>
          
</bvar>
          
<ci>m</ci>
        
</apply>
        
<apply>
          
<minus />
          
<apply>
            
<times />
            
<ci>alpha_m</ci>
            
<apply>
              
<minus />
              
<cn cellml:units="dimensionless">1.0</cn>
              
<ci>m</ci>
            
</apply>
          
</apply>
          
<apply>
            
<times />
            
<ci>beta_m</ci>
            
<ci>m</ci>
          
</apply>
        
</apply>
      
</apply>
    
</math>
  
</component>
  
<!-- sodium_current_m_gate -->

<!-- ======================================================== -->

  
<component cmeta:id="sodium_current_h_gate" name="sodium_current_h_gate">
    

    
<!-- Inputs -->
    
<variable units="ms" public_interface="in" private_interface="out" name="t" />
    
<variable units="mV" public_interface="in" private_interface="out" name="Vm" />

    
<!-- Outputs -->
    
<variable units="dimensionless" public_interface="out" name="h" initial_value="1.0" />

    
<!-- Local variables -->
    
<variable units="pms" name="alpha_h" />
    
<variable units="pms" name="beta_h" />

    
<!-- Local constants -->
    
<variable units="pms" name="alpha_h_max" initial_value="0.0156" />
    
<variable units="pms" name="beta_h_max" initial_value="3.382" />
    
<variable units="mV" name="Eh" initial_value="-41.0" />
    
<variable units="mV" name="v_alpha_h" initial_value="14.7" />
    
<variable units="mV" name="v_beta_h" initial_value="7.6" />

    
<!-- Maths -->
    
<math xmlns="http://www.w3.org/1998/Math/MathML" cmeta:id="dh_dt_eq">
      
<!-- alpha_h calculation -->
      
<apply id="alpha_h_calculation">
        
<eq />
        
<ci>alpha_h</ci>
        
<apply>
          
<times />
          
<ci>alpha_h_max</ci>
          
<apply>
            
<exp />
            
<apply>
              
<divide />
              
<apply>
                
<minus />
                
<ci>Eh</ci>
                
<ci>Vm</ci>
              
</apply>
              
<ci>v_alpha_h</ci>
            
</apply>
          
</apply>
        
</apply>
      
</apply>

      
<!-- beta_h calculation -->
      
<apply id="beta_h_calculation">
        
<eq />
        
<ci>beta_h</ci>
        
<apply>
          
<divide />
          
<ci>beta_h_max</ci>
          
<apply>
            
<plus />
            
<cn cellml:units="dimensionless">1.0</cn>
            
<apply>
              
<exp />
              
<apply>
                
<divide />
                
<apply>
                  
<minus />
                  
<ci>Eh</ci>
                  
<ci>Vm</ci>
                
</apply>
                
<ci>v_beta_h</ci>
              
</apply>
            
</apply>
          
</apply>
        
</apply>
      
</apply>

      
<!-- dh/dt calculation -->
      
<apply id="dh_dt_eq">
        
<eq />
        
<apply>
          
<diff />
          
<bvar>
            
<ci>t</ci>
          
</bvar>
          
<ci>h</ci>
        
</apply>
        
<apply>
          
<minus />
          
<apply>
            
<times />
            
<ci>alpha_h</ci>
            
<apply>
              
<minus />
              
<cn cellml:units="dimensionless">1.0</cn>
              
<ci>h</ci>
            
</apply>
          
</apply>
          
<apply>
            
<times />
            
<ci>beta_h</ci>
            
<ci>h</ci>
          
</apply>
        
</apply>
      
</apply>
    
</math>
  
</component>
  
<!-- sodium_current_h_gate -->

<!-- ======================================================== -->

  
<component cmeta:id="potassium_current" name="potassium_current">
    

    
<!-- Inputs -->
    
<variable units="ms" public_interface="in" private_interface="out" name="t" />
    
<variable units="mV" public_interface="in" private_interface="out" name="Vm" />

    
<!-- Outputs -->
    
<variable units="uApmmsq" public_interface="out" name="IK" />

    
<!-- Encapsulated outputs -->
    
<variable units="dimensionless" public_interface="out" private_interface="in" name="n" />

    
<!-- Local constants -->
    
<variable units="mSpmmsq" name="gK_max" initial_value="0.415" />
    
<variable units="mV" name="EK" initial_value="-70.0" />

    
<!-- Maths -->
    
<math xmlns="http://www.w3.org/1998/Math/MathML" cmeta:id="IK_eq">
      
<!-- IK calculation -->
      
<apply id="IK_eq">
        
<eq />
        
<ci>IK</ci>
        
<apply>
          
<times />
          
<ci>gK_max</ci>
          
<ci>n</ci>
          
<ci>n</ci>
          
<ci>n</ci>
          
<ci>n</ci>
          
<apply>
            
<minus />
            
<ci>Vm</ci>
            
<ci>EK</ci>
          
</apply>
        
</apply>
      
</apply>
    
</math>
  
</component>
  
<!-- potassium_current -->

<!-- ======================================================== -->

  
<component cmeta:id="potassium_current_n_gate" name="potassium_current_n_gate">
    

    
<!-- Inputs -->
    
<variable units="ms" public_interface="in" private_interface="out" name="t" />
    
<variable units="mV" public_interface="in" private_interface="out" name="Vm" />

    
<!-- Outputs -->
    
<variable units="dimensionless" public_interface="out" name="n" initial_value="0.0" />

    
<!-- Local variables -->
    
<variable units="pms" name="alpha_n" />
    
<variable units="pms" name="beta_n" />

    
<!-- Local constants -->
    
<variable units="pms" name="alpha_n_max" initial_value="0.0229" />
    
<variable units="pms" name="beta_n_max" initial_value="0.09616" />
    
<variable units="mV" name="En" initial_value="-40.0" />
    
<variable units="dimensionless" name="v_alpha_n" initial_value="7.0" />
    
<variable units="mV" name="v_beta_n" initial_value="40.0" />

    
<!-- Maths -->
    
<math xmlns="http://www.w3.org/1998/Math/MathML" cmeta:id="dn_dt_eq">
      
<!-- alpha_n calculation -->
      
<apply id="alpha_n_calculation">
        
<eq />
        
<ci>alpha_n</ci>
        
<apply>
          
<divide />
          
<apply>
            
<times />
            
<ci>alpha_n_max</ci>
            
<apply>
              
<minus />
              
<ci>Vm</ci>
              
<ci>En</ci>
            
</apply>
          
</apply>
          
<apply>
            
<minus />
            
<cn cellml:units="dimensionless">1.0</cn>
            
<apply>
              
<exp />
              
<apply>
                
<divide />
                
<apply>
                  
<minus />
                  
<ci>En</ci>
                  
<ci>Vm</ci>
                
</apply>
                
<ci>v_alpha_n</ci>
              
</apply>
            
</apply>
          
</apply>
        
</apply>
      
</apply>

      
<!-- beta_n calculation -->
      
<apply id="beta_n_calculation">
        
<eq />
        
<ci>beta_n</ci>
        
<apply>
          
<times />
          
<ci>beta_n_max</ci>
          
<apply>
            
<exp />
            
<apply>
              
<divide />
              
<apply>
                
<minus />
                
<ci>En</ci>
                
<ci>Vm</ci>
              
</apply>
              
<ci>v_beta_n</ci>
            
</apply>
          
</apply>
        
</apply>
      
</apply>

      
<!-- dn/dt calculation -->
      
<apply id="dn_dt_eq">
        
<eq />
        
<apply>
          
<diff />
          
<bvar>
            
<ci>t</ci>
          
</bvar>
          
<ci>n</ci>
        
</apply>
        
<apply>
          
<minus />
          
<apply>
            
<times />
            
<ci>alpha_n</ci>
            
<apply>
              
<minus />
              
<cn cellml:units="dimensionless">1.0</cn>
              
<ci>n</ci>
            
</apply>
          
</apply>
          
<apply>
            
<times />
            
<ci>beta_n</ci>
            
<ci>n</ci>
          
</apply>
        
</apply>
      
</apply>
    
</math>
  
</component>
  
<!-- potassium_current_n_gate -->

<!-- ======================================================== -->

  
<component cmeta:id="leak_current" name="leak_current">
    

    
<!-- Inputs -->
    
<variable units="mV" public_interface="in" private_interface="out" name="Vm" />

    
<!-- Outputs -->
    
<variable units="uApmmsq" public_interface="out" name="IL" />

    
<!-- Local constants -->
    
<variable units="mV" name="EL" initial_value="-95.0" />
    
<variable units="mSpmmsq" name="gL_max" initial_value="0.0024" />

    
<!-- Maths -->
    
<math xmlns="http://www.w3.org/1998/Math/MathML" cmeta:id="IL_eq">
      
<!-- IL calculation -->
      
<apply id="IL_eq">
        
<eq />
        
<ci>IL</ci>
        
<apply>
          
<times />
          
<ci>gL_max</ci>
          
<apply>
            
<minus />
            
<ci>Vm</ci>
            
<ci>EL</ci>
          
</apply>
        
</apply>
      
</apply>
    
</math>
  
</component>
  
<!-- leak_current -->