Skip to content

Commit ee282c3

Browse files
author
Marte Julie
committed
read initial values from file
1 parent 286c3bc commit ee282c3

File tree

2 files changed

+40
-62
lines changed

2 files changed

+40
-62
lines changed

functions/solve_EDPRmodel.py

Lines changed: 39 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from EDPRmodel.somatic_injection_current import *
66
from scipy.integrate import solve_ivp
77
from functions.print_initial_values import *
8+
import pkg_resources
89

910
def solve_EDPRmodel(t_dur, alpha, I_stim, stim_start, stim_end):
1011
"""
@@ -22,53 +23,42 @@ def solve_EDPRmodel(t_dur, alpha, I_stim, stim_start, stim_end):
2223
"""
2324

2425
T = 309.14
25-
26-
Na_si0 = 18.
27-
Na_se0 = 140.
28-
K_si0 = 99.
29-
K_se0 = 4.3
30-
Cl_si0 = 7.
31-
Cl_se0 = 134.
32-
Ca_si0 = 0.01
33-
Ca_se0 = 1.1
34-
35-
Na_di0 = 18.
36-
Na_de0 = 140.
37-
K_di0 = 99.
38-
K_de0 = 4.3
39-
Cl_di0 = 7.
40-
Cl_de0 = 134.
41-
Ca_di0 = 0.01
42-
Ca_de0 = 1.1
43-
44-
res_i = -68e-3*3e-2*616e-12/(1437e-18*9.648e4)
45-
res_e = -68e-3*3e-2*616e-12/(718.5e-18*9.648e4)
46-
47-
k_res_si0 = Cl_si0 - Na_si0 - K_si0 - 2*Ca_si0 + res_i
48-
k_res_se0 = Cl_se0 - Na_se0 - K_se0 - 2*Ca_se0 - res_e
49-
k_res_di0 = Cl_di0 - Na_di0 - K_di0 - 2*Ca_di0 + res_i
50-
k_res_de0 = Cl_de0 - Na_de0 - K_de0 - 2*Ca_de0 - res_e
51-
52-
n0 = 0.0003
53-
h0 = 0.999
54-
s0 = 0.007
55-
c0 = 0.006
56-
q0 = 0.011
57-
z0 = 1.0
58-
59-
def calibrate(t,k):
60-
61-
Na_si, Na_se, Na_di, Na_de, K_si, K_se, K_di, K_de, Cl_si, Cl_se, Cl_di, Cl_de, Ca_si, Ca_se, Ca_di, Ca_de, k_res_si, k_res_se, k_res_di, k_res_de, n, h, s, c, q, z = k
62-
63-
my_cell = EDPRmodel(T, Na_si, Na_se, Na_di, Na_de, K_si, K_se, K_di, K_de, Cl_si, Cl_se, Cl_di, Cl_de, Ca_si, Ca_se, Ca_di, Ca_de, k_res_si, k_res_se, k_res_di, k_res_de, alpha, Ca_si0, Ca_di0, n, h, s, c, q, z)
64-
65-
dNadt_si, dNadt_se, dNadt_di, dNadt_de, dKdt_si, dKdt_se, dKdt_di, dKdt_de, dCldt_si, dCldt_se, dCldt_di, dCldt_de, \
66-
dCadt_si, dCadt_se, dCadt_di, dCadt_de, dresdt_si, dresdt_se, dresdt_di, dresdt_de = my_cell.dkdt()
67-
dndt, dhdt, dsdt, dcdt, dqdt, dzdt = my_cell.dmdt()
68-
69-
return dNadt_si, dNadt_se, dNadt_di, dNadt_de, dKdt_si, dKdt_se, dKdt_di, dKdt_de, \
70-
dCldt_si, dCldt_se, dCldt_di, dCldt_de, dCadt_si, dCadt_se, dCadt_di, dCadt_de, \
71-
dresdt_si, dresdt_se, dresdt_di, dresdt_de, dndt, dhdt, dsdt, dcdt, dqdt, dzdt
26+
27+
filename = pkg_resources.resource_filename('data', 'initial_values/initial_values.npz')
28+
data = np.load(filename)
29+
30+
Na_si0 = data['Na_si']
31+
Na_se0 = data['Na_se']
32+
K_si0 = data['K_si']
33+
K_se0 = data['K_se']
34+
Cl_si0 = data['Cl_si']
35+
Cl_se0 = data['Cl_se']
36+
Ca_si0 = data['Ca_si']
37+
Ca_se0 = data['Ca_se']
38+
39+
Na_di0 = data['Na_di']
40+
Na_de0 = data['Na_de']
41+
K_di0 = data['K_di']
42+
K_de0 = data['K_de']
43+
Cl_di0 = data['Cl_di']
44+
Cl_de0 = data['Cl_de']
45+
Ca_di0 = data['Ca_di']
46+
Ca_de0 = data['Ca_de']
47+
48+
k_res_si0 = data['k_res_si'][-1]
49+
k_res_se0 = data['k_res_se'][-1]
50+
k_res_di0 = data['k_res_di'][-1]
51+
k_res_de0 = data['k_res_de'][-1]
52+
53+
n0 = data['n']
54+
h0 = data['h']
55+
s0 = data['s']
56+
c0 = data['c']
57+
q0 = data['q']
58+
z0 = data['z']
59+
60+
init_cell = EDPRmodel(T, Na_si0, Na_se0, Na_di0, Na_de0, K_si0, K_se0, K_di0, K_de0, Cl_si0, Cl_se0, Cl_di0, Cl_de0, Ca_si0, Ca_se0, Ca_di0, Ca_de0, k_res_si0, k_res_se0, k_res_di0, k_res_de0, alpha, Ca_si0, Ca_di0, n0, h0, s0, c0, q0, z0)
61+
print_initial_values(init_cell)
7262

7363
def dkdt(t,k):
7464

@@ -87,25 +77,12 @@ def dkdt(t,k):
8777
dCldt_si, dCldt_se, dCldt_di, dCldt_de, dCadt_si, dCadt_se, dCadt_di, dCadt_de, \
8878
dresdt_si, dresdt_se, dresdt_di, dresdt_de, dndt, dhdt, dsdt, dcdt, dqdt, dzdt
8979

90-
# calibrate
91-
t_span = (0, 15)
80+
# solve
81+
t_span = (0, t_dur)
9282

9383
k0 = [Na_si0, Na_se0, Na_di0, Na_de0, K_si0, K_se0, K_di0, K_de0, Cl_si0, Cl_se0, Cl_di0, Cl_de0, Ca_si0, Ca_se0, Ca_di0, Ca_de0, \
9484
k_res_si0, k_res_se0, k_res_di0, k_res_de0, n0, h0, s0, c0, q0, z0]
9585

96-
sol = solve_ivp(calibrate, t_span, k0, max_step=1e-4)
97-
Na_si, Na_se, Na_di, Na_de, K_si, K_se, K_di, K_de, Cl_si, Cl_se, Cl_di, Cl_de, Ca_si, Ca_se, Ca_di, Ca_de, \
98-
k_res_si, k_res_se, k_res_di, k_res_de, n, h, s, c, q, z = sol.y
99-
100-
# solve
101-
t_span = (0, t_dur)
102-
103-
k0 = [Na_si[-1], Na_se[-1], Na_di[-1], Na_de[-1], K_si[-1], K_se[-1], K_di[-1], K_de[-1], Cl_si[-1], Cl_se[-1], Cl_di[-1], Cl_de[-1], Ca_si[-1], Ca_se[-1], Ca_di[-1], Ca_de[-1], \
104-
k_res_si[-1], k_res_se[-1], k_res_di[-1], k_res_de[-1], n[-1], h[-1], s[-1], c[-1], q[-1], z[-1]]
105-
10686
sol = solve_ivp(dkdt, t_span, k0, max_step=1e-4)
10787

108-
init_cell = EDPRmodel(T, Na_si0, Na_se0, Na_di0, Na_de0, K_si0, K_se0, K_di0, K_de0, Cl_si0, Cl_se0, Cl_di0, Cl_de0, Ca_si0, Ca_se0, Ca_di0, Ca_de0, k_res_si0, k_res_se0, k_res_di0, k_res_de0, alpha, Ca_si0, Ca_di0, n0, h0, s0, c0, q0, z0)
109-
#print_initial_values(init_cell)
110-
11188
return sol

setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@
44
setup(
55
name="EDPRmodel_analysis",
66
packages=find_packages(),
7+
package_data={'data': ['initial_values/*.dat']},
78
version="0.1")

0 commit comments

Comments
 (0)