Symbiose est un projet INRIA de bioinformatique développant, notamment, des travaux de recherche sur l'analyse linguistique de données de génomique. Dans ce contexte, l'équipe de recherche propose une approche originale de modélisation, puis de recherche de ces modèles sur des séquences nucléotidiques et peptidiques. Concernant le type de modèle proposé au biologiste, l'équipe Symbiose s'intéresse à une modélisation par langage formel (grammaire à variable de chaîne, ou grammaire SVG) bien adaptée à la complexité des structures possibles dans les séquences biologiques. La modélisation SVG offre en effet des possibilités étendues pour représenter les propriétés de séquence, mais aussi de structure (copie, palindrome, pseudo-noeud, tige-bouble, etc) caractéristiques des séquences génomiques. D'autre part, l'équipe développe un analyseur générique capable de rechercher des instances de modèles SVG dans les séquences de génomes. Techniquement, il s'agit d'utiliser des analyseurs syntaxiques dédiés, dans un cadre de programmation logique couplée à une analyse lexicale par arbres de suffixes. Le problème rencontré par l'équipe est l'aide à la formalisation puis à l'exploitation d'un modèle structural sur des séquences, en en générant une version opérationnelle capable de filtrer dans une banque les séquences valides, puis d'afficher les résultats dans le modèle initial. L'analyseur a déjà été utilisé sur quelques applications biologiques, démontrant la faisabilité de l'approche, mais l'écriture du modèle, sous forme de grammaire SVG, nécessite des connaissances et un savoir-faire qui reste l'apanage de l'informaticien. Si on veut vraiment diffuser l'approche dans des laboratoires de biologie, il s'agit d'obtenir une chaîne complète d'analyse, depuis l'écriture du modèle (aide à la conception), jusqu'à la production des résultats (aide à l'interprétation), qui, seule, permettra l'utilisation du noyau d'analyse par les biologistes avec une autonomie et une maîtrise suffisante.
Au cours de la période 2000-2003, l'équipe Symbiose a développé et testé un logiciel permettant de construire graphiquement des modèles de séquences, évitant ainsi à l'utilisateur de devoir connaître la syntaxe des grammaires SVG. Depuis octobre 2003, nous concevons et développons une version professionnelle et diffusable du système, appelé ModelDesigner, en tirant profit des enseignements du prototype précédemment réalisé.
L'architecture de la plate-forme ModelDesigner comprend trois modules fonctionnels distincts:
1. ModelBuilder est le module de construction de requêtes. Il s'agit d'un outil graphique qui permet de décrire un modèle de séquence biologique de visu, via une interface graphique intuitive. Une fois construit, le modèle est codé via un langage de description (actuellement nous utilisons le formalisme SVG) et transmis au module de recherche.
2. ModelSearcher est le module de recherche proprement dit. Il est capable de rechercher dans une banque de séquences toutes les occurences d'une requête, c'est-à-dire de rechercher l'ensemble des membres de la famille décrite par le modèle de séquence.
3. ResultViewer est le module d'affichage des résultats. Il est destiné à afficher graphiquement, dans le modèle de départ, les résultats de l'exécution d'une requête.
L'architecture globale du système est basée sur le concept du client-serveur : les modules ModelBuilder et ResultViewer sont des clients de ModelSearcher.
Les clients sont développés au moyen du langage Java de manière à les rendre utilisables (1) sous tout système d'exploitation disposant d'une machine virtuelle Java (Windows, Unix et Mac OS) , (2) au sein d'un navigateur Internet (sous la forme d'une appliquette Java), et (3) au sein de la plate-forme Genostar, développée par l'INRIA Rhône-Alpes. Le module serveur ModelSearcher tournera sur un ordinateur à haute performance car le moteur de recherche requiert une importante puissance de calcul.
La figure suivante présente l'architecture générale de la plate-forme ModelDesigner, ainsi que les technologies engagées :
Le module ModelBuilder est d'ores et déjà disponible (Figure 2). Avec cette version, il est possible de construire de visu un modèle d'ADN ou de protéine. Le modèle peut être sauvé sur disque et rechargé (format XML), ce qui permet de gérer des librairies de modèles réutilisables. Enfin, le modèle peut être exécuté contre une banque de séquences (cf ci-dessous, Module de recherche).
Le module ModelSearcher a été conçu et réalisé au cours du second semestre 2004. Ce module exploite les technologies de Sun Microsystems reposant sur le standard Java Enterprise Edition (J2EE). Ces technologies permettent de développer des applications Java distribuées. ModelSearcher se caractérise par un ensemble de servlets (classes Java spécialement conçues pour un serveur d'application J2EE) exécutées par Tomcat (serveur d'application Java open-source proposé par la Fondation Apache). Toutes les communications entre le client (ModelBuilder) et le serveur (ModelSeacher) se font par le protocole HTTP. En outre, le serveur ModelSearcher communique avec le moteur de recherche proprement dit, lequel s'exécute sous Sicstus Prolog. C'est ce dernier qui exécute un modèle de séquence contre une banque de séquences. Dans cette architecture, ModelSearcher sert de pivot aux exécutions commandées par l'utilisateur. La figure suivante illustre ce principe :
Sur la figure ci-dessus:
Etape 1: l'utilisateur requiert une exécution,
Etape 2: le serveur reçoit la requête, la valide et l'enregistre dans une file d'exécution FIFO.
Etape 3: l'utilisateur reçoit en retour un identificateur de requête. Ce dernier lui permettra de récupérer les résultats d'une requête, sitôt celle-ci achevée.
Cette architecture a été privilégiée pour assurer une montée en charge du système. D'une part, le serveur d'application Tomcat qui exécute ModelSearcher est capable de gérer de nombreuses connexions simultanées (montée en charge du côté utilisateur), d'autre part, plusieurs serveurs Sicstus Prolog peuvent être associés au serveur ModelSearcher (montée en charge du côté du serveur): ModelSearcher peut donc lancer plusieurs exécutions en parallèle. Enfin, l'architecture client-serveur de ModelDesigner permet d'installer le serveur Tomcat/ModelSearcher et les serveurs Sicstus Prolog sur des machines différentes. Une telle configuration permettra de gérer plus facilement les montées en charge attendues du système lorsqu'il sera mis en production. A noter que l'ajout (ou le retrait) d'un serveur Sicstus Prolog peut se faire à chaud, c'est-à-dire sans arrêter le serveur Tomcat/ModelSearcher. Enfin, la configuration du serveur Tomcat/ModelSearcher autorise l'ajout de services de recherche additionnels. Ainsi, le moteur de recherche Sicstus Prolog sera complété par un accès direct à STAN [2,3].
ModelSearcher propose également une interface d'administration du serveur. A l'heure actuelle, cette interface ne propose qu'une page de visualisation de l'état du serveur (Figure 4). Cette page évoluera prochainement, afin de proposer un ensemble de commandes d'administration.
Le module de visualisation des résultats, ResultViewer, est actuellement en cours de réalisation. Un choix conceptuel important pour son développement repose sur une représentation des résultats inscrits dans le modèle de départ. Pour se faire, ResultViewer propose deux vues graphiques complémentaires : la première localise schématiquement une instance du modèle sur chaque séquence analysée (Figure 5), la seconde montre l'instance du modèle dans chaque séquence (Figure 6).
Au titre des développements restant à faire, il conviendra d'ajouter des outils d'exploration des résultats, apportant à l'utilisateur une aide indispensable à l'analyse pertinente de ceux-ci. Parmi les outils spécifiés, il y a un système permettant de n'afficher que certaines parties du modèle, ainsi qu'un outil permettant d'analyser une séquence consensus, c'est-à-dire une sorte de résumé de l'ensemble des séquences, très utile pour raffiner un modèle.
[1] Searls, D. (1995) String Variable Grammar : a logic grammar formalism for the biological language of DNA. J. Logic Programming, 14, 73-102.
[2] Nicolas J., Durand P., Ranchy G., Tempel S. and Valin A-S. Suffix-Tree ANalyser (STAN): looking for nucleotidic and peptidic patterns in genomes. Bioinformatics (en révision).
[3] http://www.irisa.fr/symbiose/STAN