sbml2¶
A single SBML model runs with input from a files and output to a series of files. This example demonstrates how to control the SBML integration via model parameters in the YAML (e.g. tolerance, time steps, initial conditions).
SBML Version¶
Model Code:
1<?xml version="1.0" encoding="UTF-8"?>
2<sbml xmlns="http://www.sbml.org/sbml/level2" xmlns:jd2="http://www.sys-bio.org/sbml/jd2" level="2" version="1">
3 <model id="feedback" name="Feedback">
4 <annotation>
5 <jd2:JDesignerLayout xmlns:jd2="http://www.sys-bio.org/sbml/jd2" version="2.0" MajorVersion="2" MinorVersion="3" BuildVersion="45">
6 <jd2:header>
7 <jd2:VersionHeader JDesignerVersion="1.0"/>
8 <jd2:ModelHeader ModelTitle="Feedback"/>
9 <jd2:TimeCourseDetails timeStart="0" timeEnd="25" numberOfPoints="200"/>
10 </jd2:header>
11 <jd2:JDGraphicsHeader BackGroundColor="FFFFFFEF"/>
12 <jd2:listOfCompartments>
13 <jd2:compartment id="compartment" size="1" visible="false">
14 <jd2:boundingBox x="0" y="0" w="0" h="0"/>
15 <jd2:membraneStyle thickness="12" color="FF00A5FF"/>
16 <jd2:interiorStyle color="FFEEEEFF"/>
17 <jd2:text value="compartment" visible="true">
18 <jd2:position rx="-31" ry="-16"/>
19 <jd2:font fontName="Arial" fontSize="8" fontColor="FF000000"/>
20 </jd2:text>
21 </jd2:compartment>
22 </jd2:listOfCompartments>
23 <jd2:listOfSpecies>
24 <jd2:species id="S1" boundaryCondition="false" compartment="compartment" initialConcentration="0">
25 <jd2:positionLocked value="false"/>
26 <jd2:boundingBox x="138" y="104"/>
27 <jd2:displayValue visible="false">
28 <jd2:position rx="0" ry="0"/>
29 <jd2:font fontName="Arial" fontSize="8" fontColor="FF000000"/>
30 </jd2:displayValue>
31 <jd2:text value="S1" visible="true">
32 <jd2:position rx="4" ry="6"/>
33 <jd2:font fontName="Arial" fontSize="8" fontColor="FF000000"/>
34 </jd2:text>
35 <jd2:complex id="DefaultMolecule" w="24" h="24" boundarySpeciesStyle="bsBox" boundaryStyleColor="FF0000FF" captionPosition="npCenter" aliasBoundaryColor="FFFF0000" aliasBoundaryThickness="3">
36 <jd2:subunit shape="suRoundSquare">
37 <jd2:boundingBox rx="0" ry="0" w="24" h="24"/>
38 <jd2:text value="S1" visible="false">
39 <jd2:position rx="6" ry="5"/>
40 <jd2:font fontName="Arial" fontSize="8" fontColor="FF000000"/>
41 </jd2:text>
42 <jd2:color scheme="gtHorizLinear" startColor="FFCCFFFF" endColor="FFFFFFFF"/>
43 <jd2:edgeStyle color="FF969696" thickness="1" stroke="dsSolid"/>
44 </jd2:subunit>
45 </jd2:complex>
46 </jd2:species>
47 <jd2:species id="S2" boundaryCondition="false" compartment="compartment" initialConcentration="0">
48 <jd2:positionLocked value="false"/>
49 <jd2:boundingBox x="234" y="143"/>
50 <jd2:displayValue visible="false">
51 <jd2:position rx="0" ry="0"/>
52 <jd2:font fontName="Arial" fontSize="8" fontColor="FF000000"/>
53 </jd2:displayValue>
54 <jd2:text value="S2" visible="true">
55 <jd2:position rx="4" ry="6"/>
56 <jd2:font fontName="Arial" fontSize="8" fontColor="FF000000"/>
57 </jd2:text>
58 <jd2:complex id="DefaultMolecule" w="24" h="24" boundarySpeciesStyle="bsBox" boundaryStyleColor="FF0000FF" captionPosition="npCenter" aliasBoundaryColor="FFFF0000" aliasBoundaryThickness="3">
59 <jd2:subunit shape="suRoundSquare">
60 <jd2:boundingBox rx="0" ry="0" w="24" h="24"/>
61 <jd2:text value="S1" visible="false">
62 <jd2:position rx="6" ry="5"/>
63 <jd2:font fontName="Arial" fontSize="8" fontColor="FF000000"/>
64 </jd2:text>
65 <jd2:color scheme="gtHorizLinear" startColor="FFCCFFFF" endColor="FFFFFFFF"/>
66 <jd2:edgeStyle color="FF969696" thickness="1" stroke="dsSolid"/>
67 </jd2:subunit>
68 </jd2:complex>
69 </jd2:species>
70 <jd2:species id="S3" boundaryCondition="false" compartment="compartment" initialConcentration="0">
71 <jd2:positionLocked value="false"/>
72 <jd2:boundingBox x="318" y="178"/>
73 <jd2:displayValue visible="false">
74 <jd2:position rx="0" ry="0"/>
75 <jd2:font fontName="Arial" fontSize="8" fontColor="FF000000"/>
76 </jd2:displayValue>
77 <jd2:text value="S3" visible="true">
78 <jd2:position rx="4" ry="6"/>
79 <jd2:font fontName="Arial" fontSize="8" fontColor="FF000000"/>
80 </jd2:text>
81 <jd2:complex id="DefaultMolecule" w="24" h="24" boundarySpeciesStyle="bsBox" boundaryStyleColor="FF0000FF" captionPosition="npCenter" aliasBoundaryColor="FFFF0000" aliasBoundaryThickness="3">
82 <jd2:subunit shape="suRoundSquare">
83 <jd2:boundingBox rx="0" ry="0" w="24" h="24"/>
84 <jd2:text value="S1" visible="false">
85 <jd2:position rx="6" ry="5"/>
86 <jd2:font fontName="Arial" fontSize="8" fontColor="FF000000"/>
87 </jd2:text>
88 <jd2:color scheme="gtHorizLinear" startColor="FFCCFFFF" endColor="FFFFFFFF"/>
89 <jd2:edgeStyle color="FF969696" thickness="1" stroke="dsSolid"/>
90 </jd2:subunit>
91 </jd2:complex>
92 </jd2:species>
93 <jd2:species id="S4" boundaryCondition="false" compartment="compartment" initialConcentration="0">
94 <jd2:positionLocked value="false"/>
95 <jd2:boundingBox x="411" y="212"/>
96 <jd2:displayValue visible="false">
97 <jd2:position rx="0" ry="0"/>
98 <jd2:font fontName="Arial" fontSize="8" fontColor="FF000000"/>
99 </jd2:displayValue>
100 <jd2:text value="S4" visible="true">
101 <jd2:position rx="4" ry="6"/>
102 <jd2:font fontName="Arial" fontSize="8" fontColor="FF000000"/>
103 </jd2:text>
104 <jd2:complex id="DefaultMolecule" w="24" h="24" boundarySpeciesStyle="bsBox" boundaryStyleColor="FF0000FF" captionPosition="npCenter" aliasBoundaryColor="FFFF0000" aliasBoundaryThickness="3">
105 <jd2:subunit shape="suRoundSquare">
106 <jd2:boundingBox rx="0" ry="0" w="24" h="24"/>
107 <jd2:text value="S1" visible="false">
108 <jd2:position rx="6" ry="5"/>
109 <jd2:font fontName="Arial" fontSize="8" fontColor="FF000000"/>
110 </jd2:text>
111 <jd2:color scheme="gtHorizLinear" startColor="FFCCFFFF" endColor="FFFFFFFF"/>
112 <jd2:edgeStyle color="FF969696" thickness="1" stroke="dsSolid"/>
113 </jd2:subunit>
114 </jd2:complex>
115 </jd2:species>
116 <jd2:species id="X0" boundaryCondition="true" compartment="compartment" initialConcentration="10">
117 <jd2:positionLocked value="false"/>
118 <jd2:boundingBox x="33" y="60"/>
119 <jd2:displayValue visible="false">
120 <jd2:position rx="0" ry="0"/>
121 <jd2:font fontName="Arial" fontSize="8" fontColor="FF000000"/>
122 </jd2:displayValue>
123 <jd2:text value="X0" visible="true">
124 <jd2:position rx="4" ry="6"/>
125 <jd2:font fontName="Arial" fontSize="8" fontColor="FF000000"/>
126 </jd2:text>
127 <jd2:complex id="DefaultMolecule" w="24" h="24" boundarySpeciesStyle="bsBox" boundaryStyleColor="FF0000FF" captionPosition="npCenter" aliasBoundaryColor="FFFF0000" aliasBoundaryThickness="3">
128 <jd2:subunit shape="suRoundSquare">
129 <jd2:boundingBox rx="0" ry="0" w="24" h="24"/>
130 <jd2:text value="S1" visible="false">
131 <jd2:position rx="6" ry="5"/>
132 <jd2:font fontName="Arial" fontSize="8" fontColor="FF000000"/>
133 </jd2:text>
134 <jd2:color scheme="gtHorizLinear" startColor="FFCCFFFF" endColor="FFFFFFFF"/>
135 <jd2:edgeStyle color="FF969696" thickness="1" stroke="dsSolid"/>
136 </jd2:subunit>
137 </jd2:complex>
138 </jd2:species>
139 <jd2:species id="X1" boundaryCondition="true" compartment="compartment" initialConcentration="0">
140 <jd2:positionLocked value="false"/>
141 <jd2:boundingBox x="415" y="292"/>
142 <jd2:displayValue visible="false">
143 <jd2:position rx="0" ry="0"/>
144 <jd2:font fontName="Arial" fontSize="8" fontColor="FF000000"/>
145 </jd2:displayValue>
146 <jd2:text value="X1" visible="true">
147 <jd2:position rx="4" ry="6"/>
148 <jd2:font fontName="Arial" fontSize="8" fontColor="FF000000"/>
149 </jd2:text>
150 <jd2:complex id="DefaultMolecule" w="24" h="24" boundarySpeciesStyle="bsBox" boundaryStyleColor="FF0000FF" captionPosition="npCenter" aliasBoundaryColor="FFFF0000" aliasBoundaryThickness="3">
151 <jd2:subunit shape="suRoundSquare">
152 <jd2:boundingBox rx="0" ry="0" w="24" h="24"/>
153 <jd2:text value="S1" visible="false">
154 <jd2:position rx="6" ry="5"/>
155 <jd2:font fontName="Arial" fontSize="8" fontColor="FF000000"/>
156 </jd2:text>
157 <jd2:color scheme="gtHorizLinear" startColor="FFCCFFFF" endColor="FFFFFFFF"/>
158 <jd2:edgeStyle color="FF969696" thickness="1" stroke="dsSolid"/>
159 </jd2:subunit>
160 </jd2:complex>
161 </jd2:species>
162 </jd2:listOfSpecies>
163 <jd2:listOfReactions>
164 <jd2:reaction id="J0" reversible="false">
165 <jd2:listOfReactants>
166 <jd2:speciesReference species="X0" stoichiometry="1"/>
167 </jd2:listOfReactants>
168 <jd2:listOfProducts>
169 <jd2:speciesReference species="S1" stoichiometry="1"/>
170 </jd2:listOfProducts>
171 <jd2:listOfModifierEdges>
172 <jd2:modifierEdge>
173 <jd2:speciesReference species="S4"/>
174 <jd2:destinationReaction name="J0" regulatorType="rtNegative" relativePosition="0.415929203539823" destinationArcId="0" destinationLineSegmentId="0"/>
175 <jd2:display lineThickness="2" lineColor="FF0000FF" lineDashStyle="dsSolid" negativeMarkerStyle="rmBar">
176 <jd2:lineType type="ltSegmentedLine">
177 <jd2:pt x="423" y="224" type="modifier" speciesRef="S4"/>
178 <jd2:pt x="353" y="243"/>
179 <jd2:pt x="69" y="127"/>
180 <jd2:pt x="84" y="101"/>
181 </jd2:lineType>
182 </jd2:display>
183 </jd2:modifierEdge>
184 </jd2:listOfModifierEdges>
185 <jd2:kineticLaw type="explicit">
186 <jd2:rateEquation value="J0_VM1*(X0-S1/J0_Keq1)/(1+X0+S1+pow(S4,J0_h))"/>
187 </jd2:kineticLaw>
188 <jd2:display arrowStyle="ar1" arrowFillColor="FF000000" lineColor="FF838464" lineThickness="2">
189 <jd2:lineType type="ltLine">
190 <jd2:edge>
191 <jd2:pt x="45" y="72" type="substrate" speciesRef="X0"/>
192 <jd2:pt x="150" y="116" type="product" speciesRef="S1"/>
193 </jd2:edge>
194 </jd2:lineType>
195 </jd2:display>
196 </jd2:reaction>
197 <jd2:reaction id="J1" reversible="false">
198 <jd2:listOfReactants>
199 <jd2:speciesReference species="S1" stoichiometry="1"/>
200 </jd2:listOfReactants>
201 <jd2:listOfProducts>
202 <jd2:speciesReference species="S2" stoichiometry="1"/>
203 </jd2:listOfProducts>
204 <jd2:listOfModifierEdges/>
205 <jd2:kineticLaw type="explicit">
206 <jd2:rateEquation value="(10*S1-2*S2)/(1+S1+S2)"/>
207 </jd2:kineticLaw>
208 <jd2:display arrowStyle="ar1" arrowFillColor="FF000000" lineColor="FF838464" lineThickness="2">
209 <jd2:lineType type="ltLine">
210 <jd2:edge>
211 <jd2:pt x="150" y="116" type="substrate" speciesRef="S1"/>
212 <jd2:pt x="246" y="155" type="product" speciesRef="S2"/>
213 </jd2:edge>
214 </jd2:lineType>
215 </jd2:display>
216 </jd2:reaction>
217 <jd2:reaction id="J2" reversible="false">
218 <jd2:listOfReactants>
219 <jd2:speciesReference species="S2" stoichiometry="1"/>
220 </jd2:listOfReactants>
221 <jd2:listOfProducts>
222 <jd2:speciesReference species="S3" stoichiometry="1"/>
223 </jd2:listOfProducts>
224 <jd2:listOfModifierEdges/>
225 <jd2:kineticLaw type="explicit">
226 <jd2:rateEquation value="(10*S2-2*S3)/(1+S2+S3)"/>
227 </jd2:kineticLaw>
228 <jd2:display arrowStyle="ar1" arrowFillColor="FF000000" lineColor="FF838464" lineThickness="2">
229 <jd2:lineType type="ltLine">
230 <jd2:edge>
231 <jd2:pt x="246" y="155" type="substrate" speciesRef="S2"/>
232 <jd2:pt x="330" y="190" type="product" speciesRef="S3"/>
233 </jd2:edge>
234 </jd2:lineType>
235 </jd2:display>
236 </jd2:reaction>
237 <jd2:reaction id="J3" reversible="false">
238 <jd2:listOfReactants>
239 <jd2:speciesReference species="S3" stoichiometry="1"/>
240 </jd2:listOfReactants>
241 <jd2:listOfProducts>
242 <jd2:speciesReference species="S4" stoichiometry="1"/>
243 </jd2:listOfProducts>
244 <jd2:listOfModifierEdges/>
245 <jd2:kineticLaw type="explicit">
246 <jd2:rateEquation value="(10*S3-2*S4)/(1+S3+S4)"/>
247 </jd2:kineticLaw>
248 <jd2:display arrowStyle="ar1" arrowFillColor="FF000000" lineColor="FF838464" lineThickness="2">
249 <jd2:lineType type="ltLine">
250 <jd2:edge>
251 <jd2:pt x="330" y="190" type="substrate" speciesRef="S3"/>
252 <jd2:pt x="423" y="224" type="product" speciesRef="S4"/>
253 </jd2:edge>
254 </jd2:lineType>
255 </jd2:display>
256 </jd2:reaction>
257 <jd2:reaction id="J4" reversible="false">
258 <jd2:listOfReactants>
259 <jd2:speciesReference species="S4" stoichiometry="1"/>
260 </jd2:listOfReactants>
261 <jd2:listOfProducts>
262 <jd2:speciesReference species="X1" stoichiometry="1"/>
263 </jd2:listOfProducts>
264 <jd2:listOfModifierEdges/>
265 <jd2:kineticLaw type="explicit">
266 <jd2:rateEquation value="J4_V4*S4/(J4_KS4+S4)"/>
267 </jd2:kineticLaw>
268 <jd2:display arrowStyle="ar1" arrowFillColor="FF000000" lineColor="FF838464" lineThickness="2">
269 <jd2:lineType type="ltLine">
270 <jd2:edge>
271 <jd2:pt x="423" y="224" type="substrate" speciesRef="S4"/>
272 <jd2:pt x="427" y="304" type="product" speciesRef="X1"/>
273 </jd2:edge>
274 </jd2:lineType>
275 </jd2:display>
276 </jd2:reaction>
277 </jd2:listOfReactions>
278 </jd2:JDesignerLayout>
279 </annotation>
280 <listOfCompartments>
281 <compartment id="compartment" size="1"/>
282 </listOfCompartments>
283 <listOfSpecies>
284 <species id="S1" compartment="compartment" initialConcentration="0"/>
285 <species id="S2" compartment="compartment" initialConcentration="0"/>
286 <species id="S3" compartment="compartment" initialConcentration="0"/>
287 <species id="S4" compartment="compartment" initialConcentration="0"/>
288 <species id="X0" compartment="compartment" initialConcentration="10" boundaryCondition="true"/>
289 <species id="X1" compartment="compartment" initialConcentration="0" boundaryCondition="true"/>
290 </listOfSpecies>
291 <listOfParameters>
292 <parameter id="J0_VM1" value="10"/>
293 <parameter id="J0_Keq1" value="10"/>
294 <parameter id="J0_h" value="10"/>
295 <parameter id="J4_V4" value="2.5"/>
296 <parameter id="J4_KS4" value="0.5"/>
297 </listOfParameters>
298 <listOfReactions>
299 <reaction id="J0" reversible="false">
300 <listOfReactants>
301 <speciesReference species="X0"/>
302 </listOfReactants>
303 <listOfProducts>
304 <speciesReference species="S1"/>
305 </listOfProducts>
306 <listOfModifiers>
307 <modifierSpeciesReference species="S4"/>
308 </listOfModifiers>
309 <kineticLaw>
310 <math xmlns="http://www.w3.org/1998/Math/MathML">
311 <apply>
312 <divide/>
313 <apply>
314 <times/>
315 <ci> J0_VM1 </ci>
316 <apply>
317 <minus/>
318 <ci> X0 </ci>
319 <apply>
320 <divide/>
321 <ci> S1 </ci>
322 <ci> J0_Keq1 </ci>
323 </apply>
324 </apply>
325 </apply>
326 <apply>
327 <plus/>
328 <cn type="integer"> 1 </cn>
329 <ci> X0 </ci>
330 <ci> S1 </ci>
331 <apply>
332 <power/>
333 <ci> S4 </ci>
334 <ci> J0_h </ci>
335 </apply>
336 </apply>
337 </apply>
338 </math>
339 </kineticLaw>
340 </reaction>
341 <reaction id="J1" reversible="false">
342 <listOfReactants>
343 <speciesReference species="S1"/>
344 </listOfReactants>
345 <listOfProducts>
346 <speciesReference species="S2"/>
347 </listOfProducts>
348 <kineticLaw>
349 <math xmlns="http://www.w3.org/1998/Math/MathML">
350 <apply>
351 <divide/>
352 <apply>
353 <minus/>
354 <apply>
355 <times/>
356 <cn type="integer"> 10 </cn>
357 <ci> S1 </ci>
358 </apply>
359 <apply>
360 <times/>
361 <cn type="integer"> 2 </cn>
362 <ci> S2 </ci>
363 </apply>
364 </apply>
365 <apply>
366 <plus/>
367 <cn type="integer"> 1 </cn>
368 <ci> S1 </ci>
369 <ci> S2 </ci>
370 </apply>
371 </apply>
372 </math>
373 </kineticLaw>
374 </reaction>
375 <reaction id="J2" reversible="false">
376 <listOfReactants>
377 <speciesReference species="S2"/>
378 </listOfReactants>
379 <listOfProducts>
380 <speciesReference species="S3"/>
381 </listOfProducts>
382 <kineticLaw>
383 <math xmlns="http://www.w3.org/1998/Math/MathML">
384 <apply>
385 <divide/>
386 <apply>
387 <minus/>
388 <apply>
389 <times/>
390 <cn type="integer"> 10 </cn>
391 <ci> S2 </ci>
392 </apply>
393 <apply>
394 <times/>
395 <cn type="integer"> 2 </cn>
396 <ci> S3 </ci>
397 </apply>
398 </apply>
399 <apply>
400 <plus/>
401 <cn type="integer"> 1 </cn>
402 <ci> S2 </ci>
403 <ci> S3 </ci>
404 </apply>
405 </apply>
406 </math>
407 </kineticLaw>
408 </reaction>
409 <reaction id="J3" reversible="false">
410 <listOfReactants>
411 <speciesReference species="S3"/>
412 </listOfReactants>
413 <listOfProducts>
414 <speciesReference species="S4"/>
415 </listOfProducts>
416 <kineticLaw>
417 <math xmlns="http://www.w3.org/1998/Math/MathML">
418 <apply>
419 <divide/>
420 <apply>
421 <minus/>
422 <apply>
423 <times/>
424 <cn type="integer"> 10 </cn>
425 <ci> S3 </ci>
426 </apply>
427 <apply>
428 <times/>
429 <cn type="integer"> 2 </cn>
430 <ci> S4 </ci>
431 </apply>
432 </apply>
433 <apply>
434 <plus/>
435 <cn type="integer"> 1 </cn>
436 <ci> S3 </ci>
437 <ci> S4 </ci>
438 </apply>
439 </apply>
440 </math>
441 </kineticLaw>
442 </reaction>
443 <reaction id="J4" reversible="false">
444 <listOfReactants>
445 <speciesReference species="S4"/>
446 </listOfReactants>
447 <listOfProducts>
448 <speciesReference species="X1"/>
449 </listOfProducts>
450 <kineticLaw>
451 <math xmlns="http://www.w3.org/1998/Math/MathML">
452 <apply>
453 <divide/>
454 <apply>
455 <times/>
456 <ci> J4_V4 </ci>
457 <ci> S4 </ci>
458 </apply>
459 <apply>
460 <plus/>
461 <ci> J4_KS4 </ci>
462 <ci> S4 </ci>
463 </apply>
464 </apply>
465 </math>
466 </kineticLaw>
467 </reaction>
468 </listOfReactions>
469 </model>
470</sbml>
Model YAML:
1model:
2 name: feedback
3 language: sbml
4 args: ./src/sbml2.xml
5 reset: true
6 steps: 5
7 skip_start_time: true
8 integrator_settings:
9 relative_tolerance: 1.0e-10
10 inputs:
11 - name: input
12 vars: [time,S1,S2]
13 default_file:
14 name: ./Input/input.txt
15 filetype: table
16 outputs:
17 - name: output
18 as_array: true
19 default_file:
20 name: ./output%d.txt
21 filetype: table
22 is_series: true