1
+ function get_ppMEK_slope (t, ligand):: Float64
2
+ timepoints = [0 , 300 , 600 , 900 , 1800 , 2700 , 3600 , 5400 ]
3
+ ppMEK_data = Dict (
4
+ " EGF" => [0.000 , 0.773 , 0.439 , 0.252 , 0.130 , 0.087 , 0.080 , 0.066 ],
5
+ " HRG" => [0.000 , 0.865 , 1.000 , 0.837 , 0.884 , 0.920 , 0.875 , 0.789 ],
6
+ )
7
+ slope = [
8
+ (ppMEK_data[ligand][i+ 1 ] - activity) / (timepoints[i+ 1 ] - timepoint)
9
+ for (i, (timepoint, activity)) in enumerate (zip (timepoints, ppMEK_data[ligand]))
10
+ if i + 1 <= length (timepoints)
11
+ ]
12
+ for (i, timepoint) in enumerate (timepoints)
13
+ if timepoint <= t <= timepoints[i+ 1 ]
14
+ return slope[i]
15
+ end
16
+ end
17
+ end
18
+
19
+
1
20
function diffeq! (du, u, p, t)
2
21
v = Dict {Int64,Float64} ()
3
22
4
- v[1 ] = p[C. V1] * p[C. a] * u[V. ppMEKc] * u[V. ERKc] / ( p[C. Km1] * (1 + u[V. pERKc] / p[C. Km2]) + u[V. ERKc] )
5
- v[2 ] = p[C. V2] * p[C. a] * u[V. ppMEKc] * u[V. pERKc] / ( p[C. Km2] * (1 + u[V. ERKc] / p[C. Km1]) + u[V. pERKc] )
6
- v[3 ] = p[C. V3] * u[V. pERKc] / ( p[C. Km3] * (1 + u[V. ppERKc] / p[C. Km4]) + u[V. pERKc] )
7
- v[4 ] = p[C. V4] * u[V. ppERKc] / ( p[C. Km4] * (1 + u[V. pERKc] / p[C. Km3]) + u[V. ppERKc] )
8
- v[5 ] = p[C. V5] * u[V. pERKn] / ( p[C. Km5] * (1 + u[V. ppERKn] / p[C. Km6]) + u[V. pERKn] )
9
- v[6 ] = p[C. V6] * u[V. ppERKn] / ( p[C. Km6] * (1 + u[V. pERKn] / p[C. Km5]) + u[V. ppERKn] )
23
+ v[1 ] = p[C. V1] * p[C. a] * u[V. ppMEKc] * u[V. ERKc] / (p[C. Km1] * (1 + u[V. pERKc] / p[C. Km2]) + u[V. ERKc])
24
+ v[2 ] = p[C. V2] * p[C. a] * u[V. ppMEKc] * u[V. pERKc] / (p[C. Km2] * (1 + u[V. ERKc] / p[C. Km1]) + u[V. pERKc])
25
+ v[3 ] = p[C. V3] * u[V. pERKc] / (p[C. Km3] * (1 + u[V. ppERKc] / p[C. Km4]) + u[V. pERKc])
26
+ v[4 ] = p[C. V4] * u[V. ppERKc] / (p[C. Km4] * (1 + u[V. pERKc] / p[C. Km3]) + u[V. ppERKc])
27
+ v[5 ] = p[C. V5] * u[V. pERKn] / (p[C. Km5] * (1 + u[V. ppERKn] / p[C. Km6]) + u[V. pERKn])
28
+ v[6 ] = p[C. V6] * u[V. ppERKn] / (p[C. Km6] * (1 + u[V. pERKn] / p[C. Km5]) + u[V. ppERKn])
10
29
v[7 ] = p[C. KimERK] * u[V. ERKc] - p[C. KexERK] * (p[C. Vn] / p[C. Vc]) * u[V. ERKn]
11
30
v[8 ] = p[C. KimpERK] * u[V. pERKc] - p[C. KexpERK] * (p[C. Vn] / p[C. Vc]) * u[V. pERKn]
12
31
v[9 ] = p[C. KimppERK] * u[V. ppERKc] - p[C. KexppERK] * (p[C. Vn] / p[C. Vc]) * u[V. ppERKn]
13
- v[10 ] = p[C. V10] * u[V. ppERKn]^ p[C. n10] / ( p[C. Km10]^ p[C. n10] + u[V. ppERKn]^ p[C. n10] )
32
+ v[10 ] = p[C. V10] * u[V. ppERKn]^ p[C. n10] / (p[C. Km10]^ p[C. n10] + u[V. ppERKn]^ p[C. n10])
14
33
v[11 ] = p[C. p11] * u[V. PreduspmRNAn]
15
34
v[12 ] = p[C. p12] * u[V. duspmRNAc]
16
35
v[13 ] = p[C. p13] * u[V. duspmRNAc]
17
- v[14 ] = p[C. V14] * u[V. ppERKc] * u[V. DUSPc] / ( p[C. Km14] + u[V. DUSPc] )
18
- v[15 ] = p[C. V15] * u[V. pDUSPc] / ( p[C. Km15] + u[V. pDUSPc] )
36
+ v[14 ] = p[C. V14] * u[V. ppERKc] * u[V. DUSPc] / (p[C. Km14] + u[V. DUSPc])
37
+ v[15 ] = p[C. V15] * u[V. pDUSPc] / (p[C. Km15] + u[V. pDUSPc])
19
38
v[16 ] = p[C. p16] * u[V. DUSPc]
20
39
v[17 ] = p[C. p17] * u[V. pDUSPc]
21
40
v[18 ] = p[C. KimDUSP] * u[V. DUSPc] - p[C. KexDUSP] * (p[C. Vn] / p[C. Vc]) * u[V. DUSPn]
22
41
v[19 ] = p[C. KimpDUSP] * u[V. pDUSPc] - p[C. KexpDUSP] * (p[C. Vn] / p[C. Vc]) * u[V. pDUSPn]
23
- v[20 ] = p[C. V20] * u[V. ppERKn] * u[V. DUSPn] / ( p[C. Km20] + u[V. DUSPn] )
24
- v[21 ] = p[C. V21] * u[V. pDUSPn] / ( p[C. Km21] + u[V. pDUSPn] )
42
+ v[20 ] = p[C. V20] * u[V. ppERKn] * u[V. DUSPn] / (p[C. Km20] + u[V. DUSPn])
43
+ v[21 ] = p[C. V21] * u[V. pDUSPn] / (p[C. Km21] + u[V. pDUSPn])
25
44
v[22 ] = p[C. p22] * u[V. DUSPn]
26
45
v[23 ] = p[C. p23] * u[V. pDUSPn]
27
- v[24 ] = p[C. V24] * u[V. ppERKc] * u[V. RSKc] / ( p[C. Km24] + u[V. RSKc] )
28
- v[25 ] = p[C. V25] * u[V. pRSKc] / ( p[C. Km25] + u[V. pRSKc] )
46
+ v[24 ] = p[C. V24] * u[V. ppERKc] * u[V. RSKc] / (p[C. Km24] + u[V. RSKc])
47
+ v[25 ] = p[C. V25] * u[V. pRSKc] / (p[C. Km25] + u[V. pRSKc])
29
48
v[26 ] = p[C. KimRSK] * u[V. pRSKc] - p[C. KexRSK] * (p[C. Vn] / p[C. Vc]) * u[V. pRSKn]
30
- v[27 ] = p[C. V27] * u[V. pRSKn] * u[V. CREBn] / ( p[C. Km27] + u[V. CREBn] )
31
- v[28 ] = p[C. V28] * u[V. pCREBn] / ( p[C. Km28] + u[V. pCREBn] )
32
- v[29 ] = p[C. V29] * u[V. ppERKn] * u[V. Elk1n] / ( p[C. Km29] + u[V. Elk1n] )
33
- v[30 ] = p[C. V30] * u[V. pElk1n] / ( p[C. Km30] + u[V. pElk1n] )
34
- v[31 ] = p[C. V31] * (u[V. pCREBn] * u[V. pElk1n])^ p[C. n31] / ( p[C. Km31]^ p[C. n31] + (u[V. pCREBn] * u[V. pElk1n])^ p[C. n31] + (u[V. Fn] / p[C. KF31])^ p[C. nF31] )
49
+ v[27 ] = p[C. V27] * u[V. pRSKn] * u[V. CREBn] / (p[C. Km27] + u[V. CREBn])
50
+ v[28 ] = p[C. V28] * u[V. pCREBn] / (p[C. Km28] + u[V. pCREBn])
51
+ v[29 ] = p[C. V29] * u[V. ppERKn] * u[V. Elk1n] / (p[C. Km29] + u[V. Elk1n])
52
+ v[30 ] = p[C. V30] * u[V. pElk1n] / (p[C. Km30] + u[V. pElk1n])
53
+ v[31 ] = p[C. V31] * (u[V. pCREBn] * u[V. pElk1n])^ p[C. n31] / (p[C. Km31]^ p[C. n31] + (u[V. pCREBn] * u[V. pElk1n])^ p[C. n31] + (u[V. Fn] / p[C. KF31])^ p[C. nF31])
35
54
v[32 ] = p[C. p32] * u[V. PrecfosmRNAn]
36
55
v[33 ] = p[C. p33] * u[V. cfosmRNAc]
37
56
v[34 ] = p[C. p34] * u[V. cfosmRNAc]
38
- v[35 ] = p[C. V35] * u[V. ppERKc] * u[V. cFOSc] / ( p[C. Km35] + u[V. cFOSc] )
39
- v[36 ] = p[C. V36] * u[V. pRSKc] * u[V. cFOSc] / ( p[C. Km36] + u[V. cFOSc] )
40
- v[37 ] = p[C. V37] * u[V. pcFOSc] / ( p[C. Km37] + u[V. pcFOSc] )
57
+ v[35 ] = p[C. V35] * u[V. ppERKc] * u[V. cFOSc] / (p[C. Km35] + u[V. cFOSc])
58
+ v[36 ] = p[C. V36] * u[V. pRSKc] * u[V. cFOSc] / (p[C. Km36] + u[V. cFOSc])
59
+ v[37 ] = p[C. V37] * u[V. pcFOSc] / (p[C. Km37] + u[V. pcFOSc])
41
60
v[38 ] = p[C. p38] * u[V. cFOSc]
42
61
v[39 ] = p[C. p39] * u[V. pcFOSc]
43
62
v[40 ] = p[C. KimFOS] * u[V. cFOSc] - p[C. KexFOS] * (p[C. Vn] / p[C. Vc]) * u[V. cFOSn]
44
63
v[41 ] = p[C. KimpcFOS] * u[V. pcFOSc] - p[C. KexpcFOS] * (p[C. Vn] / p[C. Vc]) * u[V. pcFOSn]
45
- v[42 ] = p[C. V42] * u[V. ppERKn] * u[V. cFOSn] / ( p[C. Km42] + u[V. cFOSn] )
46
- v[43 ] = p[C. V43] * u[V. pRSKn] * u[V. cFOSn] / ( p[C. Km43] + u[V. cFOSn] )
47
- v[44 ] = p[C. V44] * u[V. pcFOSn] / ( p[C. Km44] + u[V. pcFOSn] )
64
+ v[42 ] = p[C. V42] * u[V. ppERKn] * u[V. cFOSn] / (p[C. Km42] + u[V. cFOSn])
65
+ v[43 ] = p[C. V43] * u[V. pRSKn] * u[V. cFOSn] / (p[C. Km43] + u[V. cFOSn])
66
+ v[44 ] = p[C. V44] * u[V. pcFOSn] / (p[C. Km44] + u[V. pcFOSn])
48
67
v[45 ] = p[C. p45] * u[V. cFOSn]
49
68
v[46 ] = p[C. p46] * u[V. pcFOSn]
50
69
v[47 ] = p[C. p47] * u[V. DUSPn] * u[V. ppERKn] - p[C. m47] * u[V. DUSPn_ppERKn]
@@ -57,7 +76,7 @@ function diffeq!(du, u, p, t)
57
76
v[54 ] = p[C. p54] * u[V. pDUSPn] * u[V. pERKn] - p[C. m54] * u[V. pDUSPn_pERKn]
58
77
v[55 ] = p[C. p55] * u[V. pDUSPn_pERKn]
59
78
v[56 ] = p[C. p56] * u[V. pDUSPn] * u[V. ERKn] - p[C. m56] * u[V. pDUSPn_ERKn]
60
- v[57 ] = p[C. V57] * u[V. pcFOSn]^ p[C. n57] / ( p[C. Km57]^ p[C. n57] + u[V. pcFOSn]^ p[C. n57] )
79
+ v[57 ] = p[C. V57] * u[V. pcFOSn]^ p[C. n57] / (p[C. Km57]^ p[C. n57] + u[V. pcFOSn]^ p[C. n57])
61
80
v[58 ] = p[C. p58] * u[V. PreFmRNAn]
62
81
v[59 ] = p[C. p59] * u[V. FmRNAc]
63
82
v[60 ] = p[C. p60] * u[V. FmRNAc]
@@ -66,41 +85,9 @@ function diffeq!(du, u, p, t)
66
85
v[63 ] = p[C. p63] * u[V. Fn]
67
86
68
87
if p[C. Ligand] == p[C. EGF] # EGF=10nM
69
- if t < 300.
70
- du[V. ppMEKc] = 0.00258
71
- elseif t < 600.
72
- du[V. ppMEKc] = - 0.00111
73
- elseif t < 900.
74
- du[V. ppMEKc] = - 0.000625
75
- elseif t < 1200.
76
- du[V. ppMEKc] = - 0.000135
77
- elseif t < 1800.
78
- du[V. ppMEKc] = - 0.000135
79
- elseif t < 2700.
80
- du[V. ppMEKc] = - 0.0000480
81
- elseif t < 3600.
82
- du[V. ppMEKc] = - 0.00000852
83
- elseif t <= 5400.
84
- du[V. ppMEKc] = - 0.00000728
85
- end
88
+ du[V. ppMEKc] = get_ppMEK_slope (t, " EGF" )
86
89
elseif p[C. Ligand] == p[C. HRG] # HRG=10nM
87
- if t < 300.
88
- du[V. ppMEKc] = 0.00288
89
- elseif t < 600.
90
- du[V. ppMEKc] = 0.000451
91
- elseif t < 900.
92
- du[V. ppMEKc] = - 0.000545
93
- elseif t < 1200.
94
- du[V. ppMEKc] = 0.0000522
95
- elseif t < 1800.
96
- du[V. ppMEKc] = 0.0000522
97
- elseif t < 2700.
98
- du[V. ppMEKc] = 0.0000399
99
- elseif t < 3600.
100
- du[V. ppMEKc] = - 0.0000500
101
- elseif t <= 5400.
102
- du[V. ppMEKc] = - 0.0000478
103
- end
90
+ du[V. ppMEKc] = get_ppMEK_slope (t, " HRG" )
104
91
else
105
92
du[V. ppMEKc] = 0.0
106
93
end
@@ -111,7 +98,7 @@ function diffeq!(du, u, p, t)
111
98
du[V. ERKn] = v[5 ] + v[7 ] * (p[C. Vc] / p[C. Vn]) + v[50 ] - v[51 ] + v[55 ] - v[56 ]
112
99
du[V. pERKc] = v[1 ] - v[2 ] - v[3 ] + v[4 ] - v[8 ]
113
100
du[V. pERKn] = - v[5 ] + v[6 ] + v[8 ] * (p[C. Vc] / p[C. Vn]) + v[48 ] - v[49 ] + v[53 ] - v[54 ]
114
- du[V. ppERKc] = v[2 ] - v[4 ] - v[9 ]
101
+ du[V. ppERKc] = v[2 ] - v[4 ] - v[9 ]
115
102
du[V. ppERKn] = - v[6 ] + v[9 ] * (p[C. Vc] / p[C. Vn]) - v[47 ] - v[52 ]
116
103
du[V. Elk1n] = - v[29 ] + v[30 ]
117
104
du[V. pElk1n] = v[29 ] - v[30 ]
@@ -260,9 +247,9 @@ function param_values()::Vector{Float64}
260
247
p[C. Vn] = 0.22
261
248
p[C. Vc] = 0.94
262
249
263
- p[C. EGF] = 0.
264
- p[C. HRG] = 1.
265
- p[C. no_ligand] = 2.
250
+ p[C. EGF] = 0.0
251
+ p[C. HRG] = 1.0
252
+ p[C. no_ligand] = 2.0
266
253
267
254
return p
268
255
end
0 commit comments