<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Towards a Computational Steering and Petri Nets Framework for the Modelling of Biochemical Reaction Networks</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mostafa Herajy</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Monika Heiner</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Brandenburg University of Technology at Cottbus, Computer Science Institute, Data Structures and Software Dependability</institution>
          ,
          <addr-line>Postbox 10 13 44, 03044 Cottbus</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Computational steering is an interactive remote control of a long running application. The user can adopt it, e.g., to adjust simulation parameters on the y. Simulation of large-scale biochemical networks is often computationally expensive, particularly stochastic and hybrid simulation. Such extremely time-consuming computations necessitate an interactive mechanism to permit users to try di erent paths and ask "what-if-questions" while the simulation is in progress. In this context, Petri nets are of special importance, since they provide an intuitive visual representation of reaction networks. In this paper, we introduce a novel framework for combining Petri nets and computational steering for the representation and interactive simulation of biochemical networks. The main merits of the developed framework are: intuitive representation of biochemical networks by means of Petri nets, distributed collaborative and interactive simulation, and tight coupling of simulation and visualisation.</p>
      </abstract>
      <kwd-group>
        <kwd>Petri Nets</kwd>
        <kwd>Computational Steering</kwd>
        <kwd>Biochemical Network Simulation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        With the progress of molecular biology, systems biology has recently gained
renewed interest to examine the structure and dynamics of cellular and organismal
functions [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. To provide such systems level understanding, we need dedicated
methods and techniques to facilitate dry-lab experiments. Additionally, systems
biologists need to collaborate together in conducting one and the same dry-lab
experiment and interactively steer a simulation while it is running. Furthermore,
with the advances of computing power, simulation engines can be distributed
over di erent machines and therefore they need to be remotely controlled by the
user. In this context, computational steering is an interactive technique which
can inevitably contribute to achieve these goals.
      </p>
      <p>
        Computational steering [
        <xref ref-type="bibr" rid="ref1 ref19 ref21">1,19,21</xref>
        ] is the tight coupling of visualisation and
simulation; the user can change simulation parameters while the simulation is in
progress. In other words, computational steering can be described as a remote
control of a long running application [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. An important property of
computational steering is that it allows user interactions with the running simulation and
monitoring of intermediate results rather than waiting until the simulation ends
and then visualising the results.
      </p>
      <p>
        Many well-known software tools have been developed to simulate biochemical
networks (e.g., COPASI [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], Dizzy [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], and Cell Designer [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]). However, they
lack some indispensable features, such as: collaboration, distribution and
interactivity, which are helpful to systems biologists. Other web-based applications
(e.g., Virtual Cell [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]) support some kind of collaboration and distribution.
Nevertheless, using those software, users are not aware of what is happening in the
background, which makes the entire simulation process appears as a black box.
Systems biologists need to interact with their experiments and with each others
by changing some key parameters and asking what-if-questions. Furthermore,
such applications are based on the batch approach that disconnects the users
from their experiments during the simulation [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. Our aim is to overcome these
limitations by integrating computational steering with the simulation of
biochemical reaction networks. Accordingly, using computational steering, systems
biologists could drive and guide a simulation in the direction of desirable output
by monitoring intermediate results and adapting on-the- y key parameters of
the running application.
      </p>
      <p>
        On the other side, many computational steering environments have been
developed during the last two decades (e.g., CUMULVS [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], RealityGrid [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ],
POSSE [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], and DISCOVER [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]). However, they are used to build new
applications or require modi cations of the application source code. With other
words, they often assume the existence of legacy simulation code which needs
to be integrated in such environments [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. Thus, they are inapplicable if the
source code is unavailable. Additionally, they have a steep learning curve [
        <xref ref-type="bibr" rid="ref17 ref19">17,19</xref>
        ]
which makes them unsuitable for systems biologists.
      </p>
      <p>
        Correspondingly, Petri nets [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] have been proven to be useful in modelling
biochemical networks, see e.g., [
        <xref ref-type="bibr" rid="ref16 ref5">5,16</xref>
        ], since they provide an intuitive graphical
representation and a well-developed mathematical theory comprising a variety
of analyses techniques. Thus, Petri nets may help to bridge the gap between
theorists and experimentalist. In this paper, we are speci cally interested in timed
(quantitative) Petri nets [
        <xref ref-type="bibr" rid="ref5 ref8">5,8</xref>
        ] (stochastic, continuous and hybrid Petri nets) and
their high level representations { hierarchical and coloured Petri nets [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
Integrating Petri nets and computational steering into one framework results in a
powerful and interactive tool. We get the elegant representation and the
mathematical foundation merits of Petri nets along with the interactive capabilities
of computational steering.
      </p>
      <p>
        The main contribution of this paper is the introduction of a computational
steering framework which utilises Petri nets as a formal modelling language for
the representation and interactive simulation of biochemical reaction networks.
Its main features are: intuitive and understandable representation of reaction
networks with the help of Petri nets, distributed collaborative and interactive
simulation of biochemical networks, the tight coupling of visualisation and
simulation, and the extendibility to include further simulators provided by the users.
The implementation of this framework is available as part of Snoopy [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] - a tool
to design and animate or simulate hierarchical graphs, among them qualitative,
stochastic, continuous and hybrid Petri nets.
      </p>
      <p>This paper is organised as follows: after this short introduction, we present
our computational steering framework by discussing its interdependent
individual components. In Section 3, we provide a case study to illustrate potential
applications of computational steering in the biochemical context. Finally, we
sum up by conclusions and future work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Framework</title>
      <p>In this section, the developed framework is precisely outlined. We start with a
general overview of the high level organisation, followed by a description of the
individual components. The related underlying biological context as well as a
typical application scenario are also given during the subsequent presentation of
the framework.
2.1</p>
      <sec id="sec-2-1">
        <title>Overview</title>
        <p>Figure 1 presents the general architecture of the proposed framework. Its main
components are: the steering server, the steering graphical user interface, the
steering application programming interface (API), and the internal and
external simulators. These interdependent ingredients enable systems biologists not
only to run their biochemical network models and get results, but also to share,
distribute and interactively steer them. Additionally, systems biologists do not
have to wait until the simulation ends and then to discover potentially
incorrect results. Instead, using the proposed framework, errors could be discovered
earlier and be immediately corrected during the simulation and if necessary, the
simulation could be restarted using the current setting. Subsequently, the overall
required time to carry out wet-lab experiments will substantially decrease.</p>
        <p>The main component of the architecture is the steering server. It is the central
manager of the model data and communication tra c between the di erent
framework components. It is a multi-user, multi-model, multi-simulator, and
multi-threaded server. Inside the server, data is organised in terms of individual
models which are in turn de ned by means of Petri nets. Section 2.2 gives more
information about the operations and functionalities of the steering server.</p>
        <p>The steering graphical user interface is the end user's entry point to the
overall architecture. Through it, the user can monitor and steer the simulation
output and the corresponding key parameters, respectively. Users can exibly
connect and disconnect from their local machines to the available steering servers
and view the currently running models. Model dynamics are produced using
User 1
User 2
User M
e
c
a
tIfr
e
n
g
n
i
m
m
a
r
g
o
r
P
n
o
it
a
c
li
p
p
A
g
n
i
r
e
e
t
S</p>
        <p>Steering
Visualization</p>
        <sec id="sec-2-1-1">
          <title>Model 1</title>
        </sec>
        <sec id="sec-2-1-2">
          <title>PN definition Model Views</title>
          <p>hCgane eRsult</p>
        </sec>
        <sec id="sec-2-1-3">
          <title>Internal Simulator</title>
        </sec>
        <sec id="sec-2-1-4">
          <title>Model 2</title>
        </sec>
        <sec id="sec-2-1-5">
          <title>PN definition Model Views</title>
          <p>hCange eRsult</p>
        </sec>
        <sec id="sec-2-1-6">
          <title>Internal Simulator</title>
        </sec>
        <sec id="sec-2-1-7">
          <title>Model N</title>
        </sec>
        <sec id="sec-2-1-8">
          <title>PN definition Model Views</title>
          <p>hCagne eRsult</p>
        </sec>
        <sec id="sec-2-1-9">
          <title>Internal Simulator</title>
          <p>Change parameters</p>
          <p>Result output
Change parameters</p>
          <p>Result output
Change parameters
Result output</p>
        </sec>
        <sec id="sec-2-1-10">
          <title>External simulator (optional)</title>
        </sec>
        <sec id="sec-2-1-11">
          <title>External</title>
        </sec>
        <sec id="sec-2-1-12">
          <title>Simulator 1</title>
          <p>e
c
a
Itfrgn External
e
in Simulator 2
m
m
a
r
g
o
r
P
n
o
it
a
c
il
p
p
A
g
n
i
r
e
e
tS External</p>
        </sec>
        <sec id="sec-2-1-13">
          <title>Simulator N</title>
          <p>either an internal or an external simulator. Internal simulators are implemented
inside the server which currently supports deterministic, stochastic, and hybrid
algorithms, while external simulators are de ned by the user and dynamically
linked to the running server.</p>
          <p>The steering application programming interfaces (APIs) are used to
incorporate an external simulator into the steering server. Additional responsibility
of the API library is to facilitate the connections between the di erent
framework components. More speci cally, it is used to carry out the communication
between the steering GUI and the steering server.</p>
          <p>Finally, this versatile framework permits the simulation to be executed
remotely using an external simulator developed by the user (optional component).
The communication between this external simulation modules and the other
architecture components takes place through the steering APIs. This means that
with modest e ort, users can include their own favourite simulators and perform
the monitoring and steering tasks by help of the other framework components.
2.2
At the core of the architecture is the steering server. To support true
collaboration between di erent systems biologists, the steering server is designed to be
multi-user, multi-threaded, multi-model and multi-simulator. The server records
internally information about users, model speci cation, as well as Petri net de
nition. Moreover, the server is shipped with a default set of simulators to permit
the simulation of complex biological pathways without any additional
components.</p>
          <p>
            Multi-users feature allows for more than one user to simultaneously share the
same model and collaboratively steer the running simulation to get more insights
of the problem under study. Computational steering could promote knowledge
sharing between users of di erent background [
            <xref ref-type="bibr" rid="ref13">13</xref>
            ]. Furthermore, multi-models
and multi-threaded features coupled by multi-simulators capabilities of Snoopy
render the concurrent execution of multiple models and exible switching
between di erent intermediate results.
          </p>
          <p>
            The primary building block of the steering server is the user model. Users
submit their models remotely to the steering server and permit others to use
them. A model consists of the Petri net de nition, user views, simulation result,
and the currently allocated simulator to produce model dynamics. Thus, models
inside the steering server are de ned in terms of Petri nets, which in turn are
speci ed by places, transitions, parameters and the connections between places
and transitions. More elaborated tutorials of how to use Petri nets to model
biochemical networks can be found in [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ]. The internal representation of the server
data structures correspond to the graphical representation of the biochemical
networks. The model kinetics are speci ed by the transition rates, while the
initial state is represented by initial place markings. Additionally, each model has
a set of views associated with it. Views are manipulated by users using the
steering GUI and submitted to the server for further download by other users. The
main functionalities of model views is to give users the opportunity to monitor
simulation results from di erent perspectives with di erent settings. Moreover,
intermediate and nal results of the simulator are maintained and viewed by
collaborative users on their terminals. Finally, each model has its own simulator
associated with it. Model simulator runs independently from other simulators
which are simultaneously running on the server.
          </p>
          <p>Furthermore, di erent users can connect and disconnect from running servers
without a ecting the other connected users and running models. Moreover, data
coherence is maintained transparently from the users by using internally
synchronised objects. Users can share the same model simultaneously and learn
from each others through steering of model parameters.</p>
          <p>The steering process takes place through an internal scheduler of the
steering server. Each model has its own scheduler which coordinates the operation
of the associated simulator. When a user submits a remote command from the
GUI client, the current model scheduler adds this command to what is called
TO-DO list. Later on, when the simulator is ready to dispatch this command,
the command is executed and its e ect is displayed to peer users. The steering
commands can be: altering model parameters, altering place marking, restarting,
pausing, stopping the simulator, etc. The reason behind such an organisation is
that we can not steer the biochemical simulation at any point of execution, we
have to wait for a suitable time point before the change can take place.
Furthermore; using such an approach, the simulator does not need to wait for the user
input and accordingly eliminates the delay due to the incorporation of
computational steering into the simulation algorithm. The appropriate time point of
a change depends on the simulation algorithm (i.e., continuous, stochastic, or
hybrid algorithm). For instance; appropriate time points to change in continuous
simulation is between integration steps of the ordinary di erential equations. In
case of con icts between di erent users sending the same steering command to
the same running model at the same simulation time point (e.g., two users want
to change model parameters at time 20), only the latest command will take e ect
and consequently other users are informed of such situation.</p>
          <p>Nevertheless, the aforementioned issues should rather be kept hidden from
the user. Users might view the server as a simulator which produces model
dynamics. All of the interactions between the user and the steering server are
carried out using the graphical user interface. Accordingly, it does not matter
from users point of view, where the steering server is located. Moreover, in case
of legacy code, there is no direct relationship between the user and the external
simulator. Instead, the steering server plays the role of mediator between the
user interface and the external data source.
2.3</p>
        </sec>
      </sec>
      <sec id="sec-2-2">
        <title>Graphical User Interface</title>
        <p>The ultimate goal of the Steering GUI is to provide the user with a remote
control-like facility to interact with the currently running models. The connection
between the steering GUI and the steering server is dynamically established,
meaning that a connection does not need to be established in advance before the
simulation start.</p>
        <p>Among the helpful features that Snoopy's steering GUI provides are: viewing
the running models inside a remote server, selecting between di erent
simulator algorithms, changing the simulation key parameters and the current Petri
net marking, providing the user with di erent views of the simulation results
including intermediate and nal outputs, and remotely changing the simulator
properties. Figure 2 provides a screenshot of Snoopy's steering GUI.</p>
        <p>In a typical application scenario, a user constructs the biochemical reaction
network using a Petri net editing tool (e.g., Snoopy). Afterwards, the Petri net
model is submitted to one of the running servers to quantitatively simulate it.
Later, other users can adapt their steering GUIs to connect to this model. One of
the connected users initialises the simulation while others could stop, pause, or
restart it. When the simulator initially starts, it uses the current model settings
to run the simulation. Later, other users can remotely join the simulation and
change model parameters and the current marking. See Figure 3 for a graphical
illustration of such an application scenario.
To keep the computational steering framework simple, yet extendable; an API
library will be of paramount importance. Modern software permits users to extend
existing capabilities by adding new features or improving existing ones. Such
extensions could be deployed using, e.g., plug-in or API calls. For our purpose,
we adapt the concept of APIs to provide involved functionalities to advanced
users. The main roles of the API library in our framework are: extension of the
introduced framework to include additional simulators, communication between
di erent framework components, and user ability to design a new user interface
as well as visualisation modules that are compatible to communicate with other
components. Figure 4 illustrates the di erent classes of our implementation of
the steering API library.</p>
        <p>While our implementation of the framework comes with a set of full- edged
simulators (see Section 2.5), it is possible for users to have their own simulation
code included in the framework of Snoopy. Snoopy's steering API library renders
it possible to convert such batch simulation code into an interactive one.</p>
        <p>Furthermore, the API library makes the entire design of the framework easy
to be implemented and simultaneously promotes the reuse of existing code. For
instance, the steering server and the steering GUI use the same API library
to communicate with each other. Additionally, users are not restricted to use
the same user interface illustrated in Figure 2; instead, they could implement
their own dialogs and use their favourite visualisation libraries. The existence
of such an API library ensures that the newly designed GUI is compatible to
communicate with other framework components.</p>
        <p>In terms of functionality, Snoopy's steering API can be grouped into four
components: communication, data structures, control commands, and end point
components. The communication part provides an easy-to-use and portable tool
to send and receive data between two connected entities. The provided APIs
could send and receive simple data types (e.g., integer, double, or character),
or compound types (e.g., 1D vector or 2D vectors). Moreover, the API library
provides two special data structures to help organising the simulation code
inside clients and servers: models and model views. The former one is used to
encapsulate the Petri net model including all the necessary information about
places, transitions, and arcs, while the latter data structure facilitates the
organisation of model views inside individual models. Models could contain multiple
views to provide more elaborated ways of understanding the simulation results.
Please notice that models can be extended to include coloured information as
illustrated in Figure 4.</p>
        <p>Generally speaking, computational steering provides three main
functionalities: simulation, visualisation, and control. The control commands enable the
user to start, restart, stop, and pause the simulation. They provide a way to
manage the remotely running simulation. Additionally, changing parameter
values or asking to refresh the current simulation output is also considered as a
steering command.</p>
        <p>Finally, the overall framework can be viewed as consisting of two
communicating entities: clients and servers. Clients issue requests and servers reply to
these queries. The API library supports the implementation of those two entities
by providing two classes: spsa::SteeringServer and spsa::SteeringClient (compare
Figure 4).
2.5</p>
      </sec>
      <sec id="sec-2-3">
        <title>Simulators</title>
        <p>To combine both extendibility and ease of use, the proposed framework comprises
two types of simulators: internal and external simulators.</p>
        <p>
          Internal simulators are implemented as part of the steering server. No
additional work is required to use them directly from Snoopy. Currently, three
categories of simulation approaches are implemented: continuous, stochastic and
hybrid [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. Under each category, some speci c algorithms are provided. For
instance, under continuous simulation, users can select from simple xed-step-size
unsti solvers (e.g., Euler) to more sophisticated variable-order, variable-step,
multi-step sti solvers (e.g., Backward Di erentiation Formulas [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]), or hybrid
simulation with either static or dynamic partitioning [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. Snoopy provides
steering commands to all of these algorithms. See [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], for more information about
simulating continuous, stochastic and hybrid Petri nets using Snoopy.
        </p>
        <p>External simulators are developed by the user to implement a particular
simulation algorithm or to reuse existing code. In the latter case, the simulation
code may be maintained and debugged for a long period of time. Trying to build
it from scratch as an interactive one, will require substantial amount of work.
Integrating such code into Snoopy's computational steering framework will save
the user precious time and perform the required task.</p>
        <p>When an external simulator is integrated into the framework, the simulation
code and the server will share the same memory space which in turn saves
communicating the simulation results from/to the running server. The API library
supports the registration of the simulation data to the server which could later
be used to accommodate the GUI requests.</p>
        <p>R9
R11</p>
        <p>R10</p>
        <p>R8</p>
        <p>R7</p>
        <p>mRNA_G1
A</p>
        <p>G1R_a5ctive
9
R2
Generally speaking, there are many potential applications of computational
steering in the context of kinetic modelling of biochemical networks. Among
these application scenarios are oscillation, steady state analysis, parameter
estimation and bifurcation analysis. For instance, while the system is in a steady
state, the user can perturb it by changing some parameter values and
monitor how the model reacts to such changes. In this section, we consider one of
these applications as a case study to illustrate the operations of the proposed
framework, namely the circadian oscillation model.</p>
        <p>
          In some organisms, there is a control mechanism which is responsible for
ensuring a periodic oscillation of certain molecular species [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. This phenomenon
is known as circadian rhythm and it can be found in many organisms (e.g.,
Drosophila). In this example, we consider a simple model [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] which
demonstrates such oscillation. The model consists of two genes which are represented
in Figure 5 by two places G1 and G2. It includes also one activator and one
repressor which are represented by the places A and R, respectively. The
activator and repressor control the two genes and their mRNAs, mRNA G1 and
mRNA G2. A and R can be activated to form a complex A R which takes place
through reaction R12.
(b)
100
        </p>
        <p>
          In previous studies (e.g., [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]), it has been shown that there are some key
parameters of this model that control its oscillation. Among these parameters is
K17. Using small values of K17 (e.g., less than 0.08), the model does not produce
oscillation when it is simulated deterministically (see [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] for the other simulation
approaches), while the model exhibits oscillation for other values of K17 (e.g.,
greater than 0.1). This example demonstrates how computational steering can
be intuitively used to study the e ects of repetitively changing K17 during the
simulation after the model has been formally de ned as shown in Figure 5.
        </p>
        <p>Figure 6a gives simulation results of the model de ned in Figure 5 for K17 =
0:2. Testing other values of K17 would require repeating the computational
experiment from scratch using the traditional simulation approach. Figure 6b
shows e ects of changing the value of K17 ve times during the simulation. For
computational intensive models, computational steering will inevitably reduce
the overall required time to carry out such di erent experiments.</p>
        <p>
          For stress testing of our implementation of the proposed framework, a colored
version of the model has been used (see [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] for more details of creating a colored
version of a low level-Petri net). The created colored Petri net represents 50; 000
copies of the one in Figure 5; it consists of 450; 000 places, 900; 018 transitions
and 1; 750; 035 arcs.
4
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Conclusion and Future Work</title>
      <p>In this paper, we have introduced a framework for combining computational
steering and Petri nets to model and simulate biochemical networks. The
proposed architecture consists of four interdependent components which can run
on the same computer or could be distributed across di erent machines. Our
implementation of the steering GUI is provided as part of Snoopy which can
be downloaded from http://www-dssz.informatik.tu-cottbus.de/snoopy.
html. The steering server is available upon request. Moreover, this paper
proposes new features of biochemical kinetic modelling software to support
interactivity.</p>
      <p>
        The current framework could be extended from di erent perspectives to
provide more features to the user. Condition-based steering is one of these
extensions. Condition-based steering means that the user de nes some conditions
and their corresponding response before the simulation starts. Later, during the
simulation, the simulator checks them and if one or more conditions hold, the
corresponding actions take place. It is similar to scheduled transitions which
have been presented in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. However, condition-based steering will give more
exibilities to include other rules which can not be implemented on the Petri
net level.
      </p>
      <p>The implementation of the steering server could be extended to add some
security rules to prevent unauthorised users to access it. Moreover, users roles
could be de ned on the model base (i.e., which user can access which model and
the type of access).</p>
      <p>Backtracking is another important aspect to permit the user to rollback to a
previous path of the simulation. This feature will enhance the user interaction
of biochemical simulation and consequently give the user better understanding
of the problem under consideration.</p>
    </sec>
    <sec id="sec-4">
      <title>Acknowledgments</title>
      <p>Mostafa Herajy is supported by the GERLS (German Egyptian Research Long
Term Scholarships) program, which is administered by the DAAD in close
cooperation with the MHESR and German universities. The authors would like also
to thank Christian Rohr for his valuable comments during the implementation.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Bazilevs</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marsden</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>di Scalea</surname>
            ,
            <given-names>F.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Majumdar</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tatineni</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Toward a computational steering framework for large-scale composite structures based on continually and dynamically injected sensor data</article-title>
          .
          <source>Procedia Computer Science</source>
          <volume>9</volume>
          (
          <issue>0</issue>
          ),
          <volume>1149</volume>
          {
          <fpage>1158</fpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>David</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Alla</surname>
          </string-name>
          , H.: Discrete, Continuous, and Hybrid Petri Nets. Springer (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Funahashi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Matsuoka</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jouraku</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Morohashi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kikuchi</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kitano</surname>
          </string-name>
          , H.:
          <source>CellDesigner 3</source>
          .5:
          <string-name>
            <given-names>A</given-names>
            <surname>Versatile Modeling</surname>
          </string-name>
          <article-title>Tool for Biochemical Networks</article-title>
          .
          <source>Proceedings of the IEEE</source>
          <volume>96</volume>
          (
          <issue>8</issue>
          ),
          <volume>1254</volume>
          {
          <fpage>1265</fpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Geist</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kohl</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Papadopoulos</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          : CUMULVS:
          <article-title>Providing Fault-Tolerance, Visualization and Steering of Parallel Applications</article-title>
          .
          <source>International Journal of High Performance Computing Applications</source>
          <volume>11</volume>
          (
          <issue>3</issue>
          ),
          <volume>224</volume>
          {
          <fpage>236</fpage>
          (
          <year>1997</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Heiner</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gilbert</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Donaldson</surname>
          </string-name>
          , R.:
          <article-title>Petri nets for systems and synthetic biology</article-title>
          . In: Bernardo,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Degano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Zavattaro</surname>
          </string-name>
          ,
          <string-name>
            <surname>G</surname>
          </string-name>
          . (eds.)
          <source>Formal Methods for Computational Systems Biology, Lecture Notes in Computer Science</source>
          , vol.
          <volume>5016</volume>
          , pp.
          <volume>215</volume>
          {
          <fpage>264</fpage>
          . Springer Berlin / Heidelberg (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Heiner</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Herajy</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rohr</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwarick</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Snoopy { a unifying petri net tool</article-title>
          . In: Haddad,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Pomello</surname>
          </string-name>
          ,
          <string-name>
            <surname>L</surname>
          </string-name>
          . (eds.)
          <source>Application and Theory of Petri Nets, Lecture Notes in Computer Science</source>
          , vol.
          <volume>7347</volume>
          , pp.
          <volume>398</volume>
          {
          <fpage>407</fpage>
          . Springer Berlin / Heidelberg (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Hellander</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , Lotstedt, P.:
          <article-title>Hybrid method for the chemical master equation</article-title>
          .
          <source>J. Comput. Phys</source>
          .
          <volume>227</volume>
          ,
          <issue>100</issue>
          {
          <fpage>122</fpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Herajy</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heiner</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Hybrid representation and simulation of sti biochemical networks</article-title>
          .
          <source>Nonlinear Analysis: Hybrid Systems</source>
          <volume>6</volume>
          (
          <issue>4</issue>
          ),
          <volume>942</volume>
          {
          <fpage>959</fpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Hindmarsh</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brown</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grant</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Serban</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shumaker</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Woodward</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Sundials: Suite of nonlinear and di erential/algebraic equation solvers</article-title>
          .
          <source>ACM Trans. Math. Softw</source>
          .
          <volume>31</volume>
          ,
          <issue>363</issue>
          {
          <fpage>396</fpage>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Hoops</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sahle</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gauges</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pahle</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Simus</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Singhal</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Xu</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mendes</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kummer</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>Copasi | a complex pathway simulator</article-title>
          .
          <source>Bioinformatics</source>
          <volume>22</volume>
          , 3067{
          <fpage>74</fpage>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. Jose, J.,
          <string-name>
            <surname>Hao</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Naama</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stanislas</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Mechanisms of noise-resistance in genetic oscillators</article-title>
          .
          <source>Proceedings of the National Academy of Sciences of the United States of America</source>
          <volume>99</volume>
          (
          <issue>9</issue>
          ),
          <volume>5988</volume>
          {
          <fpage>5992</fpage>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Kitano</surname>
          </string-name>
          , H.:
          <article-title>Systems Biology: A Brief Overview</article-title>
          .
          <source>Science</source>
          <volume>295</volume>
          (
          <issue>5560</issue>
          ),
          <volume>1662</volume>
          {
          <fpage>1664</fpage>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Kitano</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ghosh</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Matsuoka</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Social engineering for virtual 'big science' in systems biology</article-title>
          .
          <source>Nature chemical biology 7</source>
          (
          <issue>6</issue>
          ),
          <volume>323</volume>
          {
          <fpage>326</fpage>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Colored Petri Nets for Systems Biology</article-title>
          .
          <source>Ph.D. thesis</source>
          , Brandenburg University of Technology Cottbus - Computer Science Institute (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Mann</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Matossian</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Muralidhar</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parashar</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>DISCOVER: An environment for Web-based interaction and steering of high-performance scienti c applications</article-title>
          .
          <source>Concurrency and Computation: Practice and Experience</source>
          <volume>13</volume>
          ,
          <issue>737</issue>
          {
          <fpage>754</fpage>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Matsuno</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tanaka</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aoshima</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Doi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Matsui</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Miyano</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Biopathways representation and simulation on hybrid functional Petri net</article-title>
          .
          <source>In silico biology 3(3)</source>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Modi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Long</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Plassmann</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Real-Time Visualization of Wake-Vortex Simulations using Computational Steering and Beowulf Clusters</article-title>
          .
          <source>In: the Fifth International Conference on Vector and Parallel Processing Systems and Applications (VECPAR)</source>
          . pp.
          <volume>787</volume>
          {
          <issue>800</issue>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Moraru</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scha</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Slepchenko</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Blinov</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Morgan</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lakshminarayana</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gao</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Loew</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Virtual Cell modelling and simulation software environment</article-title>
          .
          <source>IET Syst Biol</source>
          .
          <volume>2</volume>
          (
          <issue>5</issue>
          ),
          <volume>352</volume>
          {
          <fpage>62</fpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Pickles</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Haines</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pinning</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Porter</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>A Practical Toolkit for Computational Steering</article-title>
          .
          <source>Phil Trans. R. Soc. 363</source>
          ,
          <year>1843</year>
          {
          <year>1853</year>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Ramsey</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Orrell</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bolouri</surname>
          </string-name>
          , H.:
          <article-title>Dizzy: stochastic simulation of large-scale genetic regulatory networks</article-title>
          .
          <source>J Bioinform Comput Bio</source>
          <volume>3</volume>
          (
          <issue>2</issue>
          ),
          <volume>415</volume>
          {
          <fpage>36</fpage>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Shu</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Watson</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ramakrishnan</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kamke</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Deshpande</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Computational Steering in the Problem Solving Environment WBCSim</article-title>
          .
          <source>Engineering Computations</source>
          <volume>28</volume>
          (
          <issue>7</issue>
          ),
          <volume>888</volume>
          {
          <fpage>911</fpage>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>