Title: caring about sharing: little b, a language for building modular models
1caring about sharing little b, a language for
building modular models
alife-boston wednesday june 15th, 2005
- aneil mallavarapu
- department of systems biology
- harvard medical school
2the 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?
3what 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
4ill show you little b,
- a programming language built in LISP,
- designed to enable modular description of
biological systems, - and write mathematical models for you.
5modularity and extensibility
tools
models
symbolic math
biology
units dimensions
little b core language syntax
common lisp ansi x3j13
x
y
x is used by y
6toy egf receptor model - parts
egf
egfregf
egfr
mapkkk
mapkkk
mapkk
mapkk
mapk
mapk
7toy egf receptor model - reactions
egf
egfregf
egfr
mapkkk
mapkkk
mapkk
mapkk
mapk
mapk
8toy egf receptor model - mechanisms
K
provide mechanism
K
K
mapk__
mapk__
mapk__
mapk__
9toy egf receptor model - mathematics
the mass action rate-method, calculates T, the
rate of the reaction
T kA2 dA/dt - 2 T . dB/dt T
e.g.,
2
A
B
A
C
T kAB dA/dt - T dB/dt - T
Zmembrane / Zcompartment dC/dt T
B
Zcompartment
Zmembrane
- given a reaction with n LHS reactants, Ri with
stoichiometries si - s1R1 siRi snRn
- 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 R1s1 x Risi x Rnsn
- reaction rate in moles/seconds T x Z
- dRi/dt T x Z / Ci
- where Ci is the size of the compartment
containing Ri
10the rate-method is modular
implemented as a function
which can be substituted
or the adventurous can build their own
11now 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
12lets describe a situation composed of predefined
parts
cell-a
dish
13b builds symbolic mathematical expressions
cell-a
dish
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.
14the 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?
15an extensible system of units and dimensions
16an extensible system of units and dimensions
17ok back to the model
cell-a
dish
18set initial conditions and perform numerical
integration in matlab
19extend the model with a phosphatase
mapkkk
mapkk
mapk
mapk
20ion-channel example
dish
cell-a
cell-b
21multicellular / multicompartmental
22modularity and extensibility
tools
models
symbolic math
biology
units dimensions
aggregates
little b core language syntax
common lisp ansi x3j13
23aggregates
- an aggregate is a biochemical species which is
composed of some number of other molecules
RS12
?
R
S1
S2
dimerizing-aggregate calculates every pairwise
reaction-type which leads to formation of the
complex
24situation-independent encoding of reactions
- location-class
- location
- reaction-type
- reactant-type
- location-requirement
25reactant-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
26reaction-type / reaction
- a reaction-type describes the logical
requirements for a reaction
(define A simple-reactant-type location-class
compartment) (define B simple-reactant-type
location-class compartment) (define RT1
reaction-type 2 A B compartment)
2
A
B
- 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
27membrane reactions
ligand binding
L
c1 side
R
RL
c2 side
inversion
c2 side
c1 side
R
c2 side
c1 side
28engineers modularity ? biochemists
modularity
circuits software
biochemistry
flat spaghetti composition
29how can we name objects?
by user definition
e
s
p
r
30graph-based reactants
- molecular complexes may be defined according to
coarse-grained structure - e.g., scaffold (S) and two kinases (K1, K2)
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
u
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
p
scaffold bound to kinases where kinase1 is
unphosphorylated and kinase2 is phosphorylated
31some 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
32programming languages as a medium of
communication
to
from
33the core language
tools
models
symbolic math
biology
units dimensions
little b core language syntax
common lisp ansi x3j13
34future
- 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
35modular 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
http//littleb.org
36thank you
- jeremy gunawardena
- craig muir, millennium pharmaceuticals
- matt thomson
- vlado gelev
37some 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.
2002 Nov 8298(5596)1241-5.
38little 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