Location: SinglePASMC @ 4d9f1500c38c / Components / PASMC.txt

Author:
WeiweiAi <wai484@aucklanduni.ac.nz>
Date:
2022-04-14 19:02:38+12:00
Desc:
update Lib; add models
Permanent Source URI:
https://staging.physiomeproject.org/workspace/83f/rawfile/4d9f1500c38c05427831e95e102c318d45f89d4c/Components/PASMC.txt

def model PASMC as
    def import using "../cellLib/Components/units.cellml" for
        unit mM using unit mM;
        unit mV using unit mV;
        unit mV_per_uM using unit mV_per_uM;
        unit per_s using unit per_s;
        unit uM using unit uM;
        unit uM2 using unit uM2;
        unit uM_per_s using unit uM_per_s;
        unit uM_per_s_mV using unit uM_per_s_mV;
    enddef;

    def import using "JCICRi.cellml" for
        comp JCICRi using comp JCICRi;
    enddef;

    def import using "JCli.cellml" for
        comp JCli using comp JCli;
    enddef;

    def import using "JKi.cellml" for
        comp JKi using comp JKi;
    enddef;

    def import using "JNCXi.cellml" for
        comp JNCXi using comp JNCXi;
    enddef;

    def import using "JNKA.cellml" for
        comp JNKA using comp JNKA;
    enddef;

    def import using "JPMCAi.cellml" for
        comp JPMCAi using comp JPMCAi;
    enddef;

    def import using "JSERCAi.cellml" for
        comp JSERCAi using comp JSERCAi;
    enddef;

    def import using "JVOCCi.cellml" for
        comp JVOCCi using comp JVOCCi;
    enddef;

    def import using "Jleaki.cellml" for
        comp Jleaki using comp Jleaki;
    enddef;

    def comp Cai as
        var L: per_s {pub: in, priv: out};
        var D: per_s {pub: in, priv: out};
        var v_d: mV {pub: in, priv: out};
        var R_d: mV {pub: in, priv: out};
        var C: uM_per_s {pub: in, priv: out};
        var s_c: uM {pub: in, priv: out};
        var c_c: uM {pub: in, priv: out};
        var B: uM_per_s {pub: in, priv: out};
        var c_b: uM {pub: in, priv: out};
        var G_NCX: uM_per_s_mV {pub: in, priv: out};
        var v_NCX: mV {pub: in, priv: out};
        var c_NCX: uM {pub: in, priv: out};
        var G_Ca: uM_per_s_mV {pub: in, priv: out};
        var v_Ca1: mV {pub: in, priv: out};
        var v_Ca2: mV {pub: in, priv: out};
        var R_Ca: mV {pub: in, priv: out};
        var J_VOCCi: uM_per_s {pub: out, priv: in};
        var J_NCXi: uM_per_s {pub: out, priv: in};
        var J_SERCAi: uM_per_s {pub: out, priv: in};
        var J_CICRi: uM_per_s {pub: out, priv: in};
        var J_PMCAi: uM_per_s {pub: out, priv: in};
        var J_leaki: uM_per_s {pub: out, priv: in};
        var t: second {pub: in};
        var ci_init: uM {pub: in};
        var c_i: uM {init: ci_init, pub: out, priv: out};

        ode(c_i,t)=J_VOCCi-J_NCXi-J_SERCAi+J_CICRi-J_PMCAi+J_leaki;

    enddef;

    def group as encapsulation for
        comp Cai incl
            comp JVOCCi;
            comp JNCXi;
            comp JSERCAi;
            comp JCICRi;
            comp JPMCAi;
            comp Jleaki;
        endcomp;
    enddef;

    def comp Casr as
        var L: per_s {pub: in, priv: out};
        var C: uM_per_s {pub: in, priv: out};
        var s_c: uM {pub: in, priv: out};
        var c_c: uM {pub: in, priv: out};
        var B: uM_per_s {pub: in, priv: out};
        var c_b: uM {pub: in, priv: out};
        var J_SERCAi: uM_per_s {pub: out, priv: in};
        var J_CICRi: uM_per_s {pub: out, priv: in};
        var J_leaki: uM_per_s {pub: out, priv: in};
        var t: second {pub: in};
        var si_init: uM {pub: in};
        var s_i: uM {init: si_init, pub: out, priv: out};

        ode(s_i,t)=J_SERCAi-J_CICRi-J_leaki;

    enddef;

    def group as encapsulation for
        comp Casr incl
            comp JSERCAi;
            comp JCICRi;
            comp Jleaki;
        endcomp;
    enddef;

    def comp Vm as
        var G_Ki: uM_per_s_mV {pub: in, priv: out};
        var v_K: mV {pub: in, priv: out};
        var wi_init: dimensionless {pub: in, priv: out};
        var lambda: per_s {pub: in, priv: out};
        var c_w: uM {pub: in, priv: out};
        var v_Ca3: mV {pub: in, priv: out};
        var R_K: mV {pub: in, priv: out};
        var beta: uM2 {pub: in, priv: out};
        var G_NCX: uM_per_s_mV {pub: in, priv: out};
        var v_NCX: mV {pub: in, priv: out};
        var c_NCX: uM {pub: in, priv: out};
        var G_Ca: uM_per_s_mV {pub: in, priv: out};
        var v_Ca1: mV {pub: in, priv: out};
        var v_Ca2: mV {pub: in, priv: out};
        var R_Ca: mV {pub: in, priv: out};
        var G_Cl: uM_per_s_mV {pub: in, priv: out};
        var v_Cl: mV {pub: in, priv: out};
        var C_NKA: uM_per_s {pub: in, priv: out};
        var K_mK: mM {pub: in, priv: out};
        var gamma: mV_per_uM {pub: in};
        var J_NKA: uM_per_s {pub: out, priv: in};
        var J_Cli: uM_per_s {pub: out, priv: in};
        var J_VOCCi: uM_per_s {pub: out, priv: in};
        var J_NCXi: uM_per_s {pub: out, priv: in};
        var J_Ki: uM_per_s {pub: out, priv: in};
        var t: second {pub: in};
        var vi_init: mV {pub: in};
        var v_i: mV {init: vi_init, pub: out, priv: out};

        ode(v_i,t)=gamma*(-J_NKAi-J_Cli+2{dimensionless}*J_VOCCi+J_NCXi-J_Ki);

    enddef;

    def group as encapsulation for
        comp Vm incl
            comp JNKA;
            comp JCli;
            comp JVOCCi;
            comp JNCXi;
            comp JKi;
        endcomp;
    enddef;

    def map between Cai and JVOCCi for
        vars G_Ca and G_Ca;
        vars J_VOCCi and J_VOCCi;
        vars R_Ca and R_Ca;
        vars v_Ca1 and v_Ca1;
        vars v_Ca2 and v_Ca2;
    enddef;

    def map between Cai and JNCXi for
        vars G_NCX and G_NCX;
        vars J_NCXi and J_NCXi;
        vars c_NCX and c_NCX;
        vars c_i and c_i;
        vars v_NCX and v_NCX;
    enddef;

    def map between Cai and JSERCAi for
        vars B and B;
        vars J_SERCAi and J_SERCAi;
        vars c_b and c_b;
        vars c_i and c_i;
    enddef;

    def map between Cai and JCICRi for
        vars C and C;
        vars J_CICRi and J_CICRi;
        vars c_c and c_c;
        vars c_i and c_i;
        vars s_c and s_c;
    enddef;

    def map between Cai and JPMCAi for
        vars D and D;
        vars J_PMCAi and J_PMCAi;
        vars R_d and R_d;
        vars c_i and c_i;
        vars v_d and v_d;
    enddef;

    def map between Cai and Jleaki for
        vars J_leaki and J_leaki;
        vars L and L;
    enddef;

    def map between Casr and JSERCAi for
        vars B and B;
        vars J_SERCAi and J_SERCAi;
        vars c_b and c_b;
    enddef;

    def map between Casr and JCICRi for
        vars C and C;
        vars J_CICRi and J_CICRi;
        vars c_c and c_c;
        vars s_c and s_c;
        vars s_i and s_i;
    enddef;

    def map between Casr and Jleaki for
        vars J_leaki and J_leaki;
        vars L and L;
        vars s_i and s_i;
    enddef;

    def map between Vm and JNKA for
        vars C_NKA and C_NKA;
        vars J_NKA and J_NKA;
        vars K_mK and K_mK;
    enddef;

    def map between Vm and JCli for
        vars G_Cl and G_Cl;
        vars J_Cli and J_Cli;
        vars v_Cl and v_Cl;
        vars v_i and v_i;
    enddef;

    def map between Vm and JVOCCi for
        vars G_Ca and G_Ca;
        vars J_VOCCi and J_VOCCi;
        vars R_Ca and R_Ca;
        vars v_Ca1 and v_Ca1;
        vars v_Ca2 and v_Ca2;
        vars v_i and v_i;
    enddef;

    def map between Vm and JNCXi for
        vars G_NCX and G_NCX;
        vars J_NCXi and J_NCXi;
        vars c_NCX and c_NCX;
        vars v_NCX and v_NCX;
        vars v_i and v_i;
    enddef;

    def map between Vm and JKi for
        vars G_Ki and G_Ki;
        vars J_Ki and J_Ki;
        vars R_K and R_K;
        vars beta and beta;
        vars c_w and c_w;
        vars lambda and lambda;
        vars v_Ca3 and v_Ca3;
        vars v_K and v_K;
        vars v_i and v_i;
        vars wi_init and wi_init;
    enddef;

enddef;