- Author:
- Tommy Yu <tommy.yu@auckland.ac.nz>
- Date:
- 2010-08-25 18:19:08+12:00
- Desc:
- xml:base fix
- Permanent Source URI:
- https://models.physiomeproject.org/workspace/guyton_pulmonary_oxygen_uptake_2008/rawfile/b9a3c89bce95b78d1c3006cb4bbafc90a5222f16/guyton_pulmonary_oxygen_uptake_2008.cellml
<?xml version="1.0" encoding="utf-8"?>
<model
name="pulmonary_O2_uptake_CellML1_0_model"
cmeta:id="pulmonary_O2_uptake_CellML1_0_model"
xmlns="http://www.cellml.org/cellml/1.0#"
xmlns:cellml="http://www.cellml.org/cellml/1.0#"
xmlns:cmeta="http://www.cellml.org/metadata/1.0#"
xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- ======================================== DOCUMENTATION ============================================= -->
<documentation xmlns="http://cellml.org/tmp-documentation">
<article>
<articleinfo>
<title>Guyton Model: pulmonary_O2_uptake</title>
<author>
<firstname>Catherine</firstname>
<surname>Lloyd</surname>
<affiliation>
<shortaffil>Auckland Bioengineering Institute, University of Auckland</shortaffil>
</affiliation>
</author>
</articleinfo>
<section id="sec_status">
<title>Model Status</title>
<para>
This CellML model has been validated. Due to the differences between procedural code (in this case C-code) and declarative
languages (CellML), some aspects of the original model were not able to be encapsulated by the CellML model (such as the
damping of variables). This may effect the transient behaviour of the model, however the steady-state behaviour would remain
the same. The equations in this file and the steady-state output from the model conform to the results from the MODSIM program.
</para>
</section>
<sect1 id="sec_structure">
<title>Model Structure</title>
<para>
Arthur Guyton (1919-2003) was an American physiologist who became famous for his 1950s experiments in which he studied the physiology
of cardiac output and its relationship with the peripheral circulation. The results of these experiments challenged the conventional
wisdom that it was the heart itself that controlled cardiac output. Instead Guyton demonstrated that it was the need of the body
tissues for oxygen which was the real regulator of cardiac output. The "Guyton Curves" describe the relationship between right atrial
pressures and cardiac output, and they form a foundation for understanding the physiology of circulation.
</para>
<para>
The Guyton model of fluid, electrolyte, and circulatory regulation is an extensive mathematical model of human circulatory physiology,
capable of simulating a variety of experimental conditions, and contains a number of linked subsystems relating to circulation and its
neuroendocrine control.
</para>
<para>
This is a CellML translation of the Guyton model of the regulation of the circulatory system. The complete model consists of separate
modules each of which characterise a separate physiological subsystems. The Circulation Dynamics is the primary system, to which other
modules/blocks are connected. The other modules characterise the dynamics of the kidney, electrolytes and cell water, thirst and drinking,
hormone regulation, autonomic regulation, cardiovascular system etc, and these feedback on the central circulation model. The CellML
code in these modules is based on the C code from the programme C-MODSIM created by Dr Jean-Pierre Montani.
</para>
<para>
This particular CellML model describes the dynamics of oxygen uptake by the lungs, and also calculates the dynamics of the process of
hemoglobin-oxygen binding in the blood.
</para>
<informalfigure float="0" id="full_diagram">
<mediaobject>
<imageobject>
<objectinfo>
<title>model diagram</title>
</objectinfo>
<imagedata fileref="full_model.png"/>
</imageobject>
</mediaobject>
<caption>A systems analysis diagram for the full Guyton model describing circulation regulation.</caption>
</informalfigure>
<informalfigure float="0" id="pulmonary_O2_uptake_diagram">
<mediaobject>
<imageobject>
<objectinfo>
<title>model diagram</title>
</objectinfo>
<imagedata fileref="pulmonary_o2.png"/>
</imageobject>
</mediaobject>
<caption>A schematic diagram of the components and processes described in the current CellML model.</caption>
</informalfigure>
<para>
There are several publications referring to the Guyton model. One of these papers is cited below:
</para>
<para>
Circulation: Overall Regulation, A.C. Guyton, T.G. Coleman, and H.J. Granger, 1972,
<emphasis>Annual Review of Physiology</emphasis>
, 34, 13-44. <ulink url="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=pubmed&cmd=Retrieve&dopt=AbstractPlus&list_uids=4334846&query_hl=1&itool=pubmed_docsum">PubMed ID: 4334846</ulink>
</para>
</sect1>
</article>
</documentation>
<!-- ======================================================= CITATION AND KEYWORD METADATA ================================================== -->
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
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#">
<rdf:Description rdf:about="#pulmonary_O2_uptake_CellML1_0_model">
<bqs:reference rdf:parseType="Resource">
<bqs:JournalArticle rdf:parseType="Resource">
<dc:creator>
<rdf:Seq>
<rdf:li rdf:parseType="Resource">
<rdf:type rdf:resource="http://www.cellml.org/bqs/1.0#Person" />
<vCard:N rdf:parseType="Resource">
<vCard:Family>Guyton</vCard:Family>
<vCard:Given></vCard:Given>
<vCard:Other></vCard:Other>
</vCard:N>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<rdf:type rdf:resource="http://www.cellml.org/bqs/1.0#Person" />
<vCard:N rdf:parseType="Resource">
<vCard:Family>Pulmonary Oxygen Uptake</vCard:Family>
<vCard:Given></vCard:Given>
<vCard:Other></vCard:Other>
</vCard:N>
</rdf:li>
</rdf:Seq>
</dc:creator>
<dc:title>Description of Guyton pulmonary oxygen uptake module</dc:title>
<bqs:volume />
<bqs:first_page />
<bqs:last_page />
<bqs:Journal rdf:parseType="Resource">
<dc:title></dc:title>
</bqs:Journal>
<dcterms:issued rdf:parseType="Resource">
<dcterms:W3CDTF>2008-00-00 00:00</dcterms:W3CDTF>
</dcterms:issued>
</bqs:JournalArticle>
</bqs:reference>
<bqs:reference rdf:parseType="Resource">
<dc:subject rdf:parseType="Resource">
<bqs:subject_type>keyword</bqs:subject_type>
<rdf:value>
<rdf:Bag>
<rdf:li>physiology</rdf:li>
<rdf:li>organ systems</rdf:li>
<rdf:li>cardiovascular circulation</rdf:li>
<rdf:li>pulmonary oxygen uptake</rdf:li>
<rdf:li>Guyton</rdf:li>
</rdf:Bag>
</rdf:value>
</dc:subject>
</bqs:reference>
</rdf:Description>
</rdf:RDF>
<!-- ======================================================= UNITS ================================================== -->
<units name="minute">
<unit multiplier="60" units="second"/>
</units>
<units name="per_minute">
<unit units="minute" exponent="-1"/>
</units>
<units name="mmHg">
<unit multiplier="133.322" units="newton"/>
<unit units="metre" exponent="-2"/>
</units>
<units name="per_mmHg">
<unit units="mmHg" exponent="-1"/>
</units>
<units name="mmHg_per_mL">
<unit units="mmHg"/>
<unit units="mL" exponent="-1"/>
</units>
<units name="per_mmHg2">
<unit units="mmHg" exponent="-2"/>
</units>
<units name="mmHg3">
<unit units="mmHg" exponent="3"/>
</units>
<units name="monovalent_mEq">
<unit units="mole" prefix="milli"/>
</units>
<units name="monovalent_mEq_per_minute">
<unit units="mole" prefix="milli"/>
<unit units="minute" exponent="-1"/>
</units>
<units name="monovalent_mEq_per_litre">
<unit units="mole" prefix="milli"/>
<unit units="litre" exponent="-1"/>
</units>
<units name="monovalent_mEq_per_litre_per_minute">
<unit units="mole" prefix="milli"/>
<unit units="litre" exponent="-1"/>
<unit units="minute" exponent="-1"/>
</units>
<units name="litre2_per_monovalent_mEq_per_minute">
<unit units="litre" exponent="2"/>
<unit units="mole" prefix="milli" exponent="-1"/>
<unit units="minute" exponent="-1"/>
</units>
<units name="L_per_minute">
<unit units="litre"/>
<unit units="minute" exponent="-1"/>
</units>
<units name="mL">
<unit units="litre" prefix="milli"/>
</units>
<units name="mL_per_L">
<unit units="litre" prefix="milli"/>
<unit units="litre" exponent="-1"/>
</units>
<units name="mL_per_L_per_mmHg">
<unit units="litre" prefix="milli"/>
<unit units="litre" exponent="-1"/>
<unit units="mmHg" exponent="-1"/>
</units>
<units name="mL_per_L_per_minute">
<unit units="litre" prefix="milli"/>
<unit units="litre" exponent="-1"/>
<unit units="minute" exponent="-1"/>
</units>
<units name="mL_per_minute_per_mmHg">
<unit units="litre" prefix="milli"/>
<unit units="minute" exponent="-1"/>
<unit units="mmHg" exponent="-1"/>
</units>
<units name="L_mL_per_minute_per_mmHg">
<unit units="litre"/>
<unit units="litre" prefix="milli"/>
<unit units="minute" exponent="-1"/>
<unit units="mmHg" exponent="-1"/>
</units>
<units name="L_per_mL">
<unit units="litre" prefix="milli" exponent="-1"/>
<unit units="litre"/>
</units>
<units name="mL_per_minute">
<unit units="mL"/>
<unit units="minute" exponent="-1"/>
</units>
<units name="L_per_minute_per_mmHg">
<unit units="litre"/>
<unit units="minute" exponent="-1"/>
<unit units="mmHg" exponent="-1"/>
</units>
<!-- ============================================================================================================ -->
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#pulmonary_O2_uptake_CellML1_0_model">
<rdf:value>
This section calculates the dynamics of oxygen uptake by the lungs, and calculates
also the combination of the oxygen with the hemoglobin of the blood.
</rdf:value>
</rdf:Description>
</rdf:RDF>
<!-- ======================================== ENVIRONMENT COMPONENT ============================================= -->
<component name="environment">
<variable cmeta:id="environment_time"
name="time" units="minute" private_interface="none" public_interface="out"/>
</component>
<!-- ======================================== PULMONARY OXYGEN UPTAKE TOP-LEVEL COMPONENT ============================================= -->
<component name="pulmonary_O2_uptake"
cmeta:id="pulmonary_O2_uptake">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#pulmonary_O2_uptake">
<rdf:value>
Encapsulation grouping component containing all the components in the Pulmonary Oxygen Uptake Model.
The inputs and outputs of the Pulmonary Oxygen Uptake Model must be passed by this component.
</rdf:value>
</rdf:Description>
</rdf:RDF>
<variable name="time" units="minute" private_interface="out" public_interface="in"/>
<!-- Inputs from components in other models -->
<variable name="VPF" initial_value="0.0123238" units="litre" private_interface="out" public_interface="none"/>
<variable name="DOB" initial_value="163.508" units="mL_per_minute" private_interface="out" public_interface="none"/>
<variable name="QRO" initial_value="4.97838" units="L_per_minute" private_interface="out" public_interface="none"/>
<variable name="RMO" initial_value="56.8057" units="mL_per_minute" private_interface="out" public_interface="none"/>
<variable name="HM" initial_value="40.0381" units="dimensionless" private_interface="out" public_interface="none"/>
</component>
<!-- INPUT CONNECTIONS -->
<connection>
<map_components component_1="pulmonary_O2_uptake" component_2="environment"/>
<map_variables variable_1="time" variable_2="time"/>
</connection>
<!-- ======================================== TOTAL O2 UTILIZATION ============================================= -->
<component name="total_O2_utilization"
cmeta:id="total_O2_utilization">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#total_O2_utilization">
<rdf:value>
PO1:
Calculation of total oxygen utilization by the body (O2UTIL) by adding the oxygen
usage by the muscles (RMO) plus oxygen usage by non-muscle parts of the body (DOB).
</rdf:value>
</rdf:Description>
<rdf:Description rdf:about="#PO1">
<rdf:value>
PO1:
Calculation of total oxygen utilization by the body (O2UTIL) by adding the oxygen
usage by the muscles (RMO) plus oxygen usage by non-muscle parts of the body (DOB).
</rdf:value>
</rdf:Description>
</rdf:RDF>
<!-- Inputs from other components -->
<variable name="DOB" units="mL_per_minute" private_interface="none" public_interface="in"/>
<variable name="RMO" units="mL_per_minute" private_interface="none" public_interface="in"/>
<!-- Outputs to other components -->
<variable name="O2UTIL" units="mL_per_minute" private_interface="none" public_interface="out"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="PO1">
<eq/>
<ci>O2UTIL</ci>
<apply>
<plus/>
<ci>DOB</ci>
<ci>RMO</ci>
</apply>
</apply>
</math>
</component>
<!-- INPUT CONNECTIONS -->
<connection>
<map_components component_1="total_O2_utilization" component_2="pulmonary_O2_uptake"/>
<map_variables variable_1="DOB" variable_2="DOB"/>
<map_variables variable_1="RMO" variable_2="RMO"/>
</connection>
<!-- ======================================== ALVEOLAR VENTILATION ============================================= -->
<component name="alveolar_ventilation"
cmeta:id="alveolar_ventilation">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#alveolar_ventilation">
<rdf:value>
PO2:
Calculation of alveolar ventilation (ALVENT). The details of this block will
be discussed in relation to blocks 14 through 24.
</rdf:value>
</rdf:Description>
<rdf:Description rdf:about="#PO2">
<rdf:value>
PO2:
Calculation of alveolar ventilation (ALVENT). The details of this block will
be discussed in relation to blocks 14 through 24.
</rdf:value>
</rdf:Description>
</rdf:RDF>
<!-- Inputs from other components -->
<variable name="O2UTIL" units="mL_per_minute" private_interface="none" public_interface="in"/>
<variable name="O2VAD2" units="dimensionless" private_interface="none" public_interface="in"/>
<variable name="O2VTS2" units="dimensionless" private_interface="none" public_interface="in"/>
<!-- Outputs to other components -->
<variable name="ALVENT" units="L_per_minute" private_interface="none" public_interface="out"/>
<!-- Parameters from parameter_file -->
<variable name="VNTSTM" units="dimensionless" private_interface="none" public_interface="in"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="PO2">
<eq/>
<ci>ALVENT</ci>
<apply>
<times/>
<ci>O2UTIL</ci>
<ci>VNTSTM</ci>
<cn cellml:units="L_per_mL">0.026667</cn>
<ci>O2VTS2</ci>
<ci>O2VAD2</ci>
</apply>
</apply>
</math>
</component>
<!-- INPUT CONNECTIONS -->
<connection>
<map_components component_1="alveolar_ventilation" component_2="total_O2_utilization"/>
<map_variables variable_1="O2UTIL" variable_2="O2UTIL"/>
</connection>
<connection>
<map_components component_1="alveolar_ventilation" component_2="progressive_chemoreceptor_adaptation_of_alveolar_ventilation"/>
<map_variables variable_1="O2VAD2" variable_2="O2VAD2"/>
</connection>
<connection>
<map_components component_1="alveolar_ventilation" component_2="acute_chemoreceptor_adaptation_of_alveolar_ventilation"/>
<map_variables variable_1="O2VTS2" variable_2="O2VTS2"/>
</connection>
<!-- PARAMETER CONNECTIONS -->
<connection>
<map_components component_1="alveolar_ventilation" component_2="parameter_values"/>
<map_variables variable_1="VNTSTM" variable_2="VNTSTM"/>
</connection>
<!-- ======================================== ALVEOLAR OXYGEN PRESSURE ============================================= -->
<component name="alveolar_PO2"
cmeta:id="alveolar_PO2">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#alveolar_PO2">
<rdf:value>
PO3 and PO4:
The output of block 3 is the decrease in oxygen pressure between the humidified
air breathed into the trachea and the PO2 in the alveoli. It is calculated by
dividing the rate of oxygen utilization (O2UTIL) by the rate of alveolar
ventilation (ALVENT) and by a constant. Block PO4 calculates the alveolar PO2 (PO2ALV)
by subtracting the PO2 decrease (output of block 3) from the PO2 of ambient
humidified air (PO2AMB) entering the trachea.
</rdf:value>
</rdf:Description>
<rdf:Description rdf:about="#PO3_and_PO4">
<rdf:value>
PO3 and PO4:
The output of block 3 is the decrease in oxygen pressure between the humidified
air breathed into the trachea and the PO2 in the alveoli. It is calculated by
dividing the rate of oxygen utilization (O2UTIL) by the rate of alveolar
ventilation (ALVENT) and by a constant. Block PO4 calculates the alveolar PO2 (PO2ALV)
by subtracting the PO2 decrease (output of block 3) from the PO2 of ambient
humidified air (PO2AMB) entering the trachea.
</rdf:value>
</rdf:Description>
</rdf:RDF>
<!-- Inputs from other components -->
<variable name="O2UTIL" units="mL_per_minute" private_interface="none" public_interface="in"/>
<variable name="ALVENT" units="L_per_minute" private_interface="none" public_interface="in"/>
<!-- Outputs to other components -->
<variable name="PO2ALV" units="mmHg" private_interface="none" public_interface="out"/>
<!-- Parameters from parameter_file -->
<variable name="PO2AMB" units="mmHg" private_interface="none" public_interface="in"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="PO3_and_PO4">
<eq/>
<ci>PO2ALV</ci>
<apply>
<minus/>
<ci>PO2AMB</ci>
<apply>
<divide/>
<apply>
<divide/>
<ci>O2UTIL</ci>
<ci>ALVENT</ci>
</apply>
<cn cellml:units="mL_per_L_per_mmHg">0.761</cn>
</apply>
</apply>
</apply>
</math>
</component>
<!-- INPUT CONNECTIONS -->
<connection>
<map_components component_1="alveolar_PO2" component_2="total_O2_utilization"/>
<map_variables variable_1="O2UTIL" variable_2="O2UTIL"/>
</connection>
<connection>
<map_components component_1="alveolar_PO2" component_2="alveolar_ventilation"/>
<map_variables variable_1="ALVENT" variable_2="ALVENT"/>
</connection>
<!-- PARAMETER CONNECTIONS -->
<connection>
<map_components component_1="alveolar_PO2" component_2="parameter_values"/>
<map_variables variable_1="PO2AMB" variable_2="PO2AMB"/>
</connection>
<!-- ======================================== RESPIRATORY OXYGEN DIFFUSION INTO CAPILLARIES ============================================= -->
<component name="respiratory_O2_diffusion_into_capillaries"
cmeta:id="respiratory_O2_diffusion_into_capillaries">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#respiratory_O2_diffusion_into_capillaries">
<rdf:value>
PO5: Calculation of the pressure difference between alveolar PO2 (PO2ALV) and
arterialized blood PO2 (PO2ART) leaving the lungs.
PO6 and PO7:
Calculation of the respiratory diffusion coefficient (RSPDFC) for diffusion of
oxygen between the alveoli and the blood leaving the pulmonary capillaries.
Block PO6 calculates a resistance to oxygen diffusion that varies in proportion
to the amount of free fluid in the alveoli (VPF) and the amount of pulmonary tissue
through which the oxygen must diffuse (VPTISS). Block 7 calculates the respiratory
diffusion coefficient (RSPDFC) by dividing a constant (PL2) by the resistance to
diffusion as calculated from block 6.
PO8:
Calculation of the rate of oxygen diffusion through the pulmonary membrane into
the capillaries (O2DFS) by multiplying the pressure difference (output of Block PO5)
between the alveoli and the pulmonary arterialized capillary blood times the respiratory
diffusion coefficient (RSPDFC).
</rdf:value>
</rdf:Description>
<rdf:Description rdf:about="#PO6_and_PO7">
<rdf:value>
PO6 and PO7:
Calculation of the respiratory diffusion coefficient (RSPDFC) for diffusion of
oxygen between the alveoli and the blood leaving the pulmonary capillaries.
Block PO6 calculates a resistance to oxygen diffusion that varies in proportion
to the amount of free fluid in the alveoli (VPF) and the amount of pulmonary tissue
through which the oxygen must diffuse (VPTISS). Block 7 calculates the respiratory
diffusion coefficient (RSPDFC) by dividing a constant (PL2) by the resistance to
diffusion as calculated from block 6.
</rdf:value>
</rdf:Description>
<rdf:Description rdf:about="#PO5_and_PO8">
<rdf:value>
PO5: Calculation of the pressure difference between alveolar PO2 (PO2ALV) and
arterialized blood PO2 (PO2ART) leaving the lungs.
PO8:
Calculation of the rate of oxygen diffusion through the pulmonary membrane into
the capillaries (O2DFS) by multiplying the pressure difference (output of Block PO5)
between the alveoli and the pulmonary arterialized capillary blood times the respiratory
diffusion coefficient (RSPDFC).
</rdf:value>
</rdf:Description>
</rdf:RDF>
<!-- Inputs from other components -->
<variable name="PO2ALV" units="mmHg" private_interface="none" public_interface="in"/>
<variable name="PO2ART" units="mmHg" private_interface="none" public_interface="in"/>
<variable name="VPF" units="litre" private_interface="none" public_interface="in"/>
<!-- Outputs to other components -->
<variable name="O2DFS" units="mL_per_minute" private_interface="none" public_interface="out"/>
<!-- Parameters from parameter_file -->
<variable name="PL2" units="L_mL_per_minute_per_mmHg" private_interface="none" public_interface="in"/>
<variable name="VPTISS" units="litre" private_interface="none" public_interface="in"/>
<!-- Internal variables -->
<variable name="RSPDFC" units="mL_per_minute_per_mmHg" private_interface="none" public_interface="none"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="PO6_and_PO7">
<eq/>
<ci>RSPDFC</ci>
<apply>
<divide/>
<ci>PL2</ci>
<apply>
<plus/>
<ci>VPTISS</ci>
<ci>VPF</ci>
</apply>
</apply>
</apply>
<apply id="PO5_and_PO8">
<eq/>
<ci>O2DFS</ci>
<apply>
<times/>
<apply>
<minus/>
<ci>PO2ALV</ci>
<ci>PO2ART</ci>
</apply>
<ci>RSPDFC</ci>
</apply>
</apply>
</math>
</component>
<!-- INPUT CONNECTIONS -->
<connection>
<map_components component_1="respiratory_O2_diffusion_into_capillaries" component_2="alveolar_PO2"/>
<map_variables variable_1="PO2ALV" variable_2="PO2ALV"/>
</connection>
<connection>
<map_components component_1="respiratory_O2_diffusion_into_capillaries" component_2="arterial_PO2"/>
<map_variables variable_1="PO2ART" variable_2="PO2ART"/>
</connection>
<connection>
<map_components component_1="respiratory_O2_diffusion_into_capillaries" component_2="pulmonary_O2_uptake"/>
<map_variables variable_1="VPF" variable_2="VPF"/>
</connection>
<!-- PARAMETER CONNECTIONS -->
<connection>
<map_components component_1="respiratory_O2_diffusion_into_capillaries" component_2="parameter_values"/>
<map_variables variable_1="PL2" variable_2="PL2"/>
<map_variables variable_1="VPTISS" variable_2="VPTISS"/>
</connection>
<!-- ======================================== OXYGEN VOLUME OF ARTERIAL BLOOD ============================================= -->
<component name="O2_volume_of_arterial_blood"
cmeta:id="O2_volume_of_arterial_blood">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#O2_volume_of_arterial_blood">
<rdf:value>
PO9:
Calculation of the difference between oxygen diffusion into the capillary blood
of the lungs (O2DFS) and the rate of oxygen utilization by the body (O2UTIL).
PO10:
Calculation of the rate of change of oxygen per liter of blood passing through
the lungs (DOVA) by dividing the rate of change of total amount of oxygen entering
the arterial blood per minute (output of Block 9) by the rate of blood flow through
the lungs (QRO).
PO11:
Calculation of the volume of oxygen in milliliters in each liter of arterial blood (OVA)
leaving the left ventricle by integrating the rate of change of oxygen in the
arterial blood (DOVA) with respect to time.
</rdf:value>
</rdf:Description>
<rdf:Description rdf:about="#PO9_and_PO10">
<rdf:value>
PO9:
Calculation of the difference between oxygen diffusion into the capillary blood
of the lungs (O2DFS) and the rate of oxygen utilization by the body (O2UTIL).
PO10:
Calculation of the rate of change of oxygen per liter of blood passing through
the lungs (DOVA) by dividing the rate of change of total amount of oxygen entering
the arterial blood per minute (output of Block 9) by the rate of blood flow through
the lungs (QRO).
</rdf:value>
</rdf:Description>
<rdf:Description rdf:about="#PO11">
<rdf:value>
PO11:
Calculation of the volume of oxygen in milliliters in each liter of arterial blood (OVA)
leaving the left ventricle by integrating the rate of change of oxygen in the
arterial blood (DOVA) with respect to time.
</rdf:value>
</rdf:Description>
</rdf:RDF>
<!-- Inputs from other components -->
<variable name="O2DFS" units="mL_per_minute" private_interface="none" public_interface="in"/>
<variable name="O2UTIL" units="mL_per_minute" private_interface="none" public_interface="in"/>
<variable name="QRO" units="L_per_minute" private_interface="none" public_interface="in"/>
<variable name="time" units="minute" private_interface="none" public_interface="in"/>
<!-- Outputs to other components -->
<variable cmeta:id="O2_volume_of_arterial_blood_OVA"
name="OVA" initial_value="204.497" units="mL_per_L" private_interface="none" public_interface="out"/>
<!-- Internal variables -->
<variable name="DOVA" units="mL_per_L_per_minute" private_interface="none" public_interface="none"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="PO9_and_PO10">
<eq/>
<ci>DOVA</ci>
<apply>
<divide/>
<apply>
<minus/>
<ci>O2DFS</ci>
<ci>O2UTIL</ci>
</apply>
<apply>
<times/>
<ci>QRO</ci>
<cn cellml:units="minute">1.0</cn>
</apply>
</apply>
</apply>
<apply id="PO11">
<eq/>
<apply>
<diff/>
<bvar>
<ci>time</ci>
</bvar>
<ci>OVA</ci>
</apply>
<ci>DOVA</ci>
</apply>
</math>
</component>
<!-- INPUT CONNECTIONS -->
<connection>
<map_components component_1="O2_volume_of_arterial_blood" component_2="respiratory_O2_diffusion_into_capillaries"/>
<map_variables variable_1="O2DFS" variable_2="O2DFS"/>
</connection>
<connection>
<map_components component_1="O2_volume_of_arterial_blood" component_2="total_O2_utilization"/>
<map_variables variable_1="O2UTIL" variable_2="O2UTIL"/>
</connection>
<connection>
<map_components component_1="O2_volume_of_arterial_blood" component_2="pulmonary_O2_uptake"/>
<map_variables variable_1="QRO" variable_2="QRO"/>
<map_variables variable_1="time" variable_2="time"/>
</connection>
<!-- ======================================== ARTERIAL OXYGEN PRESSURE ============================================= -->
<component name="arterial_PO2"
cmeta:id="arterial_PO2">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#arterial_PO2">
<rdf:value>
PO12:
Calculation of the arterial oxygen saturation (OSA) by dividing concentration
of arterial oxygen in the arterial blood (OVA) by the hematocrit (HM) and by a
constant that relates the saturation to oxygen content.
PO13:
Calculation of PO2 in the arterial blood (PO2ART) at each level of arterial
hemoglobin oxygen saturation (OSA).
</rdf:value>
</rdf:Description>
<rdf:Description rdf:about="#PO12">
<rdf:value>
PO12:
Calculation of the arterial oxygen saturation (OSA) by dividing concentration
of arterial oxygen in the arterial blood (OVA) by the hematocrit (HM) and by a
constant that relates the saturation to oxygen content.
</rdf:value>
</rdf:Description>
<rdf:Description rdf:about="#PO13">
<rdf:value>
PO13:
Calculation of PO2 in the arterial blood (PO2ART) at each level of arterial
hemoglobin oxygen saturation (OSA).
</rdf:value>
</rdf:Description>
</rdf:RDF>
<!-- Inputs from other components -->
<variable name="OVA" units="mL_per_L" private_interface="none" public_interface="in"/>
<variable name="HM" units="dimensionless" private_interface="none" public_interface="in"/>
<!-- Outputs to other components -->
<variable cmeta:id="arterial_PO2_PO2ART"
name="PO2ART" units="mmHg" private_interface="none" public_interface="out"/>
<variable cmeta:id="arterial_PO2_OSA"
name="OSA" units="dimensionless" private_interface="none" public_interface="out"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="PO12">
<eq/>
<ci>OSA</ci>
<apply>
<divide/>
<apply>
<divide/>
<ci>OVA</ci>
<ci>HM</ci>
</apply>
<cn cellml:units="dimensionless">5.25</cn>
</apply>
</apply>
<apply id="PO13">
<eq/>
<ci>PO2ART</ci>
<piecewise>
<piece>
<apply>
<plus/>
<cn cellml:units="mmHg">114</cn>
<apply>
<times/>
<apply>
<minus/>
<ci>OSA</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
<cn cellml:units="mmHg">6667</cn>
</apply>
</apply>
<apply>
<gt/>
<ci>OSA</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
</piece>
<piece>
<apply>
<plus/>
<cn cellml:units="mmHg">74</cn>
<apply>
<times/>
<apply>
<minus/>
<ci>OSA</ci>
<cn cellml:units="dimensionless">0.936</cn>
</apply>
<cn cellml:units="mmHg">625</cn>
</apply>
</apply>
<apply>
<and/>
<apply>
<gt/>
<ci>OSA</ci>
<cn cellml:units="dimensionless">0.936</cn>
</apply>
<apply>
<leq/>
<ci>OSA</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
</apply>
</piece>
<piece>
<apply>
<plus/>
<cn cellml:units="mmHg">46</cn>
<apply>
<times/>
<apply>
<minus/>
<ci>OSA</ci>
<cn cellml:units="dimensionless">0.8</cn>
</apply>
<cn cellml:units="mmHg">205.882</cn>
</apply>
</apply>
<apply>
<and/>
<apply>
<gt/>
<ci>OSA</ci>
<cn cellml:units="dimensionless">0.8</cn>
</apply>
<apply>
<leq/>
<ci>OSA</ci>
<cn cellml:units="dimensionless">0.936</cn>
</apply>
</apply>
</piece>
<otherwise>
<apply>
<times/>
<ci>OSA</ci>
<cn cellml:units="mmHg">57.5</cn>
</apply>
</otherwise>
</piecewise>
</apply>
</math>
</component>
<!-- INPUT CONNECTIONS -->
<connection>
<map_components component_1="arterial_PO2" component_2="O2_volume_of_arterial_blood"/>
<map_variables variable_1="OVA" variable_2="OVA"/>
</connection>
<connection>
<map_components component_1="arterial_PO2" component_2="pulmonary_O2_uptake"/>
<map_variables variable_1="HM" variable_2="HM"/>
</connection>
<!-- ===================================== CHEMORECEPTOR ADAPTATION OF ALVEOLAR VENTILATION ========================================= -->
<component name="chemoreceptor_adaptation_of_alveolar_ventilation"
cmeta:id="chemoreceptor_adaptation_of_alveolar_ventilation">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#chemoreceptor_adaptation_of_alveolar_ventilation">
<rdf:value>
Containment grouping component for "acute_chemoreceptor_adaptation_of_alveolar_ventilation"
and "progressive_chemoreceptor_adaptation_of_alveolar_ventilation".
PO14, PO15, PO16, PO17, PO18, PO19, PO20, PO21, PO22, PO23, PO24, and PO22:
This system of blocks calculates the effect of the O2 chemoreceptors in the carotid
and aortic bodies on alveoli ventilation (ALVENT). That is, when the arterial PO2
from Block 13 (PO2ART) falls below normal, this increases the alveolar ventilation
because of increased chemoreceptor stimulation. The increase in ventilation occurs
in two stages. One of these is an acute stage (calculated in Blocks 14-18) which
becomes fully activated within a few minutes. The second stage is a progressive
adaptation of this chemoreceptor control mechanism to increase pulmonary ventilation
another several fold over 1 to 3 days (calculated in Blocks 19-24).
The output of Block 18 (O2VTS2) is the initial acute adjustment of ventilation.
Blocks 16 and 17 set the upper and lower limits to this acute response to low oxygen.
The delayed effect on ventilation is the output of Block 24 (O2VAD2). Blocks 19, 20,
and 21 adjust the sensitivity of this delayed response. Block 22 provides the time
constant for this response. Block 2 multiplies the short-time constant response (O2VST2)
times the long-time constant response (O2VAD2). Another input to Block 2 is the rate
of oxygen utilization by the body [O2UTIL]. Physiologically, this is not a stimulus
to ventilation. However, in this model we do not calculate CO2 in the blood which is
a powerful stimulant of ventilation. Since the amount of carbon dioxide that is formed
over a period of minutes is approximately proportional to the rate of oxygen utilization,
we have used this O2UTIL factor as one of the normalized stimulatory factors of alveolar
ventilation in Block 2, but realizing that this is simply a substitute for rate of carbon
dioxide formation if the model were worked out in much greater detail. Still another input
is a special factor (VNTSTM) which allows the overall level of alveolar ventilation to be
increased or decreased artificially.
</rdf:value>
</rdf:Description>
</rdf:RDF>
</component>
<!-- =================================== ACUTE CHEMORECEPTOR ADAPTATION OF ALVEOLAR VENTILATION ================================== -->
<component name="acute_chemoreceptor_adaptation_of_alveolar_ventilation"
cmeta:id="acute_chemoreceptor_adaptation_of_alveolar_ventilation">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#acute_chemoreceptor_adaptation_of_alveolar_ventilation">
<rdf:value>
See description in "chemoreceptor_adaptation_of_alveolar_ventilation".
</rdf:value>
</rdf:Description>
</rdf:RDF>
<!-- Inputs from other components -->
<variable name="PO2ART" units="mmHg" private_interface="none" public_interface="in"/>
<!-- Outputs to other components -->
<variable name="O2VTS2" units="dimensionless" private_interface="none" public_interface="out"/>
<!-- Internal variables -->
<variable name="O2VTST" units="dimensionless" private_interface="none" public_interface="none"/>
<variable name="O2VTST1" units="dimensionless" private_interface="none" public_interface="none"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="PO14_and_PO15">
<eq/>
<ci>O2VTST1</ci>
<apply>
<divide/>
<apply>
<minus/>
<ci>PO2ART</ci>
<cn cellml:units="mmHg">67</cn>
</apply>
<cn cellml:units="mmHg">30</cn>
</apply>
</apply>
<apply id="PO16_and_PO17">
<eq/>
<ci>O2VTST</ci>
<piecewise>
<piece>
<cn cellml:units="dimensionless">1</cn>
<apply>
<gt/>
<ci>O2VTST1</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
</piece>
<piece>
<cn cellml:units="dimensionless">0.6</cn>
<apply>
<lt/>
<ci>O2VTST1</ci>
<cn cellml:units="dimensionless">0.6</cn>
</apply>
</piece>
<otherwise>
<ci>O2VTST1</ci>
</otherwise>
</piecewise>
</apply>
<apply id="PO18">
<eq/>
<ci>O2VTS2</ci>
<apply>
<divide/>
<cn cellml:units="dimensionless">1</cn>
<ci>O2VTST</ci>
</apply>
</apply>
</math>
</component>
<!-- INPUT CONNECTIONS -->
<connection>
<map_components component_1="acute_chemoreceptor_adaptation_of_alveolar_ventilation" component_2="arterial_PO2"/>
<map_variables variable_1="PO2ART" variable_2="PO2ART"/>
</connection>
<!-- ============================== PROGRESSIVE CHEMORECEPTOR ADAPTATION OF ALVEOLAR VENTILATION ================================== -->
<component name="progressive_chemoreceptor_adaptation_of_alveolar_ventilation"
cmeta:id="progressive_chemoreceptor_adaptation_of_alveolar_ventilation">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#progressive_chemoreceptor_adaptation_of_alveolar_ventilation">
<rdf:value>
See description in chemoreceptor_adaptation_of_alveolar_ventilation.
</rdf:value>
</rdf:Description>
</rdf:RDF>
<!-- Inputs from other components -->
<variable name="O2VTS2" units="dimensionless" private_interface="none" public_interface="in"/>
<variable name="time" units="minute" private_interface="none" public_interface="in"/>
<!-- Outputs to other components -->
<variable name="O2VAD2" units="dimensionless" private_interface="none" public_interface="out"/>
<!-- Internal variables -->
<variable name="DO2VAD" units="per_minute" private_interface="none" public_interface="none"/>
<variable name="O2VAD1" initial_value="2.368e-07" units="dimensionless" private_interface="none" public_interface="none"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="PO19_to_PO22">
<eq/>
<ci>DO2VAD</ci>
<apply>
<times/>
<apply>
<minus/>
<apply>
<times/>
<apply>
<minus/>
<ci>O2VTS2</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
<cn cellml:units="dimensionless">3</cn>
</apply>
<ci>O2VAD1</ci>
</apply>
<cn cellml:units="per_minute">0.0005</cn>
</apply>
</apply>
<apply id="PO23">
<eq/>
<apply>
<diff/>
<bvar>
<ci>time</ci>
</bvar>
<ci>O2VAD1</ci>
</apply>
<ci>DO2VAD</ci>
</apply>
<apply id="PO24">
<eq/>
<ci>O2VAD2</ci>
<apply>
<plus/>
<ci>O2VAD1</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
</apply>
</math>
</component>
<!-- INPUT CONNECTIONS -->
<connection>
<map_components component_1="progressive_chemoreceptor_adaptation_of_alveolar_ventilation" component_2="acute_chemoreceptor_adaptation_of_alveolar_ventilation"/>
<map_variables variable_1="O2VTS2" variable_2="O2VTS2"/>
</connection>
<connection>
<map_components component_1="progressive_chemoreceptor_adaptation_of_alveolar_ventilation" component_2="pulmonary_O2_uptake"/>
<map_variables variable_1="time" variable_2="time"/>
</connection>
<!-- ========================================================== PARAMETER VALUES ================================================================ -->
<component name="parameter_values"
cmeta:id="parameter_values">
<variable name="PO2AMB" units="mmHg" initial_value="150" private_interface="none" public_interface="out"/> <!-- ambiant PO2 -->
<variable name="PL2" units="L_mL_per_minute_per_mmHg" initial_value="1.8" private_interface="none" public_interface="out"/> <!-- constant, computation of RSPDFC [P] -->
<variable name="VPTISS" units="litre" initial_value="0.0175" private_interface="none" public_interface="out"/> <!-- pulmonary tissue fluid volume [P] -->
<variable name="VNTSTM" units="dimensionless" initial_value="1" private_interface="none" public_interface="out"/> <!-- sensitivity controller for alveolar ventilation [P] -->
</component>
<!-- ============================================================ GROUPING =============================================================== -->
<group>
<relationship_ref relationship="containment"/>
<component_ref component="pulmonary_O2_uptake">
<component_ref component="total_O2_utilization"/>
<component_ref component="alveolar_ventilation"/>
<component_ref component="alveolar_PO2"/>
<component_ref component="respiratory_O2_diffusion_into_capillaries"/>
<component_ref component="O2_volume_of_arterial_blood"/>
<component_ref component="arterial_PO2"/>
<component_ref component="chemoreceptor_adaptation_of_alveolar_ventilation">
<component_ref component ="acute_chemoreceptor_adaptation_of_alveolar_ventilation"/>
<component_ref component ="progressive_chemoreceptor_adaptation_of_alveolar_ventilation"/>
</component_ref>
</component_ref>
</group>
<group>
<relationship_ref relationship="encapsulation"/>
<component_ref component="pulmonary_O2_uptake">
<component_ref component="parameter_values"/>
<component_ref component="total_O2_utilization"/>
<component_ref component="alveolar_ventilation"/>
<component_ref component="alveolar_PO2"/>
<component_ref component="respiratory_O2_diffusion_into_capillaries"/>
<component_ref component="O2_volume_of_arterial_blood"/>
<component_ref component="arterial_PO2"/>
<component_ref component="chemoreceptor_adaptation_of_alveolar_ventilation"/>
<component_ref component ="acute_chemoreceptor_adaptation_of_alveolar_ventilation"/>
<component_ref component ="progressive_chemoreceptor_adaptation_of_alveolar_ventilation"/>
</component_ref>
</group>
<!-- SIMULATION METADATA -->
<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<RDF:Description RDF:about="#pulmonary_O2_uptake_CellML1_0_model">
<NS1:simulation xmlns:NS1="http://www.cellml.org/metadata/simulation/1.0#" RDF:resource="rdf:#$QQv43"/>
</RDF:Description>
<RDF:Description RDF:about="rdf:#$4SdBX3">
<RDF:first RDF:resource="rdf:#$5SdBX3"/>
<RDF:rest RDF:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
</RDF:Description>
<RDF:Description RDF:about="rdf:#$3SdBX3">
<NS1:boundIntervals xmlns:NS1="http://www.cellml.org/metadata/simulation/1.0#" RDF:resource="rdf:#$4SdBX3"/>
</RDF:Description>
<RDF:Description xmlns:NS1="http://www.cellml.org/metadata/simulation/1.0#" RDF:about="rdf:#$5SdBX3" NS1:endingValue="4"/>
<RDF:Description xmlns:NS1="http://www.cellml.org/metadata/simulation/1.0#" RDF:about="rdf:#$SQv43" NS1:endingValue="4" NS1:nonstandard-pointDensity="10000"/>
<RDF:Description xmlns:NS1="http://www.cellml.org/metadata/simulation/1.0#" RDF:about="rdf:#$d2Cb93" NS1:nonstandard-pointDensity="100000"/>
<RDF:Description RDF:about="#pulmonary_O2_uptake_CellML1_0_model#LfY7zdZ%60EYs">
<NS1:simulation xmlns:NS1="http://www.cellml.org/metadata/simulation/1.0#" RDF:resource="rdf:#$b2Cb93"/>
<NS1:simulation xmlns:NS1="http://www.cellml.org/metadata/simulation/1.0#" RDF:resource="rdf:#$3SdBX3"/>
</RDF:Description>
<RDF:Description RDF:about="rdf:#$QQv43">
<NS1:boundIntervals xmlns:NS1="http://www.cellml.org/metadata/simulation/1.0#" RDF:resource="rdf:#$RQv43"/>
</RDF:Description>
<RDF:Description RDF:about="rdf:#$RQv43">
<RDF:first RDF:resource="rdf:#$SQv43"/>
<RDF:rest RDF:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
</RDF:Description>
<RDF:Description RDF:about="rdf:#$b2Cb93">
<NS1:boundIntervals xmlns:NS1="http://www.cellml.org/metadata/simulation/1.0#" RDF:resource="rdf:#$c2Cb93"/>
</RDF:Description>
<RDF:Description RDF:about="rdf:#$c2Cb93">
<RDF:first RDF:resource="rdf:#$d2Cb93"/>
<RDF:rest RDF:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
</RDF:Description>
</RDF:RDF>
</model>