170 likes | 256 Views
Formal Biology of the Cell Modeling, Computing and Reasoning with Constraints François Fages, Constraint Programming Group, INRIA Rocquencourt mailto:Francois.Fages@inria.fr http://contraintes.inria.fr/. Overview of the Lectures. Introduction. Formal molecules and reactions in BIOCHAM.
E N D
Formal Biology of the CellModeling, Computing and Reasoning with ConstraintsFrançois Fages, Constraint Programming Group, INRIA Rocquencourtmailto:Francois.Fages@inria.frhttp://contraintes.inria.fr/
Overview of the Lectures • Introduction. Formal molecules and reactions in BIOCHAM. • Formal biological properties in temporal logic. Symbolic model-checking. • Continuous dynamics. Kinetics models. • Computational models of the cell cycle control [L. Calzone]. • Mixed models of the cell cycle and the circadian cycle [L. Calzone]. • Machine learning reaction rules from temporal properties. • Learning kinetic parameter values. Constraint-based model checking. • Constraint Logic Programming approach to protein structure prediction.
Cell Cycle Control [Qu et al. 03] • k1 for _=>Cyclin. • k2*[Cyclin] for Cyclin=>_. • k3*[Cyclin]*[Cdc2~{p1}] for Cyclin+Cdc2~{p1}=>Cdc2~{p1}-Cyclin~{p1}. • k4p*[Cdc2~{p1}-Cyclin~{p1}] for Cdc2~{p1}-Cyclin~{p1}=>Cdc2-Cyclin~{p1}. • k4*[Cdc2-Cyclin~{p1}]^2*[Cdc2~{p1}-Cyclin~{p1}] for • Cdc2~{p1}-Cyclin~{p1}=[Cdc2-Cyclin~{p1}]=>Cdc2-Cyclin~{p1}. • k5*[Cdc2-Cyclin~{p1}] for Cdc2-Cyclin~{p1}=>Cdc2~{p1}-Cyclin~{p1}. • k6*[Cdc2-Cyclin~{p1}] for Cdc2-Cyclin~{p1}=>Cdc2+Cyclin~{p1}. • k7*[Cyclin~{p1}] for Cyclin~{p1}=>_. • k8*[Cdc2] for Cdc2=>Cdc2~{p1}. • k9*[Cdc2~{p1}] for Cdc2~{p1}=>Cdc2. • parameter(k1,0.015). parameter(k2,0.015). parameter(k3,200). • parameter(k4p,0.018). parameter(k4,180). parameter(k5,0). • parameter(k6,1). parameter(k7,0.6). parameter(k8,100). • parameter(k9,100). • present(Cdc2,1). make_absent_not_present.
Constraint-Based Linear Time Logic • Constraints over concentrations and derivatives as FOL formulae over the reals: • [M] > 0.2 • [M]+[P] > [Q] • d([M])/dt < 0 • LTL operators for time X, F, G, U (no non-determinism). • F([M]>0.2) • FG([M]>0.2) • F ([M]>2 & F (d([M])/dt<0 & F ([M]<2 & d([M])/dt>0 & F(d([M])/dt<0))))
Traces from Numerical Simulation • From a system of Ordinary Differential Equations • dX/dt = f(X) • Numerical integration (by Euler, Runge-Kutta, adaptive step size Runge-Kutta, Rosenbrock methods) produces a discretization of time • The trace is a linear Kripke structure: • (t0,X0), (t1,X1), …, (tn,Xn). • the derivatives can be added to the trace • (t0,X0,dX0/dt), (t1,X1,dX1/dt), …, (tn,Xn,dXn/dt). • Equality x=v true if xi≤v & xi+1≥v or if xi≥v & xi+1≤v (Rolle’s theorem!)
Constraint-Based LTL (Forward) Model Checking • Hypothesis 1: the initial state is completely known • Hypothesis 2: the formula can be checked over a finite period of time [0,T] • Simple algorithm based on the trace of the numerical simulation: • Run the numerical simulation from 0 to T producing values at a finite sequence of time points • Iteratively label the time points with the sub-formulae of f that are true: • Add f to the time points where a FOL formula f is true, • Add F f(X f) to the (immediate) previous time points labeled by f, • Add f1 U f2to the predecessor time points of f2 while they satisfy f1, • Add G f to the states satisfying f until T (optimistic abstraction…)
Model-Checking Specific First-Order LTL Formulae • Let us introduce the time variable t • We can model-check a First-Order Logic LTL formula such as • period(A,75) defined as • T v F(T = t & [A] = v & d([A])/dt > 0 & X(d([A])/dt < 0) & F(T = t + 75 & [A] = v & d([A])/dt > 0 & X(d([A])/dt < 0)))
Example in Qu’s Model of the Cell Cycle • K1=0, K5u=0
Learning Parameter Values from LTL Specification • ? learn_parameter([k5u,k1],[(0,10),(0,500)], 20, oscil(CycB-CDK~{p1},2,10.0),300). • parameter(k5u,0.5). parameter(k1,350).
Learning Parameter Values from LTL Specification • ? learn_parameter([k5u,k1],[(0,10),(0,500)], 20, period(CycB-CDK~{p1},75), 300). • parameter(k5u,2). parameter(k1,200).
Backward Constraint-based Model Checking • Reason backward from the set of states satisfying a formula • to the set of initial states for which the formula is true. • Makes it possible to reason with a partially know initial state. • Approximate set of states with constraints: polyhedrons defined by linear constraints.
Hybrid (Continuous-Discrete) Dynamics • Gene X activates gene Y but above some threshold gene Y inhibits X. • 0.1*[X] for • _ =[X]=> Y. • if [Y]<0.8 then 0.1 for • _ => X. • 0.2*[X] for • X => _. • absent(X). absent(Y).
Translation to Constraint Logic Programs over Reals • Hybrid Differential Equation System: • dx/dt = 0.1 – 0.2*x if y < 0.8 dx/dt = – 0.2*x if y ≥ 0.8 • dy/dt = 0.1*x • (Concurrent) transition system of the trace using Euler’s method: • y < 0.8 x’ = x + dt*(0.1-0.2*x) , y’ = y + dt*0.1*x • y ≥ 0.8 x’ = x + dt*(0.1-0.2*x) , y’ = y + dt*0.1*x • Initial condition: x=0, y=0. • Translation into a Constraint Logic Program over the reals (dt=1): • Init :- X=0, Y=0, p(X,Y). • p(X,Y):- X>=0, Y>=0, Y<0.8, X1=X-02*X+01, Y1=Y+01*X, p(X1,Y1). • p(X,Y):- X>=0, Y>=0, Y>=0.8, X1=X-02*X, Y1=Y+01*X, p(X1,Y1).
Constraint-based CTL Backward Model Checking Theorem [Delzanno Podelski 99] EF(f)=lfp(TP{p(x):-f}), EG(f)=gfp(TPf). Safety property AG(f) iff EF(f) iff initlfp(TP{f}) Liveness property AG(f1AF(f2)) iff initlfp(TPf1gfp(T P{f2} ) ) Deductive Model Checking DMC system [Delzanno 00] Implemented in Sicstus-Prolog CLP(Herbrand,Real,Boolean) Fourier-Motzkin elimination and Simplex algorithm.
Constraint-based Backward Reasoning in DMC • r(init, p(s_s,A,B), {A=0,B=0}). • r(p(s_s,A,B), p(s_s,C,D), {A>=0,B>=0.8,C=A-02*A,D=B+01*A}). • r(p(s_s,A,B), p(s_s,C,D), {A>=0,B>=0,B<0.8, • C=A-02*A+01,D=B+01*A}). • ? prop(P,S). • P = unsafe, S = p:s*(x>=0.6) • ? ti. • Property satisfied. Execution time 0 • ? ls. • s(0, p(s_s,A,_), {A>=0.6}, 1, (0,0)).
Constraint-based Backward Simulation in DMC • ? prop(P,S). • P = unsafe, S = p:s*(x>=0.2) ? • ? ti. • Property NOT satisfied. Execution time 1.5 • ? ls. • s(0, p(s_s,A,_), {A>=0.2}, 1, (0,0)). • s(1, p(s_s,A,B), {B<0.8,B>=-0,A>=0.19387755102040816}, 2, (2,1)). • … • s(26, p(s_s,A,B), {B>=0,A>=0, • B+0.1982676351105516*A<0.7741338175552753}, 27, (2,26)). • s(27, init, {}, 28, (1,27)).