Location: Na+/Glucose Transporter @ 962bccba5110 / BG.cellml

Author:
Soroush Safaei <ssaf006@aucklanduni.ac.nz>
Date:
2016-11-08 18:27:54+13:00
Desc:
Initial commit for BondGraph SGLT
Permanent Source URI:
https://models.physiomeproject.org/workspace/436/rawfile/962bccba5110b6ff849f76226d66e00b152defa8/BG.cellml

<?xml version='1.0'?>
<model name="BG" xmlns="http://www.cellml.org/cellml/1.1#" xmlns:cellml="http://www.cellml.org/cellml/1.1#">
    <!-- Basic BG library-->
    <!-- Junction components.
 Note that, due to CellML limitations, it is not possible to implement junctions with a variable number of ports.
 2,3 and 4 port versions are provided here.-->
    <!-- 2-port One junction J1_2-->
    <component name="J1_2">
        <!-- Port 1: flow imposed-->
        <variable name="e_1" public_interface="out" units="effort"/>
        <variable name="f_1" public_interface="in" units="flow"/>
        <variable name="h_1" public_interface="in" units="dimensionless"/>
        <!-- Port 2: effort imposed-->
        <variable name="e_2" public_interface="in" units="effort"/>
        <variable name="f_2" public_interface="out" units="flow"/>
        <variable name="h_2" public_interface="in" units="dimensionless"/>
        <!-- All flows are the same-->
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>f_2</ci>
                <ci>f_1</ci>
            </apply>
            <!-- Compute effort taking acount of head (1) or tail (-1)-->
            <apply>
                <eq/>
                <ci>e_1</ci>
                <apply>
                    <times/>
                    <apply>
                        <minus/>
                        <ci>h_1</ci>
                    </apply>
                    <ci>h_2</ci>
                    <ci>e_2</ci>
                </apply>
            </apply>
        </math>
    </component>
    <!-- 3-port One junction J1_3-->
    <component name="J1_3">
        <!-- Port 1: flow imposed-->
        <variable name="e_1" public_interface="out" units="effort"/>
        <variable name="f_1" public_interface="in" units="flow"/>
        <variable name="h_1" public_interface="in" units="dimensionless"/>
        <!-- Port 2: effort imposed-->
        <variable name="e_2" public_interface="in" units="effort"/>
        <variable name="f_2" public_interface="out" units="flow"/>
        <variable name="h_2" public_interface="in" units="dimensionless"/>
        <!-- Port 3: effort imposed-->
        <variable name="e_3" public_interface="in" units="effort"/>
        <variable name="f_3" public_interface="out" units="flow"/>
        <variable name="h_3" public_interface="in" units="dimensionless"/>
        <!-- All flows are the same-->
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>f_2</ci>
                <ci>f_1</ci>
            </apply>
            <apply>
                <eq/>
                <ci>f_3</ci>
                <ci>f_1</ci>
            </apply>
            <!-- Compute effort taking acount of head (1) or tail (-1)-->
            <apply>
                <eq/>
                <ci>e_1</ci>
                <apply>
                    <times/>
                    <apply>
                        <minus/>
                        <ci>h_1</ci>
                    </apply>
                    <apply>
                        <plus/>
                        <apply>
                            <times/>
                            <ci>h_2</ci>
                            <ci>e_2</ci>
                        </apply>
                        <apply>
                            <times/>
                            <ci>h_3</ci>
                            <ci>e_3</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>
        </math>
    </component>
    <!-- 4-port One junction J1_4-->
    <component name="J1_4">
        <!-- Port 1: flow imposed-->
        <variable name="e_1" public_interface="out" units="effort"/>
        <variable name="f_1" public_interface="in" units="flow"/>
        <variable name="h_1" public_interface="in" units="dimensionless"/>
        <!-- Port 2: effort imposed-->
        <variable name="e_2" public_interface="in" units="effort"/>
        <variable name="f_2" public_interface="out" units="flow"/>
        <variable name="h_2" public_interface="in" units="dimensionless"/>
        <!-- Port 3: effort imposed-->
        <variable name="e_3" public_interface="in" units="effort"/>
        <variable name="f_3" public_interface="out" units="flow"/>
        <variable name="h_3" public_interface="in" units="dimensionless"/>
        <!-- Port 4: effort imposed-->
        <variable name="e_4" public_interface="in" units="effort"/>
        <variable name="f_4" public_interface="out" units="flow"/>
        <variable name="h_4" public_interface="in" units="dimensionless"/>
        <!-- All flows are the same-->
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>f_2</ci>
                <ci>f_1</ci>
            </apply>
            <apply>
                <eq/>
                <ci>f_3</ci>
                <ci>f_1</ci>
            </apply>
            <apply>
                <eq/>
                <ci>f_4</ci>
                <ci>f_1</ci>
            </apply>
            <!-- Compute effort taking acount of head (1) or tail (-1)-->
            <apply>
                <eq/>
                <ci>e_1</ci>
                <apply>
                    <times/>
                    <apply>
                        <minus/>
                        <ci>h_1</ci>
                    </apply>
                    <apply>
                        <plus/>
                        <apply>
                            <times/>
                            <ci>h_2</ci>
                            <ci>e_2</ci>
                        </apply>
                        <apply>
                            <times/>
                            <ci>h_3</ci>
                            <ci>e_3</ci>
                        </apply>
                        <apply>
                            <times/>
                            <ci>h_4</ci>
                            <ci>e_4</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>
        </math>
    </component>
    <component name="J1_5">
        <!-- Port 1: flow imposed-->
        <variable name="e_1" public_interface="out" units="effort"/>
        <variable name="f_1" public_interface="in" units="flow"/>
        <variable name="h_1" public_interface="in" units="dimensionless"/>
        <!-- Port 2: effort imposed-->
        <variable name="e_2" public_interface="in" units="effort"/>
        <variable name="f_2" public_interface="out" units="flow"/>
        <variable name="h_2" public_interface="in" units="dimensionless"/>
        <!-- Port 3: effort imposed-->
        <variable name="e_3" public_interface="in" units="effort"/>
        <variable name="f_3" public_interface="out" units="flow"/>
        <variable name="h_3" public_interface="in" units="dimensionless"/>
        <!-- Port 4: effort imposed-->
        <variable name="e_4" public_interface="in" units="effort"/>
        <variable name="f_4" public_interface="out" units="flow"/>
        <variable name="h_4" public_interface="in" units="dimensionless"/>
        <!-- Port 5: effort imposed-->
        <variable name="e_5" public_interface="in" units="effort"/>
        <variable name="f_5" public_interface="out" units="flow"/>
        <variable name="h_5" public_interface="in" units="dimensionless"/>
        <!-- All flows are the same-->
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>f_2</ci>
                <ci>f_1</ci>
            </apply>
            <apply>
                <eq/>
                <ci>f_3</ci>
                <ci>f_1</ci>
            </apply>
            <apply>
                <eq/>
                <ci>f_4</ci>
                <ci>f_1</ci>
            </apply>
            <apply>
                <eq/>
                <ci>f_5</ci>
                <ci>f_1</ci>
            </apply>
            <!-- Compute effort taking acount of head (1) or tail (-1)-->
            <apply>
                <eq/>
                <ci>e_1</ci>
                <apply>
                    <times/>
                    <apply>
                        <minus/>
                        <ci>h_1</ci>
                    </apply>
                    <apply>
                        <plus/>
                        <apply>
                            <times/>
                            <ci>h_2</ci>
                            <ci>e_2</ci>
                        </apply>
                        <apply>
                            <times/>
                            <ci>h_3</ci>
                            <ci>e_3</ci>
                        </apply>
                        <apply>
                            <times/>
                            <ci>h_4</ci>
                            <ci>e_4</ci>
                        </apply>
                        <apply>
                            <times/>
                            <ci>h_5</ci>
                            <ci>e_5</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>
        </math>
    </component>
    <!-- 2-port Zero junction J0_2-->
    <component name="J0_2">
        <!-- Port 1: effort imposed-->
        <variable name="e_1" public_interface="in" units="effort"/>
        <variable name="f_1" public_interface="out" units="flow"/>
        <variable name="h_1" public_interface="in" units="dimensionless"/>
        <!-- Port 2: flow imposed-->
        <variable name="e_2" public_interface="out" units="effort"/>
        <variable name="f_2" public_interface="in" units="flow"/>
        <variable name="h_2" public_interface="in" units="dimensionless"/>
        <!-- All efforts are the same-->
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>e_2</ci>
                <ci>e_1</ci>
            </apply>
            <!-- Compute flow taking acount of head (1) or tail (-1)-->
            <apply>
                <eq/>
                <ci>f_1</ci>
                <apply>
                    <times/>
                    <apply>
                        <minus/>
                        <ci>h_1</ci>
                    </apply>
                    <ci>h_2</ci>
                    <ci>f_2</ci>
                </apply>
            </apply>
        </math>
    </component>
    <!-- 3-port Zero junction J0_3-->
    <component name="J0_3">
        <!-- Port 1: effort imposed-->
        <variable name="e_1" public_interface="in" units="effort"/>
        <variable name="f_1" public_interface="out" units="flow"/>
        <variable name="h_1" public_interface="in" units="dimensionless"/>
        <!-- Port 2: flow imposed-->
        <variable name="e_2" public_interface="out" units="effort"/>
        <variable name="f_2" public_interface="in" units="flow"/>
        <variable name="h_2" public_interface="in" units="dimensionless"/>
        <!-- Port 3: flow imposed-->
        <variable name="e_3" public_interface="out" units="effort"/>
        <variable name="f_3" public_interface="in" units="flow"/>
        <variable name="h_3" public_interface="in" units="dimensionless"/>
        <!-- All efforts are the same-->
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>e_2</ci>
                <ci>e_1</ci>
            </apply>
            <apply>
                <eq/>
                <ci>e_3</ci>
                <ci>e_1</ci>
            </apply>
            <!-- Compute flow taking acount of head (1) or tail (-1)-->
            <apply>
                <eq/>
                <ci>f_1</ci>
                <apply>
                    <times/>
                    <apply>
                        <minus/>
                        <ci>h_1</ci>
                    </apply>
                    <apply>
                        <plus/>
                        <apply>
                            <times/>
                            <ci>h_2</ci>
                            <ci>f_2</ci>
                        </apply>
                        <apply>
                            <times/>
                            <ci>h_3</ci>
                            <ci>f_3</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>
        </math>
    </component>
    <!-- 4-port Zero junction J0_4-->
    <component name="J0_4">
        <!-- Port 1: effort imposed-->
        <variable name="e_1" public_interface="in" units="effort"/>
        <variable name="f_1" public_interface="out" units="flow"/>
        <variable name="h_1" public_interface="in" units="dimensionless"/>
        <!-- Port 2: flow imposed-->
        <variable name="e_2" public_interface="out" units="effort"/>
        <variable name="f_2" public_interface="in" units="flow"/>
        <variable name="h_2" public_interface="in" units="dimensionless"/>
        <!-- Port 3: flow imposed-->
        <variable name="e_3" public_interface="out" units="effort"/>
        <variable name="f_3" public_interface="in" units="flow"/>
        <variable name="h_3" public_interface="in" units="dimensionless"/>
        <!-- Port 4: flow imposed-->
        <variable name="e_4" public_interface="out" units="effort"/>
        <variable name="f_4" public_interface="in" units="flow"/>
        <variable name="h_4" public_interface="in" units="dimensionless"/>
        <!-- All efforts are the same-->
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>e_2</ci>
                <ci>e_1</ci>
            </apply>
            <apply>
                <eq/>
                <ci>e_3</ci>
                <ci>e_1</ci>
            </apply>
            <apply>
                <eq/>
                <ci>e_4</ci>
                <ci>e_1</ci>
            </apply>
            <!-- Compute flow taking acount of head (1) or tail (-1)-->
            <apply>
                <eq/>
                <ci>f_1</ci>
                <apply>
                    <times/>
                    <apply>
                        <minus/>
                        <ci>h_1</ci>
                    </apply>
                    <apply>
                        <plus/>
                        <apply>
                            <times/>
                            <ci>h_2</ci>
                            <ci>f_2</ci>
                        </apply>
                        <apply>
                            <times/>
                            <ci>h_3</ci>
                            <ci>f_3</ci>
                        </apply>
                        <apply>
                            <times/>
                            <ci>h_4</ci>
                            <ci>f_4</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>
        </math>
    </component>
    <!-- Storage components-->
    <!-- C component -->
    <component name="C">
        <!--  Version parameters-->
        <variable name="cr" public_interface="in" units="dimensionless"/>
        <variable name="stat" public_interface="in" units="dimensionless"/>
        <!-- Numerical parameters-->
        <variable name="RT" public_interface="in" units="effort"/>
        <variable name="K" public_interface="in" units="_intflow"/>
        <!-- Internal variables
 State x = x_0 + x_1 where x_0 is external signal and x_1 is integrated.-->
        <variable name="x" public_interface="out" units="intflow"/>
        <variable initial_value="0" name="x_1" units="intflow"/>
        <variable name="x_0" public_interface="in" units="intflow"/>
        <variable name="f_int" units="flow"/>
        <variable name="f" public_interface="out" units="flow"/>
        <!-- Time-->
        <variable name="t" public_interface="in" units="time"/>
        <!-- Port-->
        <variable name="e_1" public_interface="out" units="effort"/>
        <variable name="f_1" public_interface="in" units="flow"/>
        <variable name="h_1" public_interface="in" units="dimensionless"/>
        <!-- Other stuff
 Power-->
        <variable name="p" public_interface="out" units="power"/>
        <!-- Chemostat if stat==1-->
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>f</ci>
                <apply>
                    <times/>
                    <ci>h_1</ci>
                    <ci>f_1</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>f_int</ci>
                <piecewise>
                    <piece>
                        <cn cellml:units="flow">0</cn>
                        <apply>
                            <eq/>
                            <ci>stat</ci>
                            <cn cellml:units="dimensionless">1</cn>
                        </apply>
                    </piece>
                    <otherwise>
                        <ci>f</ci>
                    </otherwise>
                </piecewise>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>x_1</ci>
                </apply>
                <ci>f_int</ci>
            </apply>
            <apply>
                <eq/>
                <ci>x</ci>
                <apply>
                    <plus/>
                    <ci>x_0</ci>
                    <ci>x_1</ci>
                </apply>
            </apply>
            <!-- cr==0 Linear
 cr==1 Chemical-->
            <apply>
                <eq/>
                <ci>e_1</ci>
                <piecewise>
                    <piece>
                        <apply>
                            <times/>
                            <ci>RT</ci>
                            <ci>K</ci>
                            <ci>x</ci>
                        </apply>
                        <apply>
                            <eq/>
                            <ci>cr</ci>
                            <cn cellml:units="dimensionless">0</cn>
                        </apply>
                    </piece>
                    <piece>
                        <apply>
                            <times/>
                            <ci>RT</ci>
                            <apply>
                                <ln/>
                                <apply>
                                    <times/>
                                    <ci>K</ci>
                                    <ci>x</ci>
                                </apply>
                            </apply>
                        </apply>
                        <apply>
                            <eq/>
                            <ci>cr</ci>
                            <cn cellml:units="dimensionless">1</cn>
                        </apply>
                    </piece>
                </piecewise>
            </apply>
            <!-- Power-->
            <apply>
                <eq/>
                <ci>p</ci>
                <apply>
                    <times/>
                    <ci>h_1</ci>
                    <ci>e_1</ci>
                    <ci>f_1</ci>
                </apply>
            </apply>
        </math>
    </component>
    <!-- Dissipative components-->
    <!-- Mass-action reaction component-->
    <component name="Re">
        <!--  Version parameters-->
        <variable name="cr" public_interface="in" units="dimensionless"/>
        <variable name="stat" public_interface="in" units="dimensionless"/>
        <!-- Numerical parameter-->
        <variable name="RT" public_interface="in" units="effort"/>
        <variable name="kappa" public_interface="in" units="flow"/>
        <!-- Ports (flow is common)-->
        <variable name="e_1" public_interface="in" units="effort"/>
        <variable name="f_1" public_interface="out" units="flow"/>
        <variable name="h_1" public_interface="in" units="dimensionless"/>
        <variable name="e_2" public_interface="in" units="effort"/>
        <variable name="f_2" public_interface="out" units="flow"/>
        <variable name="h_2" public_interface="in" units="dimensionless"/>
        <!-- Other stuff
 Affinity-->
        <variable name="A" public_interface="out" units="effort"/>
        <!-- Power-->
        <variable name="p" public_interface="out" units="power"/>
        <!-- cr ==0 Linear
 cr==1 Chemical-->
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>f_1</ci>
                <piecewise>
                    <piece>
                        <apply>
                            <divide/>
                            <apply>
                                <times/>
                                <ci>kappa</ci>
                                <apply>
                                    <plus/>
                                    <apply>
                                        <times/>
                                        <ci>h_1</ci>
                                        <ci>e_1</ci>
                                    </apply>
                                    <apply>
                                        <times/>
                                        <ci>h_2</ci>
                                        <ci>e_2</ci>
                                    </apply>
                                </apply>
                            </apply>
                            <ci>RT</ci>
                        </apply>
                        <apply>
                            <eq/>
                            <ci>cr</ci>
                            <cn cellml:units="dimensionless">0</cn>
                        </apply>
                    </piece>
                    <piece>
                        <apply>
                            <times/>
                            <ci>kappa</ci>
                            <apply>
                                <plus/>
                                <apply>
                                    <times/>
                                    <ci>h_1</ci>
                                    <apply>
                                        <exp/>
                                        <apply>
                                            <divide/>
                                            <ci>e_1</ci>
                                            <ci>RT</ci>
                                        </apply>
                                    </apply>
                                </apply>
                                <apply>
                                    <times/>
                                    <ci>h_2</ci>
                                    <apply>
                                        <exp/>
                                        <apply>
                                            <divide/>
                                            <ci>e_2</ci>
                                            <ci>RT</ci>
                                        </apply>
                                    </apply>
                                </apply>
                            </apply>
                        </apply>
                        <apply>
                            <eq/>
                            <ci>cr</ci>
                            <cn cellml:units="dimensionless">1</cn>
                        </apply>
                    </piece>
                </piecewise>
            </apply>
            <apply>
                <eq/>
                <ci>f_2</ci>
                <ci>f_1</ci>
            </apply>
            <apply>
                <eq/>
                <ci>A</ci>
                <apply>
                    <plus/>
                    <apply>
                        <times/>
                        <ci>h_1</ci>
                        <ci>e_1</ci>
                    </apply>
                    <apply>
                        <times/>
                        <ci>h_2</ci>
                        <ci>e_2</ci>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>p</ci>
                <apply>
                    <times/>
                    <ci>A</ci>
                    <ci>f_1</ci>
                </apply>
            </apply>
        </math>
    </component>
    <!-- Two versions of TF due to causality issues with CellML 1.1
 TFe has effort imposed on port 1-->
    <component name="TFe">
        <!-- Numerical parameter-->
        <variable name="rho" public_interface="in" units="dimensionless"/>
        <!-- Ports effort on port 1-->
        <variable name="e_1" public_interface="in" units="effort"/>
        <variable name="f_1" public_interface="out" units="flow"/>
        <variable name="h_1" public_interface="in" units="dimensionless"/>
        <variable name="e_2" public_interface="out" units="effort"/>
        <variable name="f_2" public_interface="in" units="flow"/>
        <variable name="h_2" public_interface="in" units="dimensionless"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>e_2</ci>
                <apply>
                    <divide/>
                    <ci>e_1</ci>
                    <ci>rho</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>f_1</ci>
                <apply>
                    <divide/>
                    <ci>f_2</ci>
                    <ci>rho</ci>
                </apply>
            </apply>
        </math>
    </component>
    <!-- TFf has flow imposed on port 1-->
    <component name="TFf">
        <!-- Numerical parameter-->
        <variable name="rho" public_interface="in" units="dimensionless"/>
        <!-- Ports effort on port 1-->
        <variable name="e_1" public_interface="out" units="effort"/>
        <variable name="f_1" public_interface="in" units="flow"/>
        <variable name="h_1" public_interface="in" units="dimensionless"/>
        <variable name="e_2" public_interface="in" units="effort"/>
        <variable name="f_2" public_interface="out" units="flow"/>
        <variable name="h_2" public_interface="in" units="dimensionless"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>e_1</ci>
                <apply>
                    <times/>
                    <ci>rho</ci>
                    <ci>e_2</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>f_2</ci>
                <apply>
                    <times/>
                    <ci>rho</ci>
                    <ci>f_1</ci>
                </apply>
            </apply>
        </math>
    </component>
</model>