Simulation du déplacement du spermatozoïde du nématode Ascaris Suum

Dans cet exemple, nous nous intéressons à l'implantation d'un modèle biologique complexe inspiré des travaux de Bottino et al. Ce modèle simule le déplacement du spermatozoïde du nématode Ascaris suum.

Le spermatozoïde d'Ascaris suum se déplace en suivant un cycle lamellipodial protusion, adhésion, rétraction. Les mécanismes chimiques du déplacement se situent dans la partie avant de la cellule, appelée lamellipodium. Dans ce modèle, le système se résume à la membrane du lamellipodium en contact avec le milieu extérieur (ou matrice). Dans un premier temps, une polymérisation produit un gel fibreux à l'avant de la cellule, créant alors des protusions. Celles-ci poussent la membrane en avant. Une quantité d'énergie élastique apparaît alors dans le gel. L'avancée de la membrane vers l'avant vient alors se coller à la matrice lors de la phase d'adhésion. Un processus de traction entraîne le corps de la cellule à se déplacer. Le gel fibreux subit pendant cette phase une contraction. La dernière étape est localisée près de la frontière entre le lamellipodium et le corps de la cellule : une dépolymérisation du gel entraîne la désadhésion de la membrane et libère une quantité d'énergie tirant le corps de la cellule vers l'avant. Ces mécanismes dépendent d'un gradient de pH.

Bottino décrit ce processus de déplacement à travers des équations différentielles continues correspondant aux efforts élastiques et de tensions dans la membrane fixée à la matrice extra-cellulaire, et à la distribution de pH dont les équations mécaniques dépendent. Ces équations sont ensuite traduites sous une forme discrète à l'aide d'un modèle à éléments finis. La membrane est partitionnée au moyen d'un graphe de Delaunay.

La traduction en terme de collection topologique et de transformations de ce modèle est assez immédiate.

Structure de données

Un noeud du graphe de Delaunay est un enregistrement composé de 8 champs :

record Node = {
  px:float,
  py:float,
  vx:float,
  vy:float,
  H:float,
  pH:float,
  Bflag:bool,
  NRflag:bool
} ;;

Les champs px et py représentent la position du noeud dans l'espace, vx et vy sa vitesse, et H et pH la concentration en protons et le pH. On définit sur les éléments de type Node, des prédicats pour déterminer le type exact du noeud.

Le graphe de Delaunay est décrit par :

delaunay(2) D2 = \elt.(
  if Node(elt)
  then (elt.px, elt.py)
  else error("bad element type for D2 delaunay type")
  fi
) ;;

Etat inital de la collection topologique : les noeuds verts (ou Inode) sont les noeuds internes, les bleus (ou Bnode) représentent le bord de la cellule, et les rouges (ou NRnode) sont à la frontière entre le lamellipodium et le reste de la cellule (contenant entre autre le noyau du spermatozoïde).

Les lois d'évolution

La polymérisation et la dépolymérisation sont implémentées sous la forme de règles de réécriture ajoutant ou supprimant des noeuds :

trans structure = {
  polymerization:   Xi, Xj / (length(Xi,Xj) > lmax)       => Xi, {pH=(Xi.pH+Xj.pH)/2,...}, Xj
  depolymerization: Xi:Inode, Xj / (length(Xi,Xj) < lmin) => Xj
} ;;

length retourne la longueur d'un arc entre deux noeuds.

Les équations de diffusion du pH sont traduites sous la forme d'une fonction donnant le nouveau pH d'un noeud en fonction des noeuds voisins :

trans update_pH = {
  Xi:Bnode => ... ;
  Xi:NRnode => ... ;
  Xi =>
    let num = neighborsfold(
                (fun Xj acc -> C1(Xi,Xj) * Xj.H + acc),
                0,
                Xi) + (P/D) * H_ext
    and den = neighborsfold(
                (fun Xj acc -> C1(Xi,Xj) + acc),
                0,
                Xi) + (P/D)
    in Xi + {H = num/den, pH = -log10(num/den) }
} ;;

Les deux premières règles correspondent aux conditions aux bords. La dernière règles applique l'équation de diffusion pour tous les noeuds internes (Inode). On remarque l'utilisation de la primitive neighborfold pour calculer la contribution des voisins.


Gradient de pH à l'état inital : les noeuds les plus rouges ont un pH de 5.9, et les plus bleus de 6.2.

La transformation calculant les forces s'appliquant sur chaque noeud du graphe, et mettant à jour la position de ces noeuds, est équivalente à celle de la diffusion de pH. On ne la précisera donc pas ici. L'animation est téléchargeable ici (2.8 Mo).

Référence :

(2002) D. Bottino, A. Mogilner, T. Roberts, M. Stewart, G. Oster. How nematode sperm crawl. Journal of Cell Science. 115: 367-384.


Back to top
MGS examples index
MGS home page



(currently under construction logo)
this site is under construction.
Pages started: May 2002. Last revision: 24 jully 2003.

Creative Commons License
Pictures, graphics and animations are licensed under a Creative Commons License.


English keywords for indexation: computer science, programming language, topological collections, transformation, declarative programming language, functional languages, simulation of biological processes, cell model, biological pathway, interaction network, gene regulation, signal transduction, morphogenesis, developmental biology, integrative simulation, biological organization, dynamical systems, dynamical structure, Gamma, CHAM, P system, L system, Paun, Lindenmayer, cellular automata, membrane computing, aqueous computing, artificial chemistry, GBF, Cayley graph, data fields, nested collections, rewriting, rule based programming, pattern-matching, intentional programming, compilation, interpretation, type, type inference, nested type, polytypism, catamorphism, static analysis, sequence, multiset, combinatorial algebraic topology, chain complex, chain group.