Location: BG_TRPN @ 47388c934341 / BG_TRPN_tension_koff.cellml

Author:
Shelley Fong <s.fong@auckland.ac.nz>
Date:
2022-01-13 14:21:58+13:00
Desc:
Adding massSprintDamper system for no active sites in filament
Permanent Source URI:
https://models.cellml.org/workspace/7a9/rawfile/47388c934341fb1a6b489a530c3816186f234965/BG_TRPN_tension_koff.cellml

<?xml version='1.0' encoding='UTF-8'?>
<model name="individual_TRPN" xmlns="http://www.cellml.org/cellml/1.1#" xmlns:cellml="http://www.cellml.org/cellml/1.1#" xmlns:xlink="http://www.w3.org/1999/xlink">
    <import xlink:href="units_and_constants/units_BG.cellml">
        <units name="mM" units_ref="mM"/>
        <units name="fmol" units_ref="fmol"/>
        <units name="per_fmol" units_ref="per_fmol"/>
        <units name="J_per_mol" units_ref="J_per_mol"/>
        <units name="fmol_per_sec" units_ref="fmol_per_sec"/>
        <units name="C_per_mol" units_ref="C_per_mol"/>
        <units name="J_per_C" units_ref="J_per_C"/>
        <units name="microm3" units_ref="microm3"/>
        <units name="fF" units_ref="fF"/>
        <units name="fC" units_ref="fC"/>
        <units name="fA" units_ref="fA"/>
        <units name="per_second" units_ref="per_second"/>
        <units name="millivolt" units_ref="millivolt"/>
        <units name="per_sec" units_ref="per_sec"/>
        <units name="J_per_K_per_mol" units_ref="J_per_K_per_mol"/>
        <units name="fmol_per_L" units_ref="fmol_per_L"/>
        <units name="fmol_per_L_per_sec" units_ref="fmol_per_L_per_sec"/>
        <units name="per_sec_per_fmol_per_L" units_ref="per_sec_per_fmol_per_L"/>
        <units name="uM" units_ref="uM"/>
        <units name="mM_per_sec" units_ref="mM_per_sec"/>
        <units name="uM_per_sec" units_ref="uM_per_sec"/>
        <units name="pL" units_ref="pL"/>
        <units name="m_to_u" units_ref="m_to_u"/>
    </import>
    <units name="mm">
        <unit prefix="milli" units="metre"/>
    </units>
    <units name="mm2">
        <unit exponent="2" units="mm"/>
    </units>
    <units name="N_per_mm2">
        <unit units="newton"/>
        <unit exponent="-1" units="mm2"/>
    </units>
    <units name="mm2_per_N">
        <unit exponent="-1" units="N_per_mm2"/>
    </units>
    <units name="N_per_mm2_per_sec">
        <unit units="N_per_mm2"/>
        <unit exponent="-1" units="second"/>
    </units>
    <units name="mm3_per_mol">
        <unit exponent="3" units="mm"/>
        <unit exponent="-1" units="mole"/>
    </units>
    <units name="J_per_mm3">
        <unit units="joule"/>
        <unit exponent="-3" units="mm"/>
    </units>
    <units name="mil_to_1">
        <unit units="second"/>
        <unit exponent="-1" prefix="milli" units="second"/>
    </units>
    <units name="J_per_mol2">
        <unit units="J_per_mol"/>
        <unit exponent="-1" units="mole"/>
    </units>
    <units name="Js_per_mol2">
        <unit units="J_per_mol2"/>
        <unit units="second"/>
    </units>
    <units name="fmol_to_mol">
        <unit exponent="-1" prefix="femto" units="mole"/>
        <unit units="mole"/>
    </units>
    <import xlink:href="units_and_constants/constants_BG.cellml">
        <component component_ref="constants" name="constants"/>
    </import>
    <component name="environment">
        <variable name="time" public_interface="out" units="second"/>
        <!-- Tension-->
        <variable name="tension" public_interface="out" units="N_per_mm2"/>
        <!--        var Area: mm2 {init: 7.85e-5, pub: out};
        var strainlength: mm {init: 1, pub: out};
        var q_XB: fmol {init: 5.7, pub: out};-->
        <variable initial_value="1e0" name="stimSt" units="second"/>
        <variable initial_value="1e0" name="stimDur" units="second"/>
        <variable initial_value="5e-1" name="tR" units="second"/>
        <variable initial_value="2500" name="stimMag" units="N_per_mm2"/>
        <variable initial_value="0e-12" name="stimHolding" units="N_per_mm2"/>
        <variable name="m" units="N_per_mm2_per_sec"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>m</ci>
                <apply>
                    <divide/>
                    <ci>stimMag</ci>
                    <ci>tR</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>tension</ci>
                <piecewise>
                    <piece>
                        <apply>
                            <plus/>
                            <ci>stimHolding</ci>
                            <apply>
                                <times/>
                                <ci>m</ci>
                                <apply>
                                    <plus/>
                                    <apply>
                                        <minus/>
                                        <ci>time</ci>
                                        <ci>stimSt</ci>
                                    </apply>
                                    <ci>tR</ci>
                                </apply>
                            </apply>
                        </apply>
                        <apply>
                            <and/>
                            <apply>
                                <lt/>
                                <ci>time</ci>
                                <ci>stimSt</ci>
                            </apply>
                            <apply>
                                <gt/>
                                <ci>time</ci>
                                <apply>
                                    <minus/>
                                    <ci>stimSt</ci>
                                    <ci>tR</ci>
                                </apply>
                            </apply>
                        </apply>
                    </piece>
                    <piece>
                        <apply>
                            <plus/>
                            <ci>stimMag</ci>
                            <ci>stimHolding</ci>
                        </apply>
                        <apply>
                            <and/>
                            <apply>
                                <geq/>
                                <ci>time</ci>
                                <ci>stimSt</ci>
                            </apply>
                            <apply>
                                <lt/>
                                <ci>time</ci>
                                <apply>
                                    <plus/>
                                    <ci>stimSt</ci>
                                    <ci>stimDur</ci>
                                </apply>
                            </apply>
                        </apply>
                    </piece>
                    <piece>
                        <apply>
                            <plus/>
                            <ci>stimHolding</ci>
                            <apply>
                                <times/>
                                <apply>
                                    <minus/>
                                    <ci>m</ci>
                                </apply>
                                <apply>
                                    <minus/>
                                    <apply>
                                        <minus/>
                                        <apply>
                                            <minus/>
                                            <ci>time</ci>
                                            <ci>stimSt</ci>
                                        </apply>
                                        <ci>tR</ci>
                                    </apply>
                                    <ci>stimDur</ci>
                                </apply>
                            </apply>
                        </apply>
                        <apply>
                            <and/>
                            <apply>
                                <lt/>
                                <ci>time</ci>
                                <apply>
                                    <plus/>
                                    <ci>stimSt</ci>
                                    <ci>tR</ci>
                                    <ci>stimDur</ci>
                                </apply>
                            </apply>
                            <apply>
                                <geq/>
                                <ci>time</ci>
                                <apply>
                                    <plus/>
                                    <ci>stimSt</ci>
                                    <ci>stimDur</ci>
                                </apply>
                            </apply>
                        </apply>
                    </piece>
                    <otherwise>
                        <ci>stimHolding</ci>
                    </otherwise>
                </piecewise>
            </apply>
        </math>
        <!-- initial values-->
        <variable initial_value="6.82e-1" name="q_Cai_init" units="fmol"/>
        <variable initial_value="2.57" name="q_TRPN_init" units="fmol"/>
        <variable initial_value="1e-6" name="q_Ca_TRPN_init" units="fmol"/>
        <!-- Global value-->
        <variable name="q_Cai" public_interface="out" units="fmol"/>
        <variable name="q_TRPN" public_interface="out" units="fmol"/>
        <variable name="q_Ca_TRPN" public_interface="out" units="fmol"/>
        <!-- From submodule-->
        <variable name="q_Cai_mTRPN" public_interface="in" units="fmol"/>
        <variable name="q_TRPN_mTRPN" public_interface="in" units="fmol"/>
        <variable name="q_Ca_TRPN_mTRPN" public_interface="in" units="fmol"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>q_Cai</ci>
                <apply>
                    <plus/>
                    <ci>q_Cai_mTRPN</ci>
                    <ci>q_Cai_init</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>q_TRPN</ci>
                <apply>
                    <plus/>
                    <ci>q_TRPN_mTRPN</ci>
                    <ci>q_TRPN_init</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>q_Ca_TRPN</ci>
                <apply>
                    <plus/>
                    <ci>q_Ca_TRPN_mTRPN</ci>
                    <ci>q_Ca_TRPN_init</ci>
                </apply>
            </apply>
        </math>
    </component>
    <component name="TRPN_parameters">
        <variable initial_value="83.2553" name="kappa_R_TRPNCa" public_interface="out" units="fmol_per_sec"/>
        <variable initial_value="1.00748" name="K_Cai" public_interface="out" units="per_fmol"/>
        <variable initial_value="1.00748" name="K_TRPN" public_interface="out" units="per_fmol"/>
        <variable initial_value="0.0698328" name="K_Ca_TRPN" public_interface="out" units="per_fmol"/>
    </component>
    <component name="TRPN">
        <variable name="time" public_interface="in" units="second"/>
        <variable name="R" public_interface="in" units="J_per_K_per_mol"/>
        <variable name="T" public_interface="in" units="kelvin"/>
        <!-- parameters-->
        <variable name="kappa_R_TRPNCa" public_interface="in" units="fmol_per_sec"/>
        <variable name="K_Cai" public_interface="in" units="per_fmol"/>
        <variable name="K_TRPN" public_interface="in" units="per_fmol"/>
        <variable name="K_Ca_TRPN" public_interface="in" units="per_fmol"/>
        <!-- Input from global environment-->
        <variable name="q_Cai_global" public_interface="in" units="fmol"/>
        <variable name="q_TRPN_global" public_interface="in" units="fmol"/>
        <variable name="q_Ca_TRPN_global" public_interface="in" units="fmol"/>
        <!-- Output to global environment-->
        <variable initial_value="1e-16" name="q_Cai" public_interface="out" units="fmol"/>
        <variable initial_value="1e-16" name="q_TRPN" public_interface="out" units="fmol"/>
        <variable initial_value="1e-16" name="q_Ca_TRPN" public_interface="out" units="fmol"/>
        <!-- Tension and transformer-->
        <variable name="tension" public_interface="in" units="N_per_mm2"/>
        <!--        var Area: mm2 {pub: in};
        var strainlength: mm {pub: in};
        var q_XB: mole {pub: in};
        var m: mil_to_1 {init: 1e3};
        var conv: mm3_per_mol;-->
        <!--        conv = Area*strainlength/q_XB;-->
        <!--        var A: dimensionless {init: 1.0247382029957026};
        var k: dimensionless {init: 0.011770022274421879};-->
        <!--        mu_TF = conv*A*exp(-k*tension);-->
        <!--        var q_kf: fmol;
        var K_kf: per_fmol {init: 1};
        var mu_kf: J_per_mol;-->
        <!--        q_kf = 1{fmol}*A*exp(-k*tension);
        mu_kf = R*T*ln(K_kf*q_kf);-->
        <variable name="mu_tension" units="J_per_mol"/>
        <variable initial_value="-0.0118" name="kf_coeff" units="dimensionless"/>
        <variable name="n" units="J_per_mol"/>
        <variable initial_value="1" name="hh" units="mm2_per_N"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>n</ci>
                <apply>
                    <times/>
                    <ci>kf_coeff</ci>
                    <ci>R</ci>
                    <ci>T</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>mu_tension</ci>
                <apply>
                    <times/>
                    <ci>hh</ci>
                    <ci>n</ci>
                    <ci>tension</ci>
                </apply>
            </apply>
        </math>
        <!-- Constitutive parameters-->
        <variable name="mu_Cai" units="J_per_mol"/>
        <variable name="mu_TRPN" units="J_per_mol"/>
        <variable name="mu_Ca_TRPN" units="J_per_mol"/>
        <variable name="v_R_TRPNCa" units="fmol_per_sec"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>mu_Cai</ci>
                <apply>
                    <times/>
                    <ci>R</ci>
                    <ci>T</ci>
                    <apply>
                        <ln/>
                        <apply>
                            <times/>
                            <ci>K_Cai</ci>
                            <ci>q_Cai_global</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>mu_TRPN</ci>
                <apply>
                    <times/>
                    <ci>R</ci>
                    <ci>T</ci>
                    <apply>
                        <ln/>
                        <apply>
                            <times/>
                            <ci>K_TRPN</ci>
                            <ci>q_TRPN_global</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>mu_Ca_TRPN</ci>
                <apply>
                    <times/>
                    <ci>R</ci>
                    <ci>T</ci>
                    <apply>
                        <ln/>
                        <apply>
                            <times/>
                            <ci>K_Ca_TRPN</ci>
                            <ci>q_Ca_TRPN_global</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>v_R_TRPNCa</ci>
                <apply>
                    <times/>
                    <ci>kappa_R_TRPNCa</ci>
                    <apply>
                        <minus/>
                        <apply>
                            <exp/>
                            <apply>
                                <divide/>
                                <apply>
                                    <plus/>
                                    <ci>mu_Cai</ci>
                                    <ci>mu_TRPN</ci>
                                </apply>
                                <apply>
                                    <times/>
                                    <ci>R</ci>
                                    <ci>T</ci>
                                </apply>
                            </apply>
                        </apply>
                        <apply>
                            <exp/>
                            <apply>
                                <divide/>
                                <apply>
                                    <plus/>
                                    <ci>mu_Ca_TRPN</ci>
                                    <ci>mu_tension</ci>
                                </apply>
                                <apply>
                                    <times/>
                                    <ci>R</ci>
                                    <ci>T</ci>
                                </apply>
                            </apply>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>time</ci>
                    </bvar>
                    <ci>q_Cai</ci>
                </apply>
                <apply>
                    <minus/>
                    <ci>v_R_TRPNCa</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>time</ci>
                    </bvar>
                    <ci>q_TRPN</ci>
                </apply>
                <apply>
                    <minus/>
                    <ci>v_R_TRPNCa</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>time</ci>
                    </bvar>
                    <ci>q_Ca_TRPN</ci>
                </apply>
                <ci>v_R_TRPNCa</ci>
            </apply>
        </math>
    </component>
    <component name="active_sites">
        <!-- y is the dimensionalised value of z. z is the fraction of active sites available for XB binding-->
        <variable name="time" public_interface="in" units="second"/>
        <variable initial_value="0" name="q_y" units="fmol"/>
        <variable initial_value="200" name="q_yT" units="fmol"/>
        <variable name="v" units="fmol_per_sec"/>
        <variable name="u1" units="J_per_mol"/>
        <variable name="u2" units="J_per_mol"/>
        <variable name="q_Ca_TRPN" public_interface="in" units="fmol"/>
        <variable initial_value="8" name="alpha_0" units="per_sec"/>
        <variable initial_value="1" name="h" units="Js_per_mol2"/>
        <variable initial_value="1" name="f" units="fmol_to_mol"/>
        <variable name="k" units="J_per_mol2"/>
        <variable initial_value="1" name="D" units="Js_per_mol2"/>
        <variable initial_value="3" name="n" units="dimensionless"/>
        <variable initial_value="1.0953" name="q_CaTRPN50" units="fmol"/>
        <!--0.0288235294117647 mM-->
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>k</ci>
                <apply>
                    <times/>
                    <ci>h</ci>
                    <ci>alpha_0</ci>
                    <apply>
                        <power/>
                        <apply>
                            <divide/>
                            <ci>q_Ca_TRPN</ci>
                            <ci>q_CaTRPN50</ci>
                        </apply>
                        <ci>n</ci>
                    </apply>
                </apply>
            </apply>
        </math>
        <!-- *********************** system is OVERCONSTRAINED but the solve works ***********************
 forcing term-->
        <variable name="fRHS" units="J_per_mol"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>fRHS</ci>
                <apply>
                    <times/>
                    <ci>q_yT</ci>
                    <ci>k</ci>
                    <ci>f</ci>
                </apply>
            </apply>
            <!--        u2 = v*D*f;-->
            <apply>
                <eq/>
                <ci>u2</ci>
                <apply>
                    <minus/>
                    <ci>fRHS</ci>
                    <ci>u1</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>u1</ci>
                <apply>
                    <times/>
                    <ci>q_y</ci>
                    <ci>k</ci>
                    <ci>f</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>v</ci>
                <apply>
                    <divide/>
                    <ci>u2</ci>
                    <apply>
                        <times/>
                        <ci>D</ci>
                        <ci>f</ci>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>time</ci>
                    </bvar>
                    <ci>q_y</ci>
                </apply>
                <ci>v</ci>
            </apply>
        </math>
        <!-- check-->
        <variable name="u_total" units="J_per_mol"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>u_total</ci>
                <apply>
                    <plus/>
                    <ci>u1</ci>
                    <ci>u2</ci>
                </apply>
            </apply>
        </math>
    </component>
    <connection>
        <map_components component_1="environment" component_2="TRPN"/>
        <map_variables variable_1="time" variable_2="time"/>
        <map_variables variable_1="q_Cai_mTRPN" variable_2="q_Cai"/>
        <map_variables variable_1="q_Cai" variable_2="q_Cai_global"/>
        <map_variables variable_1="q_TRPN_mTRPN" variable_2="q_TRPN"/>
        <map_variables variable_1="q_TRPN" variable_2="q_TRPN_global"/>
        <map_variables variable_1="q_Ca_TRPN_mTRPN" variable_2="q_Ca_TRPN"/>
        <map_variables variable_1="q_Ca_TRPN" variable_2="q_Ca_TRPN_global"/>
        <map_variables variable_1="tension" variable_2="tension"/>
        <!--        vars Area and Area;
        vars strainlength and strainlength;
        vars q_XB and q_XB;-->
    </connection>
    <connection>
        <map_components component_1="environment" component_2="active_sites"/>
        <map_variables variable_1="time" variable_2="time"/>
    </connection>
    <connection>
        <map_components component_1="environment" component_2="active_sites"/>
        <map_variables variable_1="q_Ca_TRPN" variable_2="q_Ca_TRPN"/>
    </connection>
    <connection>
        <map_components component_1="TRPN" component_2="TRPN_parameters"/>
        <map_variables variable_1="kappa_R_TRPNCa" variable_2="kappa_R_TRPNCa"/>
        <map_variables variable_1="K_Cai" variable_2="K_Cai"/>
        <map_variables variable_1="K_TRPN" variable_2="K_TRPN"/>
        <map_variables variable_1="K_Ca_TRPN" variable_2="K_Ca_TRPN"/>
    </connection>
    <connection>
        <map_components component_1="constants" component_2="TRPN"/>
        <map_variables variable_1="R" variable_2="R"/>
        <map_variables variable_1="T" variable_2="T"/>
    </connection>
</model>