Hyper-structures et
modélisation de chimie artificielle
dans le langage MGS
Clément BOIN & Nicolas THIBAULT
Maîtrise Informatique – Université d’Evry Val-d’Essonne – 2001-2002
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
• Chimie virtuelle
• Modèles discrets et combinatoires
• Avantages et Inconvénients
La chimie artificielle
+
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++
• Les collections topologiques• Les transformations
• Les enregistrements• Lien avec la chimie
Particularités de MGS
+
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
• M1 + M2 M12
• Sélectionner les polymères dominants
Exposé chimique du problème
Kf
Kr
• Approche individuelle des polymères
• Utilisation d’entiers
1 + 2 12
• Création aléatoire des éléments
Idée générale de modélisation
14
• Séquence1 + 2 122 + 1 2112 + 12 1212
• Séquence avec déterminisme de la réaction1 + 2 122 + 1 1212 + 12 1212
Représentation d’un polymère en MGS
• Multi-ensemble1 + 2 122 + 1 1212 + 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 MGStrans 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;
};;
• Polymères initiaux : 42 , 42
• Polymères possibles : 42 , 4242
• Réaction :
42 + 42 4242
42 + 42 4242
Exemple
Kf = 42
Kr = 67
Kf = 62
Kr = 78
Exemple
Après 50 itérations
Après 20 itérations
Modélisation d’un réseau biochimique
• L’expérience de A.E. Bugrim
• Modélisation en MGS
• Visualisation avec Imoview
RecAC
cAMPATP
R
C
R
C
R R
CC
PhK
Ca2+
Agonist
IC + CI
G
Fig.1 Les molécules : Schéma logique
Plasma
Cytosol
Reticulum endoplasmique
Univers
Structure générale de la cellule
Stimulus
2
3
10
7
4
65
Rec*
AC G-protein*
ATPcAMP
R2C2
C
I
CI
(cAMP)2•R
PhK
Ca2+intracell
Ca•PhK
Agonist
Ca.PhK*
AC*
diffdiff
diff
8
9
Ca2+extracell
Channel(closed)
Channel(open)
Stimulus
1 G-protein
Rec
Fig.2
inh
Les réactions : Réseau d’interactions
G-protein
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)
StimulusAgonist Plasma
Cytosol
Reticulum
État final
Ca.PhK*
CI
Conclusion
• MGS, langage abstrait
• Limites– Complexité– Fonctions aléatoires– Code peu réutilisable
Top Related