Caring about sharing: little b, a language for building modular models aneil mallavarapu department of systems biology harvard medical school alife-boston.

Slides:



Advertisements
Similar presentations
Chapt.2 Machine Architecture Impact of languages –Support – faster, more secure Primitive Operations –e.g. nested subroutine calls »Subroutines implemented.
Advertisements

Programming Languages and Paradigms
Look for other standards: - BioPAX (composition) - CellML (aggregation) - Other SBML L3 extensions (modules - rule-based modeling)
SBML2Murphi: a Translator from a Biology Markup Language to Murphy Andrea Romei Ciclo di Seminari su Model Checking Dipartimento di Informatica Università.
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
So What Does it All Mean? Geospatial Semantics and Ontologies Dr Kristin Stock.
CellDesigner Tutorial Laurence Calzone, Andrei Zinovyev UMR U900 INSERM/Institut Curie/Ecole des Mines de Paris Wednesday, April 30th.
Åbo Akademi University & TUCS, Turku, Finland Ion PETRE Andrzej MIZERA COPASI Complex Pathway Simulator.
© Copyright 2011 John Wiley & Sons, Inc.
XML Documentation of Biopathways and Their Simulations in Genomic Object Net Speaker : Hungwei chen.
Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.
BioNetGen: a system for modeling the dynamics of protein-protein interactions Bill Hlavacek Theoretical Biology and Biophysics Group Los Alamos National.
Bioinformatics: a Multidisciplinary Challenge Ron Y. Pinter Dept. of Computer Science Technion March 12, 2003.
Reasons to study concepts of PL
ISBN Chapter 1 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Motivation Programming Domains.
PDDL: A Language with a Purpose? Lee McCluskey Department of Computing and Mathematical Sciences, The University of Huddersfield.
Use of Ontologies in the Life Sciences: BioPax Graciela Gonzalez, PhD (some slides adapted from presentations available at
Programming Languages Structure
PML: Toward a High-Level Formal Language for Biological Systems Bor-Yuh Evan Chang and Manu Sridharan July 24, 2003.
Outline Chapter 1 Hardware, Software, Programming, Web surfing, … Chapter Goals –Describe the layers of a computer system –Describe the concept.
Module #1 - Logic Based on Rosen, Discrete Mathematics & Its Applications. Prepared by (c) , Michael P. Frank. Modified By Mingwu Chen 1 Module.
Describing Syntax and Semantics
ISBN Chapter 1 Topics Motivation Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language.
Module 2b: Modeling Information Objects and Relationships IMT530: Organization of Information Resources Winter, 2007 Michael Crandall.
1414 CHAPTER PROGRAMMING AND LANGUAGES. © 2005 The McGraw-Hill Companies, Inc. All Rights Reserved Competencies Describe the six steps of programming.
Presentation topic : LISP Amir Shahzad MCS 3 MCC
Chapter 01 Nell Dale & John Lewis.
PROGRAMMING LANGUAGES The Study of Programming Languages.
CSE 425: Intro to Programming Languages and their Design A Few Key Ideas No particular language is a prerequisite for this course –However you should be.
Introduction to Computer and Programming CS-101 Lecture 6 By : Lecturer : Omer Salih Dawood Department of Computer Science College of Arts and Science.
1 Lecture 2 : Computer System and Programming. Computer? a programmable machine that  Receives input  Stores and manipulates data  Provides output.
An Introduction to Programming and Object-Oriented Design Using Java By Jaime Niño and Fred Hosch Slides by Darwin Baines and Robert Burton.
Knowledge representation
MathCore Engineering AB Experts in Modeling & Simulation WTC.
MET280: Computing for Bioinformatics Introduction to databases What is a database? Not a spreadsheet. Data types and uses DBMS (DataBase Management System)
Korea Advanced Institute of Science and Technology, Dept. of EECS, Div. of CS, Information Systems Lab. 1/10 CS204 Course Overview Prof.
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages.
RELATIONAL FAULT TOLERANT INTERFACE TO HETEROGENEOUS DISTRIBUTED DATABASES Prof. Osama Abulnaja Afraa Khalifah
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
1 Lecture 2 : Computer System and Programming. Computer? a programmable machine that  Receives input  Stores and manipulates data  Provides output.
ACS'08, November, Venice, ITALY Designing organic reaction simulation engine using qualitative reasoning approach Y.C. Alicia Tang Tenaga Nasional.
Modular Approach To Modeling Of The Apoptosis Machinery E. O. Kutumova 1,2,*, R. N. Sharipov 1,3,2, F. A. Kolpakov 1,2 1 Institute of Systems Biology,
CS 345: Programming Language Paradigms Chris Brooks HR 510 MWF 11:00-12:05.
Module 4 Part 2 Introduction To Software Development : Programming & Languages Introduction To Software Development : Programming & Languages.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
Mining the Biomedical Research Literature Ken Baclawski.
Systems Biology Markup Language Ranjit Randhawa Department of Computer Science Virginia Tech.
 Programming - the process of creating computer programs.
Biochemical Reactions: how types of molecules combine. Playing by the Rules + + 2a2a b c.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Programming Language Descriptions. What drives PL Development? Computers are “in charge” of extremely important issues Execute a program literally. Exercise.
Course Instructor: Hira Farman Course : BY:HIRA FARMAN.
Bio-Design Automation EE5393 – University of Minnesota Brian’s Automated Modular Biochemical Instantiator.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Chapter I: Introduction to Computer Science. Computer: is a machine that accepts input data, processes the data and creates output data. This is a specific-purpose.
Perspective: Information Processing and Computation Week 11 Lecture notes INF 380E: Perspectives on Information Spring
Sub-fields of computer science. Sub-fields of computer science.
Functional Programming
Collision Theory and Logic
Zuse’s Plankalkül – 1945 Never implemented Problems Zuse Solved
Collision Theory and Logic
A I (Artificial Intelligence)
Unit# 8: Introduction to Computer Programming
Model-Driven Analysis Frameworks for Embedded Systems
Programming Languages 2nd edition Tucker and Noonan
Principles of Programming Languages
Presented By: Darlene Banta
Presentation transcript:

caring about sharing: little b, a language for building modular models aneil mallavarapu department of systems biology harvard medical school alife-boston wednesday june 15 th, 2005

the motivation today, models are monolithic and used only by a small cadre of computational biologists how can models become a part of everyday scientific life, as gene sequences have become? we need a computational framework for building models in a modular and incremental way how can we make McModelling a reality?

what is a model? a formal description of a system of interacting parts which enables some useful analysis, for example… mechanistic simulation: ODE/PDE, stochastic, boolean, multivalued discrete, hybrid, etc. steady-state analysis: flux-balance, metabolic control, null-cline analysis statistical analysis: bayes nets

i’ll show you “little b”, a programming language built in LISP, designed to enable modular description of biological systems, and write mathematical models for you.

modularity and extensibility common lisp ansi x3j13 little b core language + syntax symbolic math “x is used by y” x y biology tools MATLAB SBML? PI? GUI tools? Database? data structures and logical rules for building biochemical models. reactant reactant- type reaction reaction-type location membrane compartment aggregate enzymatic-reaction … symbolic mathematics unit dimension base-dimension gauss quantity polynomial rational- polynomial var tvar cvar dvar… object-oriented data structures & syntax + rule- based logic. define defcon defprop defrule defmethod { } – infix operator, [ ] – object operator. – field-access operator widely supported standard free & commercial compilers, tools, libraries core language syntax, types and functions integer, bignum, float, complex, string, list, array types, support for classes, structures, functions units & dimensions models

toy egf receptor model - parts: egf egfr mapkkkmapkkk* mapkkmapkk* mapkmapk* “egfr+egf” “under the hood”

toy egf receptor model - reactions: mapkkkmapkkk* mapkkmapkk* mapkmapk* egf egfr “egfr+egf”

toy egf receptor model - mechanisms: mapk__mapk__* K provide mechanism mapk__mapk__* K + K + } }

toy egf receptor model - mathematics: given a reaction with n LHS reactants, R i with stoichiometries s i : s 1 R 1 + … s i R i … + s n R n where the reaction occurs in a location of size Z (which may be a volume, area or length). reaction rate, T (moles / size-units / seconds)= k x [R 1 ] s1 x … [R i ] si … x [R n ] sn reaction rate in moles/seconds = T x Z d[R i ]/dt = T x Z / C i where C i is the size of the compartment containing R i e.g., AB 2 T = k[A] 2 d[A]/dt = … - 2 T …. d[B]/dt = … + T … A B + C T = k[A][B] d[A]/dt = … - T … d[B]/dt = … - T Z membrane / Z compartment d[C]/dt = … + T … Z membrane Z compartment the mass action rate-method, calculates T, the rate of the reaction:

the rate-method is modular which can be substituted: implemented as a function or the adventurous can build their own…

now imagine…. libraries of such components have been previously defined by experts, and are available –over the web –in a database in your lab –in your own personal collection b enables these parts to be combined

let’s describe a situation composed of predefined parts: dish cell-a egf mapkkk egfr mapkk mapk mapkkk* ES complex (mapkkk*-mapkk) mapkk* ES complex (mapkk*-mapk) mapk*

b builds symbolic mathematical expressions: “object-oriented syntax meets symbolic math” enables programmers and theorists to write & debug functions which translate between the world of objects and the world of mathematical expressions. dish cell-a egf mapkkk egfr mapkk mapk mapkkk* ES complex (mapkkk*-mapkk) mapkk* ES complex (mapkk*-mapk) mapk*

the symbolic math subsystem is a an extensible toolkit for theoreticians to express mathematical concepts: units, dimensions quantities, gaussian distributions polynomials rational- polynomials system is extensible: possible additions: radical expressions matricies poisson distributions …others?

an extensible system of units and dimensions

ok… back to the model: dish cell-a egf mapkkk egfr mapkk mapk mapkkk* ES complex (mapkkk*-mapkk) mapkk* ES complex (mapkk*-mapk) mapk*

set initial conditions… and perform numerical integration in matlab } shorthand for setting initial condition of all reactants of a particular type

extend the model with a phosphatase: mapkkk mapkk mapkmapk* mkp mkp-gene

ion-channel example: ion ion-channel ion cell-a cell-b dish

multicellular / multicompartmental nucleus er mito { membrane apposition

modularity and extensibility common lisp ansi x3j13 little b core language + syntax symbolic math biology tools units & dimensions models aggregates

aggregates: an aggregate is a biochemical species which is composed of some number of other molecules S1S2 ? R S1 S2 “RS12” dimerizing-aggregate calculates every pairwise reaction-type which leads to formation of the complex

situation-independent encoding of reactions location-class location reaction-type reactant-type location-requirement reaction reactant

reactant-type / reactant reactant-type is used to describe types of (bio)chemical species (define ion [simple-reactant-type :location-class compartment]) (define ion-channel [simple-reactant-type :location-class membrane]) reactant is used to describe a population of molecules of a particular reactant-type in a particular location: (define c1 [compartment]) (define m1 [membrane]) A.(in cell.inner) :#= [reactant A c1]  molecules of reactant-type A in c1 R.(in cell.membrane) :#= [reactant R m1]  molecules of reactant-type R in m1

reaction-type / reaction a reaction-type describes the logical requirements for a reaction: AB 2 (define A [simple-reactant-type :location-class compartment]) (define B [simple-reactant-type :location-class compartment]) (define RT1 [reaction-type {2 A} {B} compartment]) a reaction is a reaction-type in a particular location: e.g., if A.(in c1) exists, then [reaction RT1 c1] will be created if [reaction RT1 c1] exists, then B.(in c1) will be created {{{ what is required for the reaction to proceed + stoichiometry what is required if the reaction does proceed + stoichiometry class of location in which the reaction happens

membrane reactions “:c1” side “:c2” side L R + RL [reaction-type {R + L.(required :c1)} {RL} membrane] [reaction-type {C + I.(required :c1)} {C + I.(required :c2)} membrane] ligand binding “:c1” side “:c2” side C I C I membrane transport “:c1” side “:c2” side R R [reaction-type {R} {R.(required :inverse)} membrane] inversion “:c1” side “:c2” side

engineer’s “modularity” ≠ biochemist’s “modularity” hierarchical composition circuits & software: … component … pathway “flat spaghetti” composition biochemistry

how can we name objects? s e p r by user definition 2-step mechanism implies “r.es.1” [simple-reactant-type (_id rs.es.1)] by hierarchical definition A B {A + B} [aggregate {A + B}] by composition A B C ABC BAC by structure B AC

graph-based reactants molecular complexes may be defined according to coarse-grained structure: e.g., scaffold (S) and two kinases (K1, K2) k1 sh3 ps atomic reactant-types are defined with user-generated symbols (as before), but… also include sites of interaction reactant-types representing multimeric complexes are described using graphs s 1 2 k2 sh3 ps s 1 2 k1 sh3 ps k2 sh3 ps u p G = {V,E} where V = verticies, E= edges V = s.(site 1), s.(site 2), k1.(site :sh3)… E = s.(site 1) (k.(site :sh3), s.(site 2) (k.(site :sh3) … k1.(site :ps) :u scaffold bound to kinases where kinase1 is unphosphorylated and kinase2 is phosphorylated

some thoughts on language design I think conventional languages are for the birds. They're just extensions of the von Neumann computer, and they keep our noses in the dirt of dealing with individual words and computing addresses, and doing all kinds of silly things like that, things that we've picked up from programming for computers; we've built them into programming languages; we've built them into Fortran; we've built them in PL/1; we've built them into almost every language. John Backus “Programs must be written for people to read, and only incidentally for machines to execute” Abelson & Sussman, Structure and Interpretation of Computer Programs “Intellectually, it is just as worthwhile to design a language programmers will love as it is to design a horrible one that embodies some idea you can publish a paper about.” Paul Graham, Five Questions about Language Design

programming languages as a medium of communication: humancomputer human familiarity brevity comprehensibility … computer uniformity non-redundancy computability code safety … from to

the core language common lisp ansi x3j13 little b core language + syntax symbolic math biology tools object-oriented data structures & syntax + rule- based logic. define defcon defprop defrule defmethod { } – infix operator, [ ] – object operator. – field-access operator units & dimensions models

future generalized scaffold and multisite phosphorylation models markov chain-based model for representing protein-DNA interactions concepts for sharing stochastic models implementation of shareable mapk, nfkb models with scaffold gui tools

modular extensible model building separation of biological understanding from mechanism and mathematical assumptions automated model construction from reusable parts extensible libraries physical units and dimensions free, open source software

thank you jeremy gunawardena craig muir, millennium pharmaceuticals matt thomson vlado gelev

some current approaches Mathematical notation: Hoffmann A, Levchenko A, Scott ML, Baltimore D. Related Articles, Links The IkappaB-NF-kappaB signaling module: temporal control and selective gene activation. Science Nov 8;298(5596): SBML: MAPK Scaffold Model Proc Natl Acad Sci U S A May 23;97(11): Scaffold proteins may biphasically affect the levels of mitogen-activated protein kinase signaling and reduce its threshold properties. Levchenko A, Bruck J, Sternberg PW.

little b was inspired by work in qualitative physics a branch of artificial intelligence which aimed to emulate human-like qualitative reasoning about the physical world (see Kuipers, Forbus, CML) a scenario is described in terms of different types of objects and their relationships “water is in a pot” “a flame is under the pot” what happens? the computer needs to be able to compute the implications of a scenario based on general rules for reasoning about physical systems