Location: Metabolic Component Library @ 702b54b45018 / examples / Example_MassAction_2.cellml

Author:
Randall Britten <r.britten@auckland.ac.nz>
Date:
2013-04-17 15:30:14+12:00
Desc:
To "clone" an imported component, the top level import element needs to be duplicated, not just the component reference within an existing import. The rationale is that all connections within a top-level import are kept intact, as dictated by the encapsulation in the imported model.
Permanent Source URI:
https://models.cellml.org/w/matthiaskoenig/MetabolicComponentLibrary/rawfile/702b54b45018b04ef1bc074677379dc20d983234/examples/Example_MassAction_2.cellml

<?xml version="1.0"?>
<!--

--><model xmlns="http://www.cellml.org/cellml/1.1#" xmlns:cmeta="http://www.cellml.org/metadata/1.1#" cmeta:id="Example_MassAction_2" name="Example_MassAction_2">
	
  <import xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="MetabolicComponentLibrary-v0.1.cellml">
    <component component_ref="MassActionUniUniRev" name="R1_MassActionUniUniRev"/>
		<units name="mM" units_ref="mM"/><units name="per_second" units_ref="per_second"/>
    <units name="mM_per_second" units_ref="mM_per_second"/>
    <units name="per_mM_per_second" units_ref="per_mM_per_second"/>
    <units name="per_mM" units_ref="per_mM"/>
  </import>
	
  <component name="Network">
    <variable name="t" units="second"/>
    <variable name="v1" public_interface="in" units="mM_per_second"/>
    <variable name="v2" public_interface="in" units="mM_per_second"/>
    <variable initial_value="1" name="A" public_interface="out" units="mM"/>
    <variable initial_value="0" name="B" public_interface="out" units="mM"/>
    <variable initial_value="0" name="C" public_interface="out" units="mM"/>
    <math xmlns="http://www.w3.org/1998/Math/MathML">
      <apply>
        <eq/>
        <apply>
          <diff/>
          <bvar>
                  <ci>t</ci>
          </bvar>
               <ci>A</ci>
        </apply>
        <apply>
          <minus/>
               <ci>v1</ci>
        </apply>
      </apply>
      <apply>
        <eq/>
        <apply>
          <diff/>
          <bvar>
                  <ci>t</ci>
          </bvar>
               <ci>B</ci>
        </apply>
        <apply>
          <minus/>
               <ci>v1</ci>
               <ci>v2</ci>
        </apply>
      </apply>
      <apply>
        <eq/>
        <apply>
          <diff/>
          <bvar>
                  <ci>t</ci>
          </bvar>
               <ci>C</ci>
        </apply>
            <ci>v2</ci>
      </apply>
    </math>
  </component>
   
  <component name="Reaction_1">
    <variable name="v1" private_interface="in" public_interface="out" units="mM_per_second"/>
    <variable name="A" private_interface="out" public_interface="in" units="mM"/>
    <variable name="B" private_interface="out" public_interface="in" units="mM"/>
    <variable name="k_f" private_interface="out" units="per_second"/>
    <variable name="k_b" private_interface="out" units="per_second"/>
    <math xmlns="http://www.w3.org/1998/Math/MathML">
      <apply>
        <eq/>
            <ci>k_f</ci>
            <cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" cellml:units="per_second">10</cn>
      </apply>
      <apply>
        <eq/>
            <ci>k_b</ci>
            <cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" cellml:units="per_second">3</cn>
      </apply>
    </math>
  </component>
   
  <component name="Reaction_2">
    <variable name="v2" private_interface="in" public_interface="out" units="mM_per_second"/>
    <variable name="B" private_interface="out" public_interface="in" units="mM"/>
    <variable name="C" private_interface="out" public_interface="in" units="mM"/>
    <variable name="k_f" private_interface="out" units="per_second"/>
    <variable name="k_b" private_interface="out" units="per_second"/>
    <math xmlns="http://www.w3.org/1998/Math/MathML">
      <apply>
        <eq/>
            <ci>k_f</ci>
            <cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" cellml:units="per_second">8</cn>
      </apply>
      <apply>
        <eq/>
            <ci>k_b</ci>
            <cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" cellml:units="per_second">6</cn>
      </apply>
    </math>
  </component>
   
  <group>
    <relationship_ref relationship="encapsulation"/>
    <component_ref component="Reaction_1">
      <component_ref component="R1_MassActionUniUniRev"/>
    </component_ref>
  </group>
  <group>
    <relationship_ref relationship="encapsulation"/>
    <component_ref component="Reaction_2">
      <component_ref component="R2_MassActionUniUniRev"/>
    </component_ref>
  </group>
   
  <connection>
    <map_components component_1="Network" component_2="Reaction_1"/>
    <map_variables variable_1="v1" variable_2="v1"/>
    <map_variables variable_1="A" variable_2="A"/>
    <map_variables variable_1="B" variable_2="B"/>
  </connection>
  <connection>
    <map_components component_1="Network" component_2="Reaction_2"/>
    <map_variables variable_1="v2" variable_2="v2"/>
    <map_variables variable_1="B" variable_2="B"/>
    <map_variables variable_1="C" variable_2="C"/>
  </connection>
   
  <connection>
    <map_components component_1="Reaction_1" component_2="R1_MassActionUniUniRev"/>
    <map_variables variable_1="v1" variable_2="J"/>
    <map_variables variable_1="A" variable_2="S"/>
    <map_variables variable_1="B" variable_2="P"/>
    <map_variables variable_1="k_f" variable_2="k_f"/>
    <map_variables variable_1="k_b" variable_2="k_b"/>
  </connection>
  <connection>
    <map_components component_1="Reaction_2" component_2="R2_MassActionUniUniRev"/>
    <map_variables variable_1="v2" variable_2="J"/>
    <map_variables variable_1="B" variable_2="S"/>
    <map_variables variable_1="C" variable_2="P"/>
    <map_variables variable_1="k_f" variable_2="k_f"/>
    <map_variables variable_1="k_b" variable_2="k_b"/>
  </connection>
  
  <import xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="MetabolicComponentLibrary-v0.1.cellml">
    <component component_ref="MassActionUniUniRev" name="R2_MassActionUniUniRev"/>
  </import>
</model>