Sylvain Mareschal, Ph.D.
Bioinformatics engineer
August 31, 2008 at 13:39
Stage au CEA
Dans le cadre des "stages d'excellence" proposés chaque année par l'Université Joseph Fourier à une cinquantaine d'étudiants de licence, j'ai pu effectuer durant les vacances d'été 2008 un stage de deux mois dans un laboratoire du CEA de Grenoble, payé par l'Université. Etant déjà à l'époque attiré par la bio-informatique, j'ai pu trouver un encadrant qui accepte de me faire découvrir ce petit monde, tout en sachant qu'en tant qu'étudiant en biologie mes connaissances en matière d'informatique étaient très limitées.

L'Equipe s’intéressait à Arabidopsis thaliana, une plante modèle très prisée par les scientifiques pour la simplicité de son génome et sa croissance rapide, et plus particulièrement aux mécanismes de réponse au manque de phosphate, un composant critique en agriculture car très mal assimilé par les plantes.



1. Aspect utilisateur

La Première partie de ce stage consistait en une découverte de l'aspect "utilisateur" en bio-informatique, avec l'utilisation de nombreuses bases de données et outils en lignes. Cette partie a également été l'occasion de développer plusieurs scripts en PHP (le seul langage de programmation que je maitrisais à l'époque) :


- Une première série de scripts était destinée à extraire des références (notamment des termes de la Gene Ontology) et générer des liens automatiquement pour faciliter les travaux de bibliographie qui m'étaient dévolus.


- Une seconde série de scripts permettait de comparer les données d'expression de 8 puces réalisées sur Arabidopsis thaliana dans des conditions légèrement différentes (stress osmotique, stress hydrique, faible température), dont les données était fournies dans divers articles. La première étape de ce travail a été de comprendre les conditions expérimentales de chacune de ces expériences, de manière à sélectionner et normaliser les données qui pouvaient être comparées (notamment au niveau des temps d'exposition à ces différents stress, très variables d'une expérience à l'autre).

Comparaison de puces - Statistiques

Comparaison de puces - Tableau

Le script le plus notable produit à cet effet (ci-dessus) produisait un tableau mettant en vis à vis les mêmes gènes (identifiés par leurs numéros ATG, la norme chez Arabidopsis thaliana) lorsqu'ils étaient retrouvés dans toutes les puces comparées, avec une teinte évoluant selon l'intensité d'expression. Des statistiques générales étaient également générées, comptant notamment les gènes qui passaient d'un état de sur-expression à un état de sous-expression d'une puce à l'autre.


- La dernière s'attachait à designer des primers pour des expériences de quantification d'introns par RT-PCR quantitative. Ces primers devaient respecter un certain nombre de critères, notamment un taux de GC suffisamment élevé, une température d'hybridation bien particulière, la présence de plusieurs G ou C consécutifs aux extrémités et une taille d'amplicon raisonnable.

Séquenceur

Le premier outil (ci-dessus) développé à cet effet se contentait d'afficher la séquence analysée avec un certain nombre d'informations supplémentaires. L'Etude portant sur des introns, une première étape consistait à aligner un ADN complémentaire à un ADN génomique, de façon à mettre en évidence les introns par des séquences de "-". La seule difficulté dans un tel alignement provenant des gaps, un algorithme heuristique d'alignement a été développé pour réaliser cette étape, et un outil en ligne plus performant utilisé dans les rares cas où l'alignement n'était pas correct.

La séquence alignée était ensuite complétée par différentes informations :
  • Un aperçu des introns et exons dans la séquence complète,
  • Une coloration de chaque base selon une teinte dépendant du taux de GC de ses voisines, donnant une teinte générale plutôt verte aux régions GC riches et plutôt rouge aux régions AT riches,
  • La mise en évidence par un trait de soulignement des groupes de plusieurs bases G ou C consécutives, et donc des bornes potentielles pour un primer,
  • Un outil d'évaluation en JavaScript calculant taille, taux de GC et température d'hybridation pour le primer sélectionné dans la séquence, permettant de tester de nombreux primers sans recharger la page en les sélectionnant simplement.

Générateur de primers - Tableau

Générateur de primers - Alignement

Le second outil (ci-dessus) développé pour ce travail diminuait encore la participation de l'utilisateur, en générant lui même tous les primers possibles. De la même façon que pour la version précédente, cet outil alignait ADN complémentaire et génomique, puis détectait tous les primers respectant les paramètres entrés par le biais d'un formulaire HTML (taille et température d'hybridation minimales, maximales et optimales).

Deux types de sortie étaient générées : tout d'abord une liste de primers sous forme d'un tableau, avec les séquences, positions et caractéristiques des différents primers ainsi que l'écart de ces caractéristiques aux optima demandés, cette différence produisant un score qui permettait de les classer.

Ensuite une représentation graphique de ces primers sur la séquence sous forme d'un alignement multiple, chaque primer ayant une teinte dépendant de son score : les primers plus proches des optima en vert, les plus éloignés en rouge.

Un dernier outil JavaScript permettait de sélectionner les primers en cliquant dessus dans le tableau complet ou l'alignement multiple, et générait ensuite un tableau récapitulatif ne contenant que les primers sélectionnés.



2. Aspect développeur

La seconde partie de ce stage se plaçait plutôt du coté développeur, par le biais de différentes contributions à une banque de données sur les lipides développée dans le laboratoire par une de mes collègues. L'objectif de cette base était de référencer les nombreux variants lipidiques, et de dégager de manière automatique les associations entre ceux ci grâce aux connaissances actuelles en matière de réactions enzymatiques. Il s'agissait donc de programmer les différentes transformations enzymatiques possibles, puis de générer toutes les combinaisons d'acides gras possibles, en gardant en mémoire les différents pathways pouvant conduire à chacun d'eux.

Ma première contribution a ce projet a été d'écrire un script Python, langage que je ne connaissais pas à l'époque, qui permette de générer des images au format PNG à partir des formules lipidiques au format SMILES stockées dans la base de données. La majeur partie du travail avait déjà été réalisée dans une bibliothèque de Bio-Python qu'il nous a suffit de lier à la base de données, bien que je me sois ensuite employé à l'étendre à un autre élément de nomenclature qu'elle ne considérait pas à l'époque : les co-substances (présence dans un acide gras d'une protéine ou d'un atome inhabituel).

Un second script Python m'a été demandé pour générer cette fois ci des fichiers XML modélisant les pathways dans cette base, selon un standard bien défini qui permette ensuite d'utiliser les travaux d'une autre équipe en collaboration avec la notre.

J'ai également pu participer à l'élaboration de la base proprement dite, en effectuant les recherches bibliographiques et en implémentant une de ses transformations enzymatiques : la lipoxygénation. L'Implémentation proprement dîtes consistait à produire deux procédures en Perl, autre langage qui m'était alors inconnu, incluses ensuite dans la base de données PostGreSQL.

Interface Homme Machine

Ma dernière contribution concernait enfin la future Interface Homme Machine de cette base de données, un travail qui correspondait à mes connaissances personnelles de l'époque puisqu'il s'agissait de réfléchir aux différents formulaires et pages de cette future base de données, qui serait réalisée en PHP, HTML et CSS. Les prototypes des différentes pages ont été réalisées avec PowerPoint afin d'avoir un support de discussion avec les différentes personnes impliquées dans le projet, et une liste de recommandations sur le fonctionnement interne a également été rédigée pour la personne qui aura à charge d'implémenter ce projet d'IHM.



Ce stage au CEA de Grenoble aura ainsi été l'occasion pour moi de découvrir la bio-informatique et de confirmer mon choix pour cet aspect de la biologie. J'ai pu également perfectionner mes connaissances personnelles en informatique en découvrant de nouveaux outils (Python, Perl et PostGreSQL), et les appliquer à de vrais problèmes biologiques. Je considère ce stage comme une chance, et tiens à remercier l'Université Joseph Fourier pour cette initiative qui permet à des étudiants de licence de réaliser de vrais stages en laboratoire aussi tôt dans le cursus universitaire, ce qui nous aurait été impossible sans leur appui administratif et financier.