forked from filip-jezek/CellML2Modelica
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNoble62_Na_channel_cellml.txt
90 lines (79 loc) · 2.68 KB
/
Noble62_Na_channel_cellml.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
def model sodium_ion_channel as
def import using "Noble62_units.cellml" for
unit mV using unit mV;
unit ms using unit ms;
unit mM using unit mM;
unit per_ms using unit per_ms;
unit per_mV using unit per_mV;
unit per_mV_ms using unit per_mV_ms;
unit mS using unit mS;
unit microA using unit microA;
enddef;
// def comp environment as
// var V: mV {pub: out};
// var t: ms {pub: out};
//
// V = sel
// case (t > 5{ms}) and (t < 15{ms}):
// 0.0{mV};
// otherwise:
// -85.0{mV};
// endsel;
// enddef;
def group as encapsulation for
comp sodium_channel incl
comp sodium_channel_m_gate;
comp sodium_channel_h_gate;
endcomp;
enddef;
def comp sodium_channel as
var V: mV {pub: in, priv: out};
var t: ms {pub: in, priv: out};
var g_Na_max: mS {init: 400};
var g_Na: mS {pub: out};
var E_Na: mV;
var m: dimensionless {pub: out, priv: in};
var h: dimensionless {pub: out, priv: in};
var Nai: mM {pub: in};
var Nao: mM {pub: in};
var RTF: mV {init: 25};
var i_Na: microA {pub: out};
E_Na = RTF*ln(Nao/Nai);
g_Na = pow(m, 3{dimensionless})*h*g_Na_max;
i_Na = (g_Na+0.14{mS})*(V-E_Na);
enddef;
def comp sodium_channel_m_gate as
var V: mV {pub: in};
var t: ms {pub: in};
var m: dimensionless {init: 0.01, pub: out};
var alpha_m: per_ms;
var beta_m: per_ms;
alpha_m = -0.10{per_mV_ms}*(V+48{mV})/(exp(-(V+48{mV})/15{mV})-1{dimensionless});
beta_m = 0.12{per_mV_ms}*(V+8{mV})/(exp((V+8{mV})/5{mV})-1{dimensionless});
ode(m, t) = alpha_m*(1{dimensionless}-m)-beta_m*m;
enddef;
def comp sodium_channel_h_gate as
var V: mV {pub: in};
var t: ms {pub: in};
var h: dimensionless {init: 0.8, pub: out};
var alpha_h: per_ms;
var beta_h: per_ms;
alpha_h = 0.17{per_ms}*exp(-(V+90{mV})/20{mV});
beta_h = 1.00{per_ms}/(1{dimensionless}+exp(-(V+42{mV})/10{mV}));
ode(h, t) = alpha_h*(1{dimensionless}-h)-beta_h*h;
enddef;
// def map between environment and sodium_channel for
// vars V and V;
// vars t and t;
// enddef;
def map between sodium_channel and sodium_channel_m_gate for
vars V and V;
vars t and t;
vars m and m;
enddef;
def map between sodium_channel and sodium_channel_h_gate for
vars V and V;
vars t and t;
vars h and h;
enddef;
enddef;