You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<li>Package and re-use models as modules with defined or implied interfaces.</li>
72
72
</ul>
73
73
<h2id="change-log">Change Log</h2>
74
+
<p>The 2.14.0 release added the ability to encode algebraic rules, and added ways to add annotations and notes to objects and the model.</p>
75
+
<p>The 2.13.4 release changed the default SBML output to L3v2, and added basic unit names as reserved words for better import.</p>
76
+
<p>The 2.13.3 release removed the '@' for parsing events, and fixed '-o' interaction parsing.</p>
77
+
<p>The 2.13.2 release changed some maintenance features.</p>
78
+
<p>The 2.13.1 release added named stoichiometries, the 'rateOf' function, and instituted case senstitivity for predefined elements.</p>
74
79
<p>The 2.12 release added the ability to save extra ‘annotation-like’ elements from the ‘distributions’ SBML package, and fixed numerous bugs in cvterm/SBOterm setting.</p>
75
80
<p>The 2.11 release quashed all known memory leaks, and added the ability to define synthesis reactions with no id (i.e. ’ -> S1; k1’)</p>
76
81
<p>The 2.10 release updated support for distributions to the latest SBML release of that package, updated the default version of SBML to Level 3 version 2, added support for setting cvterms and the SBOterm,</p>
<p>When a species ID shows up in math, it usually means 'the concentration of
221
+
the species'. If instead it should be 'the amount of the species', you can
222
+
indicate this by using the 'substanceOnly' keyword:</p>
223
+
224
+
<pre><code> substanceOnly species S1 in C
225
+
S1 -> S2; k1*S1/C</code></pre>
226
+
227
+
<p>In the produced SBML, these species will be flagged hasOnlySubstanceUnits="true"</p>
228
+
212
229
<h3id="compartments">Compartments</h3>
213
230
<p>For multi-compartment models, or models where the compartment size changes over time, you can define the compartments in Antimony by using the <code>compartment</code> keyword, and designate species as being in particular compartments with the <code>in</code> keyword:</p>
<p>This effectively defines S3 to always equal the equation <code>k1*s1^2 + k2*s1 + k3</code>.</p>
302
319
<h3id="annotation">Annotation</h3>
303
-
<p>Antimony elements can be annotated with URNs using annotation keywords You can see the <ahref="#sbo-and-cvterms">full list</a> below, but in general, you annotate in the following way:</p>
320
+
<p>Antimony elements can be annotated with URNs using annotation keywords You can see the <ahref="#annotation-keywords">full list</a> below, but in general, you annotate in the following way:</p>
<p>Any Antimony element with an id may be annotated in this way, including the model itself.</p>
330
+
331
+
<p>Any Antimony element with an id may be annotated in this way, including
332
+
the model itself. Inside a model definition, the model itself may be
333
+
annotated using the 'model' keyword:</p>
334
+
335
+
<pre><code> model foo()
336
+
model model_entity_is "http://identifiers.org/biomodels.db/BIOMD0000000004"
337
+
model description "http://identifiers.org/pubmed/1833774"
338
+
model origin "http://identifiers.org/biomodels.db/BIOMD0000000003"
339
+
model taxon "http://identifiers.org/taxonomy/8292"
340
+
model created "2005-02-08T17:34:02Z"
341
+
model modified "2012-12-11T15:30:15Z"
342
+
end</code></pre>
343
+
344
+
You can also define an element's 'notes', using the 'notes' keyword. If
345
+
the notes take more than one line, you can group them together using three
346
+
tick marks '\`\`\`':
347
+
348
+
<pre><code> model notes ```
349
+
<p>This model represents the inactive forms of CDC-2 Kinase and Cyclin
350
+
Protease as separate species, unlike the ODEs in the published paper, in
351
+
which the equations for the inactive forms are substituted into the
352
+
equations for the active forms using a mass conservation rule
353
+
M+MI=1,X+XI=1. Mass is still conserved in this model through the
354
+
explicit reactions M<->MI and X<->XI. The terms in the
355
+
kinetic laws are identical to the corresponding terms in the kinetic
356
+
laws in the published paper.</p></code></pre>
357
+
```
358
+
359
+
360
+
361
+
314
362
<h3id="modular-models">Modular Models</h3>
315
363
<p>Antimony was actually originally designed to allow the modular creation of models, and has a basic syntax set up to do so. For a full discussion of Antimony modularity, see <ahref="#modules">below</a>, but at the most basic level, you define a re-usable module with the ‘model’ syntax, followed by parentheses where you define the elements you wish to expose, then import it by using the model’s name, and the local variables you want to connect to that module</p>
316
364
<pre><code># This creates a model 'side_reaction', exposing the variables 'S' and 'k1':
<p>Note that unlike initializations and assignment rules, formulas in rate rules may be self-referential, either directly or indirectly.</p>
733
781
<p>Any symbol may have only one rate rule or assignment rule associated with it. Should it find more than one, only the last will be saved.</p>
782
+
783
+
<h3id="algebraic-rules">Algebraic Rules</h3>
784
+
785
+
<p>Algebraic rules are defined as equations that are always true, but do
786
+
not declare which variable or variables should be adjusted to ensure that
787
+
they are true. Algebraic rules have somewhat limited support in some
788
+
simulators, and are not supported by Tellurium, so they are provide by
789
+
Antimony solely for users who wish to export the model and use it in
790
+
other systems.</p>
791
+
792
+
<p>To declare an algebraic rule, optionally give it a name, and then declare
793
+
"0 = [formula]":</p>
794
+
795
+
<pre><code> 0 = S1*k1 - 10
796
+
alg2: 0 = S2*k2 - 20
797
+
798
+
799
+
734
800
<h3id="display-names">Display Names</h3>
735
801
<p>When some tools visualize models, they make a distinction between the ‘id’ of an element, which must be unique to the model and which must conform to certain naming conventions, and the ‘name’ of an element, which does not have to be unique and which has much less stringent naming requirements. In Antimony, it is the id of elements which is used everywhere. However, you may also set the ‘display name’ of an element by using the ‘is’ keyword and putting the name in quotes:</p>
A.externalParameter is "http://uri"</code></pre>
886
952
<p>Where <code>A</code> may be any symbol in Antimony with mathematical meaning; <code>x</code> and <code>y</code> may both be either a symbol or a value (i.e. <code>A.mean=2.4</code>; <code>A.confidenceInterval={S1, 8.2}</code>); <code>function()</code> may be any mathematical formula; and <code>"http://uri"</code> is a URI that defines the given distribution or externalParameter.</p>
<p>Antimony model elements may also be annotated with their SBO terms and cvterms, using the following syntax:</p>
889
955
<pre><code>A.sboTerm = 236 or A.sboTerm = SBO:00000236
890
956
A identity "cvterm" or A biological_entity_is "cvterm"
@@ -899,8 +965,37 @@ <h3 id="sbo-and-cvterms">SBO and cvterms</h3>
899
965
A occursIn "cvterm" or A container "cvterm"
900
966
A hasProperty "cvterm" or A property "cvterm"
901
967
A isPropertyOf "cvterm" or A propertyBearer "cvterm"
902
-
A hasTaxon "cvterm" or A taxon "cvterm"</code></pre>
903
-
<p>Where <code>A</code> is any model element, model name, or function name, and <code>cvterm</code> is a URI like <code>"http://identifiers.org/uniprot/P12999"</code>.</p>
968
+
A hasTaxon "cvterm" or A taxon "cvterm"
969
+
A created "YYYY-MM-DDThh:mm:ssTZD" where TZD is either Z or +/- HH:MM
970
+
A modified "YYYY-MM-DDThh:mm:ssTZD" where TZD is either Z or +/- HH:MM
971
+
A creator "creator"
972
+
A creator.name "full name"
973
+
A creator.givenName "given name"
974
+
A creator.familyName "family name"
975
+
A creator.organization "organization"
976
+
A creator.email "email address"
977
+
A notes "notes"</code></pre>
978
+
<p>Where <code>A</code> is any model ID or the word 'model' for the model itself, and <code>cvterm</code> is a URI like <code>"http://identifiers.org/uniprot/P12999"</code>. If
979
+
there are multiple creators, or multiple modification times, you can
<p>In some models, reaction rates are not known specifically, but one can place certain constraints on those reactions, and then apply an objective function (such as ‘maximize growth’) to try to discern a likely set of reaction rates. In SBML, the package that lets you define these constraints and objective functions is known as the ‘Flux Balance Constraints’ package. As of v2.8.0 of Antimony, these constraints can now be defined in Antimony as well, using equalities and inequalities <code><</code>, <code>></code>, <code><=</code>, <code>>=</code>, and <code>==</code>. If we assume that all <code>J</code> variables are reactions, the following definitions are all Flux Balance constraints:</p>
0 commit comments