360 likes | 452 Views
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
E N D
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 • Show how a biological system can be modelled as a MurhpiFinite State System in an (semi-)automatic way.
Outline • Introduction • The Murphi Language • The “sort” Example • The Systems Biology Markup Language • SBML2Murphi Translator • An example of application • Final remarks
Introduction • Model checking is the process of checking whether a given structure is a model of a given logical formula. • Murphiis 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.
Murphi in brief • Murphitakes 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
The Murphi Program • A Murphiprogram has the following structure • constant, type, and variable declarations • procedure and function declarations • rules, start states, and invariants • A Murphiprogram implicitly determines a state graph (i.e. an assignment of a value to each global variable)
Constants, types and variables • Murphisupports 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
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.
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
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
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
Example: sorting by swapping Array of integers 0..N-1 and pointers for swapping Increases the input pointer mod N Swaps the positions “i” and “j” of the array
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
Example: sorting by swapping The program violates invariant when the data is sorted
Example: sorting by swapping • Murphiusage: • Write sort.m • Run the Murphicompiler 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”
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
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”
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
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:
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
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
The Law of Mass Action: Example Kinetic Rate Reactants Products
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).
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