Location: Guyton, Atrial, Natriuretic, Peptide, 2008 @ b3597db0e222 / atr_natriuretic_peptide.cellml

Author:
jonna <devnull@localhost>
Date:
2009-07-10 15:15:57+12:00
Desc:
Added units to all files. Added 1.1 files
Permanent Source URI:
https://models.cellml.org/workspace/guyton_atrial_natriuretic_peptide_2008/rawfile/b3597db0e222b5127db04eb53b2e3cae6dde4e11/atr_natriuretic_peptide.cellml

<?xml version="1.0" encoding="utf-8"?>
<model 
	name="atrial_natriuretic_peptide_model"
	cmeta:id="atrial_natriuretic_peptide_model"
	
	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#">
		<rdf:Description rdf:about="#atrial_natriuretic_peptide_model">
			<rdf:value>
			This section calculates the control of atrial natriuretic peptide secretion by the 
			left and right atria of the heart.  It also calculates a multiplier factor for 
			controlling the resistance of the afferent arterioles (AAR) of the kidneys.
			</rdf:value>
		</rdf:Description>
	</rdf:RDF>

<!-- =============================================	Import the required units from the Units file	==================================================== -->
	<import xlink:href="../General%20Files/units.cellml">
		<units name="minute" units_ref="minute"/>
		<units name="per_minute" units_ref="per_minute"/>
		<units name="beats_per_minute" units_ref="beats_per_minute"/>
		<units name="beats_per_minute_per_mmHg" units_ref="beats_per_minute_per_mmHg"/>
		<units name="minute_per_L" units_ref="minute_per_L"/>
		<units name="mmHg" units_ref="mmHg"/>
		<units name="per_mmHg" units_ref="per_mmHg"/>
		<units name="mmHg_per_mL" units_ref="mmHg_per_mL"/>
		<units name="mmHg_L" units_ref="mmHg_L"/>
		<units name="per_mmHg2" units_ref="per_mmHg2"/>
		<units name="mmHg3" units_ref="mmHg3"/>
		<units name="monovalent_mEq" units_ref="monovalent_mEq"/>
		<units name="monovalent_mEq_per_minute" units_ref="monovalent_mEq_per_minute"/>
		<units name="monovalent_mEq_per_litre" units_ref="monovalent_mEq_per_litre"/>
		<units name="mOsm" units_ref="mOsm"/>
		<units name="mOsm_per_litre" units_ref="mOsm_per_litre"/>
		<units name="mOsm_per_minute" units_ref="mOsm_per_minute"/>
		<units name="monovalent_mEq_per_litre_per_minute" units_ref="monovalent_mEq_per_litre_per_minute"/>
		<units name="litre2_per_monovalent_mEq_per_minute" units_ref="litre2_per_monovalent_mEq_per_minute"/>
		<units name="L_per_minute" units_ref="L_per_minute"/>
		<units name="per_mmHg_per_minute" units_ref="per_mmHg_per_minute"/>
		<units name="mL" units_ref="mL"/>
		<units name="gram_per_L" units_ref="gram_per_L"/>
		<units name="L_mmHg_per_gram" units_ref="L_mmHg_per_gram"/>
		<units name="L2_mmHg_per_gram2" units_ref="L2_mmHg_per_gram2"/>
		<units name="mmHg_minute_per_L" units_ref="mmHg_minute_per_L"/>
		<units name="mmHg_L_per_minute" units_ref="mmHg_L_per_minute"/>
		<units name="gram_per_minute" units_ref="gram_per_minute"/>
		<units name="mL_per_L" units_ref="mL_per_L"/>
		<units name="mL_per_L_per_mmHg" units_ref="mL_per_L_per_mmHg"/>
		<units name="mL_per_L_per_minute" units_ref="mL_per_L_per_minute"/>
		<units name="mL_per_minute_per_mmHg" units_ref="mL_per_minute_per_mmHg"/>
		<units name="L_mL_per_minute_per_mmHg" units_ref="L_mL_per_minute_per_mmHg"/>
		<units name="L_per_mL" units_ref="L_per_mL"/>
		<units name="L_per_mmHg" units_ref="L_per_mmHg"/>
		<units name="mL_per_minute" units_ref="mL_per_minute"/>
		<units name="L_per_minute_per_mmHg" units_ref="L_per_minute_per_mmHg"/>
		<units name="L_per_minute_per_mmHg2" units_ref="L_per_minute_per_mmHg2"/>
	</import>

<!-- =====================================	Import all Parameters and State Variables from the Parameter file	============================================== -->
	<import xlink:href="../General%20Files/parameters.cellml">
		<component component_ref="parameter_values" name="parameter_values"/>
		<component component_ref="state_variables" name="state_variables"/>
	</import>


<!-- ========================================	ATRIAL NATRIURETIC PEPTIDE TOP-LEVEL COMPONENT	============================================= -->
	<component 	name="atrial_natriuretic_peptide" 
				cmeta:id="atrial_natriuretic_peptide">
		<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
			<rdf:Description rdf:about="#atrial_natriuretic_peptide">
				<rdf:value>
				Encapsulation grouping component containing all the components in the Atrial Natriuretic Peptide Model.  
				The inputs and outputs of the Atrial Natriuretic Peptide Model must be passed by this component.
				</rdf:value>
			</rdf:Description>
		</rdf:RDF>

		<variable 	cmeta:id="atrial_natriuretic_peptide_time"
					name="time"	units="minute"	private_interface="out" public_interface="in"/>

<!-- Inputs from components in other models -->
		<variable name="PLA"	units="mmHg" private_interface="out" public_interface="in"/>
		<variable name="PRA"	units="mmHg" private_interface="out" public_interface="in"/>

<!-- Outputs to components in other models -->
		<variable	cmeta:id="atrial_natriuretic_peptide_ANPX"
					name="ANPX" 	units="dimensionless" private_interface="in" public_interface="out"/>
	</component>

<!-- OUTPUT CONNECTIONS -->
	<connection>
		<map_components component_1="atrial_natriuretic_peptide" component_2="ANP_effect_on_renal_afferent_arteriolar_resistance"/>
		<map_variables variable_1="ANPX" variable_2="ANPX"/>
	</connection>

<!-- ========================================	TOTAL ATRIAL NATRIURETIC PEPTIDE SECRETED	============================================= -->
	<component 	name="total_ANP_secreted" 
				cmeta:id="total_ANP_secreted">
		<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
			<rdf:Description rdf:about="#total_ANP_secreted">
				<rdf:value>
				ANP1, ANP2, ANP3, ANP3A, and ANP4:  
				Calculation of the total amount of atrial natriuretic peptide secreted at 
				any given time.  Block ANP1 determines the pressure level at which changes 
				in left atrial pressure (PLA) will begin to affect atrinatriuretic peptide 
				secretion.  Block 1A sets a lower limit of zero for this secretion.  
				Block ANP2 calculates from the pressure level in the right atrium (PRA) the 
				stimulation of ANP output by the right atrium.  Block 3 multiplies the 
				output of the right atrium by two-fold (against a one-fold amount secreted 
				by the left atrium).  Block 3A sets a lower limit of zero for right atrial 
				output.  Block 4 adds the outputs from the left atrium and right atrium.

				ANP5:  
				Block 5 normalizes the ANP secretion under normal conditions to a value of 1.
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#ANP1_and_ANP1A">
				<rdf:value>
				ANP1, ANP2, ANP3 and ANP3A:  
				Calculation of the total amount of atrial natriuretic peptide secreted at 
				any given time.  Block ANP1 determines the pressure level at which changes 
				in left atrial pressure (PLA) will begin to affect atrinatriuretic peptide 
				secretion.  Block 1A sets a lower limit of zero for this secretion.  
				Block ANP2 calculates from the pressure level in the right atrium (PRA) the 
				stimulation of ANP output by the right atrium.  Block 3 multiplies the 
				output of the right atrium by two-fold (against a one-fold amount secreted 
				by the left atrium).  Block 3A sets a lower limit of zero for right atrial 
				output. 
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#ANP2_ANP3_and_ANP3A">
				<rdf:value>
				ANP1, ANP2, ANP3 and ANP3A:  
				Calculation of the total amount of atrial natriuretic peptide secreted at 
				any given time.  Block ANP1 determines the pressure level at which changes 
				in left atrial pressure (PLA) will begin to affect atrinatriuretic peptide 
				secretion.  Block 1A sets a lower limit of zero for this secretion.  
				Block ANP2 calculates from the pressure level in the right atrium (PRA) the 
				stimulation of ANP output by the right atrium.  Block 3 multiplies the 
				output of the right atrium by two-fold (against a one-fold amount secreted 
				by the left atrium).  Block 3A sets a lower limit of zero for right atrial 
				output. 
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#ANP4_and_ANP5">
				<rdf:value>
				ANP4 and ANP5:  
				Block 4 adds the outputs from the left atrium and right atrium.  Block 5 normalizes 
				the ANP secretion under normal conditions to a value of 1.
				</rdf:value>
			</rdf:Description>
		</rdf:RDF>
		
<!-- Inputs from other components -->
		<variable name="PLA"	units="mmHg" private_interface="none" public_interface="in"/>
		<variable name="PRA"	units="mmHg" private_interface="none" public_interface="in"/>

<!-- Outputs to other components -->
		<variable name="ANP" 	units="dimensionless" private_interface="none" public_interface="out"/>

<!-- Internal variables -->
		<variable name="ANPL"	units="dimensionless" private_interface="none" public_interface="none"/>
		<variable name="ANPR2"	units="dimensionless" private_interface="none" public_interface="none"/>

		<math xmlns="http://www.w3.org/1998/Math/MathML">
			<apply id="ANP1_and_ANP1A">
				<eq/>
				<ci>ANPL</ci>
				<piecewise>
					<piece>
						<cn cellml:units="dimensionless">0</cn>
						<apply>
							<lt/>
							<apply>
								<times/>
								<apply>
									<minus/>
									<ci>PLA</ci>
									<cn cellml:units="mmHg">1</cn>
								</apply>
								<cn cellml:units="per_mmHg">1</cn>
							</apply>
							<cn cellml:units="dimensionless">0</cn>
						</apply>
					</piece>
					<otherwise>
						<apply>
							<times/>
							<apply>
								<minus/>
								<ci>PLA</ci>
								<cn cellml:units="mmHg">1</cn>
							</apply>
							<cn cellml:units="per_mmHg">1</cn>
						</apply>
					</otherwise>
				</piecewise>
			</apply>
			<apply id="ANP2_ANP3_and_ANP3A">
				<eq/>
				<ci>ANPR2</ci>
				<piecewise>
					<piece>
						<cn cellml:units="dimensionless">0</cn>
						<apply>
							<lt/>
							<apply>
								<times/>
								<apply>
									<plus/>
									<ci>PRA</ci>
									<cn cellml:units="mmHg">1</cn>
								</apply>
								<cn cellml:units="per_mmHg">2</cn>
							</apply>
							<cn cellml:units="dimensionless">0</cn>
						</apply>
					</piece>
					<otherwise>
						<apply>
							<times/>
							<apply>
								<plus/>
								<ci>PRA</ci>
								<cn cellml:units="mmHg">1</cn>
							</apply>
							<cn cellml:units="per_mmHg">2</cn>
						</apply>
					</otherwise>
				</piecewise>
			</apply>
			<apply id="ANP4_and_ANP5">
				<eq/>
				<ci>ANP</ci>
				<apply>
					<divide/>
					<apply>
						<plus/>
						<ci>ANPL</ci>
						<ci>ANPR2</ci>
					</apply>
					<cn cellml:units="dimensionless">3</cn>
				</apply>
			</apply>
		</math>
	</component>

<!-- INPUT CONNECTIONS -->
	<connection>
		<map_components component_1="total_ANP_secreted" component_2="atrial_natriuretic_peptide"/>
		<map_variables variable_1="PLA" variable_2="PLA"/>
		<map_variables variable_1="PRA" variable_2="PRA"/>
	</connection>

<!-- ========================================	ATRIAL NATRIURETIC PEPTIDE INTO CIRCULATION	============================================= -->
	<component 	name="ANP_into_circulation" 
				cmeta:id="ANP_into_circulation">
		<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
			<rdf:Description rdf:about="#ANP_into_circulation">
				<rdf:value>
				ANP 7:  
				This block allows infusion of ANP into the circulation (ANPINF).  The output 
				of the block is ANP1 which is the total rate of ANP entering the circulation 
				at any given time.
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#ANP7">
				<rdf:value>
				ANP 7:  
				This block allows infusion of ANP into the circulation (ANPINF).  The output 
				of the block is ANP1 which is the total rate of ANP entering the circulation 
				at any given time.
				</rdf:value>
			</rdf:Description>
		</rdf:RDF>
		
<!-- Inputs from other components -->
		<variable name="ANP"	units="dimensionless" private_interface="none" public_interface="in"/>

<!-- Outputs to other components -->
		<variable name="ANP1" 	units="dimensionless" private_interface="none" public_interface="out"/>

<!-- Parameters from parameter_file -->
		<variable name="ANPKNS"	units="dimensionless" private_interface="none" public_interface="in"/>
		<variable name="ANPINF"	units="dimensionless" private_interface="none" public_interface="in"/>

		<math xmlns="http://www.w3.org/1998/Math/MathML">
			<apply id="ANP7">
				<eq/>
				<ci>ANP1</ci>
				<piecewise>
					<piece>
						<ci>ANPKNS</ci>
						<apply>
							<gt/>
							<ci>ANPKNS</ci>
							<cn cellml:units="dimensionless">0</cn>
						</apply>
					</piece>
					<otherwise>
						<apply>
							<plus/>
							<ci>ANP</ci>
							<ci>ANPINF</ci>
						</apply>
					</otherwise>
				</piecewise>
			</apply>
		</math>
	</component>

<!-- INPUT CONNECTIONS -->
	<connection>
		<map_components component_1="ANP_into_circulation" component_2="total_ANP_secreted"/>
		<map_variables variable_1="ANP" variable_2="ANP"/>
	</connection>

<!-- PARAMETER CONNECTIONS -->
	<connection>
		<map_components component_1="ANP_into_circulation" component_2="parameter_values"/>
		<map_variables variable_1="ANPKNS" variable_2="ANPKNS"/>
		<map_variables variable_1="ANPINF" variable_2="ANPINF"/>
	</connection>

<!-- ========================================	ATRIAL NATRIURETIC PEPTIDE IN PLASMA	============================================= -->
<!-- ========================================	CHECK THIS EQUATION! REMOVED DAMPING FROM DE!!!	============================================= -->
	<component 	name="ANP_in_plasma" 
				cmeta:id="ANP_in_plasma">
		<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
			<rdf:Description rdf:about="#ANP_in_plasma">
				<rdf:value>
				ANP8, ANP9, and ANP10:  
				Calculation of the concentration of ANP in the plasma (ANPC) from the rate of 
				entry of ANP into the plasma (ANP1).  The time constant for build-up of ANP in 
				the circulation is determined by ANPTC in Block 9.  ANPC is normalized to 1.
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#ANP8_to_ANP10">
				<rdf:value>
				ANP8, ANP9, and ANP10:  
				Calculation of the concentration of ANP in the plasma (ANPC) from the rate of 
				entry of ANP into the plasma (ANP1).  The time constant for build-up of ANP in 
				the circulation is determined by ANPTC in Block 9.  ANPC is normalized to 1.
				</rdf:value>
			</rdf:Description>
		</rdf:RDF>
		
<!-- Inputs from other components -->
		<variable name="ANP1"	units="dimensionless" private_interface="none" public_interface="in"/>
		<variable name="ANPC_init"	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="ANPC" 	initial_value="ANPC_init"	units="dimensionless" private_interface="none" public_interface="out"/>

<!-- Parameters from parameter_file -->
		<variable name="ANPTC"	units="minute" private_interface="none" public_interface="in"/>

		<math xmlns="http://www.w3.org/1998/Math/MathML">
			<apply id="ANP8_to_ANP10">
				<eq/>
				<apply>
					<diff/>
					<bvar>
						<ci>time</ci>
					</bvar>
					<ci>ANPC</ci>
				</apply>
				<apply>
					<divide/>
					<apply>
						<minus/>
						<ci>ANP1</ci>
						<ci>ANPC</ci>
					</apply>
					<ci>ANPTC</ci>
				</apply>
			</apply>
		</math>
	</component>

<!-- STATE VARIABLES INITIAL VALUE -->
	<connection>
		<map_components component_1="ANP_in_plasma" component_2="state_variables"/>
		<map_variables variable_1="ANPC_init" variable_2="ANPC_init"/>
	</connection>

<!-- INPUT CONNECTIONS -->
	<connection>
		<map_components component_1="ANP_in_plasma" component_2="ANP_into_circulation"/>
		<map_variables variable_1="ANP1" variable_2="ANP1"/>
	</connection>
	<connection>
		<map_components component_1="ANP_in_plasma" component_2="atrial_natriuretic_peptide"/>
		<map_variables variable_1="time" variable_2="time"/>
	</connection>

<!-- PARAMETER CONNECTIONS -->
	<connection>
		<map_components component_1="ANP_in_plasma" component_2="parameter_values"/>
		<map_variables variable_1="ANPTC" variable_2="ANPTC"/>
	</connection>

<!-- ========================================	ANP EFFECT ON RENAL AFFERENT ARTERIOLAR RESISTANCE	============================================= -->
	<component 	name="ANP_effect_on_renal_afferent_arteriolar_resistance" 
				cmeta:id="ANP_effect_on_renal_afferent_arteriolar_resistance">
		<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
			<rdf:Description rdf:about="#ANP_effect_on_renal_afferent_arteriolar_resistance">
				<rdf:value>
				ANP11:  
				This curve calculates a multiplier factor (ANPX) for determining the effect 
				of ANP on the afferent arteriolar resistance of the kidneys.  The upper limit 
				of ANPX is ANPXUL.  

				ANP 12:  
				This block sets the lower limit of ANPX equal to -1.
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#ANP11">
				<rdf:value>
				ANP11:  
				This curve calculates a multiplier factor (ANPX) for determining the effect 
				of ANP on the afferent arteriolar resistance of the kidneys.  The upper limit 
				of ANPX is ANPXUL.  
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#ANP12">
				<rdf:value>
				ANP 12:  
				This block sets the lower limit of ANPX equal to -1.
				</rdf:value>
			</rdf:Description>
		</rdf:RDF>
		
<!-- Inputs from other components -->
		<variable name="ANPC"	units="dimensionless" private_interface="none" public_interface="in"/>

<!-- Outputs to other components -->
		<variable 	cmeta:id="ANP_effect_on_renal_afferent_arteriolar_resistance_ANPX"
					name="ANPX" 	units="dimensionless" private_interface="none" public_interface="out"/>

<!-- Parameters from parameter_file -->
		<variable name="ANPXUL"	units="dimensionless" private_interface="none" public_interface="in"/>

<!-- Internal variables -->
		<variable name="ANPX1"	units="dimensionless" private_interface="none" public_interface="none"/>

		<math xmlns="http://www.w3.org/1998/Math/MathML">
			<apply id="ANP11">
				<eq/>
				<ci>ANPX1</ci>
				<apply>
					<minus/>
					<ci>ANPXUL</ci>
					<apply>
						<divide/>
						<ci>ANPXUL</ci>
						<apply>
							<times/>
							<cn cellml:units="dimensionless">0.5555556</cn>
							<apply>
								<plus/>
								<cn cellml:units="dimensionless">1</cn>
								<ci>ANPC</ci>
							</apply>
						</apply>
					</apply>
				</apply>
			</apply>
			<apply id="ANP12">
				<eq/>
				<ci>ANPX</ci>
				<piecewise>
					<piece>
						<apply>
							<minus/>
							<cn cellml:units="dimensionless">1</cn>
						</apply>
						<apply>
							<lt/>
							<ci>ANPX1</ci>
							<apply>
								<minus/>
								<cn cellml:units="dimensionless">1</cn>
							</apply>
						</apply>
					</piece>
					<otherwise>
						<ci>ANPX1</ci>
					</otherwise>
				</piecewise>
			</apply>
		</math>
	</component>

<!-- INPUT CONNECTIONS -->
	<connection>
		<map_components component_1="ANP_effect_on_renal_afferent_arteriolar_resistance" component_2="ANP_in_plasma"/>
		<map_variables variable_1="ANPC" variable_2="ANPC"/>
	</connection>

<!-- PARAMETER CONNECTIONS -->
	<connection>
		<map_components component_1="ANP_effect_on_renal_afferent_arteriolar_resistance" component_2="parameter_values"/>
		<map_variables variable_1="ANPXUL" variable_2="ANPXUL"/>
	</connection>


<!-- ============================================================		GROUPING		=============================================================== -->
   <group>
      <relationship_ref relationship="containment"/>
      <component_ref component="atrial_natriuretic_peptide">
			<component_ref component="total_ANP_secreted"/>
			<component_ref component="ANP_into_circulation"/>
			<component_ref component="ANP_in_plasma"/>
			<component_ref component="ANP_effect_on_renal_afferent_arteriolar_resistance"/>
      </component_ref>
   </group>
      
   <group>
      <relationship_ref relationship="encapsulation"/>
      <component_ref component="atrial_natriuretic_peptide">
			<component_ref component="parameter_values"/>
			<component_ref component="state_variables"/>
			<component_ref component="total_ANP_secreted"/>
			<component_ref component="ANP_into_circulation"/>
			<component_ref component="ANP_in_plasma"/>
			<component_ref component="ANP_effect_on_renal_afferent_arteriolar_resistance"/>
      </component_ref>
   </group>
</model>