TER simulation stochastique
(M1 Informatique)

Patrick Amar, Université Paris Saclay

Présentation

Le but de ce TER est de programmer un simulateur stochastique de réactions biochimiques. Un des aspects de ce projet sera de réaliser une version parallèle du moteur de résolution utilisant tous les coeurs de calcul du processeur.

Le simulateur sera composé de plusieurs modules:

  1. analyseurs lexical et syntaxique du langage de description des réactions. Exemple de fichier d'entrée:
    		E1 + s -> CP_1 [0.0122753];
    		CP_1 -> E1 + s [0.001];
    		CP_1 -> E1 + p [0.01];
    
    		E2 + p -> CP_2 [0.00441921];
    		CP_2 -> E2 + p [0.0009];
    		CP_2 -> E2 + q [0.009];
    	
  2. moteurs de résolution (séquentiels ou parallèles)
    • un système stochastique global de type méthode de Monte Carlo (algorithme de Gillespie)
    • un système stochastique de type Multi Agents
  3. filtres de sortie:
    • courbes de concentrations temporelles au format CSV
    • tracé graphique (OpenGL ou autre) des courbes de concentrations temporelles en temps réel.
Durant les premières séances il sera fait une introduction aux processus stochastiques et plus précisément aux aspects mécanistiques des réactions biochimiques et à leur simulation.

Ensuite les diverses approches seront présentées: un rappel d'analyses lexicale et syntaxique, deux méthodes exactes de simulations stochastiques population-centrées ainsi qu'une méthode approchée originale, et enfin une méthode individu-centré.

Le projet est à faire en binôme, chaque binôme choisissant de programmer un seul des deux moteurs de résolution (population-centrée ou individu-centré); La sortie graphique en temps réel est optionnelle. Le projet se déroulera sous forme de TP encadrés.

Les spécifications précises des interfaces entre les 3 modules seront données en cours, ceci permettant de connecter les 3 modules quels que soit les binômes qui les auront programmés.

Spécifications et Conception du projet

Les spécifications du projet de chaque binôme seront faites avant la conception du programme proprement dit. Cela implique que l'interface utilisateur ainsi que le manuel d'utilisation seront décrits préalablement à la phase de programmation.

Une fois les spécifications terminées, la conception du programme pourra commencer. Le projet est à programmer dans un langage objet, de préférence C++ ou Java. Le découpage en 3 modules ainsi que les interfaces de ces modules sont imposés, mais la conception de chacun des modules est à faire par chaque binôme, notamment selon que le moteur sera séquentiel ou parallèle.
Une documentation d'implémentation devra accompagner le code de chacun des modules.

Évaluation du TER

Plusieurs documents seront à rendre par binôme, selon un calendrier préétabli:

  1. Le manuel d'utilisation du simulateur (8 pages maximum) comportant des copies d'écran de son interface, la syntaxe du langage d'entrée et des exemples (factices à ce stade) d'utilisation.

  2. Le document de conception expliquant, pour chaque module, l'architecture, les algorithmes utilisés et leur implémentation.

Le rendu final sera composé d'une archive comprenant les sources du logiciel intégré avec son interface utilisateur, le Makefile permettant de le compiler, ainsi que la trace de son exécution sur les exemples du manuel d'utilisation et une évaluation du temps calcul utilisé.

Enfin, il y aura une soutenance par binôme comportant une courte présentation (quelques diapositives) une démonstration du simulateur, et des questions.