y_petri 2.1.50 → 2.1.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/y_petri/agent/petri_net_related.rb +22 -11
- data/lib/y_petri/transition.rb +1 -3
- data/lib/y_petri/version.rb +1 -1
- data/test/examples/example_IV.rb +135 -0
- data/test/examples/example_VI_gillespie.rb +21 -0
- metadata +6 -6
- data/test/examples/demonstrator_3.rb +0 -150
- data/test/examples/gillespie.rb +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c3896cb4a505575a8a8e087b846183a901be76fc
|
4
|
+
data.tar.gz: af87fbeae3c77dced19c699d8295b148452f5743
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71c519d53c258dd1f1135ce270d31aeb17e1cf5ee416e3b3f6d0db1968bf4c49e519839ab9a576eaf118bc3f3f119ed6776bce130aaf743fa17bafd17cc6c3f1
|
7
|
+
data.tar.gz: c81ab243918a093e49f755cc5f4d8ca4ae2d2fdffbc3682562e88000dcafedc93e714eed347c71a6b0f641e186e62436971535711f5b4411cf21196e3b3242c6
|
@@ -78,21 +78,33 @@ module YPetri::Agent::PetriNetRelated
|
|
78
78
|
# world. Rate closure has to be supplied as a block.
|
79
79
|
#
|
80
80
|
def TT( *ordered, **named, &block )
|
81
|
-
|
82
|
-
"
|
83
|
-
|
81
|
+
if named.has? :rate then
|
82
|
+
fail ArgumentError, "Block must not be given if :rate named argument " +
|
83
|
+
"is given!" if block
|
84
|
+
else
|
85
|
+
fail ArgumentError, "Timed transition constructor requires either " +
|
86
|
+
"a :rate argument, or a block!" unless block
|
87
|
+
named.update rate: block
|
88
|
+
end
|
89
|
+
world.Transition.send( :new, *ordered, **named )
|
84
90
|
end
|
85
91
|
|
86
92
|
# Timed stoichiometric transition constructor, that expects stoichiometry
|
87
93
|
# given directly as hash-collected arguments. Two special keys allowed are
|
88
94
|
# +:name+ (alias +:ɴ) and +:domain+. (Key +:codomain+ is not allowed.)
|
89
95
|
#
|
90
|
-
def TS **stoichiometry, &block
|
91
|
-
|
92
|
-
args
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
+
def TS *domain, **stoichiometry, &block
|
97
|
+
nn = stoichiometry
|
98
|
+
args = { s: nn }
|
99
|
+
args.update name: nn.delete( :name ) if nn.has? :name, syn!: :ɴ
|
100
|
+
if domain.empty? then
|
101
|
+
args.update domain: nn.delete( :domain ) if nn.has? :domain
|
102
|
+
else
|
103
|
+
fail ArgumentError, "There must not be any ordered arguments if " +
|
104
|
+
"named argument :domain is given!" unless domain.empty?
|
105
|
+
args.update domain: domain
|
106
|
+
end
|
107
|
+
args.update rate: nn.delete( :rate ) if nn.has? :rate, syn!: :rate_closure
|
96
108
|
TT **args, &block
|
97
109
|
end
|
98
110
|
|
@@ -105,8 +117,7 @@ module YPetri::Agent::PetriNetRelated
|
|
105
117
|
"defining the assignment function!" unless block
|
106
118
|
world.Transition.send( :new,
|
107
119
|
codomain: codomain,
|
108
|
-
assignment:
|
109
|
-
action: block,
|
120
|
+
assignment: block,
|
110
121
|
**nn )
|
111
122
|
end
|
112
123
|
|
data/lib/y_petri/transition.rb
CHANGED
@@ -277,9 +277,7 @@ class YPetri::Transition
|
|
277
277
|
#
|
278
278
|
def to_s
|
279
279
|
"#<Transition: %s>" %
|
280
|
-
"#{
|
281
|
-
[ "#{assignment_action? ? ' Assign.' : ''}",
|
282
|
-
"#{name.nil? ? ' id:%s' % object_id : ''}" ]
|
280
|
+
"#{'%s ' % name if name}(#{type})#{' id:%s' % object_id unless name}"
|
283
281
|
end
|
284
282
|
|
285
283
|
def place id
|
data/lib/y_petri/version.rb
CHANGED
@@ -0,0 +1,135 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
|
3
|
+
require 'y_petri' and include YPetri
|
4
|
+
# require 'mathn'
|
5
|
+
|
6
|
+
Pieces_per_microM = 100_000
|
7
|
+
set_step 10
|
8
|
+
set_sampling 30
|
9
|
+
set_target_time 30 * 60
|
10
|
+
|
11
|
+
# === Places (all in µM)
|
12
|
+
|
13
|
+
AMP = Place m!: 8695.0
|
14
|
+
ADP = Place m!: 6521.0
|
15
|
+
ATP = Place m!: 3152.0
|
16
|
+
DeoxyCytidine = Place m!: 5.0
|
17
|
+
DeoxyCTP = Place m!: 20.0
|
18
|
+
DeoxyGMP = Place m!: 20.0
|
19
|
+
UMP_UDP_pool = Place m!: 2737.0
|
20
|
+
DeoxyUMP_DeoxyUDP_pool = Place m!: 10.0
|
21
|
+
DeoxyTMP = Place m!: 50.0
|
22
|
+
DeoxyTDP_DeoxyTTP_pool = Place m!: 100.0
|
23
|
+
Thymidine = Place m!: 10.0
|
24
|
+
|
25
|
+
TK1 = Place m!: 100_000 / Pieces_per_microM
|
26
|
+
TYMS = Place m!: 100_000 / Pieces_per_microM
|
27
|
+
RNR = Place m!: 100_000 / Pieces_per_microM
|
28
|
+
TMPK = Place m!: 100_000 / Pieces_per_microM
|
29
|
+
|
30
|
+
# === Molecular masses
|
31
|
+
|
32
|
+
TK1_kDa = 24.8
|
33
|
+
TYMS_kDa = 66.0
|
34
|
+
RNR_kDa = 140.0
|
35
|
+
TMPK_kDa = 50.0
|
36
|
+
|
37
|
+
# === Enzyme specific activities
|
38
|
+
|
39
|
+
TK1_a = 5.40
|
40
|
+
TYMS_a = 3.80
|
41
|
+
RNR_a = 1.00
|
42
|
+
TMPK_a = 0.83
|
43
|
+
|
44
|
+
# === Clamps (all in µM)
|
45
|
+
|
46
|
+
clamp AMP: 8695.0, ADP: 6521.0, ATP: 3152.0
|
47
|
+
clamp DeoxyCytidine: 5.0, DeoxyCTP: 20.0, DeoxyGMP: 20.0
|
48
|
+
clamp Thymidine: 20
|
49
|
+
clamp UMP_UDP_pool: 2737.0
|
50
|
+
|
51
|
+
# === Function closures
|
52
|
+
|
53
|
+
Vmax_per_min_per_enz_molecule =
|
54
|
+
lambda { |spec_act_microM_per_min_per_mg, kDa|
|
55
|
+
spec_act_microM_per_min_per_mg * kDa }
|
56
|
+
Vmax_per_min =
|
57
|
+
lambda { |spec_act, kDa, enz_molecules_per_cell|
|
58
|
+
Vmax_per_min_per_enz_molecule.( spec_act, kDa ) *
|
59
|
+
enz_molecules_per_cell }
|
60
|
+
Vmax_per_s =
|
61
|
+
lambda { |spec_act, kDa, enz_mol_per_cell|
|
62
|
+
Vmax_per_min.( spec_act, kDa, enz_mol_per_cell ) / 60 }
|
63
|
+
Km_reduced =
|
64
|
+
lambda { |km, ki_hash={}|
|
65
|
+
ki_hash.map { |c, ki| c / ki }.reduce( 1, :+ ) * km }
|
66
|
+
Occupancy =
|
67
|
+
lambda { |c, km, compet_inh_w_Ki_hash={}|
|
68
|
+
c / ( c + Km_reduced.( km, compet_inh_w_Ki_hash ) ) }
|
69
|
+
MM_with_inh_microM_per_second =
|
70
|
+
lambda { |c, spec_act, kDa, enz_mol_per_cell, km, ki_hash={}|
|
71
|
+
Vmax_per_s.( spec_act, kDa, enz_mol_per_cell ) *
|
72
|
+
Occupancy.( c, km, ki_hash ) }
|
73
|
+
MMi = MM_with_inh_microM_per_second
|
74
|
+
|
75
|
+
# === Michaelis constants (all in µM)
|
76
|
+
|
77
|
+
TK1_Thymidine_Km = 5.0
|
78
|
+
TYMS_DeoxyUMP_Km = 2.0
|
79
|
+
RNR_UDP_Km = 1.0
|
80
|
+
DNA_creation_speed = 3_000_000_000.0 / ( 12 * 3600 ) / 4 / Pieces_per_microM
|
81
|
+
TMPK_DeoxyTMP_Km = 12.0
|
82
|
+
|
83
|
+
# === Transitions
|
84
|
+
|
85
|
+
Transition name: :TK1_Thymidine_DeoxyTMP,
|
86
|
+
domain: [ Thymidine, TK1, DeoxyTDP_DeoxyTTP_pool, DeoxyCTP,
|
87
|
+
DeoxyCytidine, AMP, ADP, ATP ],
|
88
|
+
stoichiometry: { Thymidine: -1, DeoxyTMP: 1 },
|
89
|
+
rate: proc { |c, e, pool1, ci2, ci3, master1, master2, master3|
|
90
|
+
ci1 = pool1 * master3 / ( master2 + master3 )
|
91
|
+
MMi.( c, TK1_a, TK1_kDa, e, TK1_Thymidine_Km,
|
92
|
+
ci1 => 13.5, ci2 => 0.8, ci3 => 40.0 ) }
|
93
|
+
|
94
|
+
Transition name: :TYMS_DeoxyUMP_DeoxyTMP,
|
95
|
+
domain: [ DeoxyUMP_DeoxyUDP_pool, TYMS, AMP, ADP, ATP ],
|
96
|
+
stoichiometry: { DeoxyUMP_DeoxyUDP_pool: -1, DeoxyTMP: 1 },
|
97
|
+
rate: proc { |pool, e, mono, di, tri|
|
98
|
+
c = pool * di / ( mono + di )
|
99
|
+
MMi.( c, TYMS_a, TYMS_kDa, e, TYMS_DeoxyUMP_Km ) }
|
100
|
+
|
101
|
+
Transition name: :RNR_UDP_DeoxyUDP,
|
102
|
+
domain: [ UMP_UDP_pool, RNR, DeoxyUMP_DeoxyUDP_pool, AMP, ADP, ATP ],
|
103
|
+
stoichiometry: { UMP_UDP_pool: -1, DeoxyUMP_DeoxyUDP_pool: 1 },
|
104
|
+
rate: proc { |pool, e, mono, di, tri|
|
105
|
+
c = pool * di / ( mono + di )
|
106
|
+
MMi.( c, RNR_a, RNR_kDa, e, RNR_UDP_Km ) }
|
107
|
+
|
108
|
+
Transition name: :DNA_polymerase_consumption_of_DeoxyTTP,
|
109
|
+
stoichiometry: { DeoxyTDP_DeoxyTTP_pool: -1 },
|
110
|
+
rate: proc { DNA_creation_speed / 4 }
|
111
|
+
|
112
|
+
Transition name: :TMPK_DeoxyTMP_DeoxyTDP,
|
113
|
+
domain: [ DeoxyTMP, TMPK, DeoxyTDP_DeoxyTTP_pool, DeoxyGMP, AMP, ADP, ATP ],
|
114
|
+
stoichiometry: { DeoxyTMP: -1, TMPK: 0, DeoxyTDP_DeoxyTTP_pool: 1 },
|
115
|
+
rate: proc { |c, e, pool, ci4, mono, di, tri|
|
116
|
+
ci1 = di
|
117
|
+
ci2 = pool * di / ( di + tri )
|
118
|
+
ci3 = pool * tri / ( di + tri )
|
119
|
+
MMi.( c, TMPK_a, TMPK_kDa, e, TMPK_DeoxyTMP_Km,
|
120
|
+
ci1 => 250.0, ci2 => 30.0, ci3 => 750, ci4 => 117 ) }
|
121
|
+
|
122
|
+
Transition name: :PhosphataseI,
|
123
|
+
stoichiometry: { DeoxyTMP: -1, Thymidine: 1 },
|
124
|
+
rate: 0.04
|
125
|
+
|
126
|
+
Transition name: :PhosphataseII,
|
127
|
+
stoichiometry: { DeoxyTDP_DeoxyTTP_pool: -1, DeoxyTMP: 1 },
|
128
|
+
rate: 0.01
|
129
|
+
|
130
|
+
# === Transitions
|
131
|
+
|
132
|
+
net.visualize
|
133
|
+
run!
|
134
|
+
recording.plot
|
135
|
+
recording.flux.plot
|
@@ -0,0 +1,21 @@
|
|
1
|
+
#! /usr/bin/ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
require 'y_petri' and include YPetri
|
5
|
+
|
6
|
+
A = Place m!: 10
|
7
|
+
B = Place m!: 10
|
8
|
+
AB = Place m!: 0
|
9
|
+
AB_association = TS A: -1, B: -1, AB: 1, rate: 0.1
|
10
|
+
AB_dissociation = TS AB: -1, A: 1, B: 1, rate: 0.1
|
11
|
+
A2B = TS A: -1, B: 1, rate: 0.05
|
12
|
+
B2A = TS A: 1, B: -1, rate: 0.07
|
13
|
+
|
14
|
+
set_step 1
|
15
|
+
set_target_time 50
|
16
|
+
set_sampling 1
|
17
|
+
set_simulation_method :gillespie
|
18
|
+
|
19
|
+
run!
|
20
|
+
print_recording
|
21
|
+
plot_state
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: y_petri
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.51
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- boris
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-09-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: y_support
|
@@ -175,10 +175,10 @@ files:
|
|
175
175
|
- test/agent_test.rb
|
176
176
|
- test/examples/demonstrator.rb
|
177
177
|
- test/examples/demonstrator_2.rb
|
178
|
-
- test/examples/demonstrator_3.rb
|
179
178
|
- test/examples/demonstrator_4.rb
|
180
179
|
- test/examples/example_2.rb
|
181
|
-
- test/examples/
|
180
|
+
- test/examples/example_IV.rb
|
181
|
+
- test/examples/example_VI_gillespie.rb
|
182
182
|
- test/examples/manual_examples.rb
|
183
183
|
- test/net_test.rb
|
184
184
|
- test/place_test.rb
|
@@ -223,10 +223,10 @@ test_files:
|
|
223
223
|
- test/agent_test.rb
|
224
224
|
- test/examples/demonstrator.rb
|
225
225
|
- test/examples/demonstrator_2.rb
|
226
|
-
- test/examples/demonstrator_3.rb
|
227
226
|
- test/examples/demonstrator_4.rb
|
228
227
|
- test/examples/example_2.rb
|
229
|
-
- test/examples/
|
228
|
+
- test/examples/example_IV.rb
|
229
|
+
- test/examples/example_VI_gillespie.rb
|
230
230
|
- test/examples/manual_examples.rb
|
231
231
|
- test/net_test.rb
|
232
232
|
- test/place_test.rb
|
@@ -1,150 +0,0 @@
|
|
1
|
-
#encoding: utf-8
|
2
|
-
|
3
|
-
require 'y_petri'
|
4
|
-
include YPetri
|
5
|
-
require 'sy'
|
6
|
-
require 'mathn'
|
7
|
-
|
8
|
-
# === General assumptions
|
9
|
-
|
10
|
-
Cell_diameter = 10.µm
|
11
|
-
Cytoplasm_volume = ( 4 / 3 * Math::PI * ( Cell_diameter / 2 ) ** 3 ).( SY::LitreVolume )
|
12
|
-
# Cytoplasm_volume = 5.0e-11.l # of an average cell
|
13
|
-
# How many molecules are there in the average cell per micromolar.
|
14
|
-
Pieces_per_µM = ( 1.µM * Cytoplasm_volume ).in( :unit )
|
15
|
-
|
16
|
-
# === Simulation settings
|
17
|
-
|
18
|
-
set_step 60.s.in( :s )
|
19
|
-
set_target_time 20.min.in( :s )
|
20
|
-
set_sampling 120.s.in( :s )
|
21
|
-
|
22
|
-
# === Places (all in µM)
|
23
|
-
|
24
|
-
AMP = Place m!: 8695.0
|
25
|
-
ADP = Place m!: 6521.0
|
26
|
-
ATP = Place m!: 3152.0
|
27
|
-
DeoxyCytidine = Place m!: 0.5
|
28
|
-
DeoxyCTP = Place m!: 1.0
|
29
|
-
DeoxyGMP = Place m!: 1.0
|
30
|
-
U12P = Place m!: 2737.0
|
31
|
-
DeoxyU12P = Place m!: 0.0
|
32
|
-
DeoxyTMP = Place m!: 3.3
|
33
|
-
DeoxyT23P = Place m!: 5.0
|
34
|
-
Thymidine = Place m!: 0.5
|
35
|
-
TK1 = Place m!: 100_000 / Pieces_per_µM
|
36
|
-
TYMS = Place m!: 100_000 / Pieces_per_µM
|
37
|
-
RNR = Place m!: 100_000 / Pieces_per_µM
|
38
|
-
TMPK = Place m!: 100_000 / Pieces_per_µM
|
39
|
-
|
40
|
-
# === Molecular masses
|
41
|
-
|
42
|
-
TK1_m = 24.8.kDa
|
43
|
-
TYMS_m = 66.0.kDa
|
44
|
-
RNR_m = 140.0.kDa
|
45
|
-
TMPK_m = 50.0.kDa
|
46
|
-
|
47
|
-
# === Enzyme specific activities
|
48
|
-
|
49
|
-
TK1_a = 5.40.µmol.min⁻¹.mg⁻¹
|
50
|
-
TYMS_a = 3.80.µmol.min⁻¹.mg⁻¹
|
51
|
-
RNR_a = 1.00.µmol.min⁻¹.mg⁻¹
|
52
|
-
TMPK_a = 0.83.µmol.min⁻¹.mg⁻¹
|
53
|
-
|
54
|
-
# === Enzyme kcat
|
55
|
-
|
56
|
-
TK1_k_cat = ( TK1_a * TK1_m ).( SY::Amount / SY::Time ).in :s⁻¹
|
57
|
-
TYMS_k_cat = ( TYMS_a * TYMS_m ).( SY::Amount / SY::Time ).in :s⁻¹
|
58
|
-
RNR_k_cat = ( RNR_a * RNR_m ).( SY::Amount / SY::Time ).in :s⁻¹
|
59
|
-
TMPK_k_cat = ( TMPK_a * TMPK_m ).( SY::Amount / SY::Time ).in :s⁻¹
|
60
|
-
|
61
|
-
# === Clamps (all in µM)
|
62
|
-
|
63
|
-
clamp AMP: 8695.0, ADP: 6521.0, ATP: 3152.0
|
64
|
-
clamp DeoxyCytidine: 0.5, DeoxyCTP: 1.0, DeoxyGMP: 1.0
|
65
|
-
clamp Thymidine: 0.5
|
66
|
-
clamp U12P: 2737.0
|
67
|
-
|
68
|
-
# === Function closures
|
69
|
-
|
70
|
-
# Vmax of an enzyme.
|
71
|
-
#
|
72
|
-
Vmax = -> enzyme_µM, k_cat do enzyme_µM * k_cat end
|
73
|
-
|
74
|
-
# Michaelis constant reduced for competitive inhibitors.
|
75
|
-
#
|
76
|
-
Km_reduced = -> reactant_Km, hash_Ki=Hash.new do
|
77
|
-
hash_Ki.map { |compet_inhibitor_concentration, compet_inhibitor_Ki|
|
78
|
-
compet_inhibitor_concentration / compet_inhibitor_Ki
|
79
|
-
}.reduce( 1, :+ ) * reactant_Km
|
80
|
-
end
|
81
|
-
|
82
|
-
# Occupancy fraction of the Michaelis-Menten equation.
|
83
|
-
#
|
84
|
-
Occupancy = -> reactant_µM, reactant_Km, hash_Ki=Hash.new do
|
85
|
-
reactant_µM / ( reactant_µM + Km_reduced.( reactant_Km, hash_Ki ) )
|
86
|
-
end
|
87
|
-
|
88
|
-
# Michaelis-Menten equation with competitive inhibitors.
|
89
|
-
#
|
90
|
-
MMi = -> reactant_µM, reactant_Km, enzyme_µM, k_cat, hash_Ki=Hash.new do
|
91
|
-
Vmax.( enzyme_µM, k_cat ) * Occupancy.( reactant_µM, reactant_Km, hash_Ki )
|
92
|
-
end
|
93
|
-
|
94
|
-
# === Michaelis constants (all in µM)
|
95
|
-
|
96
|
-
TK1_Thymidine_Km = 5.0
|
97
|
-
TYMS_DeoxyUMP_Km = 2.0
|
98
|
-
RNR_UDP_Km = 1.0
|
99
|
-
TMPK_DeoxyTMP_Km = 12.0
|
100
|
-
|
101
|
-
# === DNA synthesis speed
|
102
|
-
|
103
|
-
S_phase_duration = 12.h
|
104
|
-
Genome_size = 3_000_000_000 # of bases
|
105
|
-
DNA_creation_speed = Genome_size / S_phase_duration.in( :s ) # in base.s⁻¹
|
106
|
-
|
107
|
-
# === Transitions
|
108
|
-
|
109
|
-
Transition name: :TK1_Thymidine_DeoxyTMP,
|
110
|
-
domain: [ Thymidine, TK1, DeoxyT23P, DeoxyCTP, DeoxyCytidine, AMP, ADP, ATP ],
|
111
|
-
stoichiometry: { Thymidine: -1, DeoxyTMP: 1 },
|
112
|
-
rate: proc { |reactant, enzyme, pool, inhibitor_2, inhibitor_3, mono, di, tri|
|
113
|
-
inhibitor_1 = pool * tri / ( di + tri ) # conc. of DeoxyTTP
|
114
|
-
MMi.( reactant, TK1_Thymidine_Km, enzyme, TK1_k_cat,
|
115
|
-
inhibitor_1 => 13.5, inhibitor_2 => 0.8, inhibitor_3 => 40.0 )
|
116
|
-
}
|
117
|
-
|
118
|
-
Transition name: :TYMS_DeoxyUMP_DeoxyTMP,
|
119
|
-
domain: [ DeoxyU12P, TYMS, AMP, ADP, ATP ],
|
120
|
-
stoichiometry: { DeoxyU12P: -1, DeoxyTMP: 1 },
|
121
|
-
rate: proc { |pool, enzyme, mono, di, tri|
|
122
|
-
reactant = pool * di / ( mono + di ) # conc. of DeoxyUMP
|
123
|
-
MMi.( reactant, TYMS_DeoxyUMP_Km, enzyme, TYMS_k_cat )
|
124
|
-
}
|
125
|
-
|
126
|
-
Transition name: :RNR_UDP_DeoxyUDP,
|
127
|
-
domain: [ U12P, RNR, DeoxyU12P, AMP, ADP, ATP ],
|
128
|
-
stoichiometry: { U12P: -1, DeoxyU12P: 1 },
|
129
|
-
rate: proc { |pool, enzyme, mono, di, tri|
|
130
|
-
reactant = pool * di / ( mono + di )
|
131
|
-
MMi.( reactant, RNR_UDP_Km, enzyme, RNR_k_cat )
|
132
|
-
}
|
133
|
-
|
134
|
-
Transition name: :DNA_polymerase_consumption_of_DeoxyTTP,
|
135
|
-
stoichiometry: { DeoxyT23P: -1 },
|
136
|
-
rate: proc { DNA_creation_speed / 4 }
|
137
|
-
|
138
|
-
Transition name: :TMPK_DeoxyTMP_DeoxyTDP,
|
139
|
-
domain: [ DeoxyTMP, TMPK, DeoxyT23P, DeoxyGMP, AMP, ADP, ATP ],
|
140
|
-
stoichiometry: { DeoxyTMP: -1, DeoxyT23P: 1 },
|
141
|
-
rate: proc { |reactant, enzyme, pool, inhibitor_4, mono, di, tri|
|
142
|
-
inhibitor_1 = di
|
143
|
-
inhibitor_2 = pool * di / ( di + tri ) # conc. of DeoxyTDP
|
144
|
-
inhibitor_3 = pool * tri / ( di + tri ) # conc. of DeoxyTTP
|
145
|
-
MMi.( reactant, TMPK_DeoxyTMP_Km, enzyme, TMPK_k_cat )
|
146
|
-
}
|
147
|
-
|
148
|
-
# execution
|
149
|
-
run!
|
150
|
-
plot_recording
|
data/test/examples/gillespie.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
#! /usr/bin/ruby
|
2
|
-
# encoding: utf-8
|
3
|
-
|
4
|
-
require 'y_petri'
|
5
|
-
require 'sy'
|
6
|
-
require 'mathn'
|
7
|
-
include YPetri
|
8
|
-
|
9
|
-
A = Place m!: 10
|
10
|
-
B = Place m!: 10
|
11
|
-
AB = Place m!: 0
|
12
|
-
AB_association = Transition s: { A: -1, B: -1, AB: 1 }, rate: 0.1
|
13
|
-
AB_dissociation = Transition s: { AB: -1, A: 1, B: 1 }, rate: 0.1
|
14
|
-
A2B = Transition s: { A: -1, B: 1 }, rate: 0.05
|
15
|
-
B2A = Transition s: { A: 1, B: -1 }, rate: 0.07
|
16
|
-
|
17
|
-
set_step 1
|
18
|
-
set_target_time 50
|
19
|
-
set_sampling 1
|
20
|
-
set_simulation_method :gillespie
|
21
|
-
|
22
|
-
run!
|
23
|
-
|
24
|
-
print_recording
|
25
|
-
|
26
|
-
plot_state
|