Updated tutorial.

This commit is contained in:
cjmyers 2012-12-26 17:48:08 +00:00
parent 0aecd715ac
commit 17453fbd6c
67 changed files with 256 additions and 190 deletions

View file

@ -2172,5 +2172,5 @@ Biology in Trento, Italy.
T<sub><font size="-1">E</font></sub>X
by <a href="http://hutchinson.belmont.ma.us/tth/">
T<sub><font size="-1">T</font></sub>H</a>,
version 3.81.<br />On 17 Aug 2011, 15:33.</small>
version 3.81.<br />On 22 Dec 2012, 16:03.</small>
</html>

Binary file not shown.

View file

@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<meta name="GENERATOR" content="TtHgold 4.00">
<meta name="GENERATOR" content="TtH 3.81">
<style type="text/css"> div.p { margin-top: 7pt;}</style>
<style type="text/css"><!--
td div.comp { margin-top: -0.6ex; margin-bottom: -1ex;}
@ -25,6 +25,70 @@
<div class="p"><!----></div>
<div class="p"><!----></div>
<div class="p"><!----></div>
<h1>Contents </h1><a href="#tth_sEc1"
>1&nbsp; Introduction</a><br />
<a href="#tth_sEc2"
>2&nbsp; Project Management</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tth_sEc2.1"
>2.1&nbsp; Creating and Opening Projects</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tth_sEc2.2"
>2.2&nbsp; Creating Models and Graphs</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tth_sEc2.3"
>2.3&nbsp; Importing Models</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tth_sEc2.4"
>2.4&nbsp; Editing Project Objects</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tth_sEc2.5"
>2.5&nbsp; Viewing Project Objects</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tth_sEc2.6"
>2.6&nbsp; Creating Tool Views</a><br />
<a href="#tth_sEc3"
>3&nbsp; LHPN Editor</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tth_sEc3.1"
>3.1&nbsp; Places</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tth_sEc3.2"
>3.2&nbsp; Transitions</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tth_sEc3.2.1"
>3.2.1&nbsp; Assignments</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tth_sEc3.3"
>3.3&nbsp; Variables</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tth_sEc3.4"
>3.4&nbsp; Control Flow</a><br />
<a href="#tth_sEc4"
>4&nbsp; Text Editor</a><br />
<a href="#tth_sEc5"
>5&nbsp; Verification View</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tth_sEc5.1"
>5.1&nbsp; Basic Options</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tth_sEc5.2"
>5.2&nbsp; Advanced Options</a><br />
<a href="#tth_sEc6"
>6&nbsp; Learn View</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tth_sEc6.1"
>6.1&nbsp; Data Manager</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tth_sEc6.2"
>6.2&nbsp; Learn Tool</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tth_sEc6.2.1"
>6.2.1&nbsp; Basic Options</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tth_sEc6.2.2"
>6.2.2&nbsp; Advanced Options</a><br />
<a href="#tth_sEc7"
>7&nbsp; TSD Graph Editor</a><br />
<a href="#tth_sEc8"
>8&nbsp; Preferences</a><br />
<a href="#tth_sEc9"
>9&nbsp; Labeled Hybrid Petri Net Format</a><br />
<a href="#tth_sEc10"
>10&nbsp; Time Series Data Format</a><br />
<a href="#tth_sEc11"
>11&nbsp; List of Hot Keys</a><br />
<a href="#tth_sEc12"
>12&nbsp; Reporting Bugs and Feature Requests</a><br />
<a href="#tth_sEc13"
>13&nbsp; Credits</a><br />
<div class="p"><!----></div>
@ -118,15 +182,15 @@ new model or graph to add to the project. To create a new
VHDL-AMS model, select New &#8594; VHDL-AMS Model from the
File menu as shown below. You will then be prompted to give a model id. At this
point, a simple text editor will open in a new tab. To create a new LHPN model
(see Section&nbsp;), select New &#8594; Labeled Hybrid Petri Net from
(see Section&nbsp;<a href="#LHPN">9</a>), select New &#8594; Labeled Hybrid Petri Net from
the File menu. You will then be prompted to give a model id. At this point, an
LHPN editor (see Section&nbsp;) will open in a new tab. To create a new
LHPN editor (see Section&nbsp;<a href="#LHPNEdit">3</a>) will open in a new tab. To create a new
Spice model, select New &#8594; Spice Circuit from the File menu. You
will then be prompted to give a model id. At this point, a simple text editor
will open in a new tab. To create a new TSD graph, select New &#8594; TSD
Graph from the File menu. You will then
be prompted to give a name to the TSD graph. At this point, a TSD graph editor
(see Section&nbsp;) will open in a new tab. Once a model or graph is
(see Section&nbsp;<a href="#TSDEdit">7</a>) will open in a new tab. Once a model or graph is
created, it can be opened again later by right clicking on the object in the
project window and selecting "Edit", or alternatively
double-clicking on the object.
@ -163,16 +227,16 @@ All project objects can be modified by highlighting the object
and using a right mouse click to open a menu of options as shown
below. Using this menu, every type of object can be copied, renamed, or
deleted. For an LHPN, the "View/Edit" option opens the
model in an LHPN editor (see Section&nbsp;). For a VHDL-AMS model,
model in an LHPN editor (see Section&nbsp;<a href="#LHPNEdit">3</a>). For a VHDL-AMS model,
the "View/Edit" option opens the model in a simple text editor. For a TSD
graph, the "View/Edit"
option opens the TSD graph in a TSD graph editor (see Section&nbsp;).
option opens the TSD graph in a TSD graph editor (see Section&nbsp;<a href="#TSDEdit">7</a>).
For a probability graph, the "View/Edit" option opens
the probability graph in a histogram editor
(see Section&nbsp;).
For a verification view, the "Open Verification View" option opens the
verification view (see Section&nbsp;). For a learn view, the
"Open Learn View" option opens the learn view (see Section&nbsp;).
verification view (see Section&nbsp;<a href="#Verification">5</a>). For a learn view, the
"Open Learn View" option opens the learn view (see Section&nbsp;<a href="#Learn">6</a>).
<div class="p"><!----></div>
@ -215,8 +279,8 @@ LHPN and viewed using the same "View Model" option.
<div class="p"><!----></div>
To perform verification or learning, right click on a model and
select "Create Verification View" (see Section&nbsp;)to perform
analysis or "Create Learn View" (see Section&nbsp;)
select "Create Verification View" (see Section&nbsp;<a href="#Verification">5</a>)to perform
analysis or "Create Learn View" (see Section&nbsp;<a href="#Learn">6</a>)
to perform learning. A verification or learn view may also be opened by
selecting the model in the file tree and selecting Learn or Verification from
the Tools menu. You will then be prompted to give a name to
@ -246,10 +310,10 @@ automatically created for verification.
<div class="p"><!----></div>
The LHPN editor as shown below allows the user to create or modify an LHPN
model of an analog or mixed-signal circuit. An LHPN model includes
places (see Section&nbsp;),
transitions (see Section&nbsp;),
variables (see Section&nbsp;), and
control flow (see Section&nbsp;).
places (see Section&nbsp;<a href="#places">3.1</a>),
transitions (see Section&nbsp;<a href="#transitions">3.2</a>),
variables (see Section&nbsp;<a href="#variables">3.3</a>), and
control flow (see Section&nbsp;<a href="#controlFlow">3.4</a>).
Each of these items can be added, removed, or edited.
To add a new item, click on the appropriate add button. You
will then be prompted to provide a unique id and some properties
@ -492,8 +556,8 @@ editor.
<div class="p"><!----></div>
The verification view is used to verify the property stated in the LHPN model.
The verification view as shown below includes tabs for
basic options (see Section&nbsp;), and
advanced options (see Section&nbsp;).
basic options (see Section&nbsp;<a href="#basOptions">5.1</a>), and
advanced options (see Section&nbsp;<a href="#advOptions">5.2</a>).
<center>
<img src="screenshots/verificationView.png" alt="screenshots/verificationView.png" />
@ -655,9 +719,9 @@ The other advanced options include
<div class="p"><!----></div>
The learn view is used to generate an LHPN from time series data. The learn
view includes tabs for a data manager (see Section&nbsp;),
a learn tool (see Section&nbsp;), and a
TSD graph editor (see Section&nbsp;).
view includes tabs for a data manager (see Section&nbsp;<a href="#dataManager">6.1</a>),
a learn tool (see Section&nbsp;<a href="#learnTool">6.2</a>), and a
TSD graph editor (see Section&nbsp;<a href="#TSDEdit">7</a>).
<div class="p"><!----></div>
<h3><a name="tth_sEc6.1">
@ -680,7 +744,7 @@ current project, and data from the selected view will be copied
into this learn view. Finally, the Import button brings up a file
browser, and it allows you to import a data file from outside
this project. These files can be in time series data (TSD) format
(see Section&nbsp;), comma separated value (CSV) format, or tab
(see Section&nbsp;<a href="#TSD">10</a>), comma separated value (CSV) format, or tab
delimited format (DAT).
<div class="p"><!----></div>
@ -705,12 +769,12 @@ to record your changes.
The learn tool is used to generate abstract models from the
simulation data entered through the data manager described above. To
use this learn tool, adjust the basic options(see Section
&nbsp;) and advanced options(see Section
&nbsp;), if desired, then press the Save and Learn button.
&nbsp;<a href="#learnBasOptions">6.2.1</a>) and advanced options(see Section
&nbsp;<a href="#learnAdvOptions">6.2.2</a>), if desired, then press the Save and Learn button.
The resulting abstract models in the form of Labeled Hybrid Petri Net
(see Section&nbsp;),VHDL-AMS and Verilog-AMS can be viewed by
(see Section&nbsp;<a href="#LHPN">9</a>),VHDL-AMS and Verilog-AMS can be viewed by
clicking appropriate options in the View Menu. The resulting circuit is
specified using our Labeled Hybrid Petri Net Format (see Section&nbsp;)
specified using our Labeled Hybrid Petri Net Format (see Section&nbsp;<a href="#LHPN">9</a>)
and is shown graphically using GraphViz's Dotty tool. There are also
menu options to save the parameters without learning, view the last learned
models, save the generated models into the project, and view the last run
@ -1004,7 +1068,7 @@ supported file types are:
<div class="p"><!----></div>
</li>
<li> tsd - time series data format (see Section&nbsp;).
<li> tsd - time series data format (see Section&nbsp;<a href="#TSD">10</a>).
<div class="p"><!----></div>
</li>
</ul>
@ -1346,6 +1410,6 @@ Virginia State University.
<br /><br /><hr /><small>File translated from
T<sub><font size="-1">E</font></sub>X
by <a href="http://hutchinson.belmont.ma.us/tth/">
T<sub><font size="-1">T</font></sub>Hgold</a>,
version 4.00.<br />On 26 Aug 2011, 12:44.</small>
T<sub><font size="-1">T</font></sub>H</a>,
version 3.81.<br />On 22 Dec 2012, 16:03.</small>
</html>

Binary file not shown.

View file

@ -165,5 +165,5 @@ A grid is a structure used for separating components spatially. So the first th
T<sub><font size="-1">E</font></sub>X
by <a href="http://hutchinson.belmont.ma.us/tth/">
T<sub><font size="-1">T</font></sub>H</a>,
version 3.81.<br />On 26 Aug 2011, 16:08.</small>
version 3.81.<br />On 22 Dec 2012, 16:03.</small>
</html>

Binary file not shown.

View file

@ -58,10 +58,6 @@
<div class="p"><!----></div>
</li>
<li> LPN Model Editor - a tool to create a model using a <em>labeled Petri net</em> (LPN).
<div class="p"><!----></div>
</li>
<li> Analysis Tool - an abstraction-based ODE, Monte Carlo, and Markov analysis tool.
<div class="p"><!----></div>
</li>
@ -105,7 +101,7 @@ To create a new project, select New &#8594; Project from the File menu as shown
3</a>&nbsp;&nbsp;Model Editor</h2>
<div class="p"><!----></div>
After you have created a project, you can create a new model to add to the project by selecting New &#8594; Model from the File menu as shown below. You will then be prompted to enter a model ID. Enter <tt>lambda</tt> (do not select "Make Grid" at this time). At this point, a Model editor will open in a new tab.
After you have created a project, you can create a new model to add to the project by selecting New &#8594; Model from the File menu as shown below. You will then be prompted to enter a model ID. Enter <tt>lambda</tt>. At this point, a Model editor will open in a new tab.
<div class="p"><!----></div>
@ -123,25 +119,25 @@ After you have created a project, you can create a new model to add to the proje
</center>
<div class="p"><!----></div>
To add a chemical species, select the Add Species icon <img src="../gui/icons/modelview/add_species_selected.png" alt="../gui/icons/modelview/add_species_selected.png" /> and click on the schematic canvas. This will drop a new species with default ID and other values. You may change these defaults by double-clicking on the species to open the Species Editor. In this case, let us change the ID to CI and units to mole. We will leave all other values at their default values. One thing that is important to note is that when this model is analyzed a default degradation reaction will be created which has a rate of 0.0075. If you do not want a degradation reaction, you must change "default" to "custom" and change the degradation rate to 0.
To add a chemical species, select the Add Species icon <img src="../gui/icons/modelview/add_species_selected.png" alt="../gui/icons/modelview/add_species_selected.png" /> and click on the schematic canvas. This will drop a new species with default ID and other values. You may change these defaults by clicking on the selection icon
<img src="../gui/icons/modelview/select_mode_selected.png" alt="../gui/icons/modelview/select_mode_selected.png" />, and
double-clicking on the species to open the Species Editor. In this case, let us change the ID to CI, and click on degrades checkbox. We will leave all other values at their default values. One thing that is important to note is that when this model is analyzed a default degradation reaction will be created which has a rate of 0.0075.
<div class="p"><!----></div>
<center>
<img src="screenshots/species.png" alt="screenshots/species.png" />
<center><img src="screenshots/species.png" alt="screenshots/species.png" />
</center>
<div class="p"><!----></div>
Add another species for the CI dimer molecule. Edit this species to set its ID to CI2 and change its units to mole. This species is created using a complex-formation reaction with an equilibrium constant of 0.1 M<sup>&#8722;1</sup>. Change default to custom for the complex formation equilibrium and set it to this value as shown below.
Add another species for the CI dimer molecule. The next step is to add a complex-formation reaction to convert CI monomers into CI dimers. Select the complex formation icon <img src="../gui/icons/modelview/bio_activation_selected.png" alt="../gui/icons/modelview/bio_activation_selected.png" />, highlight the CI species, and, while holding the mouse button, stretch the complex formation arc to the S2 species. Next, edit this species to set its ID to CI2 and select that it degrades. This species is created using a complex-formation reaction with an equilibrium constant of 0.1. Change default to custom for the complex formation equilibrium and set it to this value as shown below.
<div class="p"><!----></div>
<center>
<img src="screenshots/species2.png" alt="screenshots/species2.png" />
<center><img src="screenshots/species2.png" alt="screenshots/species2.png" />
</center>
<div class="p"><!----></div>
The next step is to add a complex-formation reaction to convert CI monomers into CI dimers. Select the complex formation icon <img src="../gui/icons/modelview/bio_activation_selected.png" alt="../gui/icons/modelview/bio_activation_selected.png" />, highlight the CI species, and, while holding the mouse button, stretch the complex formation arc to the CI2 species. If you double-click on the complex formation arc, an influence editor will open which indicates that this is a complex formation arc and the stoichiometry of binding (i.e., the number of molecules of the source species used to construct the sink species) is 2. The default in this case is correct as it does take two molecules of CI to make CI2.
If you double-click on the complex formation arc, an influence editor will open which indicates that this is a complex formation arc and the stoichiometry of binding (i.e., the number of molecules of the source species used to construct the sink species) is 2. The default in this case is correct as it does take two molecules of CI to make CI2.
<div class="p"><!----></div>
@ -166,7 +162,7 @@ The PR promoter is repressed by the CI2 species. To create this relationship, s
</center>
<div class="p"><!----></div>
As mentioned earlier, the PR promoter initiates the production of the CII species. Add the CII species following the steps given earlier for adding a species. Then, highlight the PR promoter and, while holding the mouse button, stretch the production arc to the CII species. Note that the icons selected for this are not important because all arcs from promoters to species are always production arcs.
As mentioned earlier, the PR promoter initiates the production of the CII species. Add the CII species following the steps given earlier for adding a species (be sure to mark that it degrades). Then, highlight the PR promoter and, while holding the mouse button, stretch the production arc to the CII species. Note that the icons selected for this are not important because all arcs from promoters to species are always production arcs.
<div class="p"><!----></div>
@ -187,7 +183,7 @@ Finally, CII species activates the production of the CI species from the PRE pro
</center>
<div class="p"><!----></div>
Next, let's go look at some of the other model tabs. Click on the Definitions tab. Here one can add/remove/edit definitions for functions and units. Every model starts with some predefined random functions. For example, click on the uniform function. This function takes arguments a and b and returns a uniform random number between a and b in our simulator. In other simulators that do not support this function, it simply returns the mean, which is (a + b)/2.
Next, let's go look at some of the other model tabs. Click on the Functions tab. Here one can add/remove/edit definitions for functions. Click on Add Function, and let's create a function to compute the total number of molecules where x is the number of monomers and y is the number of dimers. Let's give this function an ID of total with arguments x and y, and a definition of x + 2 * y.
<div class="p"><!----></div>
@ -195,7 +191,7 @@ Next, let's go look at some of the other model tabs. Click on the Definitions t
</center>
<div class="p"><!----></div>
Unit definitions allow the user to create custom units for use in models. As an example, click Add Unit and enter the ID nanoMole. A unit is defined using pre-defined base units. Click on Add to List and find mole in the Kind combo box, and change the multiplier to 1e&#8722;9 to define a nanoMole in terms of moles. The exponent and multiplier are real numbers, and the scale is an integer that specifies the relationship between the derived unit and the base unit using the relation below:
Click on the Units tab. Unit definitions allow the user to create custom units for use in models. As an example, click Add Unit and enter the ID nanoMole. A unit is defined using pre-defined base units. Click on Add to List and find mole in the Kind combo box, and change the multiplier to 1e&#8722;9 to define a nanoMole in terms of moles. The exponent and multiplier are real numbers, and the scale is an integer that specifies the relationship between the derived unit and the base unit using the relation below:
<br clear="all" /><table border="0" width="100%"><tr><td>
<table border="0" cellspacing="0" cellpadding="0">
@ -215,7 +211,7 @@ Follow the same steps to create a unit for microLitre.
</center>
<div class="p"><!----></div>
Next, click on the Compartments tab. This tab includes both general model information like its ID, name, and default units as well as a list of compartments. Click on the Model Units button to bring up a window of default units for this model. These are the units to be used for various things when no units are provided. For this model, let's make the Substance Units be in nanoMoles, Time Units be in seconds, and Volume Units be in microLitres. The Extent Units indicate the units of change for reactions. Let's make that also be nanoMole.
Next, click on the Schematic tab. Then, click on the Model button to bring up a window of default units for this model. These are the units to be used for various things when no units are provided. For this model, let's make the Substance Units be in nanoMoles, Time Units be in seconds, and Volume Units be in microLitres. The Extent Units indicate the units of change for reactions. Let's make that also be nanoMoles.
<div class="p"><!----></div>
@ -223,7 +219,7 @@ Next, click on the Compartments tab. This tab includes both general model infor
</center>
<div class="p"><!----></div>
Compartments are the membrane-enclosed regions where species can be found and reactions take place. All models must include at least one compartment. <tt>iBioSim</tt>, therefore, creates the default compartment initially. Let's click on Edit Compartment to give this the more meaningful name of Cell. If you go back to the schematic now, you will find the combo box in the toolbar has also changed to Cell. This combo box specifies the name of the compartment which encloses this model. The check box next to it indicates whether this model is to be considered to be membrane-enclosed by this compartment. If this model is part of a larger model within a single compartment, you should leave this unchecked. If, however, it is a complete model within the specified compartment, it should be checked. In this case, let's check it.
Compartments are the membrane-enclosed regions where species can be found and reactions take place. All models must include at least one compartment. <tt>iBioSim</tt>, therefore, creates the a default compartment initially with the ID of Cell. If you click on the schematic within the Cell compartment, it brings up the compartment editor. Uncheck the "Is Mapped to a Port". This indicates that this port should be enclosing this model and not replaced when instantiated in a larger model. Once you press OK, you will notice that the compartment now has rounded corners to indicate that this is membrane enclosed by the compartment Cell.
<div class="p"><!----></div>
@ -231,7 +227,7 @@ Compartments are the membrane-enclosed regions where species can be found and re
</center>
<div class="p"><!----></div>
Next, click on the Parameters tab. This tab includes the default model generation parameters as well as additional global variables. The model generation parameters are used for default values when creating a reaction-based model from our higher level model. These parameters can be edited by selecting them and changing default to custom and entering a new value. They cannot be removed.
Next, click on the Constants tab. This tab includes the default model generation parameters as well as additional global variables. The model generation parameters are used for default values when creating a reaction-based model from our higher level model. These parameters can be edited by selecting them and entering a new initial value. They should not be removed. Note that new global constants can also be added by the user, if desired.
<div class="p"><!----></div>
@ -239,7 +235,8 @@ Next, click on the Parameters tab. This tab includes the default model generati
</center>
<div class="p"><!----></div>
Global parameters can be used to specify constants and additional variables. For example, click on Add Parameter, so we can specify a variable, CI_total, for the total amount of the species CI in both monomer and dimer form. Its units are in nanoMole and it is not constant.
While you can add a global variable here, the preferred way is to add it on the schematic. Click on the Schematic tab. Select the add variable icon <img src="../gui/icons/modelview/variable_mode_selected.png" alt="../gui/icons/modelview/variable_mode_selected.png" />, and click a location to add the variable to the schematic. Then, click on the selection icon
<img src="../gui/icons/modelview/select_mode_selected.png" alt="../gui/icons/modelview/select_mode_selected.png" />, and double click on the variable to open the Parameter Editor. Change the ID to CI_total, for the total amount of the species CI in both monomer and dimer form. Its units are in nanoMole and it is not constant.
<div class="p"><!----></div>
@ -247,15 +244,13 @@ Global parameters can be used to specify constants and additional variables. Fo
</center>
<div class="p"><!----></div>
Now, let's go to the Assignments tab. This tab includes initial assignments and rules. Initial assignments are used when you want the initial value of a compartment size, species amount or concentration, or parameter to be determined by a mathematical equation rather than a constant. Click on Add Initial, select CI2 as the Symbol, and enter the assignment 5*CI, which causes CI2's initial value to be five times that of CI's initial value. Therefore, if we were to go change CI's initial value, CI2's initial value would also change due to this initial assignment.
<div class="p"><!----></div>
<center><img src="screenshots/initial.png" alt="screenshots/initial.png" />
</center>
<div class="p"><!----></div>
There are three types of rules: algebraic, assignment, and rate. Algebraic rules are used to specify relationships that must be maintained. Assignment rules are used to define one variable in terms of a mathematical expression. Finally, rate rules are used to indicate a differential equation to govern the evolution of a variable in terms of a mathematical expression on other variables. As an example, let's now add our definition for CI_total. Click on the Add Rule button, select Assignment, select the variable CI_total, and enter the expression 2*CI2+CI. This indicates that the amount of CI in total is two times the number of dimer molecules plus the number of monomer molecules.
Now, let's create a rule to compute the value of CI_total. There are three types of rules: algebraic, assignment, and rate. Algebraic rules are used to specify relationships that must be maintained. Assignment rules are used to define one variable in terms of a mathematical expression. Finally, rate rules are used to indicate a differential equation to govern the evolution of a variable in terms of a mathematical expression on other variables. To add a rule, select the add rule icon
<img src="../gui/icons/modelview/rule_mode_selected.png" alt="../gui/icons/modelview/rule_mode_selected.png" />. In the Rule editor,
select Assignment, select the variable CI_total, and enter the expression total(CI,CI2). This uses our new function to compute that the amount of CI in total is the number of monomer molecules plus two times the number of dimer molecules.
<div class="p"><!----></div>
@ -263,16 +258,12 @@ There are three types of rules: algebraic, assignment, and rate. Algebraic rule
</center>
<div class="p"><!----></div>
The next tab is the properties tab. Here you can specify probabilistic temporal logic properties using <em>Continuous Stochastic Logic</em> (CSL) that you wish to check. For example, the property shown,
Pr{PF[0,2100](CI&#62;20}, would ask the analyzer to determine the probability that CI exceeds 20 molecules within 2100 seconds.
<div class="p"><!----></div>
<center><img src="screenshots/properties.png" alt="screenshots/properties.png" />
</center>
<div class="p"><!----></div>
This tab also allows the user to enter constraints, which are conditions that must be satisfied or simulation should terminate. Click on the Add Constraint button to add a constraint that states that CI remains less than or equal to 25 molecules as shown below. Add a second constraint that states that CII remains less than or equal to 35 molecules.
Next, let's add a constraint. A constraint is a condition that must be satisfied or simulation should terminate. To add a constraint, select the add constraint icon
<img src="../gui/icons/modelview/constraint_mode_selected.png" alt="../gui/icons/modelview/constraint_mode_selected.png" />. Add a constraint that states that CI remains less than or equal to 20 molecules as shown below. Add a second constraint that states that CII remains less than or equal to 50 molecules.
<div class="p"><!----></div>
@ -280,7 +271,7 @@ This tab also allows the user to enter constraints, which are conditions that mu
</center>
<div class="p"><!----></div>
The last tab is the Events tab, which is used to specify discrete state changes. For example, let's describe an event for cell division. Click on the Add Event button, enter the ID CellDivision, trigger true, and delay of 2100. The trigger specifies the condition that should be satisfied to enable this event. In this case, we want it to be enabled initially. The delay indicates the time after which it is enabled that it should execute. This combination results in a cell division event at 2100 seconds after simulation begins. The event assignments specify the state change(s) for this event. Click on the Add Assignment button and select the CI variable, and enter the assignment CI/2. In other words, the number of molecules is being divided between the two daughter cells. Similarly, add event assignments to divide up CI2 and CII.
Finally, let's add an event. Eventa are used to specify discrete state changes. For example, let's describe an event for cell division. Click on the Add Event button, enter the ID CellDivision, trigger true, and delay of 2100. The trigger specifies the condition that should be satisfied to enable this event. In this case, we want it to be enabled initially. The delay indicates the time after which it is enabled that it should execute. Finally, select the Dynamic Process of Symmetric Division. This combination results in a cell division event at 2100 seconds after simulation begins. The event assignments specify the state change(s) for this event. Click on the Add Assignment button and select the CI variable, and enter the assignment CI / uniform(1,2). In other words, the number of molecules is being divided between the two daughter cells with a random distribution. Similarly, add event assignments to divide up CI2 and CII.
<div class="p"><!----></div>
@ -288,14 +279,19 @@ The last tab is the Events tab, which is used to specify discrete state changes.
</center>
<div class="p"><!----></div>
At this point, make sure your model has been saved by either clicking on the Save icon <img src="../gui/icons/save.png" alt="../gui/icons/save.png" /> or selecting the Save option from the File menu.
At this point, you should have a model that looks like the one below (though locations of elements may be different). Now, let's make sure the model is saved by either clicking on the Save icon <img src="../gui/icons/save.png" alt="../gui/icons/save.png" /> or selecting the Save option from the File menu.
<div class="p"><!----></div>
<center><img src="screenshots/save.png" alt="screenshots/save.png" />
</center>
<div class="p"><!----></div>
<h2><a name="tth_sEc4">
4</a>&nbsp;&nbsp;Analysis Tool</h2>
<div class="p"><!----></div>
This section describes how to analyze the model just created. The first step is to create an analysis view. To do this, right-click on the model file and select Create Analysis View. Enter the analysis ID <tt>simLambda</tt>. At this point, a new analysis view should open. You should also notice that an icon appears next to your model file. When you click on this, it will show you all of the analysis and learn views associated with this model.
This section describes how to analyze the model just created. The first step is to create an analysis view. To do this, right-click on the model file and select Create Analysis View. Enter the analysis ID <tt>lambda</tt> or just press enter. At this point, a new analysis view should open. You should also notice that an icon appears next to your model file. When you click on this, it will show you all of the analysis and learn views associated with this model.
<div class="p"><!----></div>
@ -304,7 +300,7 @@ This section describes how to analyze the model just created. The first step is
</center>
<div class="p"><!----></div>
In order to perform analysis, the analysis tool first converts the model into a reaction-based model in the <em>Systems Biology Markup Language</em> (SBML). There are three different ways to see the reaction-based model that is produced. If GraphViz is installed on your computer, you can select Network for your Simulation Type. Then, either press the Save and Run icon <img src="../gui/icons/run-icon.jpg" alt="../gui/icons/run-icon.jpg" /> or select the Save and Run option from the File menu. The result will be a GraphViz window that will open to show the reaction-based model such as the one shown below for our example. If it does not open in GraphViz, make sure that you have files with the <tt>.dot</tt> file extension associated with GraphViz on your computer. You can also view the model in a web browser by selecting Browser for your simulation type. In this case, you should ensure that you have files with the <tt>.xhtml</tt> extension associated with your favorite browser. Finally, you can save the reaction-based model by selecting Model as your simulation type. In this case, you must provide a new model ID. This new model will appear in your project and it can be opened in the Model Editor. Since this model does not include any layout information, you will need to either lay it out by hand or using one of the default layout routines selectable using the Apply Layout icon <img src="../gui/icons/modelview/choose_layout_selected.png" alt="../gui/icons/modelview/choose_layout_selected.png" />,
In order to perform analysis, the analysis tool first converts the model into a reaction-based model in the <em>Systems Biology Markup Language</em> (SBML). There are three different ways to see the reaction-based model that is produced. If GraphViz is installed on your computer, you can select Network for your Simulation Type. Then, either press the Save and Run icon <img src="../gui/icons/run-icon.jpg" alt="../gui/icons/run-icon.jpg" /> or select the Save and Run option from the File menu. The result will be a GraphViz window that will open to show the reaction-based model such as the one shown below for our example. If it does not open in GraphViz, make sure that you have files with the <tt>.dot</tt> file extension associated with GraphViz on your computer. You can also view the model in a web browser by selecting Browser for your simulation type. In this case, you should ensure that you have files with the <tt>.xhtml</tt> extension associated with your favorite browser. Finally, you can save the reaction-based model by selecting Model as your simulation type. In this case, you must provide a new model ID. This new model will appear in your project and it can be opened in the Model Editor. Since this model does not include any layout information, you will need to either lay it out by hand or using one of the default layout routines selectable using the Apply Layout icon <img src="../gui/icons/modelview/choose_layout_selected.png" alt="../gui/icons/modelview/choose_layout_selected.png" />,
<div class="p"><!----></div>
@ -330,14 +326,15 @@ Next, click on the SBML elements tab. This tab allows you to select which SBML
</center>
<div class="p"><!----></div>
Now, go back to the simulation options tab. Here, change the simulation type back to ODE, change the time limit to 2100.0, change the print interval to 10.0, enter a Simulation ID of <tt>ode</tt>, and make sure the selected Property is none. Then, either press the Save and Run icon <img src="../gui/icons/run-icon.jpg" alt="../gui/icons/run-icon.jpg" /> or select the Save and Run option from the File menu.
Now, go back to the simulation options tab. Here, change the simulation type back to ODE, change the time limit to 2100.0, change the print interval to 10.0, and enter a Simulation ID of <tt>ode</tt>. Then, either press the Save and Run icon <img src="../gui/icons/run-icon.jpg" alt="../gui/icons/run-icon.jpg" /> or select the Save and Run option from the File menu.
After the simulation completes, click on the TSD Graph tab. Double-click on the graph to bring up the graph editor.
Open the <tt>ode</tt> simulation, highlight Average, select CI_total and CII, change the Title to "ODE Simulation Results", change the X-Axis Label to "Time (seconds)", and change the Y-Axis Label to "Number of Molecules".
Press the OK button.
<div class="p"><!----></div>
<center><img src="screenshots/odeResults.png" alt="screenshots/odeResults.png" /><br />
<center><img src="screenshots/odeSim.png" alt="screenshots/odeSim.png" /><br />
<img src="screenshots/odeResults.png" alt="screenshots/odeResults.png" /><br />
<img src="screenshots/odeSimResults.png" alt="screenshots/odeSimResults.png" />
</center>
@ -345,35 +342,35 @@ Press the OK button.
Graphs can be exported in a variety of formats including:
<ul>
<li> Time series data format (TSD).
<li> Time series data format (tsd).
<div class="p"><!----></div>
</li>
<li> Comma separated value (CSV).
<li> Comma separated value (csv).
<div class="p"><!----></div>
</li>
<li> Column separated data (DAT).
<li> Column separated data (dat).
<div class="p"><!----></div>
</li>
<li> Encapsulated postscript (EPS).
<li> Encapsulated postscript (eps).
<div class="p"><!----></div>
</li>
<li> Joint Photographic Experts Group (JPG).
<li> Joint Photographic Experts Group (jpg).
<div class="p"><!----></div>
</li>
<li> Portable document format (PDF).
<li> Portable document format (pdf).
<div class="p"><!----></div>
</li>
<li> Portable network graphics (PNG).
<li> Portable network graphics (png).
<div class="p"><!----></div>
</li>
<li> Scalable vector graphics (SVG).
<li> Scalable vector graphics (svg).
<div class="p"><!----></div>
</li>
</ul>
@ -389,7 +386,8 @@ Now, select the Simulation Options tab again, select <tt>Monte Carlo</tt>, chang
<div class="p"><!----></div>
<center><img src="screenshots/ssaResults.png" alt="screenshots/ssaResults.png" /><br />
<center><img src="screenshots/ssaSim.png" alt="screenshots/ssaSim.png" /><br />
<img src="screenshots/ssaResults.png" alt="screenshots/ssaResults.png" /><br />
<img src="screenshots/ssaSimResults.png" alt="screenshots/ssaSimResults.png" />
</center>
@ -451,7 +449,7 @@ One way to understand why abstraction is so much faster is by looking at the com
</center>
<div class="p"><!----></div>
Next, let's try checking some properties. To do this, go to the SBML Elements tab and check the boxes next to the constraints. Recall that these constraints terminate simulation whenever CI goes above 25 molecules and CII goes above 35 molecules. Go back to the Simulation Options tab and change the Simulation ID to prob, then press the Save and Run icon. Now, let's plot the results on a histogram by clicking on the Histogram tab and then double-clicking on the graph to bring up the histogram graph editor shown below. Open the prob folder, select the sim-rep file, and check the Use check box to get all fields.
Next, let's try checking some properties. To do this, go to the SBML Elements tab and check the boxes next to the constraints. Recall that these constraints terminate simulation whenever CI goes above 20 molecules or CII goes above 50 molecules. Go back to the Simulation Options tab and change the Simulation Type to Monte Carlo and Simulation ID to prob, then press the Save and Run icon. Now, let's plot the results on a histogram by clicking on the Histogram tab and then double-clicking on the graph to bring up the histogram graph editor shown below. Open the prob folder, select the sim-rep file, and check the Use check box to get all fields.
<div class="p"><!----></div>
@ -459,7 +457,7 @@ Next, let's try checking some properties. To do this, go to the SBML Elements t
</center>
<div class="p"><!----></div>
The histogram shown here indicates that CI goes above 25 molecules first about 23 percent of the time, CII goes above 35 molecules first about 71 percent of the time, and the simulation terminates before either happens about 6 percent of the time.
The histogram shown here indicates that CI goes above 20 molecules first about 21 percent of the time, CII goes above 50 molecules first about 74 percent of the time, and the simulation terminates before either happens about 5 percent of the time.
<div class="p"><!----></div>
@ -487,7 +485,7 @@ This section describes how a model can be learned from time series data using <t
</center>
<div class="p"><!----></div>
The next step is to add some experimental data from which you wish to learn a model. In this demo, we will just utilize our simulation data as synthetic experimental data. To do this, click Copy From View, and select <tt>simLambda/abs</tt>. Highlight <tt>simLambda/abs/run-1.tsd</tt> and you should see the simulation data for CI and CII appear on the right in the data editor.
The next step is to add some experimental data from which you wish to learn a model. In this demo, we will just utilize our simulation data as synthetic experimental data. To do this, click Copy From View, and select <tt>lambda/abs</tt>. Highlight <tt>lambda/abs/run-1.tsd</tt> and you should see the simulation data for CI and CII appear on the right in the data editor.
<div class="p"><!----></div>
@ -495,7 +493,7 @@ The next step is to add some experimental data from which you wish to learn a mo
</center>
<div class="p"><!----></div>
Now, click on the Learn tab. Here you can edit the various learning options. For example, you can either use auto-generated levels or user-generated levels for your data encoding. Select Use User Generated Levels, which will make the levels below editable. You can also select how many bins to use. Change the number of bins for both CI and CII to 3. At this point, you can ask the tool to suggest levels by clicking on the Suggest Levels button. Finally, click on the Save and Run icon which will bring up the model that has been learned from this experimental data using Graphviz's dotty program, and ask you for a model ID for the generated model.
Now, click on the Learn tab. Here you can edit the various learning options. For example, you can either use auto-generated levels or user-generated levels for your data encoding. Select Use User Generated Levels, which will make the levels below editable. At this point, you can ask the tool to suggest levels by clicking on the Suggest Levels button. Finally, click on the Save and Run icon which will bring up the model that has been learned from this experimental data using Graphviz's dotty program, and ask you for a model ID for the generated model.
<div class="p"><!----></div>
@ -508,15 +506,8 @@ Now, click on the Learn tab. Here you can edit the various learning options. F
6</a>&nbsp;&nbsp;Advanced Modeling</h2>
<div class="p"><!----></div>
This section is less detailed than the others but it gives some intuition about modeling using reactions, compartments, and grids. It also introduces our preliminary support of the emerging <em>Synthetic Biology Open Language standard</em> (SBOL). Let us take the last of these first. An SBOL file includes <em>Collections</em> of <em>DNA Components</em>. Each DNA component has a unique ID, name, description, type, and a DNA sequence. A DNA component can be a simple sequence feature like a promoter, ribosome binding site, open reading frame (i.e., gene), or terminator. It can also be an annotated DNA sequence that includes several of these individual features, perhaps organized hierarchically. For example, a DNA component may include a promoter followed by a ribosome binding site followed by a open reading frame followed by a terminator. When editing the model, you may have noticed the various SBOL fields. Namely, for a promoter, you can associate both a DNA component to the promoter as well as a terminator for the transcription initiated at this promoter. For a species, you can associate both a DNA component for the open reading frame for the gene that produces this species as well as the ribosome binding site where translation begins for this gene. This SBOL browser is opened by clicking on an Associate SBOL button within either the Species Editor or Promoter Editor. This browser only shows DNA components of the appropriate type. For example, when associating a species to its open reading frame, only DNA components of the open reading frame type are shown. After you have associated all genetically produced species (i.e., CI and CII in our model) and all promoters (i.e., PR and PRE in our model), you can then save the DNA component for your model into your SBOL file. You can also export it into a new or existing SBOL file outside your project.
<div class="p"><!----></div>
<center><img src="screenshots/AssociateSBOL.png" alt="screenshots/AssociateSBOL.png" />
</center>
<div class="p"><!----></div>
In the next example, let's consider an alternative model of CII degradation which we are going to model using chemical reactions. To do this, create a new model named <tt>CII_degradation</tt>. In this model, create species CII, P1, and CII_P1, making CII have the input type so that we can connect to it later.
This section is less detailed than the others but it gives some intuition about modeling using reactions, components, and grids.
First, let's consider an alternative model of CII degradation which we are going to model using chemical reactions. To do this, create a new model named <tt>CII_degradation</tt>. In this model, create species CII, P1, and CII_P1, making CII have the input type so that we can connect to it later. Set an initial amount of 35 molecules for P1.
<div class="p"><!----></div>
@ -548,7 +539,7 @@ Connecting product species is accomplished in much the same way, except in this
</center>
<div class="p"><!----></div>
Now, let's adjust the parameters for this reaction by clicking on it to open the Reaction Editor. Let's make this reaction reversible and adjust its forward reaction rate to be 1.0. Finally, press the Use Mass Action button to automatically create a kinetic law for this reaction.
Now, let's adjust the parameters for this reaction by clicking on it to open the Reaction Editor. Press the Use Mass Action button to automatically create a kinetic law for this reaction. Then, make this reaction reversible and adjust its forward reaction rate to be 1.0.
<div class="p"><!----></div>
@ -564,7 +555,7 @@ Follow the same steps to add another reaction that degrades CII in the CII_P1 fo
</center>
<div class="p"><!----></div>
Let's now go and add this new degradation mechanism to our lambda model (you might actually want to copy your old model before you do this, which you can do by highlighting the file and selecting Edit &#8594; Copy or using the right mouse button menu). First, open the Species Editor on CII and change its degradation rate to 0. Next, select the Add Component icon <img src="../gui/icons/modelview/add_component_selected.png" alt="../gui/icons/modelview/add_component_selected.png" /> and click on the Schematic canvas opening the Add Component(s) window. In this window, browse the combo box to find your CII_degradation model. Pressing OK will then add it to your schematic.
Let's now go and add this new degradation mechanism to our lambda model (you might actually want to copy your old model before you do this, which you can do by highlighting the file and selecting Edit &#8594; Copy or using the right mouse button menu). To simplify things, remove the rule, constraints, and event. Next, open the Species Editor on CII and deselect the degrades option. Finally, select the Add Component icon <img src="../gui/icons/modelview/add_component_selected.png" alt="../gui/icons/modelview/add_component_selected.png" /> and click on the Schematic canvas opening the Add Component(s) window. In this window, browse the combo box to find your CII_degradation model. Pressing OK will then add it to your schematic.
<div class="p"><!----></div>
@ -581,7 +572,7 @@ You may want to now go and try simulating this model, if you like.
</center>
<div class="p"><!----></div>
In the last example, we will build a model with a grid. Before doing this, create another copy of your lambda model, then go into this copy and remove the initial assignments, rules, properties, constraints, and events, as they will get in the way. Also, edit the CII species and make it diffusible. Now, create a new model named <tt>Population</tt> and select the Make Grid check box bring up the Create a Grid window. In this window, select your copy of your lambda model and change the number of rows and columns to 5.
In the last example, we will build a model with a grid. First, edit the CII species and make it diffusible, and save the model. Now, create a grid model using the File &#8594; New &#8594; Grid Model menu, and name the new model <tt>Population</tt>. In the create grid window shown below, select your copy of your lambda model and change the number of rows and columns to 5.
<div class="p"><!----></div>
@ -617,5 +608,5 @@ is available in the <tt>docs</tt> directory that comes with the distribution.
T<sub><font size="-1">E</font></sub>X
by <a href="http://hutchinson.belmont.ma.us/tth/">
T<sub><font size="-1">T</font></sub>H</a>,
version 3.81.<br />On 12 May 2012, 10:13.</small>
version 3.81.<br />On 24 Dec 2012, 14:16.</small>
</html>

Binary file not shown.

View file

@ -36,7 +36,7 @@
\begin{itemize}
\item Model Editor - a tool to create a model of a genetic circuit or other biological system.
\item LPN Model Editor - a tool to create a model using a \emph{labeled Petri net} (LPN).
%\item LPN Model Editor - a tool to create a model using a \emph{labeled Petri net} (LPN).
\item Analysis Tool - an abstraction-based ODE, Monte Carlo, and Markov analysis tool.
\item TSD Graph Editor- a tool to visualize TSD files.
\item Histogram Graph Editor - a tool to visualize probability data.
@ -52,23 +52,23 @@ This tutorial illustrates each of these features of {\tt iBioSim} using a simple
Within {\tt iBioSim}, all files are collected within projects. A project is a collection of models, analysis views, learn views, and graphs. As shown below, {\tt iBioSim} displays all project files on the left, the open models, views, and graphs on the right, and a log of all external commands on the bottom. The menu bar is located on the top of the window in the Windows and Linux versions. It is located on the top of the screen in the MacOS version.
\begin{center}
\includegraphics[height=90mm]{screenshots/iBioSim}
\includegraphics[width=160mm]{screenshots/iBioSim}
\end{center}
\noindent
To create a new project, select New $\rightarrow$ Project from the File menu as shown below. You will then be prompted to browse to a desired location and to give a name to the project directory. Enter the name {\tt Tutorial}. After you do this, click the new button and a new project directory will be created.
\begin{center}
\includegraphics[height=80mm]{screenshots/project}
\includegraphics[width=60mm]{screenshots/project}
\end{center}
\section{Model Editor}
\noindent
After you have created a project, you can create a new model to add to the project by selecting New $\rightarrow$ Model from the File menu as shown below. You will then be prompted to enter a model ID. Enter {\tt lambda} (do not select ``Make Grid'' at this time). At this point, a Model editor will open in a new tab.
After you have created a project, you can create a new model to add to the project by selecting New $\rightarrow$ Model from the File menu as shown below. You will then be prompted to enter a model ID. Enter {\tt lambda}. At this point, a Model editor will open in a new tab.
\begin{center}
\includegraphics[height=80mm]{screenshots/newModel}
\includegraphics[width=80mm]{screenshots/newModel}
\end{center}
\begin{center}
@ -76,168 +76,177 @@ After you have created a project, you can create a new model to add to the proje
\end{center}
\begin{center}
\includegraphics[height=80mm]{screenshots/ModelEditor}
\includegraphics[width=160mm]{screenshots/ModelEditor}
\end{center}
To add a chemical species, select the Add Species icon \includegraphics{../gui/icons/modelview/add_species_selected} and click on the schematic canvas. This will drop a new species with default ID and other values. You may change these defaults by double-clicking on the species to open the Species Editor. In this case, let us change the ID to CI. We will leave all other values at their default values. One thing that is important to note is that when this model is analyzed a default degradation reaction will be created which has a rate of 0.0075. If you do not want a degradation reaction, you must change ``default'' to ``custom'' and change the degradation rate to 0.
To add a chemical species, select the Add Species icon \includegraphics{../gui/icons/modelview/add_species_selected} and click on the schematic canvas. This will drop a new species with default ID and other values. You may change these defaults by clicking on the selection icon
\includegraphics{../gui/icons/modelview/select_mode_selected}, and
double-clicking on the species to open the Species Editor. In this case, let us change the ID to CI, and click on degrades checkbox. We will leave all other values at their default values. One thing that is important to note is that when this model is analyzed a default degradation reaction will be created which has a rate of 0.0075.
%% TODO: remove mole setting
\begin{center}
\includegraphics[height=80mm]{screenshots/species}
\includegraphics[width=160mm]{screenshots/species}
\end{center}
Add another species for the CI dimer molecule. Edit this species to set its ID to CI2 and change its units to mole. This species is created using a complex-formation reaction with an equilibrium constant of 0.1 M$^{-1}$. Change default to custom for the complex formation equilibrium and set it to this value as shown below.
Add another species for the CI dimer molecule. The next step is to add a complex-formation reaction to convert CI monomers into CI dimers. Select the complex formation icon \includegraphics{../gui/icons/modelview/bio_activation_selected}, highlight the CI species, and, while holding the mouse button, stretch the complex formation arc to the S2 species. Next, edit this species to set its ID to CI2 and select that it degrades. This species is created using a complex-formation reaction with an equilibrium constant of 0.1. Change default to custom for the complex formation equilibrium and set it to this value as shown below.
%% TODO: remove mole setting
\begin{center}
\includegraphics[height=80mm]{screenshots/species2}
\includegraphics[width=160mm]{screenshots/species2}
\end{center}
The next step is to add a complex-formation reaction to convert CI monomers into CI dimers. Select the complex formation icon \includegraphics{../gui/icons/modelview/bio_activation_selected}, highlight the CI species, and, while holding the mouse button, stretch the complex formation arc to the CI2 species. If you double-click on the complex formation arc, an influence editor will open which indicates that this is a complex formation arc and the stoichiometry of binding (i.e., the number of molecules of the source species used to construct the sink species) is 2. The default in this case is correct as it does take two molecules of CI to make CI2.
If you double-click on the complex formation arc, an influence editor will open which indicates that this is a complex formation arc and the stoichiometry of binding (i.e., the number of molecules of the source species used to construct the sink species) is 2. The default in this case is correct as it does take two molecules of CI to make CI2.
\begin{center}
\includegraphics[height=60mm]{screenshots/complex}
\includegraphics[width=160mm]{screenshots/complex}
\end{center}
Next, let's add the PR promoter, which initiates transcription of the gene that produces the protein CII. To do this, select the promoter icon \includegraphics{../gui/icons/modelview/promoter_mode_selected} and click on the schematic canvas to drop the promoter with a default ID and parameter values. Double-click on the promoter to bring up the promoter editor. Change the ID to PR, customize the RNAP binding equilibrium to be 0.69422, and set the open complex production rate to be 0.014.
\begin{center}
\includegraphics[height=80mm]{screenshots/promoter}
\includegraphics[width=160mm]{screenshots/promoter}
\end{center}
The PR promoter is repressed by the CI2 species. To create this relationship, select the repression arc icon
\includegraphics{../gui/icons/modelview/inhibition_selected}, highlight the CI2 species, and, while holding the mouse button, stretch the repression arc to the PR promoter. Next, double-click on the repression arc to bring up the influence editor. In this editor, customize the stoichiometry of binding to 1, indicating that just one CI dimer is necessary to repress this promoter, and change the repression binding equilibrium to 0.2165.
\begin{center}
\includegraphics[height=60mm]{screenshots/repression}
\includegraphics[width=160mm]{screenshots/repression}
\end{center}
As mentioned earlier, the PR promoter initiates the production of the CII species. Add the CII species following the steps given earlier for adding a species. Then, highlight the PR promoter and, while holding the mouse button, stretch the production arc to the CII species. Note that the icons selected for this are not important because all arcs from promoters to species are always production arcs.
As mentioned earlier, the PR promoter initiates the production of the CII species. Add the CII species following the steps given earlier for adding a species (be sure to mark that it degrades). Then, highlight the PR promoter and, while holding the mouse button, stretch the production arc to the CII species. Note that the icons selected for this are not important because all arcs from promoters to species are always production arcs.
\begin{center}
\includegraphics[height=80mm]{screenshots/production}
\includegraphics[width=160mm]{screenshots/production}
\end{center}
Finally, CII species activates the production of the CI species from the PRE promoter. Promoters do not need to always be drawn. They can also be implicit on an influence. To add an activation arc with an implicit promoter, select the activation arc icon \includegraphics{../gui/icons/modelview/activation_selected}, highlight the CII species, and, while holding the mouse button, stretch the activation arc to the CI species. This creates not only the influence but also a default promoter. Double-click on the activation arc to bring up the influence editor. In this editor, customize the stoichiometry of binding to 1, indicating that just one CII molecule is necessary to activate this promoter, and change the activation binding equilibrium to 0.00161. Finally, click on the Edit Promoter button and change the ID of this promoter to PRE. Also, customize the RNAP binding equilibrium to be 0.01, the basal production rate to be 0.00004, and the activated production rate to be 0.015.
\begin{center}
\includegraphics[height=80mm]{screenshots/activation}
\includegraphics[width=160mm]{screenshots/activation}
\end{center}
\begin{center}
\includegraphics[height=80mm]{screenshots/activated_promoter}
\includegraphics[width=160mm]{screenshots/activated_promoter}
\end{center}
Next, let's go look at some of the other model tabs. Click on the Definitions tab. Here one can add/remove/edit definitions for functions and units. Every model starts with some predefined random functions. For example, click on the uniform function. This function takes arguments $a$ and $b$ and returns a uniform random number between $a$ and $b$ in our simulator. In other simulators that do not support this function, it simply returns the mean, which is $(a + b)/2$.
Next, let's go look at some of the other model tabs. Click on the Functions tab. Here one can add/remove/edit definitions for functions. Click on Add Function, and let's create a function to compute the total number of molecules where $x$ is the number of monomers and $y$ is the number of dimers. Let's give this function an ID of total with arguments $x$ and $y$, and a definition of $x + 2 * y$.
\begin{center}
\includegraphics[height=70mm]{screenshots/function}
\includegraphics[width=160mm]{screenshots/function}
\end{center}
Unit definitions allow the user to create custom units for use in models. As an example, click Add Unit and enter the ID nanoMole. A unit is defined using pre-defined base units. Click on Add to List and find mole in the Kind combo box, and change the multiplier to $1e-9$ to define a nanoMole in terms of moles. The exponent and multiplier are real numbers, and the scale is an integer that specifies the relationship between the derived unit and the base unit using the relation below:
Click on the Units tab. Unit definitions allow the user to create custom units for use in models. As an example, click Add Unit and enter the ID nanoMole. A unit is defined using pre-defined base units. Click on Add to List and find mole in the Kind combo box, and change the multiplier to $1e-9$ to define a nanoMole in terms of moles. The exponent and multiplier are real numbers, and the scale is an integer that specifies the relationship between the derived unit and the base unit using the relation below:
\begin{eqnarray*}
\mathrm{unit} & = & (\mathrm{multiplier} * 10^\mathrm{scale} * \mathrm{baseUnit})^\mathrm{exponent}
\end{eqnarray*}
Follow the same steps to create a unit for microLitre.
\begin{center}
\includegraphics[height=70mm]{screenshots/units}
\includegraphics[width=160mm]{screenshots/units}
\end{center}
Next, click on the Compartments tab. This tab includes both general model information like its ID, name, and default units as well as a list of compartments. Click on the Model Units button to bring up a window of default units for this model. These are the units to be used for various things when no units are provided. For this model, let's make the Substance Units be in nanoMoles, Time Units be in seconds, and Volume Units be in microLitres. The Extent Units indicate the units of change for reactions. Let's make that also be nanoMole.
Next, click on the Schematic tab. Then, click on the Model button to bring up a window of default units for this model. These are the units to be used for various things when no units are provided. For this model, let's make the Substance Units be in nanoMoles, Time Units be in seconds, and Volume Units be in microLitres. The Extent Units indicate the units of change for reactions. Let's make that also be nanoMoles.
\begin{center}
\includegraphics[height=70mm]{screenshots/ModelUnits}
\includegraphics[width=160mm]{screenshots/ModelUnits}
\end{center}
Compartments are the membrane-enclosed regions where species can be found and reactions take place. All models must include at least one compartment. {\tt iBioSim}, therefore, creates the default compartment initially. Let's click on Edit Compartment to give this the more meaningful name of Cell. If you go back to the schematic now, you will find the combo box in the toolbar has also changed to Cell. This combo box specifies the name of the compartment which encloses this model. The check box next to it indicates whether this model is to be considered to be membrane-enclosed by this compartment. If this model is part of a larger model within a single compartment, you should leave this unchecked. If, however, it is a complete model within the specified compartment, it should be checked. In this case, let's check it.
Compartments are the membrane-enclosed regions where species can be found and reactions take place. All models must include at least one compartment. {\tt iBioSim}, therefore, creates the a default compartment initially with the ID of Cell. If you click on the schematic within the Cell compartment, it brings up the compartment editor. Uncheck the ``Is Mapped to a Port''. This indicates that this port should be enclosing this model and not replaced when instantiated in a larger model. Once you press OK, you will notice that the compartment now has rounded corners to indicate that this is membrane enclosed by the compartment Cell.
\begin{center}
\includegraphics[height=65mm]{screenshots/compartment}
\includegraphics[width=160mm]{screenshots/compartment}
\end{center}
Next, click on the Parameters tab. This tab includes the default model generation parameters as well as additional global variables. The model generation parameters are used for default values when creating a reaction-based model from our higher level model. These parameters can be edited by selecting them and changing default to custom and entering a new value. They cannot be removed.
Next, click on the Constants tab. This tab includes the default model generation parameters as well as additional global variables. The model generation parameters are used for default values when creating a reaction-based model from our higher level model. These parameters can be edited by selecting them and entering a new initial value. They should not be removed. Note that new global constants can also be added by the user, if desired.
\begin{center}
\includegraphics[height=65mm]{screenshots/GCMparam}
\includegraphics[width=160mm]{screenshots/GCMparam}
\end{center}
Global parameters can be used to specify constants and additional variables. For example, click on Add Parameter, so we can specify a variable, CI\_total, for the total amount of the species CI in both monomer and dimer form. Its units are in nanoMole and it is not constant.
While you can add a global variable here, the preferred way is to add it on the schematic. Click on the Schematic tab. Select the add variable icon \includegraphics{../gui/icons/modelview/variable_mode_selected}, and click a location to add the variable to the schematic. Then, click on the selection icon
\includegraphics{../gui/icons/modelview/select_mode_selected}, and double click on the variable to open the Parameter Editor. Change the ID to CI\_total, for the total amount of the species CI in both monomer and dimer form. Its units are in nanoMole and it is not constant.
\begin{center}
\includegraphics[height=65mm]{screenshots/parameter}
\includegraphics[width=160mm]{screenshots/parameter}
\end{center}
Now, let's go to the Assignments tab. This tab includes initial assignments and rules. Initial assignments are used when you want the initial value of a compartment size, species amount or concentration, or parameter to be determined by a mathematical equation rather than a constant. Click on Add Initial, select CI2 as the Symbol, and enter the assignment 5*CI, which causes CI2's initial value to be five times that of CI's initial value. Therefore, if we were to go change CI's initial value, CI2's initial value would also change due to this initial assignment.
% Now, let's go to the Assignments tab. This tab includes initial assignments and rules. Initial assignments are used when you want the initial value of a compartment size, species amount or concentration, or parameter to be determined by a mathematical equation rather than a constant. Click on Add Initial, select CI2 as the Symbol, and enter the assignment 5*CI, which causes CI2's initial value to be five times that of CI's initial value. Therefore, if we were to go change CI's initial value, CI2's initial value would also change due to this initial assignment.
% \begin{center}
% \includegraphics[width=160mm]{screenshots/initial}
% \end{center}
Now, let's create a rule to compute the value of CI\_total. There are three types of rules: algebraic, assignment, and rate. Algebraic rules are used to specify relationships that must be maintained. Assignment rules are used to define one variable in terms of a mathematical expression. Finally, rate rules are used to indicate a differential equation to govern the evolution of a variable in terms of a mathematical expression on other variables. To add a rule, select the add rule icon
\includegraphics{../gui/icons/modelview/rule_mode_selected}. In the Rule editor,
select Assignment, select the variable CI\_total, and enter the expression total(CI,CI2). This uses our new function to compute that the amount of CI in total is the number of monomer molecules plus two times the number of dimer molecules.
\begin{center}
\includegraphics[height=80mm]{screenshots/initial}
\includegraphics[width=160mm]{screenshots/rule}
\end{center}
There are three types of rules: algebraic, assignment, and rate. Algebraic rules are used to specify relationships that must be maintained. Assignment rules are used to define one variable in terms of a mathematical expression. Finally, rate rules are used to indicate a differential equation to govern the evolution of a variable in terms of a mathematical expression on other variables. As an example, let's now add our definition for CI\_total. Click on the Add Rule button, select Assignment, select the variable CI\_total, and enter the expression 2*CI2+CI. This indicates that the amount of CI in total is two times the number of dimer molecules plus the number of monomer molecules.
% The next tab is the properties tab. Here you can specify probabilistic temporal logic properties using \emph{Continuous Stochastic Logic} (CSL) that you wish to check. For example, the property shown,
% Pr\{PF[0,2100](CI>20\}, would ask the analyzer to determine the probability that CI exceeds 20 molecules within 2100 seconds.
% \begin{center}
% \includegraphics[width=160mm]{screenshots/properties}
% \end{center}
Next, let's add a constraint. A constraint is a condition that must be satisfied or simulation should terminate. To add a constraint, select the add constraint icon
\includegraphics{../gui/icons/modelview/constraint_mode_selected}. Add a constraint that states that CI remains less than or equal to 20 molecules as shown below. Add a second constraint that states that CII remains less than or equal to 50 molecules.
\begin{center}
\includegraphics[height=80mm]{screenshots/rule}
\includegraphics[width=160mm]{screenshots/constraint}
\end{center}
The next tab is the properties tab. Here you can specify probabilistic temporal logic properties using \emph{Continuous Stochastic Logic} (CSL) that you wish to check. For example, the property shown,
Pr\{PF[0,2100](CI>20\}, would ask the analyzer to determine the probability that CI exceeds 20 molecules within 2100 seconds.
Finally, let's add an event. Eventa are used to specify discrete state changes. For example, let's describe an event for cell division. Click on the Add Event button, enter the ID CellDivision, trigger true, and delay of 2100. The trigger specifies the condition that should be satisfied to enable this event. In this case, we want it to be enabled initially. The delay indicates the time after which it is enabled that it should execute. Finally, select the Dynamic Process of Symmetric Division. This combination results in a cell division event at 2100 seconds after simulation begins. The event assignments specify the state change(s) for this event. Click on the Add Assignment button and select the CI variable, and enter the assignment CI / uniform(1,2). In other words, the number of molecules is being divided between the two daughter cells with a random distribution. Similarly, add event assignments to divide up CI2 and CII.
\begin{center}
\includegraphics[height=80mm]{screenshots/properties}
\includegraphics[width=160mm]{screenshots/event}
\end{center}
This tab also allows the user to enter constraints, which are conditions that must be satisfied or simulation should terminate. Click on the Add Constraint button to add a constraint that states that CI remains less than or equal to 25 molecules as shown below. Add a second constraint that states that CII remains less than or equal to 35 molecules.
At this point, you should have a model that looks like the one below (though locations of elements may be different). Now, let's make sure the model is saved by either clicking on the Save icon \includegraphics{../gui/icons/save} or selecting the Save option from the File menu.
\begin{center}
\includegraphics[height=80mm]{screenshots/constraint}
\includegraphics[width=160mm]{screenshots/save}
\end{center}
The last tab is the Events tab, which is used to specify discrete state changes. For example, let's describe an event for cell division. Click on the Add Event button, enter the ID CellDivision, trigger true, and delay of 2100. The trigger specifies the condition that should be satisfied to enable this event. In this case, we want it to be enabled initially. The delay indicates the time after which it is enabled that it should execute. This combination results in a cell division event at 2100 seconds after simulation begins. The event assignments specify the state change(s) for this event. Click on the Add Assignment button and select the CI variable, and enter the assignment CI/2. In other words, the number of molecules is being divided between the two daughter cells. Similarly, add event assignments to divide up CI2 and CII.
\begin{center}
\includegraphics[height=80mm]{screenshots/event}
\end{center}
At this point, make sure your model has been saved by either clicking on the Save icon \includegraphics{../gui/icons/save} or selecting the Save option from the File menu.
\section{Analysis Tool}
This section describes how to analyze the model just created. The first step is to create an analysis view. To do this, right-click on the model file and select Create Analysis View. Enter the analysis ID {\tt simLambda}. At this point, a new analysis view should open. You should also notice that an icon appears next to your model file. When you click on this, it will show you all of the analysis and learn views associated with this model.
This section describes how to analyze the model just created. The first step is to create an analysis view. To do this, right-click on the model file and select Create Analysis View. Enter the analysis ID {\tt lambda} or just press enter. At this point, a new analysis view should open. You should also notice that an icon appears next to your model file. When you click on this, it will show you all of the analysis and learn views associated with this model.
\begin{center}
\includegraphics[height=60mm]{screenshots/GCMAnalysis}\\
\includegraphics[height=90mm]{screenshots/analysisView}
\includegraphics[width=160mm]{screenshots/analysisView}
\end{center}
In order to perform analysis, the analysis tool first converts the model into a reaction-based model in the \emph{Systems Biology Markup Language} (SBML). There are three different ways to see the reaction-based model that is produced. If GraphViz is installed on your computer, you can select Network for your Simulation Type. Then, either press the Save and Run icon \includegraphics{../gui/icons/run-icon} or select the Save and Run option from the File menu. The result will be a GraphViz window that will open to show the reaction-based model such as the one shown below for our example. If it does not open in GraphViz, make sure that you have files with the {\tt .dot} file extension associated with GraphViz on your computer. You can also view the model in a web browser by selecting Browser for your simulation type. In this case, you should ensure that you have files with the {\tt .xhtml} extension associated with your favorite browser. Finally, you can save the reaction-based model by selecting Model as your simulation type. In this case, you must provide a new model ID. This new model will appear in your project and it can be opened in the Model Editor. Since this model does not include any layout information, you will need to either lay it out by hand or using one of the default layout routines selectable using the Apply Layout icon \includegraphics{../gui/icons/modelview/choose_layout_selected},
In order to perform analysis, the analysis tool first converts the model into a reaction-based model in the \emph{Systems Biology Markup Language} (SBML). There are three different ways to see the reaction-based model that is produced. If GraphViz is installed on your computer, you can select Network for your Simulation Type. Then, either press the Save and Run icon \includegraphics{../gui/icons/run-icon} or select the Save and Run option from the File menu. The result will be a GraphViz window that will open to show the reaction-based model such as the one shown below for our example. If it does not open in GraphViz, make sure that you have files with the {\tt .dot} file extension associated with GraphViz on your computer. You can also view the model in a web browser by selecting Browser for your simulation type. In this case, you should ensure that you have files with the {\tt .xhtml} extension associated with your favorite browser. Finally, you can save the reaction-based model by selecting Model as your simulation type. In this case, you must provide a new model ID. This new model will appear in your project and it can be opened in the Model Editor. Since this model does not include any layout information, you will need to either lay it out by hand or using one of the default layout routines selectable using the Apply Layout icon \includegraphics{../gui/icons/modelview/choose_layout_selected},
\begin{center}
\includegraphics[height=80mm]{screenshots/viewNetwork}
\includegraphics[width=60mm]{screenshots/viewNetwork}
\end{center}
\begin{center}
\includegraphics[height=110mm]{screenshots/viewBrowser}
\includegraphics[width=160mm]{screenshots/viewBrowser}
\end{center}
\begin{center}
\includegraphics[height=80mm]{screenshots/reactionModel}
\includegraphics[width=160mm]{screenshots/reactionModel}
\end{center}
Next, click on the SBML elements tab. This tab allows you to select which SBML model elements to include in your analysis. This includes initial assignments, rules, constraints, and events. Initially, let's only include the rule to compute CI\_total. Uncheck all the other elements.
\begin{center}
\includegraphics[height=80mm]{screenshots/SBMLElements}
\includegraphics[width=160mm]{screenshots/SBMLElements}
\end{center}
Now, go back to the simulation options tab. Here, change the simulation type back to ODE, change the time limit to 2100.0, change the print interval to 10.0, enter a Simulation ID of {\tt ode}, and make sure the selected Property is none. Then, either press the Save and Run icon \includegraphics{../gui/icons/run-icon} or select the Save and Run option from the File menu.
Now, go back to the simulation options tab. Here, change the simulation type back to ODE, change the time limit to 2100.0, change the print interval to 10.0, and enter a Simulation ID of {\tt ode}. Then, either press the Save and Run icon \includegraphics{../gui/icons/run-icon} or select the Save and Run option from the File menu.
After the simulation completes, click on the TSD Graph tab. Double-click on the graph to bring up the graph editor.
Open the {\tt ode} simulation, highlight Average, select CI\_total and CII, change the Title to ``ODE Simulation Results'', change the X-Axis Label to ``Time (seconds)'', and change the Y-Axis Label to ``Number of Molecules''.
Press the OK button.
\begin{center}
\includegraphics[height=90mm]{screenshots/odeResults}\\
\includegraphics[height=80mm]{screenshots/odeSimResults}
\includegraphics[width=160mm]{screenshots/odeSim}\\
\includegraphics[width=160mm]{screenshots/odeResults}\\
\includegraphics[width=160mm]{screenshots/odeSimResults}
\end{center}
Graphs can be exported in a variety of formats including:
@ -260,70 +269,71 @@ In order to export a graph, you can either click on the Export icon \includegrap
Now, select the Simulation Options tab again, select {\tt Monte Carlo}, change the number of runs to 100, set the simulation ID to {\tt ssa}, and click on the Save and Run icon. Click on the TSD Graph tab. Double-click on the graph to bring up the graph editor. Open the {\tt ssa} simulation directory, and highlight {\tt run-1}. Select CI\_Total and CII, change the title to ``SSA Simulation Results'', change the X-Axis Label to ``Time (seconds)'', and change the Y-Axis Label to ``Number of Molecules''. Press the OK button. Click on the Export icon and enter the file name {\tt ssa-1.pdf}. Repeat these steps to generate graphs for the average ({\tt average.pdf}) and standard deviation ({\tt stddev.pdf}). Note that you can use the ``Deselect All'' button to remove all items from the graph.
\begin{center}
\includegraphics[height=90mm]{screenshots/ssaResults}\\
\includegraphics[height=80mm]{screenshots/ssaSimResults}
\includegraphics[width=160mm]{screenshots/ssaSim}\\
\includegraphics[width=160mm]{screenshots/ssaResults}\\
\includegraphics[width=160mm]{screenshots/ssaSimResults}
\end{center}
Another way to view simulation results is on the schematic. To do this, click on the schematic tab. At the bottom of the window, select the Choose Simulation button, which brings up a window with all the simulations in this analysis view. Open the {\tt ssa} directory, select {\tt run-1.tsd}, and press OK.
\begin{center}
\includegraphics[height=80mm]{screenshots/chooseSim}
\includegraphics[width=160mm]{screenshots/chooseSim}
\end{center}
Now, click on the CI species, which brings up the Edit Species window. Select the Appearance tab. Here you can select how you want the species to appear as you playback the simulation. You can have it change color, size, and/or opacity on a gradient. You can also select the range of molecule counts to specify the ends of the gradient(s). Finally, you can indicate that these selections are either for this species or all species in the model. For our example, let's make CI follow a green color gradient, CI2 follow a red color gradient, and CII follow a blue color gradient.
\begin{center}
\includegraphics[height=50mm]{screenshots/editSpeciesAppearance}
\includegraphics[width=160mm]{screenshots/editSpeciesAppearance}
\end{center}
Once you have made your selections, you can now play back the simulation. You can either single-step the simulation by pressing the \includegraphics{../gui/icons/modelview/movie/single_step} icon or play continuously by pressing the \includegraphics{../gui/icons/modelview/movie/play} icon. The playback can also be paused by pressing the \includegraphics{../gui/icons/modelview/movie/pause} icon and restarted by pressing the \includegraphics{../gui/icons/modelview/movie/rewind} icon.
\begin{center}
\includegraphics[height=80mm]{screenshots/movieView}
\includegraphics[width=160mm]{screenshots/movieView}
\end{center}
Using the schematic tab, you can also adjust initial values and parameters allowing one to perform simulations to determine the effect of these changes. Clicking on any species, promoter, reaction, or influence brings up the corresponding editor. To change a value, switch the corresponding combo box to modified, which will then allow you to change the value. For example, as shown below, we have reduced the degradation rate for CI to 0.00075. Now, rerun the simulation and observe the change in the simulation data.
%% TODO: show results
\begin{center}
\includegraphics[height=50mm]{screenshots/paramEdit}
\includegraphics[width=160mm]{screenshots/paramEdit}
\end{center}
In addition to making single changes, you can also sweep a value as shown below. When you click on the Sweep button, it brings up a window where you can select the start value, the stop value, and the step value. In this example, simulations are generated using degradation rates of 0.001, 0.003, 0.005, and 0.007. The level indicates how the sweep should perform when multiple variables are swept at the same time. Variables at the same level are changed at the same time. Furthermore, all variables on level 2 are stepped through all their values before changing the values of those variables on level 1. After the values on level 1 are changed, the values on level 2 are stepped through all their values again. Rerun the simulation and create a graph that shows the value of CI for each of the different degradation rates.
%% TODO: show results
\begin{center}
\includegraphics[height=50mm]{screenshots/sweep}
\includegraphics[width=160mm]{screenshots/sweep}
%\includegraphics[height=90mm]{screenshots/sweepPR}
\end{center}
The efficiency of simulation can be improved by employing various automatic abstraction techniques. Go back to the Schematic tab and change the degradation rate of CI back to the default value. Also, go to the SBML elements tab and uncheck the rule for CI\_total. To activate abstraction, click on the Simulation Options tab, select Abstraction and change the simulation ID to {\tt abs}. Press the Save and Run icon and note that the simulation time is substantially faster. Plot both the SSA results for CI\_total and CII with the abstraction results for CI (note this is now equivalent to CI\_total after abstraction) and CII.
\begin{center}
\includegraphics[height=90mm]{screenshots/absResults}
\includegraphics[width=160mm]{screenshots/absResults}
\end{center}
One way to understand why abstraction is so much faster is by looking at the complexity of the reaction-based model before and after abstraction. The reaction-based model after abstraction is shown below which is clearly much simpler than the full model shown earlier.
\begin{center}
\includegraphics[height=80mm]{screenshots/viewNetworkAbs}
\includegraphics[width=100mm]{screenshots/viewNetworkAbs}
\end{center}
Next, let's try checking some properties. To do this, go to the SBML Elements tab and check the boxes next to the constraints. Recall that these constraints terminate simulation whenever CI goes above 25 molecules or CII goes above 35 molecules. Go back to the Simulation Options tab and change the Simulation ID to prob, then press the Save and Run icon. Now, let's plot the results on a histogram by clicking on the Histogram tab and then double-clicking on the graph to bring up the histogram graph editor shown below. Open the prob folder, select the sim-rep file, and check the Use check box to get all fields.
Next, let's try checking some properties. To do this, go to the SBML Elements tab and check the boxes next to the constraints. Recall that these constraints terminate simulation whenever CI goes above 20 molecules or CII goes above 50 molecules. Go back to the Simulation Options tab and change the Simulation Type to Monte Carlo and Simulation ID to prob, then press the Save and Run icon. Now, let's plot the results on a histogram by clicking on the Histogram tab and then double-clicking on the graph to bring up the histogram graph editor shown below. Open the prob folder, select the sim-rep file, and check the Use check box to get all fields.
\begin{center}
\includegraphics[height=80mm]{screenshots/editProbGraph}
\includegraphics[width=160mm]{screenshots/editProbGraph}
\end{center}
The histogram shown here indicates that CI goes above 25 molecules first about 23 percent of the time, CII goes above 35 molecules first about 71 percent of the time, and the simulation terminates before either happens about 6 percent of the time.
The histogram shown here indicates that CI goes above 20 molecules first about 21 percent of the time, CII goes above 50 molecules first about 74 percent of the time, and the simulation terminates before either happens about 5 percent of the time.
\begin{center}
\includegraphics[height=80mm]{screenshots/probResults}
\includegraphics[width=160mm]{screenshots/probResults}
\end{center}
These results can also be visualized using the TSD graph tool. Click on the TSD graph tab, click on the graph, Deselect All, open the prob folder, select the Percent Termination file, and add both constraints to the graph. The result, shown below is the probability of each constraint terminating the simulation as time evolves.
\begin{center}
\includegraphics[height=80mm]{screenshots/probResultsTSD}
\includegraphics[width=160mm]{screenshots/probResultsTSD}
\end{center}
\section{Learn Tool}
@ -334,92 +344,93 @@ This section describes how a model can be learned from time series data using {\
\includegraphics[height=60mm]{screenshots/createLearn}
\end{center}
The next step is to add some experimental data from which you wish to learn a model. In this demo, we will just utilize our simulation data as synthetic experimental data. To do this, click Copy From View, and select {\tt simLambda/abs}. Highlight {\tt simLambda/abs/run-1.tsd} and you should see the simulation data for CI and CII appear on the right in the data editor.
The next step is to add some experimental data from which you wish to learn a model. In this demo, we will just utilize our simulation data as synthetic experimental data. To do this, click Copy From View, and select {\tt lambda/abs}. Highlight {\tt lambda/abs/run-1.tsd} and you should see the simulation data for CI and CII appear on the right in the data editor.
\begin{center}
\includegraphics[height=80mm]{screenshots/dataManager}
\includegraphics[width=160mm]{screenshots/dataManager}
\end{center}
Now, click on the Learn tab. Here you can edit the various learning options. For example, you can either use auto-generated levels or user-generated levels for your data encoding. Select Use User Generated Levels, which will make the levels below editable. You can also select how many bins to use. Change the number of bins for both CI and CII to 3. At this point, you can ask the tool to suggest levels by clicking on the Suggest Levels button. Finally, click on the Save and Run icon which will bring up the model that has been learned from this experimental data using Graphviz's dotty program, and ask you for a model ID for the generated model.
Now, click on the Learn tab. Here you can edit the various learning options. For example, you can either use auto-generated levels or user-generated levels for your data encoding. Select Use User Generated Levels, which will make the levels below editable. At this point, you can ask the tool to suggest levels by clicking on the Suggest Levels button. Finally, click on the Save and Run icon which will bring up the model that has been learned from this experimental data using Graphviz's dotty program, and ask you for a model ID for the generated model.
%% TODO: double check with new results
\begin{center}
\includegraphics[height=80mm]{screenshots/learn}
\includegraphics[width=160mm]{screenshots/learn}
\end{center}
\section{Advanced Modeling}
This section is less detailed than the others but it gives some intuition about modeling using reactions, compartments, and grids. It also introduces our preliminary support of the emerging \emph{Synthetic Biology Open Language standard} (SBOL). Let us take the last of these first. An SBOL file includes \emph{Collections} of \emph{DNA Components}. Each DNA component has a unique ID, name, description, type, and a DNA sequence. A DNA component can be a simple sequence feature like a promoter, ribosome binding site, open reading frame (i.e., gene), or terminator. It can also be an annotated DNA sequence that includes several of these individual features, perhaps organized hierarchically. For example, a DNA component may include a promoter followed by a ribosome binding site followed by a open reading frame followed by a terminator. When editing the model, you may have noticed the various SBOL fields. Namely, for a promoter, you can associate both a DNA component to the promoter as well as a terminator for the transcription initiated at this promoter. For a species, you can associate both a DNA component for the open reading frame for the gene that produces this species as well as the ribosome binding site where translation begins for this gene. This SBOL browser is opened by clicking on an Associate SBOL button within either the Species Editor or Promoter Editor. This browser only shows DNA components of the appropriate type. For example, when associating a species to its open reading frame, only DNA components of the open reading frame type are shown. After you have associated all genetically produced species (i.e., CI and CII in our model) and all promoters (i.e., PR and PRE in our model), you can then save the DNA component for your model into your SBOL file. You can also export it into a new or existing SBOL file outside your project.
This section is less detailed than the others but it gives some intuition about modeling using reactions, components, and grids.
%It also introduces our preliminary support of the emerging \emph{Synthetic Biology Open Language standard} (SBOL). Let us take the last of these first. An SBOL file includes \emph{Collections} of \emph{DNA Components}. Each DNA component has a unique ID, name, description, type, and a DNA sequence. A DNA component can be a simple sequence feature like a promoter, ribosome binding site, open reading frame (i.e., gene), or terminator. It can also be an annotated DNA sequence that includes several of these individual features, perhaps organized hierarchically. For example, a DNA component may include a promoter followed by a ribosome binding site followed by a open reading frame followed by a terminator. When editing the model, you may have noticed the various SBOL fields. Namely, for a promoter, you can associate both a DNA component to the promoter as well as a terminator for the transcription initiated at this promoter. For a species, you can associate both a DNA component for the open reading frame for the gene that produces this species as well as the ribosome binding site where translation begins for this gene. This SBOL browser is opened by clicking on an Associate SBOL button within either the Species Editor or Promoter Editor. This browser only shows DNA components of the appropriate type. For example, when associating a species to its open reading frame, only DNA components of the open reading frame type are shown. After you have associated all genetically produced species (i.e., CI and CII in our model) and all promoters (i.e., PR and PRE in our model), you can then save the DNA component for your model into your SBOL file. You can also export it into a new or existing SBOL file outside your project.
%
% \begin{center}
% \includegraphics[width=160mm]{screenshots/AssociateSBOL}
% \end{center}
%
First, let's consider an alternative model of CII degradation which we are going to model using chemical reactions. To do this, create a new model named {\tt CII\_degradation}. In this model, create species CII, P1, and CII\_P1, making CII have the input type so that we can connect to it later. Set an initial amount of 35 molecules for P1.
\begin{center}
\includegraphics[height=80mm]{screenshots/AssociateSBOL}
\end{center}
In the next example, let's consider an alternative model of CII degradation which we are going to model using chemical reactions. To do this, create a new model named {\tt CII\_degradation}. In this model, create species CII, P1, and CII\_P1, making CII have the input type so that we can connect to it later.
\begin{center}
\includegraphics[height=65mm]{screenshots/P1}
\includegraphics[width=160mm]{screenshots/P1}
\end{center}
Now, select the Add Reaction icon \includegraphics{../gui/icons/modelview/add_reaction_selected} and click on the schematic canvas to drop a reaction. This creates a reaction with a default ID and parameter values that we can change later, if we wish.
\begin{center}
\includegraphics[height=65mm]{screenshots/reaction}
\includegraphics[width=160mm]{screenshots/reaction}
\end{center}
Now, let's connect up the reactant species. To do this, select the Reaction icon \includegraphics{../gui/icons/modelview/reaction_selected}, select the reactant species CII, and, while holding the mouse button, drag the reaction edge to the reaction R1. Similarly, add P1 as a reactant as well. If you double-click on a reactant edge, it brings up a Reactant editor where you can change the stoichiometry, if desired.
\begin{center}
\includegraphics[height=40mm]{screenshots/reactant}
\includegraphics[width=160mm]{screenshots/reactant}
\end{center}
Connecting product species is accomplished in much the same way, except in this case you select reaction R1 and drag the reaction edge to the product CII\_P1. Again, there is a Product editor for changing the stoichiometry. Note that modifiers (i.e., species that are neither produced nor consumed by a reaction but simply catalyze a reaction) can be added in a similar way using the Modifier icon \includegraphics{../gui/icons/modelview/modifier_selected} instead.
\begin{center}
\includegraphics[height=50mm]{screenshots/product}
\includegraphics[width=160mm]{screenshots/product}
\end{center}
Now, let's adjust the parameters for this reaction by clicking on it to open the Reaction Editor. Let's make this reaction reversible and adjust its forward reaction rate to be 1.0. Finally, press the Use Mass Action button to automatically create a kinetic law for this reaction.
Now, let's adjust the parameters for this reaction by clicking on it to open the Reaction Editor. Press the Use Mass Action button to automatically create a kinetic law for this reaction. Then, make this reaction reversible and adjust its forward reaction rate to be 1.0.
\begin{center}
\includegraphics[height=50mm]{screenshots/localParam}
\includegraphics[width=160mm]{screenshots/localParam}
\end{center}
Follow the same steps to add another reaction that degrades CII in the CII\_P1 form and releases the protease molecule P1. This reaction is not reversible and it should have a forward rate of 0.002.
\begin{center}
\includegraphics[height=60mm]{screenshots/kineticLaw}
\includegraphics[width=160mm]{screenshots/kineticLaw}
\end{center}
Let's now go and add this new degradation mechanism to our lambda model (you might actually want to copy your old model before you do this, which you can do by highlighting the file and selecting Edit $\rightarrow$ Copy or using the right mouse button menu). First, open the Species Editor on CII and change its degradation rate to 0. Next, select the Add Component icon \includegraphics{../gui/icons/modelview/add_component_selected} and click on the Schematic canvas opening the Add Component(s) window. In this window, browse the combo box to find your CII\_degradation model. Pressing OK will then add it to your schematic.
Let's now go and add this new degradation mechanism to our lambda model (you might actually want to copy your old model before you do this, which you can do by highlighting the file and selecting Edit $\rightarrow$ Copy or using the right mouse button menu). To simplify things, remove the rule, constraints, and event. Next, open the Species Editor on CII and deselect the degrades option. Finally, select the Add Component icon \includegraphics{../gui/icons/modelview/add_component_selected} and click on the Schematic canvas opening the Add Component(s) window. In this window, browse the combo box to find your CII\_degradation model. Pressing OK will then add it to your schematic.
\begin{center}
\includegraphics[height=60mm]{screenshots/addComponent}
\includegraphics[width=160mm]{screenshots/addComponent}
\end{center}
Now, let's connect CII to this new component to relate the CII within the component to the outer CII species. To do this, select the CII species and, while holding the mouse button, drag a connection to the component connecting CII to the CII port on the component.
You may want to now go and try simulating this model, if you like.
\begin{center}
\includegraphics[height=60mm]{screenshots/addPort}
\includegraphics[width=160mm]{screenshots/addPort}
\end{center}
In the last example, we will build a model with a grid. Before doing this, create another copy of your lambda model, then go into this copy and remove the initial assignments, rules, properties, constraints, and events, as they will get in the way. Also, edit the CII species and make it diffusible. Now, create a new model named {\tt Population} and select the Make Grid check box bring up the Create a Grid window. In this window, select your copy of your lambda model and change the number of rows and columns to 5.
In the last example, we will build a model with a grid. First, edit the CII species and make it diffusible, and save the model. Now, create a grid model using the File $\rightarrow$ New $\rightarrow$ Grid Model menu, and name the new model {\tt Population}. In the create grid window shown below, select your copy of your lambda model and change the number of rows and columns to 5.
\begin{center}
\includegraphics[height=20mm]{screenshots/createGrid}
\includegraphics[width=60mm]{screenshots/createGrid}
\end{center}
The schematic in a grid model is a bit different. It includes a grid in which each location can be empty or contain exactly one component. Only components can be added to grids.
\begin{center}
\includegraphics[height=80mm]{screenshots/gridModel}
\includegraphics[width=160mm]{screenshots/gridModel}
\end{center}
When you create a reaction-based model for a grid during analysis, reactions are created to move the diffusible species between the grid locations to provide a coarse form of spatial modeling. If the component within a grid location is enclosed in a compartment membrane (indicated by the rounded corners), the model generated also includes reactions to diffuse the species in and out of the compartment. In the analysis schematic, you can visualize your grid models by clicking on the component in the grid and selecting the species that you would like to see. For each such species, you can set its color, size, and/or opacity gradient. You can also copy these settings to all like models in your grid. Finally, you can click on the area outside of the component within the grid to allow you to also visualize the species that are in the medium.
\begin{center}
\includegraphics[height=80mm]{screenshots/compAppearances}
\includegraphics[width=160mm]{screenshots/compAppearances}
\end{center}
\noindent

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 KiB

After

Width:  |  Height:  |  Size: 115 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 99 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 101 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 61 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 113 KiB

Before After
Before After

BIN
docs/screenshots/odeSim.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 111 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Before After
Before After

BIN
docs/screenshots/save.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Before After
Before After

BIN
docs/screenshots/ssaSim.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 114 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Before After
Before After