SBML2Murphi: a Translator from a Biology Markup Language to Murphy Andrea Romei Ciclo di Seminari su Model Checking Dipartimento di Informatica Università.

Slides:



Advertisements
Similar presentations
Formal Methods in Software Engineering
Advertisements

Intermediate Code Generation
Chapter 7 Introduction to Procedures. So far, all programs written in such way that all subtasks are integrated in one single large program. There is.
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Programming Languages and Paradigms
1 MODULE name (parameters) “Ontology” “Program” “Properties” The NuSMV language A module can contain modules Top level: parameters less module Lower level.
Regulation of Gene Expression in Flux Balance Models of Metabolism.
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
Principles of programming languages 4: Parameter passing, Scope rules Department of Information Science and Engineering Isao Sasano.
INF 212 ANALYSIS OF PROG. LANGS Type Systems Instructors: Crista Lopes Copyright © Instructors.
Åbo Akademi University & TUCS, Turku, Finland Ion PETRE Andrzej MIZERA COPASI Complex Pathway Simulator.
Chapter 5: Elementary Data Types Properties of types and objects –Data objects, variables and constants –Data types –Declarations –Type checking –Assignment.
Chapter Four Data Types Pratt 2 Data Objects A run-time grouping of one or more pieces of data in a virtual machine a container for data it can be –system.
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages Chapter 3 : Describing Syntax and Semantics Axiomatic Semantics.
ISBN Chapter 3 Describing Syntax and Semantics.
Compiler Construction
Semantic analysis Parsing only verifies that the program consists of tokens arranged in a syntactically-valid combination, we now move on to semantic analysis,
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 330 Programming Language Structures Ch.2: Syntax and Semantics Fall 2005.
Chapter 14: Overloading and Templates C++ Programming: Program Design Including Data Structures, Fifth Edition.
Computational Biology, Part 17 Biochemical Kinetics I Robert F. Murphy Copyright  1996, All rights reserved.
Introduction to Computers and Programming Lecture 5 Boolean type; if statement Professor: Evan Korth New York University.
Gene Regulatory Networks - the Boolean Approach Andrey Zhdanov Based on the papers by Tatsuya Akutsu et al and others.
Chapter 9: Subprogram Control
1 CSC 1401 S1 Computer Programming I Hamid Harroud School of Science and Engineering, Akhawayn University
Describing Syntax and Semantics
Chapter 1 Program Design
Chapter 15: Operator Overloading
1 Chapter 2 Problem Solving Techniques INTRODUCTION 2.2 PROBLEM SOLVING 2.3 USING COMPUTERS IN PROBLEM SOLVING : THE SOFTWARE DEVELOPMENT METHOD.
Software Testing and QA Theory and Practice (Chapter 4: Control Flow Testing) © Naik & Tripathy 1 Software Testing and Quality Assurance Theory and Practice.
1/25 Pointer Logic Changki PSWLAB Pointer Logic Daniel Kroening and Ofer Strichman Decision Procedure.
Introduction to Software Testing Chapter 9.4 Model-Based Grammars Paul Ammann & Jeff Offutt
Invitation to Computer Science 5th Edition
Computer Architecture Computational Models Ola Flygt V ä xj ö University
Simple Program Design Third Edition A Step-by-Step Approach
CSC3315 (Spring 2009)1 CSC 3315 Programming Languages Hamid Harroud School of Science and Engineering, Akhawayn University
Names Variables Type Checking Strong Typing Type Compatibility 1.
Analyzing the Requirements with Formal Specifications Vienna Development Method Specification Language (VDM-SL) Book: Formal Software Development From.
CS6133 Software Specification and Verification
Balancing Equations Conservation of mass. - Describing Chemical Reactions What Are Chemical Equations? chemical formulas and other symbols instead of.
Introduction to Problem Solving. Steps in Programming A Very Simplified Picture –Problem Definition & Analysis – High Level Strategy for a solution –Arriving.
Visual Basic Programming
CONTENTS Processing structures and commands Control structures – Sequence Sequence – Selection Selection – Iteration Iteration Naming conventions – File.
ELEN 033 Lecture #1 Tokunbo Ogunfunmi Santa Clara University.
Chapter 7 Selection Dept of Computer Engineering Khon Kaen University.
Chapter 3 Part II Describing Syntax and Semantics.
8-1 Compilers Compiler A program that translates a high-level language program into machine code High-level languages provide a richer set of instructions.
Unit 3 Lesson 4 Chemical Reactions
Systems Biology Markup Language Ranjit Randhawa Department of Computer Science Virginia Tech.
Structure of Programming Languages Names, Bindings, Type Checking, and Scopes.
1 Compiler Construction (CS-636) Muhammad Bilal Bashir UIIT, Rawalpindi.
VHDL Discussion Subprograms IAY 0600 Digital Systems Design Alexander Sudnitson Tallinn University of Technology 1.
Variables reference, coding, visibility. Rules for making names  permitted character set  maximum length, significant length  case sensitivity  special.
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
Fusion Design Overview Object Interaction Graph Visibility Graph Class Descriptions Inheritance Graphs Fusion: Design The overall goal of Design is to.
Overview of Compilation Prepared by Manuel E. Bermúdez, Ph.D. Associate Professor University of Florida Programming Language Principles Lecture 2.
CS 404Ahmed Ezzat 1 CS 404 Introduction to Compiler Design Lecture 1 Ahmed Ezzat.
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 330 Programming Language Structures Operational Semantics (Slides mainly.
INTRODUCTION TO COMPUTER PROGRAMMING(IT-303) Basics.
Introduction to Algorithmic Processes CMPSC 201C Fall 2000.
Introduction to Algorithms
Chapter 9: Value-Returning Functions
Data Types In Text: Chapter 6.
Control Flow Testing Handouts
Compilers Principles, Techniques, & Tools Taught by Jing Zhang
Big-O notation.
Outline of the Chapter Basic Idea Outline of Control Flow Testing
CMPE 152: Compiler Design October 4 Class Meeting
Introduction to Algorithms
Compiler Construction
Dichotomies in CSP Karl Lieberherr inspired by the paper:
Presentation transcript:

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

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.

Outline I. Introduction II. The Murphi Language III. The “sort” Example IV. The Systems Biology Markup Language V. SBML2Murphi Translator VI. An example of application VII. Final remarks 3

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.

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 s 0,s 1,…: s 0 is one of the start states s i+1 is obtained by applying one transition rule whose condition is true in s i and whose action transforms s i in s i+1 The invariants are applied whenever a state is explored s i can satisfy several conditions, the verifier must cover all the possibilities

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)

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

8 Constants, types and variables

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.

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

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

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

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

14 Example: sorting by swapping Increments the “i” pointerIncrements the “j” pointer Swaps the elements pointed by “i” and “j” if they are not in the right order

15 Example: sorting by swapping The program violates invariant when the data is sorted

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”

17 Example: sorting by swapping

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

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”

20 SBML Hierarchy

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

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: S 0, S 1, S 2, S 3, S 4 Four reactions:

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

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

The Law of Mass Action: Example Reactants Products Kinetic Rate

26 The law of Mass Action: Example

Reactions in SBML 27

The Role of the Translator 28 MurphiSBMLHow Variables & Constants SpeciesDirectly by parsing the SBML model State transitionsReactionsComputed by means of a procedure that implements the computation of the law of mass action Start states?? Invariants??

29 The “Hill” model in Murphi

30 The “Hill” model in Murphi

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).

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 <= S 1 < 16 0 <= S 2 < <= S 3 < 0.5

Conclusion 33 MurphiSBMLHow Variables & Constants SpeciesDirectly by parsing the SBML model State transitionsReactionsComputed 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

34 References

35 References