y_nelson 2.3.0 → 2.3.2
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/ACKNOWLEDGMENT.txt +6 -0
- data/Introduction_to_Ruby_for_YNelson_Users.lyx +136 -100
- data/Introduction_to_Ruby_for_YNelson_Users.pdf +0 -0
- data/Introduction_to_YNelson.lyx +168 -206
- data/Introduction_to_YNelson.pdf +0 -0
- data/Object_model_of_YNelson_and_YPetri.lyx +55 -16
- data/Object_model_of_YNelson_and_YPetri.pdf +0 -0
- data/lib/y_nelson/place.rb +20 -4
- data/lib/y_nelson/version.rb +1 -1
- data/lib/y_nelson.rb +148 -28
- data/test/issues.rb +68 -0
- data/test/y_nelson_test.rb +1 -1
- data/y_nelson.gemspec +4 -2
- metadata +41 -17
data/Introduction_to_YNelson.lyx
CHANGED
@@ -107,12 +107,12 @@ ZZ structures
|
|
107
107
|
\color inherit
|
108
108
|
.
|
109
109
|
If you follow this guide closely, you will receive a concise and efficient
|
110
|
-
introduction to each of these three
|
110
|
+
introduction to each of these three.
|
111
|
+
(Remark:
|
111
112
|
\emph on
|
112
113
|
only the Petri net aspect is covered in this version of this guide.
|
113
|
-
ZZ structure aspect will be covered in the future versions of this manual)
|
114
|
+
ZZ structure aspect will be covered in the future versions of this manual.)
|
114
115
|
\emph default
|
115
|
-
.
|
116
116
|
Newly introduced
|
117
117
|
\color red
|
118
118
|
Ruby keywords and terms
|
@@ -135,7 +135,7 @@ YNelson keywords and terms
|
|
135
135
|
YNelson
|
136
136
|
\family default
|
137
137
|
\color inherit
|
138
|
-
is a domain model and a simulator of
|
138
|
+
is a domain model and a simulator of Nelson nets,
|
139
139
|
\emph on
|
140
140
|
\color green
|
141
141
|
functional
|
@@ -145,23 +145,41 @@ functional
|
|
145
145
|
Petri nets
|
146
146
|
\emph default
|
147
147
|
\color inherit
|
148
|
-
living in
|
148
|
+
living in a
|
149
149
|
\emph on
|
150
150
|
\color green
|
151
151
|
ZZ space
|
152
152
|
\emph default
|
153
153
|
\color inherit
|
154
154
|
.
|
155
|
-
|
155
|
+
|
156
156
|
\family typewriter
|
157
157
|
YNelson
|
158
158
|
\family default
|
159
|
-
is
|
159
|
+
is designed for the purpose of modelling and simulation of dynamical systems,
|
160
|
+
especially biochemical systems.
|
161
|
+
Modelling dynamical systems (including biochemical systems) is one of the
|
162
|
+
typical applications of Petri nets.
|
163
|
+
For a review of the various flavors of Petri nets used in modelling biochemical
|
164
|
+
systems, see eg.
|
165
|
+
|
166
|
+
\begin_inset CommandInset citation
|
167
|
+
LatexCommand citet
|
168
|
+
key "Bos2008mbs"
|
169
|
+
|
170
|
+
\end_inset
|
171
|
+
|
172
|
+
.
|
173
|
+
|
174
|
+
\family typewriter
|
175
|
+
YNelson
|
176
|
+
\family default
|
177
|
+
introduces its own Petri net flavor, which is similar, but not identical
|
178
|
+
with
|
160
179
|
\emph on
|
161
180
|
\color green
|
162
|
-
hybrid functional Petri nets
|
181
|
+
hybrid functional Petri nets (HFPN)
|
163
182
|
\emph default
|
164
|
-
(HFPNs)
|
165
183
|
\color inherit
|
166
184
|
introduced by
|
167
185
|
\begin_inset CommandInset citation
|
@@ -171,25 +189,33 @@ key "Matsuno2011brs"
|
|
171
189
|
\end_inset
|
172
190
|
|
173
191
|
.
|
174
|
-
|
175
|
-
|
176
|
-
\begin_inset CommandInset citation
|
177
|
-
LatexCommand citet
|
178
|
-
key "Bos2008mbs"
|
192
|
+
\end_layout
|
179
193
|
|
180
|
-
\
|
194
|
+
\begin_layout Standard
|
181
195
|
|
182
|
-
.
|
183
|
-
|
184
196
|
\family typewriter
|
185
197
|
YNelson
|
186
198
|
\family default
|
187
|
-
is implemented
|
199
|
+
is implemented as an
|
200
|
+
\emph on
|
201
|
+
\color red
|
202
|
+
internal domain-specific language (DSL)
|
203
|
+
\emph default
|
204
|
+
\color inherit
|
205
|
+
in
|
188
206
|
\emph on
|
189
207
|
\color red
|
190
208
|
Ruby programming language
|
191
209
|
\emph default
|
192
210
|
\color inherit
|
211
|
+
, which you can use in scripts, or access interactively from
|
212
|
+
\color red
|
213
|
+
inferior Ruby interpreter (
|
214
|
+
\emph on
|
215
|
+
irb
|
216
|
+
\emph default
|
217
|
+
)
|
218
|
+
\color inherit
|
193
219
|
.
|
194
220
|
It is publicly available as
|
195
221
|
\emph on
|
@@ -216,7 +242,7 @@ gem
|
|
216
242
|
\family typewriter
|
217
243
|
YNelson
|
218
244
|
\family default
|
219
|
-
|
245
|
+
belongs to a series of Ruby gems (
|
220
246
|
\family typewriter
|
221
247
|
\color blue
|
222
248
|
|
@@ -232,6 +258,10 @@ target "https://rubygems.org/gems/y_petri"
|
|
232
258
|
\color inherit
|
233
259
|
,
|
234
260
|
\family typewriter
|
261
|
+
YNelson
|
262
|
+
\family default
|
263
|
+
,
|
264
|
+
\family typewriter
|
235
265
|
\color blue
|
236
266
|
YChem
|
237
267
|
\family default
|
@@ -270,8 +300,8 @@ target "https://rubygems.org/gems/sy"
|
|
270
300
|
|
271
301
|
\family default
|
272
302
|
\color inherit
|
273
|
-
...), whose design intent is to bring ergonomy
|
274
|
-
|
303
|
+
...), whose design intent is to bring ergonomy into biochemical modelling.
|
304
|
+
|
275
305
|
\family typewriter
|
276
306
|
YNelson
|
277
307
|
\family default
|
@@ -287,70 +317,60 @@ Yzz
|
|
287
317
|
\family typewriter
|
288
318
|
SY
|
289
319
|
\family default
|
290
|
-
might be desirable
|
291
|
-
|
320
|
+
might be desirable when dealing with physical units.
|
321
|
+
At the time of writing this text,
|
292
322
|
\family typewriter
|
293
323
|
YNelson
|
294
324
|
\family default
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
\begin_layout Standard
|
300
|
-
|
301
|
-
\family typewriter
|
302
|
-
YNelson
|
303
|
-
\family default
|
304
|
-
provides a
|
325
|
+
was the only publicly available internal DSL for modelling dynamic systems
|
326
|
+
in Ruby.
|
327
|
+
DSLs designed for the purpose of modelling are known from other languages,
|
328
|
+
but they are generally
|
305
329
|
\emph on
|
306
330
|
\color red
|
307
|
-
|
331
|
+
external
|
308
332
|
\emph default
|
309
|
-
(DSL)
|
310
|
-
\color inherit
|
311
|
-
, which you can use in scripts, or access interactively from
|
312
|
-
\color red
|
313
|
-
inferior Ruby interpreter (
|
314
|
-
\emph on
|
315
|
-
irb
|
316
|
-
\emph default
|
317
|
-
)
|
318
333
|
\color inherit
|
334
|
+
, not internal DSLs.
|
335
|
+
They are sometimes denoted as domain-specific modeling languages (DSML),
|
336
|
+
a term which also applies to
|
337
|
+
\family typewriter
|
338
|
+
YNelson
|
339
|
+
\family default
|
319
340
|
.
|
320
|
-
A DSLs can be thought of as APIs with user-friendly syntax.
|
321
|
-
As a believer in robot equality, I dislike the distinction between API
|
322
|
-
and UI (user interface), and prefer common textual command interface (CI)
|
323
|
-
for humanoid as well as cybernetic users.
|
324
341
|
\end_layout
|
325
342
|
|
326
343
|
\begin_layout Standard
|
327
|
-
|
328
|
-
\emph on
|
329
|
-
seriously
|
330
|
-
\emph default
|
331
|
-
work with
|
344
|
+
All in all, if you want to seriously work with
|
332
345
|
\emph on
|
333
346
|
complicated
|
334
347
|
\emph default
|
335
348
|
Petri Nets, no tool can avoid taking you through the process of learning
|
336
|
-
the
|
337
|
-
|
338
|
-
GUI tools can
|
339
|
-
|
340
|
-
|
341
|
-
|
349
|
+
the language of the tool's interface.
|
350
|
+
This language can be visual only partially.
|
351
|
+
GUI Petri net modelling tools can provide visual commands for simple tasks,
|
352
|
+
such as creating places and transitions, or drawing arcs between them,
|
353
|
+
but a textual language is needed anyway for more complex tasks, such as
|
354
|
+
writing mathematical functions that govern firing of transitions, or managing
|
355
|
+
the Petri net in an automated manner.
|
356
|
+
|
342
357
|
\family typewriter
|
343
358
|
YNelson
|
344
359
|
\family default
|
345
|
-
|
346
|
-
|
360
|
+
is all textual, but it does not introduce its own language.
|
361
|
+
It relies on powerful and intuitive syntax of a widely adopted general-purpose
|
362
|
+
computer language – Ruby.
|
347
363
|
|
348
364
|
\family typewriter
|
349
365
|
YNelson
|
350
366
|
\family default
|
351
|
-
is open source and
|
352
|
-
|
353
|
-
|
367
|
+
is open source and leverages on the freedom and respect for the user inherent
|
368
|
+
to its host language, whose role in making
|
369
|
+
\family typewriter
|
370
|
+
YNelson
|
371
|
+
\family default
|
372
|
+
good can hardly be overstated.
|
373
|
+
Possible bugs or missing features will never get you as a
|
354
374
|
\family typewriter
|
355
375
|
YNelson
|
356
376
|
\family default
|
@@ -623,7 +643,7 @@ A =
|
|
623
643
|
\color blue
|
624
644
|
Place
|
625
645
|
\color inherit
|
626
|
-
()
|
646
|
+
( marking: 2 )
|
627
647
|
\end_layout
|
628
648
|
|
629
649
|
\begin_layout Standard
|
@@ -658,7 +678,18 @@ constant
|
|
658
678
|
A
|
659
679
|
\family default
|
660
680
|
.
|
661
|
-
In this case, the
|
681
|
+
In this case, the method is called with a single
|
682
|
+
\emph on
|
683
|
+
\color red
|
684
|
+
argument
|
685
|
+
\emph default
|
686
|
+
\color inherit
|
687
|
+
,
|
688
|
+
\family typewriter
|
689
|
+
marking
|
690
|
+
\family default
|
691
|
+
.
|
692
|
+
The return value is an
|
662
693
|
\emph on
|
663
694
|
\color red
|
664
695
|
object
|
@@ -701,7 +732,8 @@ YNelson
|
|
701
732
|
\emph on
|
702
733
|
domain model
|
703
734
|
\emph default
|
704
|
-
|
735
|
+
.
|
736
|
+
('
|
705
737
|
\family typewriter
|
706
738
|
Place
|
707
739
|
\family default
|
@@ -715,34 +747,24 @@ constructor
|
|
715
747
|
\family typewriter
|
716
748
|
YNelson::Place
|
717
749
|
\family default
|
718
|
-
, which is not important.)
|
719
|
-
|
750
|
+
, which is not important.) This newly created Petri net place has now been
|
751
|
+
assigned to
|
720
752
|
\family typewriter
|
721
753
|
A
|
722
754
|
\family default
|
723
755
|
.
|
724
|
-
On the screen, you will see the output
|
756
|
+
On the screen, you will see the output, which is simply the name of the
|
757
|
+
place –
|
725
758
|
\family typewriter
|
726
|
-
|
759
|
+
A
|
727
760
|
\family default
|
728
761
|
.
|
729
|
-
|
730
|
-
|
731
|
-
\color red
|
732
|
-
inspect string
|
733
|
-
\emph default
|
734
|
-
\color inherit
|
735
|
-
of the object, created by
|
762
|
+
In the following text, screen output will always be written immediately
|
763
|
+
under the code sample, preceded by sherocket (
|
736
764
|
\family typewriter
|
737
|
-
|
738
|
-
\color red
|
739
|
-
inspect
|
765
|
+
#=>)
|
740
766
|
\family default
|
741
|
-
|
742
|
-
method, which is not important.) In the following, screen output will always
|
743
|
-
be written immediately under the code sample, preceded by sherocket (
|
744
|
-
\family typewriter
|
745
|
-
#=>):
|
767
|
+
:
|
746
768
|
\end_layout
|
747
769
|
|
748
770
|
\begin_layout LyX-Code
|
@@ -750,13 +772,11 @@ B = Place()
|
|
750
772
|
\end_layout
|
751
773
|
|
752
774
|
\begin_layout LyX-Code
|
753
|
-
|
754
|
-
\family typewriter
|
755
|
-
#=> #<Place: name: B, marking: nil, default_marking: ø>
|
775
|
+
#=> B
|
756
776
|
\end_layout
|
757
777
|
|
758
778
|
\begin_layout Standard
|
759
|
-
|
779
|
+
In the above, we have so far defined 2 Petri net places (named
|
760
780
|
\family typewriter
|
761
781
|
A
|
762
782
|
\family default
|
@@ -764,8 +784,8 @@ A
|
|
764
784
|
\family typewriter
|
765
785
|
B
|
766
786
|
\family default
|
767
|
-
.
|
768
|
-
You can check
|
787
|
+
).
|
788
|
+
You can check them by typing:
|
769
789
|
\end_layout
|
770
790
|
|
771
791
|
\begin_layout LyX-Code
|
@@ -777,11 +797,7 @@ places
|
|
777
797
|
\end_layout
|
778
798
|
|
779
799
|
\begin_layout LyX-Code
|
780
|
-
#=> [
|
781
|
-
\end_layout
|
782
|
-
|
783
|
-
\begin_layout LyX-Code
|
784
|
-
#<Place: name: B, marking: nil, default_marking: ø>]
|
800
|
+
#=> [A, B]
|
785
801
|
\end_layout
|
786
802
|
|
787
803
|
\begin_layout LyX-Code
|
@@ -814,7 +830,7 @@ net
|
|
814
830
|
\end_layout
|
815
831
|
|
816
832
|
\begin_layout LyX-Code
|
817
|
-
#=> #<Net: name: Top, 2
|
833
|
+
#=> #<Net: name: Top, 2 places, 0 transitions>
|
818
834
|
\end_layout
|
819
835
|
|
820
836
|
\begin_layout Standard
|
@@ -848,24 +864,17 @@ array
|
|
848
864
|
\color inherit
|
849
865
|
of places to the array of their names.
|
850
866
|
The advantage of internal DSLs is, that one retains full power of the language,
|
851
|
-
augmented with human-friendly, domain-specific
|
867
|
+
augmented with human-friendly, domain-specific commands.
|
852
868
|
GUI systems generally sandbox the user inside their interface, with no
|
853
869
|
way to overcome its limitations.
|
854
870
|
But let us go on.
|
855
|
-
|
856
|
-
\family typewriter
|
857
|
-
\color red
|
858
|
-
nil
|
859
|
-
\family default
|
860
|
-
\color inherit
|
861
|
-
' in the places' inspect strings.
|
862
|
-
This is because we have specified no
|
871
|
+
You can notice that the
|
863
872
|
\emph on
|
864
873
|
\color green
|
865
874
|
marking
|
866
875
|
\emph default
|
867
876
|
\color inherit
|
868
|
-
|
877
|
+
of
|
869
878
|
\family typewriter
|
870
879
|
A
|
871
880
|
\family default
|
@@ -873,55 +882,7 @@ A
|
|
873
882
|
\family typewriter
|
874
883
|
B
|
875
884
|
\family default
|
876
|
-
:
|
877
|
-
\end_layout
|
878
|
-
|
879
|
-
\begin_layout LyX-Code
|
880
|
-
A.
|
881
|
-
\color blue
|
882
|
-
marking
|
883
|
-
\color inherit
|
884
|
-
()
|
885
|
-
\end_layout
|
886
|
-
|
887
|
-
\begin_layout LyX-Code
|
888
|
-
#=> nil
|
889
|
-
\end_layout
|
890
|
-
|
891
|
-
\begin_layout LyX-Code
|
892
|
-
places.map( &:marking )
|
893
|
-
\end_layout
|
894
|
-
|
895
|
-
\begin_layout LyX-Code
|
896
|
-
#=> [nil, nil]
|
897
|
-
\end_layout
|
898
|
-
|
899
|
-
\begin_layout Standard
|
900
|
-
Let us give these two places some marking:
|
901
|
-
\end_layout
|
902
|
-
|
903
|
-
\begin_layout LyX-Code
|
904
|
-
A.
|
905
|
-
\color blue
|
906
|
-
marking =
|
907
|
-
\color inherit
|
908
|
-
2
|
909
|
-
\end_layout
|
910
|
-
|
911
|
-
\begin_layout LyX-Code
|
912
|
-
#=> 2
|
913
|
-
\end_layout
|
914
|
-
|
915
|
-
\begin_layout LyX-Code
|
916
|
-
B.marking = 5
|
917
|
-
\end_layout
|
918
|
-
|
919
|
-
\begin_layout LyX-Code
|
920
|
-
#=> 5
|
921
|
-
\end_layout
|
922
|
-
|
923
|
-
\begin_layout Standard
|
924
|
-
The marking has indeed changed:
|
885
|
+
is one we gave them upon their creation:
|
925
886
|
\end_layout
|
926
887
|
|
927
888
|
\begin_layout LyX-Code
|
@@ -933,13 +894,13 @@ places.map( &:marking )
|
|
933
894
|
\end_layout
|
934
895
|
|
935
896
|
\begin_layout Standard
|
936
|
-
In classical Petri nets,
|
897
|
+
In classical Petri nets, marking is understood as the number of
|
937
898
|
\emph on
|
938
899
|
\color green
|
939
900
|
tokens
|
940
901
|
\emph default
|
941
902
|
\color inherit
|
942
|
-
in each place,
|
903
|
+
in each place, which is always integer.
|
943
904
|
In this case,
|
944
905
|
\family typewriter
|
945
906
|
A
|
@@ -967,11 +928,11 @@ transitions
|
|
967
928
|
.
|
968
929
|
Each transition defines a single operation: Adding / subtracting some amount
|
969
930
|
of tokens to / from some places.
|
970
|
-
Transition operation can often be expressed by
|
931
|
+
Transition operation can often be expressed by
|
971
932
|
\emph on
|
972
933
|
stoichiometry
|
973
934
|
\emph default
|
974
|
-
–
|
935
|
+
– pairs of places with a corresponding number of tokens to add / subtract
|
975
936
|
when the transition
|
976
937
|
\emph on
|
977
938
|
\color green
|
@@ -991,11 +952,11 @@ Transition
|
|
991
952
|
\end_layout
|
992
953
|
|
993
954
|
\begin_layout LyX-Code
|
994
|
-
#=>
|
955
|
+
#=> A2B
|
995
956
|
\end_layout
|
996
957
|
|
997
958
|
\begin_layout Standard
|
998
|
-
Stoichiometry of this transition is given by
|
959
|
+
Stoichiometry of this transition is given by the
|
999
960
|
\emph on
|
1000
961
|
\color red
|
1001
962
|
hash
|
@@ -1143,11 +1104,7 @@ arcs
|
|
1143
1104
|
\end_layout
|
1144
1105
|
|
1145
1106
|
\begin_layout LyX-Code
|
1146
|
-
#=> [
|
1147
|
-
\end_layout
|
1148
|
-
|
1149
|
-
\begin_layout LyX-Code
|
1150
|
-
#<Place: name: B, marking: 5, default_marking: ø >]
|
1107
|
+
#=> [A, B]
|
1151
1108
|
\end_layout
|
1152
1109
|
|
1153
1110
|
\begin_layout Standard
|
@@ -1221,11 +1178,7 @@ downstream_arcs
|
|
1221
1178
|
\end_layout
|
1222
1179
|
|
1223
1180
|
\begin_layout LyX-Code
|
1224
|
-
[
|
1225
|
-
\end_layout
|
1226
|
-
|
1227
|
-
\begin_layout LyX-Code
|
1228
|
-
#<Place: name: B, marking: 5, default_marking: ø>]
|
1181
|
+
[A, B]
|
1229
1182
|
\end_layout
|
1230
1183
|
|
1231
1184
|
\begin_layout LyX-Code
|
@@ -1237,11 +1190,7 @@ codomain
|
|
1237
1190
|
\end_layout
|
1238
1191
|
|
1239
1192
|
\begin_layout LyX-Code
|
1240
|
-
[
|
1241
|
-
\end_layout
|
1242
|
-
|
1243
|
-
\begin_layout LyX-Code
|
1244
|
-
#<Place: name: B, marking: 5, default_marking: ø>]
|
1193
|
+
[A, B]
|
1245
1194
|
\end_layout
|
1246
1195
|
|
1247
1196
|
\begin_layout Standard
|
@@ -1368,8 +1317,10 @@ A2B.fire!
|
|
1368
1317
|
\end_layout
|
1369
1318
|
|
1370
1319
|
\begin_layout LyX-Code
|
1371
|
-
#=>
|
1372
|
-
|
1320
|
+
#=> YPetri::GuardError: When trying call #fire method, adding action node
|
1321
|
+
no.
|
1322
|
+
0 to A, marking change being -1, YPetri::GuardError occurred: Marking -1:Fixnum
|
1323
|
+
of A should not be negative!
|
1373
1324
|
\end_layout
|
1374
1325
|
|
1375
1326
|
\begin_layout Subsection*
|
@@ -1386,19 +1337,23 @@ YNelson
|
|
1386
1337
|
\emph on
|
1387
1338
|
functional Petri nets
|
1388
1339
|
\emph default
|
1389
|
-
, similar to
|
1340
|
+
, similar to
|
1341
|
+
\emph on
|
1342
|
+
Hybrid Functional Petri Net (HFPN)
|
1343
|
+
\emph default
|
1344
|
+
proposed by
|
1390
1345
|
\begin_inset CommandInset citation
|
1391
1346
|
LatexCommand citet
|
1392
1347
|
key "Matsuno2011brs"
|
1393
1348
|
|
1394
1349
|
\end_inset
|
1395
1350
|
|
1396
|
-
, which
|
1351
|
+
, which I already mentioned in the introductory part of this document.
|
1397
1352
|
|
1398
1353
|
\family typewriter
|
1399
1354
|
YNelson
|
1400
1355
|
\family default
|
1401
|
-
domain model is similar, but not identical.
|
1356
|
+
domain model is similar, but not identical to HFPN.
|
1402
1357
|
On the side of similarities,
|
1403
1358
|
\family typewriter
|
1404
1359
|
YNelson
|
@@ -1415,7 +1370,7 @@ marking
|
|
1415
1370
|
\end_layout
|
1416
1371
|
|
1417
1372
|
\begin_layout LyX-Code
|
1418
|
-
#=>
|
1373
|
+
#=> C
|
1419
1374
|
\end_layout
|
1420
1375
|
|
1421
1376
|
\begin_layout Standard
|
@@ -1453,7 +1408,7 @@ rate
|
|
1453
1408
|
\end_layout
|
1454
1409
|
|
1455
1410
|
\begin_layout LyX-Code
|
1456
|
-
#=>
|
1411
|
+
#=> C_decay
|
1457
1412
|
\end_layout
|
1458
1413
|
|
1459
1414
|
\begin_layout LyX-Code
|
@@ -1938,7 +1893,7 @@ A_to_42 = Transition codomain: A, assignment: lambda { 42 }
|
|
1938
1893
|
\end_layout
|
1939
1894
|
|
1940
1895
|
\begin_layout LyX-Code
|
1941
|
-
#=>
|
1896
|
+
#=> A_to_42
|
1942
1897
|
\end_layout
|
1943
1898
|
|
1944
1899
|
\begin_layout Standard
|
@@ -2166,7 +2121,7 @@ Let's check our work:
|
|
2166
2121
|
\end_layout
|
2167
2122
|
|
2168
2123
|
\begin_layout LyX-Code
|
2169
|
-
places.map &:
|
2124
|
+
places.map &:marking
|
2170
2125
|
\end_layout
|
2171
2126
|
|
2172
2127
|
\begin_layout LyX-Code
|
@@ -2192,7 +2147,7 @@ B2A = Transition( stoichiometry: { B: -1, A: 1 },
|
|
2192
2147
|
\end_layout
|
2193
2148
|
|
2194
2149
|
\begin_layout LyX-Code
|
2195
|
-
#=>
|
2150
|
+
#=> B2A
|
2196
2151
|
\end_layout
|
2197
2152
|
|
2198
2153
|
\begin_layout Standard
|
@@ -2208,7 +2163,7 @@ B2A.fire! 0.1
|
|
2208
2163
|
\end_layout
|
2209
2164
|
|
2210
2165
|
\begin_layout LyX-Code
|
2211
|
-
places.map &:
|
2166
|
+
places.map &:marking
|
2212
2167
|
\end_layout
|
2213
2168
|
|
2214
2169
|
\begin_layout LyX-Code
|
@@ -2226,15 +2181,15 @@ reset_marking
|
|
2226
2181
|
\end_layout
|
2227
2182
|
|
2228
2183
|
\begin_layout LyX-Code
|
2229
|
-
C.
|
2184
|
+
C.marking = 4
|
2230
2185
|
\end_layout
|
2231
2186
|
|
2232
2187
|
\begin_layout LyX-Code
|
2233
|
-
D.
|
2188
|
+
D.marking = 9
|
2234
2189
|
\end_layout
|
2235
2190
|
|
2236
2191
|
\begin_layout LyX-Code
|
2237
|
-
places.map &:
|
2192
|
+
places.map &:marking
|
2238
2193
|
\end_layout
|
2239
2194
|
|
2240
2195
|
\begin_layout LyX-Code
|
@@ -2246,7 +2201,7 @@ B2A.fire! 0.1
|
|
2246
2201
|
\end_layout
|
2247
2202
|
|
2248
2203
|
\begin_layout LyX-Code
|
2249
|
-
places.map &:
|
2204
|
+
places.map &:marking
|
2250
2205
|
\end_layout
|
2251
2206
|
|
2252
2207
|
\begin_layout LyX-Code
|
@@ -2400,7 +2355,7 @@ default_marking:
|
|
2400
2355
|
\end_layout
|
2401
2356
|
|
2402
2357
|
\begin_layout LyX-Code
|
2403
|
-
#=>
|
2358
|
+
#=> A
|
2404
2359
|
\end_layout
|
2405
2360
|
|
2406
2361
|
\begin_layout LyX-Code
|
@@ -2408,7 +2363,7 @@ B = Place( default_marking: 0.5 )
|
|
2408
2363
|
\end_layout
|
2409
2364
|
|
2410
2365
|
\begin_layout LyX-Code
|
2411
|
-
#=>
|
2366
|
+
#=> B
|
2412
2367
|
\end_layout
|
2413
2368
|
|
2414
2369
|
\begin_layout Standard
|
@@ -2424,7 +2379,7 @@ A_pump = Transition( stoichiometry: { A: -1 }, rate: proc { 0.005 } )
|
|
2424
2379
|
\end_layout
|
2425
2380
|
|
2426
2381
|
\begin_layout LyX-Code
|
2427
|
-
#=>
|
2382
|
+
#=> A_pump
|
2428
2383
|
\end_layout
|
2429
2384
|
|
2430
2385
|
\begin_layout Standard
|
@@ -2453,7 +2408,7 @@ B_decay = Transition( stoichiometry: { B: -1 }, rate: 0.05 )
|
|
2453
2408
|
\end_layout
|
2454
2409
|
|
2455
2410
|
\begin_layout LyX-Code
|
2456
|
-
#=>
|
2411
|
+
#=> B_decay
|
2457
2412
|
\end_layout
|
2458
2413
|
|
2459
2414
|
\begin_layout Standard
|
@@ -2564,7 +2519,8 @@ settings
|
|
2564
2519
|
\end_layout
|
2565
2520
|
|
2566
2521
|
\begin_layout LyX-Code
|
2567
|
-
#=> {:step=>0.1, :sampling=>5, :time=>0..
|
2522
|
+
#=> {:method=>:pseudo_euler, :guarded=>false, :step=>0.1, :sampling=>5, :time=>0..6
|
2523
|
+
0}
|
2568
2524
|
\end_layout
|
2569
2525
|
|
2570
2526
|
\begin_layout Standard
|
@@ -3190,7 +3146,7 @@ Transition name: :TMPK_DeoxyTMP_DeoxyTDP,
|
|
3190
3146
|
\end_layout
|
3191
3147
|
|
3192
3148
|
\begin_layout LyX-Code
|
3193
|
-
|
3149
|
+
|
3194
3150
|
\end_layout
|
3195
3151
|
|
3196
3152
|
\begin_layout LyX-Code
|
@@ -3436,7 +3392,15 @@ YNelson
|
|
3436
3392
|
\end_layout
|
3437
3393
|
|
3438
3394
|
\begin_layout Standard
|
3439
|
-
|
3395
|
+
In a fresh
|
3396
|
+
\family typewriter
|
3397
|
+
irb
|
3398
|
+
\family default
|
3399
|
+
session, enter:
|
3400
|
+
\end_layout
|
3401
|
+
|
3402
|
+
\begin_layout LyX-Code
|
3403
|
+
require 'sy'; require 'y_nelson' and include YNelson
|
3440
3404
|
\end_layout
|
3441
3405
|
|
3442
3406
|
\begin_layout LyX-Code
|
@@ -3444,7 +3408,7 @@ A = Place m!: 3.mM
|
|
3444
3408
|
\end_layout
|
3445
3409
|
|
3446
3410
|
\begin_layout LyX-Code
|
3447
|
-
#=>
|
3411
|
+
#=> A
|
3448
3412
|
\end_layout
|
3449
3413
|
|
3450
3414
|
\begin_layout LyX-Code
|
@@ -3452,7 +3416,7 @@ B = Place m!: 4.mM
|
|
3452
3416
|
\end_layout
|
3453
3417
|
|
3454
3418
|
\begin_layout LyX-Code
|
3455
|
-
#=>
|
3419
|
+
#=> B
|
3456
3420
|
\end_layout
|
3457
3421
|
|
3458
3422
|
\begin_layout LyX-Code
|
@@ -3460,7 +3424,7 @@ A2B = Transition s: { A: -1, B: 1 }, rate: 0.05.s⁻¹
|
|
3460
3424
|
\end_layout
|
3461
3425
|
|
3462
3426
|
\begin_layout LyX-Code
|
3463
|
-
#=>
|
3427
|
+
#=> A2B
|
3464
3428
|
\end_layout
|
3465
3429
|
|
3466
3430
|
\begin_layout LyX-Code
|
@@ -3470,9 +3434,7 @@ B_decay = Transition s: { B: -1 }, rate: 0.002.s⁻¹
|
|
3470
3434
|
\begin_layout LyX-Code
|
3471
3435
|
#=>
|
3472
3436
|
\family typewriter
|
3473
|
-
|
3474
|
-
\family default
|
3475
|
-
::Transition[ B_decay: stoichiometric transition with rate ]
|
3437
|
+
B_decay
|
3476
3438
|
\end_layout
|
3477
3439
|
|
3478
3440
|
\begin_layout Standard
|
@@ -3694,7 +3656,7 @@ The state recording should show the random walk of the system state over
|
|
3694
3656
|
\begin_layout LyX-Code
|
3695
3657
|
\begin_inset CommandInset bibtex
|
3696
3658
|
LatexCommand bibtex
|
3697
|
-
bibfiles "/home/boris/b/
|
3659
|
+
bibfiles "/home/boris/b/8oav/ptn/ptn"
|
3698
3660
|
options "plainnat"
|
3699
3661
|
|
3700
3662
|
\end_inset
|