Développement et croissance des organismes (in silico)
Dans tout mécanisme de croissance, la forme est importante que ce soit ce que l'on observe à un niveau micro comme les cellules ou un niveau plus macro comme l'organe ou la plante, l'animal .... Se limiter à l'espace serait néanmoins trop réductionniste, il faut également intégrer le temps. Une autre façon de dire cela est d'utiliser la notion de système dynamique. Ces derniers sont décrits par des variables qui sont liées par des relations qui dépendent de règles biologiques, chimiques, physiques ... Ces variables ont des valeurs qui évoluent dans le temps et décrivent l'état du système. L'ensemble des états du système détermine la trajectoire de ce dernier.
Nous avons dans le chapitre qu'est ce que la vie considéré que les systèmes vivants étaient des systèmes autopoïétiques dissipatifs, ce sont des systèmes ouverts qui interagissent avec leur environnement. La trajectoire de tels systèmes est donc à la fois le résultat des interactions internes au système et des interactions avec l'extérieur qui constitue l'environnement. Les processus d'auto-organisation sont à l'oeuvre résultats des interactions et impactent la structure spatiale qui varie au cours du temps et constituent une boucle circulaire (pro-action, rétro-action) avec l'environnement.
Il est temps maintenant d'aborder les modèles possibles. Il ne s'agit pas ici, d'être exhaustif mais simplement présenter quelques directions.
Automates cellulaires
La première direction nous l'avons déjà empruntée. Ainsi on trouve différent travaux en particulier en biologie dont les modèles s'appuient sur des automates cellulaires, on peut citer par exemple la simulation de croissance de cellules cancéreuses. Netlogo en propose un par exemple dans sa bibliothèque de modèle que l'on pourra consulter.
Les automates cellulaires se montrent souvent "trop simple" pour ce type de modèle, et de nombreux modèles utilisent des systèmes multi-agents et nous vous revoyons à la littérature si vous êtes intéréssés.
Réaction diffusion
Les automates cellulaires sont également utilisés dans le cadre des processus de réaction diffusion. Cette classe de processus est très souvent présente dans les phénomènes physiques et le vivant. La réaction diffusion est parfois impliquée dans des processus plus complexe, mais elle constitue une "brique de base". Nous allons développer ce point en nous appuyant sur les automates cellulaires, c'est l'une des façons de faire mais pas l'unique.
Dans le cadre de la biologie, l’embryogenèse tient une grande place. Ainsi comment les cellules d'un embryon s'organisent ?
Il y a indéniablement des mécanismes à l'oeuvre travaillant ensembles qui conduisent au développement d'un animal ou d'un végétal. Turing s'était déjà penché sur cette question et le modèle qu'il a proposé repose sur un modèle de réaction-diffusion.
Morphogenèse
On peut définir la morphogenèse de la façon suivante :
Processus de développement des structures d'un organisme au cours de son embryogenèse ou de sa phylogenèse.
Dans l'article "The chemical basis of morphogenesis"1 Turing propose un modèle très simple basé sur un couplage entre des réactions chimiques et la diffusion moléculaire des réactifs, dans un système ouvert alimenté en continu. Son explication s'appuie sur deux composés chimiques A
et I
qu’il appelle morphogènes :
- l’espèce A est auto-activatrice ;
- l’espèce A active aussi la production de la seconde espèce I ;
- l’espèce I inhibe la production de A ;
- I diffuse plus vite que A.
Considérons maintenant une fluctuation locale en excès de l'activateur A
, la production de A
et I
s’accroît dans cette zone. L'excès de I
diffuse plus vite que l'excès A
ce qui crée une couronne inhibitrice autour de la zone qui est donc constitué d'un pic de A
. Ce processus se répète à différents endroits et forme un motif.
Un peu de math pour se faire peur ! On écrit un système d'équations aux dérivées partielles. Considérons donc un système de réaction-diffusion avec deux composés chimiques a
et b
qui réagissent entre-eux et catalyse ou inhibe des productions. Les équations auront la forme suivante :
\left\{
\begin{array}{rcr}
\dfrac{\mathcal{\partial} a}{\partial t} &=& F(a, b) + D_a \nabla^2 a\\
\dfrac{\mathcal{\partial} b}{\mathcal \partial t} &=& G(a, b) + D_b \nabla^2 b
\end{array}
\right.
La première équation nous dit que la variation de concentration en fonction du temps de a
dépend de la somme du résultat d'une fonction F
représentant la réaction qui dépend des concentrations de a
et b
et de la diffusion de a
à proximité. Da
est une constante qui exprime la vitesse de diffusion de a
. a
va augmenter en fonction du Laplacien \nabla^2 a
qui exprime une pente.
Exercice - modèle de Gray Scott
Ce modèle revisite celui proposé par Turing et on considère que deux composants chimiques virtuels réagissent et diffusent sur une grille. Par commodité nous allons appeler le premier composant A
et le second B
. A
est introduit à un certain taux et B
est produit par une réaction impliquant deux B
et un A
:
2B + A \rightarrow 3B
Cette réaction consomme donc à chaque fois un A
. Le composant B
est détruit à un certain taux. A
et B
diffusent, mais le premier plus rapidement que le deuxième.
Considérant ce processus, on peut écrire :
\left\{
\begin{array}{rcl}
\dfrac{\mathcal{\partial} A}{\partial t} &=& D_A \nabla^2 A - AB^2 + f \times (1 - A)\\
\dfrac{\mathcal{\partial} B}{\mathcal \partial t} &=& D_B \nabla^2 B + AB^2 - (k + f) B
\end{array}
\right.
D_A
et D_B
sont les taux de diffusion de A
et B
respectivement. \nabla^2 A
donne la différence avec la valeur moyenne de concentration en A
. Combiné avec le produit avec D_A
cela représente le terme de diffusion. AB^2
ce terme est ajouté au bilan de B
et retiré à celui de A
. Il représente la possibilité de rencontre de 2 B
et 1 A
. Le système est alimenté en A
à un certain taux f
, la concentration doit être comprise entre 0 et 1, f \times (1 - A)
représente cette arrivée. B
est éliminé en fonction d'un taux (-kB
), on ajoute (-fB
) ce qui fait que le taux disparition est supérieur au taux d'apparition.
Il nous faut discrétiser les équations :
\left\{
\begin{array}{rcl}
A_{i+1} &=& A_i + (D_A \nabla^2 A_i - A_iB_i^2 + f \times (1 - A_i))\Delta t\\
B_{i+1} &=& B_i + (D_B \nabla^2 B_i + A_iB_i^2 - (k + f) B_i) \Delta t
\end{array}
\right.
On pourra prendre un pas de temsp \Delta t = 1
. Si l'on considère un voisinage de Moore, ce qui semble une bonne idée, le Laplacien peut être défini par la matrice de convolution 3 x 3 suivante :
0.05 | 0.2 | 0.05 |
0.2 | -1 | 0.2 |
0.05 | 0.2 | 0.05 |
Pour calculer la nouvelle concentration, la concentration actuelle et chaque concentration environnante sont multipliées par la valeur correspondante dans la matrice et les valeurs sont additionnées.
Vous pouvez tester avec les valeurs suivantes : D_A=1.0, D_B=.5, f=.055, k=.062
et \Delta t=1.0
, il peut être intéressant de faire varier ces paramètres, en particulier f
et k
. Une initialisation possible est la totalité de la grille avec A = 1, B=0
sauf une petite zone ensemencée avec B=1
.
Il est ensuite intéressant de faire varier les différents paramètres et regarder les trajectoires obtenues. On peut également introduire des perturbations, par exemple sur la diffusion.
Système de réécriture
Le mécanisme de réécriture est largement utilisé en informatique et en mathématique. La dérivation de fonction par exemple, n'est au bout du compte qu'une réécriture. La réécriture s'appuie sur le remplacement d'une sous-partie d'un objet par un autre. Ces objets, par exemple, peuvent être des termes qui peuvent alors être modélisés par arbres informatiques.
Les nœuds qui ne sont pas des feuilles sont alors des opérations et les feuilles des termes constants. Un système de réécriture est défini par un ensemble de règles de la forme r \rightarrow r'
. Cette dernière indique comment le sous-terme r
se remplace par r'
.
L-systèmes
Les L-systèmes2 ou systèmes de Lindenmayer sont des systèmes de réécriture ou grammaires formelles, inventés en 1968 par le biologiste hongrois Aristid Lindenmayer. Ils permettent de modéliser la croissance des végétaux de manière itérative, en appliquant répétitivement des règles de croissance. Le végétal est décrit par une chaîne de caractères et des règles de réécriture.
L'idée de base est de définir des objets complexes en remplaçant successivement des parties d'un objet simple en utilisant ces règles. La réécriture peut être effectuée de manière récursive.
Les systèmes de réécriture les plus étudiés ont été effectués sur les chaînes de caractères, on pense en particulier aux travaux de Chomsky (1957) sur les grammaires formelles. Pour plus d'informations, nous vous renvoyons au cours de théorie des langages. Il existe une différence essentielle entre les grammaires de Chomsky et les L-systèmes. Dans les grammaires de Chomsky, les transformations sont appliquées séquentiellement alors que dans les L-systèmes, elles sont appliquées en parallèle. Cette différence vient du fait que l'on tente de modéliser le vivant. La croissance cellulaire au niveau des organismes ne se faisant pas séquentiellement, mais en même temps.
Grammaire formelle
Un L-système repose sur une grammaire formelle. Certains d'entre-nous étant des fans des shadocks, nous ne résistons pas à l'envie de definir la langue Gabuzomeuse qui comprend uniquement quatre phonèmes de base : GA
, BU
, ZO
, MEU
. Le cerveau des shadoks étant constitué de quatre cases, ne peut en contenir plus !
Au préalable quelques définitions :
Un langage est un ensemble de phrases construit à partir d’un ensemble de mots. Cela nécessite la définition d'un lexique de mots ou de symboles et une phrase est une suite finie de mots.
Exemple :
A = \{a, b\}
- phrases possibles
a, aaa, aabbaaa
.... - Langages :
L_1 = \{aa, aba, aabb\}
L_2 = \{a^mb^n; m,n \in \mathbf{N} \}
Une grammaire permet d’engendrer des phrases à partir d’un lexique (ensemble de mots) et de règles de transformation.
Le lexique est composé d'un lexique propre A
constitué de symboles terminaux avec le symbole \varnothing
et d'un lexique intermédiaire I
sous la forme d'un ensemble R
.
Exemple :
A = \{a, b\}, I = \{S\}
\left\{
\begin{array}{rcr}
S & \Rightarrow & \varnothing \\
S & \Rightarrow & aSb
\end{array}
\right.
S \Rightarrow aSb \Rightarrow aaSbb \Rightarrow aaaSbbb \Rightarrow aaabbb
Cherchons donc à définir un langage permettant de générer une infinité de séquence de mots, à partir des phonèmes (des mots) ga
, bu
, zo
, meu
.
A = \{ga,bu,zo,meu\}, I=\{S\}
\left\{
\begin{array}{rcr}
S & \Rightarrow & \varnothing \\
S & \Rightarrow & gaS \\
S & \Rightarrow & buS \\
S & \Rightarrow & zoS \\
S & \Rightarrow & meuS
\end{array}
\right.
Structure d'un L-système
Un L-système est une grammaire formelle \{V, C, ω_0, R\}
où
-
V
est l'ensemble des variables du système ; -
C
est un ensemble de symboles constants ; -
w_0
est l'axiome de départ ; -
R
est un ensemble de règles de croissance.
Il faut maintenant être en mesure de définir les règles et leurs effets. On retrouve l'idée d'une tortue qui est capable de se déplacer en laissant une trace dans l'environnement. Ainsi on utilise en général les variables et les symboles suivants :
-
S
etF
notre tortue avance d'un pas (d'une unité) ; -
+
et-
, la tortue tourne à gauche, respectivement à droite, d'un angle\alpha
; -
[
on enregistre la position et l'orientation ; -
]
on rétablit la position et l'orientation.
Si on définit un angle de 90°, à partir de l'axiome F
, F+F+F+F
trace un carré. Que nous trace [F]-[F]-[F]-[F]
?
En utilisant le formalisme,
-
V = \{F\}
; -
C = \{+, -, [, ] \}
; -
w_0 = F
; -
R = \{F \rightarrow [F]-[F]-[F]-[F] \}
.
On pourra tester la règle F \rightarrow FF+[+F-F-F]-[-F+F+F]
avec un angle de 25°.
Classes de L-système
Les différentes classes sont :
- Paramétrique ou non
- Déterministe ou stochastique
- Sensible au contexte ou non
Stochastique
On peut vouloir ajouter un peu de réalisme pour modéliser plus finement ce que l'on observe dans la nature, cela consiste par exemple à introduire de la variabilité. En effet, tous les arbres dans un verger s'ils sont de la même espèce se ressemblent mais présentent des différences. Il suffit d'introduire un peu de hasard sur la longueur des segments et sur les angles par exemple. Il est possible également de jouer sur la probabilité d'application d'une règle.
On pourra essayer par exemple :
\left\{
\begin{array}{lcl}
V &=& \{X,F\}\\
C &=& \{+, -, [, ] \}\\
R &=& \{X \stackrel{\text{50\%}}{\longrightarrow} F \mathopen{[}\mathopen{[} -X \mathclose{]}\mathopen{[}+X\mathclose{]]}F\mathopen{[}+FX\mathclose{]} - X,\\
& & X\stackrel{\text{50\%}}{\longrightarrow} F \mathopen{[}X\mathclose{]}F[-FX] + X,\\
& & F \rightarrow FF \}\\
\alpha \in [ \frac{\pi}{12} .. \frac{5\pi}{36}] & & \\
\text{segment} \in [0,75..1,25] & &
\end{array}
\right.
Paramétrique
Si l'on veut par exemple faire pousser des branches à différentes vitesses traduisant un rapport non entier entre l'état i
et l'état i+1
cela n'est pas possible avec les formalismes précédents. On utilise un L-système paramétrique. F
n'est plus une variable mais une fonction et son argument x
paramètre la longueur du segment à tracer.
F(x) \rightarrow F(x \times constante)
Un L-système paramétrique est une grammaire formelle \{V, \mathcal{F}, ω_0, R\}
où
-
V
est l'ensemble des variables du système ; -
\mathcal{F}
est un ensemble de fonctions; -
C
est un ensemble de symboles constants ; -
w_0
est l'axiome de départ ; -
R
est un ensemble de règles de croissance.
L'exemple classique est la modélisation de la fougère :
X(a) \rightarrow -(0,1)F(a) [+(0,5)X(0,4a)] [-(0,5)X(0,4x)]X(0,8a)
On peut aussi prendre ne compte l'age dans la modélisation d'un arbre, par exemple.
Sensible au contexte ou non
On peut également définir des règle qui ne dépendent uniquement d'un unique symbole, mais de voisins. Dans ce cas le L-system est sensible au contexte.
ex : A<B>B \rightarrow BA
(si B est placé entre A et B, il devient BA)
Ce type de règles est utilisé pour de la génèration musicale, par exemple.
Exercice
Coder un L-system. Tester différentes formes. Compléter en introduisant de l'aléatoire et du paramétrique qui permettront en particulier de prendre en compte le fait par exemple que la croissance d'un tronc d'arbre dépend de conditions climatiques et également de l'environnement (voisins par exemple). Modéliser ensuite une forêt virtuelle, en prenant en compte la densité et le vent dominant, par exemple.
Biomorph
Richard Dawkins dans son livre l'horloger aveugle propose un mécanisme d'évolution génétique produisant des formes. Le programme en résultant simule l’évolution d'une créature dont on peut voir la morphologie variée.
Ce n'est pas traité dans ce chapitre mais dans celui sur l'évolution.
Références
-
Turing A. (1952) The Chemical Basis of Morphogenesis. Philosophical Transactions of the Royal Society B: Biological Sciences, 237(641), 37‑72. DOI
↩ -
Przemyslaw Prusinkiewicz and Aristid Lindenmayer (1990). The Algorithmic Beauty of Plants Springer-Verlag, New York. http://algorithmicbotany.org/papers/abop/abop.pdf
↩