330 likes | 426 Views
little b short course. harvard medical school sept 2006. outline. The modeler’s burden Writing Math (in Matlab); Biology (in little b) Biological concepts Break The core language Example – multisite phosphorylation Lisp (if time). Some of the following slides contain animations.
E N D
little b short course harvard medical school sept 2006
outline • The modeler’s burden • Writing Math (in Matlab); Biology (in little b) • Biological concepts • Break • The core language • Example – multisite phosphorylation • Lisp (if time)
Some of the following slides contain animations. You should view this in “slideshow” mode (F5 in Powerpoint).
little b • computer language which automates model construction • reads text files which describe biochemistry • produces matlab code (and hopefully Octave, SBML, MathML soon) • full-featured programming language based in Lisp • programmer’s toolkit useful for building modeling tools
E S P X E E S P E P X , , S P dE/dt = 0 dS/dt = - [E][S]kES dP/dt = [E][S]kES dE/dt = - [E][P]kEP dP/dt = - [E][P]kEP dX/dt = [E][P] kEP dE/dt = - [E][X]kEP dS/dt = - [E][S]kES dP/dt = [E][S]kES -[E][P]kEP dX/dt = [E][P]kEP changes required to add model 2 to model 1 models combine reactions and species in compartments E species and reactions … , , P X models 1 2
kes = .2; function dy = rates(t,y) dy = zeros(3,1); dy(1) = 0; % E dy(2) = -y(1)*y(2)*kes; % S dy(3) = y(1)*y(2)*kes; %P end kep = .5; function dy = rates(t,y) dy = zeros(3,1); dy(1) = -y(1)*y(2)*kep; % E dy(2) = -y(1)*y(2)*kep; % P dy(3) = y(1)*y(2)*kep; %X end kep = .5; kes = .2; function dy = rates(t,y) dy = zeros(4,1); dy(1) = -y(1)*y(4)*kep; % E dy(2) = -y(1)*y(2)*kes; % S dy(3) = y(1)*y(2)*kes % P - y(1)*y(3)*kep; dy(4) = y(1)*y(3)*kep; %X end translating from math to matlab code: more changes, more bookkeeping dE/dt = 0 dS/dt = - [E][S]kES dP/d = [E][S]kES dE/dt = - [E][P]kEP dP/dt = - [E][P]kEP dX/dt = [E][P] kEP dE/dt = - [E][X]kEP dS/dt = - [E][S]kES dP/dt = [E][S]kES -[E][P]kEP dX/dt = [E][P]kEP
E S P E S ES P + [ES]k[ES]rev + [ES]k[ES]rev - [ES]k[ES]rev assumptions affect mathematical structure 1. mechanism (e.g., # steps) dE/dt = 0 dS/dt = - [E][S]k[E][S] dP/dt = [E][S]k[E][S] dE/dt = [ES]k[ES] - [E][S]k[E][S] dS/dt = - [E][S]k[E][S] dP/dt = [ES]k[ES] dES/dt = [E][S]k[E][S] - [ES]k[ES] 6 changes + 3 = total of 9 changes
E E + S → … hill S ES P + [ES]k[ES]rev + [ES]k[ES]rev - [ES]k[ES]rev assumptions affect mathematical structure (2) 2. kinetics mass-action m1R1 + m2R2 … + mnRn→ … dE/dt = [ES]k[ES] - [E]([S]/(K+[S]))hes dS/dt = - [E]([S]/(K+[S]))hes dP/dt = [ES]k[ES] dES/dt = [E]([S]/(K+[S]))hes - [ES]k[ES] dE/dt = [ES]k[ES] - [E][S]k[E][S] dS/dt = - [E][S]k[E][S] dP/dt = [ES]k[ES] dES/dt = [E][S]k[E][S] - [ES]k[ES]
bookkeeping requirements result from • model combination • kinetic assumptions • code generation • molecular, location, multicellular and geometric complexity
14-3-3 MEK 14-3-3 MEK C-TAK1 P P P P P P P C-TAK1 KSR KSR KSR KSR KSR KSR KSR 14-3-3 C-TAK1 C-TAK1 KSR MEK 14-3-3 MEK KSR MEK C-TAK1 KSR MEK C-TAK1 P KSR molecular complexity 14-3-3 MEK P KSR C-TAK1 KSR
cytoplasm S S E S P nucleus , , E E S P location complexity distinct mathematical variables account for species in different locations
E E S S P E E S S P P implies S P X S P vs. X reasoning about biochemistry
HG HG HG HG HG HG HG HG HG HG HG HG hh wg CID PH PH PH PH PH PH PH PH PH PH PH PH ptc CN en WG WG WG WG WG WG WG WG WG WG WG WG EN PTC PTC PTC PTC PTC PTC PTC PTC PTC PTC PTC PTC cid multicellular complexity hh wg CID ptc CN en EN cid
geometric complexity in the real world, lattice structure is irregular
computer-assisted model construction PRO • ↓ entry errors • ↑ models → systematic model exploration • reuse formal knowledge • enables computer-assisted verification CON • bugs → computer-generated errors • loss of control & understanding • requires verification
summary • bookkeeping requirements arise from: • model combination • kinetic assumptions • code generation • biological complexity • complexity arises from molecular, compartmental and multicellular structure • computer-assisted model construction requires math and reasoning capabilities
the little b environment • input: editor, command-line or file • like Matlab, Mathematica, Perl and others • read/eval/print loop: • a form is read (symbol, number, or matched parenthesis (),{},[]) • the form is evaluated • the result is printed • next form is read • based in Lisp
a simple model • reversible isomerization of glucose-6-phosphate G6P G6PI G6PI F6P + +
a simple model – two steps • reversible isomerization via an ES complex: G6P G6PI G6PI-RXN-ES F6P G6PI + +
instance-of cytoplasm c1 nuclear-membrane membrane nuclear-membrane c2 c1 nucleus c2 location species type dealing with location complexity generic molecular locations are “classes” specific situations described as connected instances of those classes cytoplasm compartment nucleus ion.(in cytoplasm) channel.(in nuclear-membrane) ion.(in nucleus) ion channel species-type
ion transport reaction-type reaction
“extra cellular compartment” ecc cyto1 cyto1 c1 c2 c2 membrane cyto-m4 cyto-m4 m1 m2 cyto2-m1 c1 { “apposed” c1 c1 ecc apposition- c1-c2 apposition- c2-c1 cyto2 m1 membrane-apposition c2 c2 c2 m2 m1 m2 c2 c1 c1 … cyto1 A A B B A B connected locations classes instances biological situation compartment cyto1-m1 cyto1-m6 cyto1-m2 cyto1-m5 cyto1-m3 cyto1-m4 in apposition-c1-c2 in apposition-c1-c2
COMPARTMENT is a is a c1 ion MEMBRANE is a c2 COMPARTMENT ion dealing with location complexity dish cell-membrane ion nucleus ion [reaction-type {ion.(required :c1) + ion-channel} {ion.(required :c2) + ion-channel} membrane] reaction-type refers to generic situations => independent of specific locations
the symbolic math subsystem is a an extensible toolkit for theoreticians to express mathematical concepts: • units, dimensions • quantities, gaussian distributions • polynomial, rational-polynomial and radical expressions • system is extensible: • possible additions: • matricies • poisson distributions • …others?
libraries • little b libraries • contain pre-existing modules (files) which can be included • B-USER library contains 2 standard environments: • 3d-ode-biochemistry: • (include b-user/3d-ode-biochemistry) • non-dimensional-biochemistry: • (include b-user/non-dimensional-ode-biochemistry) • [F3] – File browser • B core library
toy egf receptor model - reactions: egf “egfr+egf” egfr mapkkk mapkkk* mapkk mapkk* mapk mapk*
} } toy egf receptor model – modular mechanism: K provide mechanism + K + K mapk__ mapk__* mapk__ mapk__*
toy egf receptor model - mathematics: the mass action rate-method, calculates T, the rate of the reaction: • given a reaction with n LHS speciess, 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 [R1]s1 x … [Ri]si … x [Rn]sn • reaction rate in moles/seconds = T x Z • d[Ri]/dt = T x Z / Ci • where Ci is the size of the compartment containing Ri T = k[A]2 d[A]/dt = … - 2 T …. d[B]/dt = … + T … e.g., 2 A B A C T = k[A][B] d[A]/dt = … - T … d[B]/dt = … - T Zmembrane / Zcompartment d[C]/dt = … + T … + B Zcompartment Zmembrane
implemented as a function: which can be substituted: or build your own… modular kinetics
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
egfr mapkkk mapkk mapk egf mapkkk* ES complex (mapkkk*-mapkk) mapkk* ES complex (mapkk*-mapk) mapk* let’s describe a situation composed of predefined parts: cell-a dish
egfr mapkkk mapkk mapk egf mapkkk* ES complex (mapkkk*-mapkk) mapkk* ES complex (mapkk*-mapk) mapk* b 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.