250 likes | 375 Views
Clément BOIN & Nicolas THIBAULT Maîtrise Informatique – Université d’Evry Val-d’Essonne – 2001-2002. Hyper-structures et modélisation de chimie artificielle dans le langage MGS. T.E.R. encadré par Jean-Louis Giavitto & Olivier Michel. Plan. Introduction La chimie artificielle MGS
E N D
Clément BOIN & Nicolas THIBAULT Maîtrise Informatique – Université d’Evry Val-d’Essonne – 2001-2002 Hyper-structures et modélisation de chimie artificielle dans le langage MGS T.E.R. encadré par Jean-Louis Giavitto & Olivier Michel
Plan • Introduction • La chimie artificielle • MGS • Modélisation d’un réseau autocatalytique • Modélisation d’un réseau biochimique • Conclusion
+ La chimie artificielle • Chimie virtuelle • Modèles discrets et combinatoires • Avantages et Inconvénients
Définition d’une expérience • Un ensemble d’objets • Des règles de transformation • Des règles d’interaction dynamique
MGS (Modèle Général de Simulation) • Langage dédié • Langage déclaratif • Deux interprètes : Ocaml et C++
+ Particularités de MGS • Les collections topologiques • Les transformations • Les enregistrements • Lien avec la chimie
Exemple MGS • fun objets(m) = if m==1 then ():set else m::(objets (m-1)) fi;; • trans premier = {x , y/(y%x==0) => x };; • premier['iter='fixpoint](objets(100));;
Modélisation d’un réseau autocatalytique • Exposé chimique du problème • Idée générale de modélisation • Stratégie d’implémentation en MGS • Représentation d’un polymère • Création des produits et réactions • Exécution • Exemple d’utilisation et interprétation des résultats
Exposé chimique du problème • M1 + M2 M12 • Sélectionner les polymères dominants Kf Kr
Idée générale de modélisation • Approche individuelle des polymères • Utilisation d’entiers 1 + 2 12 • Création aléatoire des éléments 14
Représentation d’un polymère en MGS • Séquence 1 + 2 12 2 + 1 21 12 + 12 1212 • Séquence avec déterminisme de la réaction 1 + 2 12 2 + 1 12 12 + 12 1212 • Multi-ensemble • 1 + 2 12 • 2 + 1 12 • 12 + 12 1122
Création aléatoire des produits et réactions • Monomères • Polymères • Séquence des polymères initiaux • Séquence des polymères possibles • Réactions
Exécution des réactions • Création des produits et réactions • Initialisation de la solution • Transformation MGS générique • Application de chaque réaction pour un pas d’évolution. • Itération du processus pour plusieurs pas d’évolution.
Code MGS trans Biochimie = { reaction_a = a, b, c /((a==nieme(i,reaction).poly1)& (b==nieme(i,reaction).poly2)&(c==nieme(i,reaction).cata)) => if condition(nieme(i,reaction).kf) then (nieme(i,reaction).poly_res)::c::():solution else a::b::c::():solution fi; reaction_b = a, c /((a==nieme(i,reaction).poly_res)& (c==nieme(i,reaction).cata)) => if condition(nieme(i,reaction).kr) then (nieme(i,reaction).poly1):: (nieme(i,reaction).poly2)::c::():solution else a::c::():solution fi; };;
Exemple • Polymères initiaux : 42 , 42 • Polymères possibles : 42 , 4242 • Réaction : 42 + 42 4242 42 + 42 4242 Kf= 42 Kr= 67 Kf= 62 Kr= 78
Exemple Après 20 itérations Après 50 itérations
Modélisation d’un réseau biochimique • L’expérience de A.E. Bugrim • Modélisation en MGS • Visualisation avec Imoview
G AC R R Rec C C ATP cAMP Ca2+ Agonist I CI C + Univers C C PhK R R Plasma Cytosol Reticulum endoplasmique Structure générale de la cellule Stimulus Les molécules : Schéma logique Fig.1
Stimulus Les réactions : Réseau d’interactions 8 Ca2+extracell Channel(closed) Agonist 9 Channel(open) Rec* PhK 1 G-protein Ca2+intracell Rec 2 diff AC 10 G-protein* 3 (cAMP)2•R Ca•PhK R2C2 G-protein AC* C 5 6 diff diff ATP 4 cAMP 7 inh I Ca.PhK* CI Fig.2
L’expérience de Bugrim en MGS • Les molécules - enregistrements • Structure générale - collections • Les réactions - transformations • Application récursive • Aspects dynamiques • Les temps de diffusion • Les réactions non-déterministes
Code MGS (1) // Description des strutures dans l'espace collection Volume = bag;; collection Membrane = bag;; collection Univ = Volume;; collection Plasma = Membrane;; collection Cytosol = Volume;; collection Retic_Endo = Membrane;; //== Initialisation RETICULUM := {nom="r2c2"}:: ():Retic_Endo ;; CYTOSOL := {nom="i"}:: {nom="phk"}:: {nom="atp"}:: RETICULUM:: ():Cytosol ;; PLASMA := {nom= "recepteur",actif=0}:: {nom="r2c2"}:: {nom= "gprot",actif=0}:: {nom= "ac",actif=0}::{nom= "channel",actif=0}:: CYTOSOL:: ():Plasma ;; U := {nom= "agonist",actif=1}:: {nom= "stimulus",actif=1}:: {nom= "ca++",diffuse=0}:: PLASMA:: ():Univ ;;
Code MGS (2) // Ensemble des réactions trans Biochimie = { Incr = c:Cytosol => IncrCyt(c)::():Cytosol; //Incrémenter les tps de diffusion Reaction1 = a:Agonist1, p:Plasma => (a+{actif=0})::ActiveRecepteur(p)::():Univ; Reaction2 = r:Recepteur1, g:Gprot0 => (g+{actif=1})::(r+{actif=0})::():Plasma; Reaction3 = g:Gprot1, a: AC0 => (g+{actif=0})::(a+{actif=1})::():Plasma; Reaction4 = a: AC1, c:Cytosol =>(a+{actif=0}):: TransAtp(c)::():Plasma; Reaction5 = a:cAMP1, re:Retic_Endo/member({nom="r2c2"},re) => AleaR2C2(a,re); Reaction5b = r:R2C2, c:Cytosol/member({nom="camp",diffuse=DIFFCAMP},c) => delete({nom="camp",diffuse=DIFFCAMP}, ({nom="c",diffuse=0}::{nom="(camp)2.r"}::c))::():Plasma; Reaction6 = c:Cenzime1, x:CaPhK0 => c::(x+{actif=1})::():Cytosol; Reaction7 = c:Cenzime, i:I => Aleatoire(TAUXINIB,c,i); Reaction8 = s:Stimulus1, p:Plasma => (s+{actif=0})::ActiveChannel(p)::():Univ; Reaction9 = c:Ca2p, p:Plasma/member({nom="channel",actif=1},p) => AjoutPlasmaCa(DesChannel(p))::():Univ; Reaction10 = x:Ca2p1, y:PhK => {nom="caphk", actif =0}::():Cytosol; };;
Imoview (État initial) Reticulum Cytosol Stimulus Agonist Plasma
État final Ca.PhK* CI
Conclusion • MGS, langage abstrait • Limites • Complexité • Fonctions aléatoires • Code peu réutilisable