Location: Practical application of CellML 1.1: The integration of new mechanisms into a human ventricular myocyte model @ d6328d18c94e / experiments / TNNP-periodic-increasing-frequency.xml

Author:
David Nickerson <nickerso@users.sourceforge.net>
Date:
2013-05-04 07:40:04+12:00
Desc:
adding initial TODO list to keep track of what I need to do to get things working with more recent tools than my original CellMLSimulator that I used in this paper
Permanent Source URI:
https://models.physiomeproject.org/w/andre/nickerson-2008/rawfile/d6328d18c94e9dad70f4d0e4b250e89429773b62/experiments/TNNP-periodic-increasing-frequency.xml

<?xml version="1.0" encoding="iso-8859-1"?>

<model
    name="tnnp_periodic_stimulus_increasing_stimulus"
    cmeta:id="tnnp_periodic_stimulus_increasing_stimulus"
    xmlns="http://www.cellml.org/cellml/1.1#"
    xmlns:cellml="http://www.cellml.org/cellml/1.1#"
    xmlns:cmeta="http://www.cellml.org/metadata/1.0#"
    xmlns:xlink="http://www.w3.org/1999/xlink">
  <rdf:RDF
      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:cmeta="http://www.cellml.org/metadata/1.0#"
      xmlns:bqs="http://www.cellml.org/bqs/1.0#"
      xmlns:dc="http://purl.org/dc/elements/1.1/"
      xmlns:dcterms="http://purl.org/dc/terms/"
      xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#"
      xmlns:cs="http://www.cellml.org/metadata/simulation/1.0#">
    <rdf:Description rdf:about="">
      <dc:creator rdf:parseType="Resource">
        <vCard:N rdf:parseType="Resource">
          <vCard:Family>Nickerson</vCard:Family>
          <vCard:Given>David</vCard:Given>
        </vCard:N>
        <vCard:EMAIL rdf:parseType="Resource">
          <rdf:value>david.nickerson@nus.edu.sg</rdf:value>
          <rdf:type rdf:resource="http://imc.org/vCard/3.0#internet"/>
        </vCard:EMAIL>
        <vCard:ORG rdf:parseType="Resource">
          <vCard:Orgname>National University of Singapore</vCard:Orgname>
          <vCard:Orgunit>Division of Bioengineering</vCard:Orgunit>
        </vCard:ORG>
      </dc:creator>
      <dcterms:created rdf:parseType="Resource">
        <dcterms:W3CDTF>2007-04-30</dcterms:W3CDTF>
      </dcterms:created>
      <dc:publisher>
        Division of Bioengineering, National University of Singapore
      </dc:publisher>
    </rdf:Description>
    <rdf:Description rdf:about="#tnnp_periodic_stimulus_increasing_stimulus">
      <dc:title>
        Base TNNP epicardial model with periodic stimulus applied with
        increasing frequency.
      </dc:title>
      <cmeta:modification rdf:parseType="Resource">
        <rdf:value>
          Moving to using ion-specific additional currents which incorporate
          the stimulus current.
        </rdf:value>
        <cmeta:modifier rdf:parseType="Resource">
          <vCard:FN>David Nickerson</vCard:FN>
        </cmeta:modifier>
        <dcterms:modified rdf:parseType="Resource">
          <dcterms:W3CDTF>2007-05-24</dcterms:W3CDTF>
        </dcterms:modified>
      </cmeta:modification>
      <cmeta:modification rdf:parseType="Resource">
        <rdf:value>
          Adding in additional SR Ca flux term.
        </rdf:value>
        <cmeta:modifier rdf:parseType="Resource">
          <vCard:FN>David Nickerson</vCard:FN>
        </cmeta:modifier>
        <dcterms:modified rdf:parseType="Resource">
          <dcterms:W3CDTF>2007-6-22</dcterms:W3CDTF>
        </dcterms:modified>
      </cmeta:modification>
      <cs:simulation>
        <rdf:Description rdf:ID="simulation">
          <cs:simulationName>PeriodicStimulus</cs:simulationName>
          <cs:multistepMethod>bdf</cs:multistepMethod>
          <cs:iterationMethod>newton</cs:iterationMethod>
          <cs:linearSolver>dense</cs:linearSolver>
          <cs:boundIntervals rdf:parseType="Collection">
            <rdf:Description>
              <cs:boundVariable>
                <rdf:Description rdf:about="#time"/>
              </cs:boundVariable>
              <cs:maximumStepSize 
                rdf:datatype="http://www.w3.org/2001/XMLSchema#double">
                0.1
              </cs:maximumStepSize>
              <cs:tabulationStepSize
                rdf:datatype="http://www.w3.org/2001/XMLSchema#double">
                1.0
              </cs:tabulationStepSize>
              <cs:startingValue
                rdf:datatype="http://www.w3.org/2001/XMLSchema#double">
                0
              </cs:startingValue>
              <cs:endingValue
                rdf:datatype="http://www.w3.org/2001/XMLSchema#double">
                4200e3
              </cs:endingValue>
            </rdf:Description>
          </cs:boundIntervals>
        </rdf:Description>
      </cs:simulation>
    </rdf:Description>
  </rdf:RDF>
  
  <import xlink:href="../../../cellml/models/common/units.xml">
    <units name="ms" units_ref="ms"/>
    <units name="uA_per_mmcu" units_ref="uA_per_mmcu"/>
    <units name="uA_per_mmsq" units_ref="uA_per_mmsq"/>
    <units name="mM_per_ms" units_ref="mM_per_ms"/>
  </import>
  <import xlink:href="TNNP.xml">
    <component name="base_model" component_ref="interface"/>
  </import>
  <import xlink:href="../../../cellml/protocols/periodic-IStim.xml">
    <component name="stimulus_protocol" component_ref="stimulus_protocol"/>
  </import>
  
  <component name="time" cmeta:id="time">
    <rdf:RDF
      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:cmeta="http://www.cellml.org/metadata/1.0#">
      <rdf:Description rdf:about="#time">
        <cmeta:comment rdf:parseType="Resource">
          <rdf:value>
            The actual definition of the time variable.
          </rdf:value>
        </cmeta:comment>
      </rdf:Description>
    </rdf:RDF>
    <variable cmeta:id="time" name="time" initial_value="0.0" public_interface="out" units="ms"/>
  </component>
  <connection>
    <map_components component_1="base_model" component_2="time"/>
    <map_variables variable_1="time" variable_2="time"/>
  </connection>
  <connection>
    <map_components component_1="time" component_2="stimulus_protocol"/>
    <map_variables variable_1="time" variable_2="time"/>
  </connection>
  <connection>
    <map_components component_1="time" component_2="stimulus_protocol_params"/>
    <map_variables variable_1="time" variable_2="time"/>
  </connection>
  
  <component name="stimulus_protocol_params" cmeta:id="stimulus_protocol_params">
    <rdf:RDF
      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:cmeta="http://www.cellml.org/metadata/1.0#">
      <rdf:Description rdf:about="#stimulus_protocol_params">
        <cmeta:comment rdf:parseType="Resource">
          <rdf:value>
            Here we define the parameters for the applied periodic stimulus.
          </rdf:value>
        </cmeta:comment>
      </rdf:Description>
    </rdf:RDF>
    <variable name="time" public_interface="in" units="ms"/>
    <variable name="stimPeriod" public_interface="out" units="ms"/>
    <variable name="stimDuration" initial_value="1" public_interface="out" units="ms"/>
    <variable name="stimCurrent" initial_value="100" public_interface="out" units="uA_per_mmcu"/>
    <math xmlns="http://www.w3.org/1998/Math/MathML">
      <apply><eq/>
        <ci>stimPeriod</ci>
        <piecewise>
          <piece>
            <!-- 0.25 Hz -->
            <cn cellml:units="ms">4e3</cn>
            <apply><lt/>
              <ci>time</ci>
              <cn cellml:units="ms">600e3</cn>
            </apply>
          </piece>
          <piece>
            <!-- 0.5 Hz -->
            <cn cellml:units="ms">2e3</cn>
            <apply><and/>
              <apply><geq/>
                <ci>time</ci>
                <cn cellml:units="ms">600e3</cn>
              </apply>
              <apply><lt/>
                <ci>time</ci>
                <cn cellml:units="ms">1200e3</cn>
              </apply>
            </apply>
          </piece>
          <piece>
            <!-- 1 Hz -->
            <cn cellml:units="ms">1e3</cn>
            <apply><and/>
              <apply><geq/>
                <ci>time</ci>
                <cn cellml:units="ms">1200e3</cn>
              </apply>
              <apply><lt/>
                <ci>time</ci>
                <cn cellml:units="ms">1800e3</cn>
              </apply>
            </apply>
          </piece>
          <piece>
            <!-- 1.5 Hz -->
            <cn cellml:units="ms">666.66</cn>
            <apply><and/>
              <apply><geq/>
                <ci>time</ci>
                <cn cellml:units="ms">1800e3</cn>
              </apply>
              <apply><lt/>
                <ci>time</ci>
                <cn cellml:units="ms">2400e3</cn>
              </apply>
            </apply>
          </piece>
          <piece>
            <!-- 2 Hz -->
            <cn cellml:units="ms">500</cn>
            <apply><and/>
              <apply><geq/>
                <ci>time</ci>
                <cn cellml:units="ms">2400e3</cn>
              </apply>
              <apply><lt/>
                <ci>time</ci>
                <cn cellml:units="ms">3000e3</cn>
              </apply>
            </apply>
          </piece>
          <piece>
            <!-- 2.5 Hz -->
            <cn cellml:units="ms">400</cn>
            <apply><and/>
              <apply><geq/>
                <ci>time</ci>
                <cn cellml:units="ms">3000e3</cn>
              </apply>
              <apply><lt/>
                <ci>time</ci>
                <cn cellml:units="ms">3600e3</cn>
              </apply>
            </apply>
          </piece>
          <piece>
            <!-- 3 Hz -->
            <cn cellml:units="ms">333.33</cn>
            <apply><and/>
              <apply><geq/>
                <ci>time</ci>
                <cn cellml:units="ms">3600e3</cn>
              </apply>
              <apply><lt/>
                <ci>time</ci>
                <cn cellml:units="ms">4200e3</cn>
              </apply>
            </apply>
          </piece>
          <otherwise>
            <cn cellml:units="ms">1e3</cn>
          </otherwise>
        </piecewise>
      </apply>
    </math>
  </component>
  <connection>
    <map_components component_1="stimulus_protocol_params" component_2="stimulus_protocol"/>
    <map_variables variable_1="stimPeriod" variable_2="stimPeriod"/>
    <map_variables variable_1="stimDuration" variable_2="stimDuration"/>
    <map_variables variable_1="stimCurrent" variable_2="stimCurrent"/>
  </connection>
  <connection>
    <map_components component_1="base_model" component_2="stimulus_protocol"/>
    <map_variables variable_1="Am" variable_2="Am"/>
  </connection>
  <connection>
    <map_components component_1="additional_currents" component_2="stimulus_protocol"/>
    <map_variables variable_1="Istim" variable_2="IStim"/>
  </connection>
  
  <component name="additional_currents" cmeta:id="additional_currents">
    <rdf:RDF
            xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
            xmlns:cmeta="http://www.cellml.org/metadata/1.0#">
      <rdf:Description rdf:about="#additional_currents">
        <cmeta:comment rdf:parseType="Resource">
          <rdf:value>
            Here we define any additional currents for use in the model, in this case
            just the stimulus current as an additional potassium current.
          </rdf:value>
        </cmeta:comment>
      </rdf:Description>
    </rdf:RDF>
    <variable cmeta:id="IK_additional" name="IK_additional" public_interface="out" private_interface="out" units="uA_per_mmsq"/>
    <variable cmeta:id="ICa_additional" name="ICa_additional" initial_value="0.0" public_interface="out" private_interface="out" units="uA_per_mmsq"/>
    <variable cmeta:id="INa_additional" name="INa_additional" initial_value="0.0" public_interface="out" private_interface="out" units="uA_per_mmsq"/>
    <variable cmeta:id="JCaSR_additional" name="JCaSR_additional" initial_value="0.0" public_interface="out" private_interface="out" units="mM_per_ms"/>
    <variable name="Istim" public_interface="in" units="uA_per_mmsq"/>
    <math xmlns="http://www.w3.org/1998/Math/MathML">
      <apply id="IK_additional_eq"><eq/>
        <ci>IK_additional</ci>
        <apply><minus/>
          <ci>Istim</ci>
        </apply>
      </apply>
    </math>
  </component>
  <connection>
    <map_components component_1="base_model" component_2="additional_currents"/>
    <map_variables variable_1="IK_additional" variable_2="IK_additional"/>
    <map_variables variable_1="ICa_additional" variable_2="ICa_additional"/>
    <map_variables variable_1="INa_additional" variable_2="INa_additional"/>
    <map_variables variable_1="JCaSR_additional" variable_2="JCaSR_additional"/>
  </connection>
</model>