-
Notifications
You must be signed in to change notification settings - Fork 1
/
1_TCA.ka
91 lines (68 loc) · 3.42 KB
/
1_TCA.ka
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
91
###
# This kappa file models the electron transfer from the TCA cycle to an ubiquinol(QH2) given that the input in the TCA cycle is Glucose.
###
# Tokens #
%token: Glucose
%token: NADH
%token: succinate
%token: Quinol
# Agents #
%agent: TCA(glucose~0~1)
%agent: ComplexI(FMN~0~H)
%agent: ComplexII(FAD~0~H)
# Variables #
%var: 'glucose num' 0.1 #mM
%var: 'Acyl-CoA' 0.14 #mM; default value
%var: 'TCAs' ('Acyl-CoA'/2)*1000 #muM
%var: 'old TCA count' (0.14/2)*1000 #default value
%var: 'Glucose in TCA' 1E-10
%var: 'TCA in' 1E-3 #amount of 'Glucose in TCA' Glucose consumed per second
%var: 'TCA out' 1E-5 #amount of (6*'Glucose in TCA') NADH and (2*'Glucose in TCA') succinate produced per second
%var: 'NADH in CI' 1E-10
%var: 'Complex I in' 0 # should be 1E-5 when there is NADH
%var: 'Complex I out' (0.045/0.32)*(1E-5) #Should be (0.045/0.32)*'Complex I in'
%var: 'Succinate in CII' 1E-10
%var: 'Complex II in' 0 #Should be (0.670/0.320)*(1E-5) when there is succinate
%var: 'Complex II out' (0.031/0.320)*(1E-5) #Should be (0.031/0.320)*'Complex I in'
# Initial Population #
%init: Glucose <- 'glucose num'
%init: 'TCAs' TCA()
%init: 50 ComplexI(FMN~0) #muM
%init: 50 ComplexII(FAD~0) #muM
# Perturbation #
%mod: |Glucose|<0 do Glucose<-0; $UPDATE 'TCA consumes Glucose' 0
%mod: repeat [true] do $UPDATE 'glucose num' |Glucose| until [false]
%mod: repeat |Glucose|>0.5 do $UPDATE 'Acyl-CoA' (0.052*|Glucose| + 0.114) until [false]
%mod: repeat |Glucose|>5.5 do $UPDATE 'Acyl-CoA' 0.4 until [false]
%mod: repeat 'TCAs'>'old TCA count' do $ADD ('TCAs'-'old TCA count') TCA(glucose~0); $UPDATE 'old TCA count' 'TCAs' until [false]
%mod: repeat 'TCAs'<'old TCA count' do $DEL ('old TCA count'-'TCAs') TCA(glucose~0); $UPDATE 'old TCA count' 'TCAs' until [false]
%mod: repeat (|NADH|<0.5 && |succinate|<0.5) do $UPDATE 'TCA out' 1E-5 until [false]
%mod: repeat (|NADH|>0.5 || |succinate|>0.5) do $UPDATE 'TCA out' 0 until [false]
%mod: repeat |NADH|>0 do $UPDATE 'Complex I in' 1E-5 until [false]
%mod: repeat |NADH|<0 do NADH<-0; $UPDATE 'Complex I in' 0 until [false]
%mod: repeat |succinate|>0 do $UPDATE 'Complex II in' (0.670/0.320)*(1E-5) until [false] #Should be (0.670/0.320)*'Complex I in'
%mod: repeat |succinate|<0 do succinate<-0; $UPDATE 'Complex II in' 0 until [false]
# Rules #
'TCA consumes Glucose'\
TCA(glucose~0) |'Glucose in TCA':Glucose -> TCA(glucose~1) @ 'TCA in'
'TCA produces NADH and succinate'\
TCA(glucose~1) ->TCA(glucose~0) |(6*'Glucose in TCA'):NADH + (2*'Glucose in TCA'):succinate @ 'TCA out'
'Complex I consumes NADH'\
ComplexI(FMN~0) |'NADH in CI':NADH ->ComplexI(FMN~H) @ 'Complex I in'
'Complex I produces QH2'\
ComplexI(FMN~H) ->ComplexI(FMN~0) |'NADH in CI':Quinol @ 'Complex I out' #Complex I reduces the Quinol
'Complex II consumes succinate'\
ComplexII(FAD~0) |'Succinate in CII':succinate ->ComplexII(FAD~H) @'Complex II in'
'Complex II produces QH2'\
ComplexII(FAD~H) ->ComplexII(FAD~0) |'Succinate in CII':Quinol @'Complex II out' # Complec II reduces the Quinol
# Observe #
%obs: 'glucose' |Glucose|*1000 #We need the multiplication by 1E3 because we do not use the same units for glucose as we do for ComplexI.
#Complex I
%obs: 'NADH' |NADH|*1000
%obs: 'Complex I without NADH' ComplexI(FMN~0)
%obs: 'Complex I with NADH' ComplexI(FMN~H)
#Complex II
%obs: 'succinate' |succinate|*1000
%obs: 'Complex II without succinate' ComplexII(FAD~0)
%obs: 'Complex II with succinate' ComplexII(FAD~H)
%obs: 'quinols' |Quinol|*1000