sbml2murphi: a translator from a biology markup language to murphy

35
SBML2Murphi: a Translator from a Biology Markup Language to Murphy Andrea Romei Ciclo di Seminari su Model Checking Dipartimento di Informatica Università di Pisa Pisa, April 2009

Upload: waldo

Post on 23-Feb-2016

45 views

Category:

Documents


0 download

DESCRIPTION

SBML2Murphi: a Translator from a Biology Markup Language to Murphy. Andrea Romei Ciclo di Seminari su Model Checking Dipartimento di Informatica Università di Pisa Pisa , April 2009. Targets of this talk. Provide a quick look to Murphi descriptive language - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

SBML2Murphi: a Translator from a Biology Markup Language to Murphy

Andrea RomeiCiclo di Seminari su Model

CheckingDipartimento di Informatica

Università di PisaPisa, April 2009

Page 2: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

2

Targets of this talk

Provide a quick look to Murphi descriptive language

Show how a biological system can be modelled as a Murhpi Finite State System in an (semi-)automatic way.

Page 3: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

3

OutlineI. IntroductionII. The Murphi LanguageIII. The “sort” ExampleIV. The Systems Biology Markup

LanguageV. SBML2Murphi TranslatorVI. An example of applicationVII. Final remarks

Page 4: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

4

Introduction Model checking is the process of

checking whether a given structure is a model of a given logical formula.

Murphi is a formal verifier based on explicit state enumeration. Originally developed at Stanford, now

maintained at University of Utah. It works on various versions of Unix/Linux.

Page 5: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

5

Murphi in brief Murphi takes a Finite State System S and checks

that a given invariant property for S is satisfied

An execution is a finite sequence of states s0,s1,…: s0 is one of the start states si+1 is obtained by applying one transition rule whose

condition is true in si and whose action transforms si in si+1 The invariants are applied whenever a state is explored

si can satisfy several conditions, the verifier must cover all the possibilities

Page 6: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

6

The Murphi Program A Murphi program has the following

structure constant, type, and variable declarations procedure and function declarations rules, start states, and invariants

A Murphi program implicitly determines a state graph (i.e. an assignment of a value to each global variable)

Page 7: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

7

Constants, types and variables

Murphi supports the specification of constants, variables and types The simple types are boolean,

enumerations, finite sub-ranges of integers The compound types are arrays or records

of compound or simple types Sub-ranges and enumerations are

important to avoid memory consumption

Page 8: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

8

Constants, types and variables

Page 9: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

9

Functions and procedures Functions and procedures can have

side effects Formal parameters declared “var” are

passed by reference. Formals that are not declared “var” are

passed by reference, but the function or procedure is not allowed to modify them.

Page 10: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

10

Rule A rule determines a

transition from one state of the finite automaton to another It consists of a body and a

condition A program must have at

least one rule

Page 11: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

11

Start State A start state is a special type of rule

It is only executed at the beginning of an execution

A start state must assign a value to every global variable

Page 12: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

12

Invariant An invariant is a boolean expression

that references the defined variables Its value doesn’t change during the

program execution An invariant is a special rule

Page 13: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

13

Example: sorting by swapping

Array of integers 0..N-1 and pointers for swapping

Swaps the positions “i” and “j” of the array

Increases the input pointer mod N

Page 14: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

14

Example: sorting by swapping

Increments the “i” pointer

Increments the “j” pointer

Swaps the elements pointed by “i” and “j” if they are not in the right order

Page 15: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

15

Example: sorting by swapping

The program violates invariant when the data is sorted

Page 16: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

16

Example: sorting by swapping

Murphi usage: Write sort.m Run the Murphi compiler over it by typing

“./mu sort.m”; this yields a file “sort.C” Run the C++ compiler over “sort.C”

together with the verifier code Run “sort.exe –ta”

Page 17: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

17

Example: sorting by swapping

Page 18: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

18

SBML (from wikipedia) The Systems Biology Markup Language

(SBML) is a machine-readable language for representing models of biochemical reaction networks It is based on the XML technology

SBML can represent metabolic networks, cell-signaling, pathways, regulatory networks and other kinds of systems studied in systems biology

Page 19: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

19

SBML purposes SBML has three main purposes

enabling the use of multiple software tools without rewriting models for each tool

enabling models to be shared and published ensuring the survival of models beyond the

lifetime of the software used to create them

SBML serves as a “lingua franca”

Page 20: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

20

SBML Hierarchy

Page 21: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

21

Species and Reactions A specie is a substance or entity that takes

part in a reaction (e.g. the glucose molecule) A reaction is a statement describing some

transformation that can change the amount of one or more species It describes how certain entities (reactants) are

transformed into certain other entities (products) It has associated a kinetic rate expression

describing how quickly it takes place

Page 22: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

22

SBML Example The reactions of human CO

hemoglobin An equation used in enzyme

characterizations formulated by A. Hill in 1910 to describe the sigmoidal binding curve of hemoglobin

Five species: S0 , S1 , S2 , S3 , S4 Four reactions:

Hill-l2.xml

Page 23: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

23

Why an SBML2Murphi translator?

Reactions are driven by empirical laws Species in a model change their values

along the time The target may be to verify some basic

properties of a biological model E.g. verify the consistency of the model

when the initial concentrations of the species varies in a computed range

Page 24: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

24

The Law of Mass Action It states that the rate of a chemical

reaction is proportional to the probability that the reacting molecules will be found together in a small volume Produces a differential equation for each

distinct specie belonging to a reaction The system of differential equations can be

solved to determine how species change values against the time

Page 25: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

The Law of Mass Action: Example

Reactants

Products

Kinetic Rate

Page 26: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

26

The law of Mass Action: Example

Page 27: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

27

Reactions in SBML

Page 28: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

28

The Role of the Translator

Murphi SBML How

Variables &Constants

Species Directly by parsing the SBML model

State transitions

Reactions

Computed by means of a procedure that implements the computation of the law of mass action

Start states ? ?

Invariants ? ?

Page 29: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

29

The “Hill” model in Murphi

Page 30: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

30

The “Hill” model in Murphi

Page 31: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

31

The “Hill” model in Murphi The start states in the Hill model

indicate what happens when the initial concentrations vary. I used about 500 assignments to S1, S2

and S3 by varying three parameters. I got about 500 starting states each of

them corresponds to a different experiment (i.e. an initial concentration).

Page 32: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

32

The “Hill” model in Murphi The invariant is used to test the consistency

of the model by varying the initial concentrations

I assigned to “Hill.m” ranges in which the species must fall into during the experiment 0 <= S1 < 16 0 <= S2 < 0.5 0 <= S3 < 0.5

Page 33: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

33

Conclusion

Murphi SBML How

Variables &Constants

Species Directly by parsing the SBML model

State transitions

Reactions

Computed by means of a procedure that implements the computation of the law of mass action

Start states - Empirical assignments

Invariants - Ranges in which the species fall into

Page 34: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

34

References

Page 35: SBML2Murphi:  a Translator from a Biology Markup Language to Murphy

35

References