# L3F Proposal

## Contents |

## Introduction

Quantitative methods for modeling biological networks require an in-depth knowledge of the biochemical reactions and their stoichiometry and kinetics parameters. For most biological networks, this knowledge is missing. To supply this information, qualitative methods are developed[3], such as the use of gene expression data from functional genomic experiments.

The number of people using these types of methods is increasing. Consequently, the amount of (incompatible) software is also increasing. The aim of this document is to propose a possible package (extension) for the next version of SBML: SBML version 3. This package, called QUAL (previously L3F), should re-use the basics elements of SBML such as species, compartment, SBase… and extend SBML with new elements to encode qualitative models.

## Qualitative models

### Logical model

Initiated in the 60's by Kauffman [6], Boolean models describe the different elements of a network, with Boolean variables expressing (1) for active or (0) for inactive. Each variable follows a logical formula defined by the interactions with the other elements; one can stimulate or inhibit another. Figure 1 shows a simple Boolean network constituted of 3 genes, A, B and C. The gene A is activated by the gene B and inhibited by C. B is activated by A, and C is activated by B. This network could be represented using the following formula : A := B ∧ ¬C , B := A, C := B

The Boolean networks were then generalized to multivaluate logical networks. These models allow variables to take more than two values, called activities. The formula describing the value of the variable can be split into smaller logical formulae, each describing one activity. If node A has 3 possible activities 0, 1 and 2, and nodes B and C are Boolean, the figure 1 could represent the following formulae :

$$A := \begin{cases} 2 & if \quad A = 2 \land B = 1 \land C = 0\\ 1 & if \quad (A = 2 \land B = 1 \land C = 1) \lor (A = 0 \land B = 1 \land C = 0)\\ 0 & otherwise\\ \end{cases}~,\quad B := A = 1,\quad C := B = 1 $$

### Petri net

Also originating in the 60s, Petri networks, devised by Carl Adam Petri [7, 8], are used to describe discrete distributed systems. They have been successfully used to model biological systems [9, 1, 4, 5, 2].

A basic Petri net is a directed bipartite graph. It consists of 2 kind of nodes: the "places" noted P = P1 , P2 , … , Pn, drawn with circles; and the "transitions" noted T = T1 , T2 , … , Tm, drawn with rectangles. The "directed arcs" go from a place to a transition or from a transition to a place, and they are drawn with arrows. Each place could carry zero or one token, drawn with a small black, filled circle.

The dynamics of the network are modeled with the transitions. The transitions are capable of transferring tokens between places. The transfer called "firing" occurs when all the places with arcs incoming to the transition are marked with a token and the outgoing places are not marked, and then the outgoing place becomes marked. If there are multiple outgoing places, then a place should be chosen randomly or all the possible choices should be computed. At each iteration of the system, all the transitions try to fire.

Basic Petri networks have many extensions, generally called high level Petri networks. The place/transitions networks (P/T nets) allow multiple tokens per place and weight on the arcs. The stochastic Petri nets (SPN) add a probability of firing to each transition. The timed Petri networks (TPN) add timers on arcs, places, transitions or tokens. The colored Petri networks (CPN) allow multiple type (color) of tokens...

Figure 2 shows a simple example of a basic Petri network. It involves 3 places (P1, P2 and P3)and 2 transitions (T1 and T2). P1 and P2 are marked with a token. As there are arcs between these two places and T1, the transition could fire. If it does fire, the tokens from P1 and P2 are consumed, and two tokens are produced in P2 and P3. As P2 is consumed and refilled, the arc from P2 to T1 is called a read arc.

The second transition could fire as well. If it does, the token from P1 is consumed, and a token is produced in P3. The simulation then has two possibilities: either firing T1 or T2. The simulation should make a choice or fire both into two different simulations.

## Nomenclature

In this document, the xml elements are represented in bold, e.g. **listOfInputs**. The xml attributes are in italic, e.g. *transitionEffect*. Constant values are underlined, e.g. __ 0__,

__,__

*1*__,__

*true*__.__

*false*The mathematical formulae taking place in math elements will be written in plain text instead of MathML. This is intended to help the readability of the formulae and made the listings shorter.

## Namespace

To use this extension, you should declare a separate namespace like this for its elements:

<?xml version="1.0" encoding="UTF-8"?>

<sbml xmlns="http://www.sbml.org/sbml/level2/version3" level="2" version="3"

- xmlns:qual="http://www.sbml.org/sbml/extension/qual/version1">

- [...]

## Composition diagram

Note that all the *"listOfSomething"* elements inherit from **listOf**, all the all the other elements inherit from **SBase**.

The following figure shows the composition of the elements. An arrow from A to B indicates that B is composed of A. The numbers on the arrow indicates its cardinality, i.e. the possible numbers of B.

## Presentation of the elements

### Species

In qualitative models, there is no real notion of species' concentration. Instead, each species has a discrete level generally representing an activity. For this reason, a new element, **qualitativeSpecies**, must be used in place of **species**.

**QualitativeSpecies** can use some **species** attributes: *speciesType*, *compartment*, *boundaryCondition* and *constant*. Refer to the **species** definition for theses attributes.

The level of the **QualitativeSpecies** is represented with two attributes: *initialLevel* and *maxLevel*. *InitialLevel* represents the initial level of the **qualitativeSpecies**, like *initialAmount* or *initialConcentration* for the **species**. *MaxLevel* will be discussed below.

### Transition

The element **transition** is used to represent the interactions between the **qualitativeSpecies**.
It defines a set of incoming arcs and outgoing arcs using lists of **input**s and **output**s.
It defines the different conditions where the interactions are active and what appends to the inputs and ouputs in these cases.

The incoming arcs represent the **qualitativeSpecies** having an impact on the level of the outgoing species. A **qualitativeSpecies** may be an **input** and an **output** of a **transition**.

### Dynamics of the model

The simulation of the model occurs by successive iteration steps. At each step of the simulation, all the transitions are fired if they are enabled. A firing consists of the modification of the level of their outputs, and maybe of their inputs. To encode the simulation rules in the document, two things need to be known: when the transitions are enabled; and how the species pointed to by their arcs are modified.

The element **listOfLogicalFunctions** contains a **defaultFunction** element and any number of **logicalFunction**s.
The aim of the **logicalFunction**s is to indicate the global effect of the transitions. Then the global effect will be used to compute the local effect on each input/output.

To compute the value of the global effect, all the formulae in the **math** child of the **logicalFunction** elements should be evaluated.
In a simple case, the global effect is equal to the *result* attribute of the *true***logicalFunction**. If no **logicalFunction** returns __ true__, then the global effect is set to

**defaultFunction'**s

*result*attribute. See further "Complex case".

When the global effect (noted G below) is known, we compute the local effect on each **qualitativeSpecies** pointed by the **input**s and **output**s.
Each **input** and **output** has an attribute *transitionEffect* which can take two values: __ assignment__ or

__.__

*change*- If
*transitionEffect*isthen*assignment*- The level of the
**qualitativeSpecies**associated to each**input**of the**transition**is set to G multiplied by the**input'**s*consumptionFactor*. - The level of the
**qualitativeSpecies**associated to each**output**of the**transition**is set to G multiplied by the**output'**s*productionFactor*.

- The level of the

- If
*transitionEffect*isthen*change*- The level of the
**qualitativeSpecies**associated to each**input**of the**transition**is decreased by G multiplied by the**input'**s*consumptionFactor*. - The level of the
**qualitativeSpecies**associated to each**output**of the**transition**is increased by G multiplied by the**output'**s*productionFactor*.

- The level of the

The level of a **qualitativeSpecies** is bounded to [0, +∞]. If the **qualitativeSpecies'** attribute *maxLevel* is defined, then the level is bounded to [0, maxLevel].
If the level of a **qualitativeSpecies** goes out of its bounds, an error must be raised. To use the attribute *maxLevel* in a formula, there is a **csymbol** taking a **qualitativeSpecies** sID to return the value. The **csymbol** must have the *definitionURL* set to http://www.sbml.org/sbml/extension/qual/maxLevel.

For example, to get the *maxLevel* of the **qualitativeSpecies** X:

<apply>

- <csymbol definitionURL="http://www.sbml.org/sbml/extension/qual/maxLevel">
- <ci>X</ci>

### Complex cases

#### Multiple logicalFunctions or transitions with different results.

There is a fundamental constraint: Multiple **logicalFunction**s with different *result*s must not be able to occur at the same time in the same conditions.

Multiple **logicalFunction**s could have the same *result* value. The global effect will be set to this *result* if at least one of the **logicalFunction**s is __ true__. Joining all the

**logicalFunction**s with a mathematical

__operator leads to the same model.__

*or*It is possible to have multiple **transition**s with overlaping **output**s. (For example, two **transition**s, where T1 has two **output**s A and B, T2 has two **ouputs** B and C. B is common to both **transition**s.)
In this case all the **transition**s must have the same **defaultFunction** *result*. The **ouput**s affected by only one **transition** must be considered independantly. The **ouput**s affected by multiple **transition**s must be considered like a new **transition** made with a union of all the **logicalFunction**s of all the **transition**s.

### Auto-regulation

If a **qualitativeSpecies** is an input and an output in the same transition, to represent an auto-regulation for example, then the input must have a *transitionsEffect* set to __ change__ and a

*consumptionFactor*set to

__. The output can have any value.__

*0*### Encoding "time" in the model

The **transition** element has an attribute *temporizationType* indicating the type of time the simulation must consider. It can take three values: __ priority__,

__or__

*proportion*__. The__

*delay***logicalFunction**has an abstract attribute

*temporization*. Its value is equal either to its attribute

*temporizationValue*or to its child

**temporizationMath**. Only one of them can be set for each

**logicalFunction**.

Encoding time allows several **logicalFunction**s leading to different *result*s to be evaluated to __ true__ in the same conditions (with inclusive formulae).

- If temporizationType is
then the*priority**result*is the**logicalFunction**with the lowest*temporization*. - If temporizationType is
then the*proportion**result*__..__? ?? - If temporizationType is
then*delay*__..__? ??

## References

[1] C. Chaouiya. Qualitative modelling of genetic networks: From logical regulatory graphs to standard petri nets. LNCS, 3099(137-156), 2004.

[2] J-P Comet. Modeling multi-valued genetic regulatory networks using high-level petri nets. LNCS, 3536:208?227, June 2005.

[3] Hidde de Jong. Modeling and simulation of genetic regulatory systems: A literature review. Journal of Computational Biology, 9(1):67?103, 2002.

[4] E.Simão. Qualitative modelling of regulated metabolic pathways: Application to the tryptophan biosynthesis in e.coli. Bioinformatics, 21:190?196, 2005.

[5] M. Heiner. Analysis and simulation of steady states in metabolic pathways with petri nets. CPN?01, pages 15?34, 2001.

[6] S. A. Kauffman. Metabolic stability and epigenesis in randomly constructed genetic nets. Journal of Theoretical Biology, 22(3):437?467, 1969.

[7] C. A. Petri. Fundamentals of a theory of asynchronous information ﬂow. IFIP Congress, pages 386?390, 1962.

[8] C. A. Petri. Concepts of net theory. MFCS, pages 137?146, 1973.

[9] Reddy V.N. Qualitative analysis of biochemical reaction systems. Comput. Biol. Med., 26(1):9?24, Jan 1996.