Location: Single PASMC model (Gosak et al 2014) @ d3481301a126 / Components / Vm.txt

Author:
WeiweiAi <wai484@aucklanduni.ac.nz>
Date:
2022-04-20 10:25:24+12:00
Desc:
Pass the inputs to the children models
Permanent Source URI:
https://staging.physiomeproject.org/workspace/83f/rawfile/d3481301a126fe74f4212e78066010c35d3c91f8/Components/Vm.txt

def model Vm 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 "JNKA.cellml" for
        comp JNKA using comp JNKA;
    enddef;

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

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

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

    def import using "JKi.cellml" for
        comp JKi using comp JKi;
    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 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;