• Aucun résultat trouvé

4.1 Interprétation des résultats

Une fois le projet fini l'outil Circos nous a permis de produire une visualisation graphique des données d'expression de gènes de type RNAseq chez le peuplier. Celà aboutit à quattre représentations circulaire (Figure 6 et en Annexe 4) qui permettent de visualiser clairement les gènes et plus généralement les termes de gene ontology sur ou sous exprimés dans une condition de croissance particulière chez le peuplier qu'est la carence en eau. Par exemple, en s'interressant à la représentation graphique du terme GO P (Annexe 4.b), on peut observer que la quasi totalité des gènes associés à ce terme sont sur-exprimés en condition de stress par rapport au contôle.

En associant ses résultats avec de précédentes études et à venir, il sera possible de déterminer et d'analyser des profils d'expressions de gènes propre à ce genre de stress et ainsi isoler les gènes qui pourraient potentiellement accroitre la résistance des especes forestières d'intérêt agricoles à la sécheresse.

4.2 Difficultés rencontrées

4.2.1 Gestion de la masse de données

L'objectif de ce stage était de représenter graphiquement des données d'expression de gènes de type RNAseq chez le peuplier au moyen de l'outil

Circos. Dans un premier temps, seul le fichier de données a été exploité afin de sortir les premiers résultats. Ce fichier basé sur les résultats de la publication de Cossu (2014) contenait au total 73 013 transcrits, une taille facilement gérable en Perl. Or cela l'était moins avec Circos quand il a fallu représenter les histogrammes pour chaque condition expérimentale soit 146 026 tracés (si aucune sélection n'était faite avec la BH-pvalue). Actuellement, il n'existe pas de possibilités dans Circos pour répartir les tâches sur un serveur multi-cœurs ni de tentatives connus en cours par les auteurs.

Par conséquent, afin de réduire le temps de calcul, il a fallu répartir la représentation des transcrits sur différentes images et donc faire appel à plusieurs exécutions de Circos qui pouvaient être ainsi partagées entre les différents cœur de calcul. La première question qui s'est posée, était de savoir comment classer les transcrits. Étant donnée que l'annotation de gène de la version 3 nous informe sur quel chromosome il est positionné (exemples : le gène Potri.001G000100.1 est localisé sur le chromosome 1 ; le gène Potri.T182100.1 n'a pas encore été assigné à un chromosome) , il était évident dans un premier temps de les trier en fonction de leur chromosome. De cette façon, on se retrouvait avec 20 représentations (19 chromosomes + gènes sans chromosomes) créés par 20 exécutions Circos parallélisées. Le temps de calcul fut alors nettement plus court qu'avec une seule représentation (quelques minutes avec 20 représentations contre plus de 10 minutes avec 1 représentation) . Cependant cette solution de tri n'apporte pas d'informations supplémentaires sur d'éventuels profils d'expression reliés à des groupes fonctionnels d'autant plus qu'on n'observe pas de chromosomes plus stimulés pour l'une ou l'autre des conditions de croissance.

Une façon plus pertinente de trier les transcrits a été de procéder en fonction des termes de GO. En procédant de cette manière, on obtenait quatre graphes et étant donné qu'on ne pouvait représenter toutes les données de cette manière (la relation entre les versions 2 et 3 étant non-bijective), le nombre de transcrits maximum représentés sans restriction au niveau des p-value ajustées était d'environ 8 500. Ainsi le temps de calcul n'excédait pas les 3-4 minutes qui passait à l'ordre de la seconde si on ne retenait que les résultats significatifs.

Finalement, la gestion de la taille fut au départ le principal obstacle à la représentation des données exploitées. D'autres sont survenus par la suite. Par exemple : comment inclure une légende. En effet, il faut savoir que l'ajout de texte sous Circos suit des règles bien précises et ne peut être positionné librement. Le second obstacle d'importance lors de la rédaction du script Perl était de permettre à celui-ci d'être utilisable en dehors de mon environnement de travail et avec d'autres jeux de données avec des structures potentiellement différentes, chose qu'au début de mon stage je ne maitrisais

pas car ayant tendance à me baser sur la structure et non le contenu du fichier pour extraire les données ainsi que sur des chemins relatifs et non absolus. Pour ce qui est de la prise en compte des possibles changements de structures des fichiers (résultats et agriGO), cela fut résolu en s'aidant des noms présent dans l'entête du fichier qui servaient à retrouver les données associées (pour plus de détails, se référer à la partie résultat 3.1.1 et 3.1.2).

4 .2.2. Gammes de couleurs et lisibilité

Comme énoncé précédemment l'objectif final du stage était de représenter graphiquement des données de gènes de type RNAseq chez le peuplier en fonction de leur terme GO afin de définir des profils d'expression propre à l'organisme face à une condition de croissance particulière qu'est la carence en eau. Que ce soit pour le fichier de données expérimentales ou pour les fichiers agriGO, chaque résultat était associé à une p-value afin de définir leur significativité. Par résultat significatif, il faut comprendre non lié au hasard donc ayant potentiellement un intérêt scientifique. Afin de mettre en avant les résultats significatifs des gammes de couleur ont été créés dont deux via le canal alpha, celles du bleu et du orange pour les histogrammes et une via les canaux R, G et B, celle du texte associé au GO étant donné que ce dernier ne supportait la gestion du canal alpha. Cette dernière gamme était relative au nombre de termes GO contrairement aux deux premières qui ne considéraient pas le nombre de transcrits représentés. Par conséquent avec une forte sélection du nombre de transcrits via le seuil de BH-pvalue et/ou celui de FDR-pvalue, n'étaient représentés graphiquement que des transcrits avec une faible BH-pvalue et/ou les transcrits appartenant à un terme GO retenu. Cependant le taux de transparence défini par le canal alpha ne permettait pas de définir une différence de significativité au moyen de la couleur des différents transcrits en dessous d'une certaine valeur de BH-pvalue. En effet si la valeur du canal alpha est trop faible, elle ne permet pas d'établir une différence de transparence entre la couleur des transcrits. De ce fait un transcrit avec une BH-pvalue de 1e-10 est représenté dans le même taux de transparence qu'un transcrit avec une BH-pvalue de 1e-60. De plus lorsqu'on retient trop de transcrits, même si

une différence de transparence existe entre la représentation des transcrits, elle est rarement visible étant donné que trop de valeurs sont représentées ne laissant apparaître que le contour des barres de histogrammes dont la couleur ne varie pas (car ne supporte pas le canal alpha) contrairement au contenu des barres. Avec du recul il aurait été plus pertinent de produire une gamme de couleurs de orange et de bleu en gérant le canal alpha pour qu'il soit dépendant du nombre de transcrits retenus en fonction de leur BH-pvalue et non uniquement et directement de cette p-value. Une autre possibilité aurait été de générer une gamme de couleurs de orange et de bleu toujours dépendante du nombre de transcrits retenu mais sans se reposer sur le canal alpha et la transparence mais sur l'assombrissement et l'éclaircissement de la couleur, comme il l'a été fait pour la gamme de couleur de gris.

4.3 Circos et autres représentations graphiques

Il aurait été envisageable d'ajouter des informations aux représentations produites par Circos comme le nombre de gènes exprimés pour chaque conditions qui aurait permis de définir un pourcentage de gènes sur et sous exprimés voir à expression constante pour chaque termes GO et ainsi faire ressortir ceux qui sont les plus stimulés en condition contrôle et de stress. Cet apport d'information aurait pu se faire sous forme de texte localisé au dessus ou en dessous des histogrammes ou encore sous forme d'un histogramme positionné à la fin de chaque terme GO.

Cependant le risque est de surcharger la représentation d'informations et alors perdre de la lisibilité qui est un des forts de Circos d'autant plus que ces informations peuvent être visualisées sur d'autres formes de représentation comme un diagramme de Venn (pour la visualisation des gènes communs et propres aux différentes conditions) ou encore un histogramme standard voir un diagramme circulaire pour représenter le pourcentage de gènes stimulés pour chaque termes GO et chaque condition (Figure 7).

Figure 7 exemple de représentation :

(a) par un diagramme de Venn pour visualiser gènes communs et propres aux différentes conditions. (b) par un histogramme standard pour représenter le pourcentage de gènes stimulés pour chaque termes GO et chaque condition. a

Cossu, 2014.

b

De part la lisibilité des représentations circulaires des données, Circos

inspire de nouvelles méthodes basé sur ce logiciel afin de représenter différents types de données. Par exemple Circoletto (Darzentas, 2010) est né de l'association de Circos et du BLAST dans le but d'apporter une représentation graphique riche en informations, flexible et esthétique des similarités de séquences. Rcircos (Zhang, 2013) quant à lui est un paquet R qui implémenté dans Circos permet de produire et introduire dans les représentations, des graphiques de type R de façon simple. En effet afin d'obtenir ce type de graphiques, Circos néscessite la création de différents fichiers supplémentaires de données et limite ainsi une intégration rapide de données obtenues sous R, données largment répendu lors d'analyses statistiques de données génomiques.

4.4 Apports

Sur le plan personnel, ce stage a été très enrichissant car j'ai pu, tout d'abord me faire une idée de la place d'un bioinformaticien au sein d'une équipe de recherche mais aussi découvrir d'autres exemples de ce que l'informatique peut apporter au domaine de la recherche en biologie.

J'ai pu améliorer par la même occasion mes compétences en informatiques notemment en Perl, Bash et Circos ainsi qu'acquérir les bonnes pratiques de développement de code de programmation qui régissent la bioinformatique. Ayant déjà travailler avec Circos lors d'un projet au cours de cette première année de master, ce stage m'a permis d'aller plus loin dans l'utilisation de cet outil et d'exploiter des fonctionnalités que je n'avais pas eu l'occasion d'approfondir.

Enfin, bien que je n'ai pas eu l'occasion de travailler sur les données même du PIAF, le fait de pouvoir apporter ma contribution aussi minime soit elle à cette étude en cours de réalisation a suscité en moi une réelle motivation qui vient conforter mon choix d'orientation dans le domaine qu'est la bioinformatique.

Conclusions

L'outil Circos est réellement efficace pour des représentation graphique de données de type RNAseq permettant de mettre en avant des informations d'intérêt et ceux de façon précise et lisible. Ce type de représentation circulaire qui contrairement à une représentation standard, minimise l'espace nécessaire offrant alors une visualisation plus clair des résultats. Bien que possédant certains « défauts », Circos est en constante évolution, restant ainsi un logiciel de choix pour la représentations de différentes données génomiques.

Table des sigles et des abréviations

ADN : Acide désoxyribonucléique ADNc : ADN complémentaire ARN : Acide ribonucléique BH : Benjamini & Hochberg FDR : False Discovery Rate GO : Gene Ontology

ID : de l'anglais « identifier » (identifiant) pb : paire de base

Glossaire

agriGO : agriGO (GO Analysis Toolkit and Database for Agricultural Community) est un outil et une base de données web pour l'analyse de la gene ontology. Il prend en charge plus particulièrement les espèces d'intérêts agricoles et reste un site relativement instinctif.

canal alpha : le canal alpha gère le taux de transparence d'une couleur. Il peut être additionné comme quatrième variable au format RGB : R,G,B,α. Sa valeur est comprise entre 0 et 1 ; plus cette valeur est proche de 1, plus la couleur sera transparente.

GO : la GO (Gene Ontoly) est un projet informatique destiné à structurer la description des gènes dans une ontologie commune à toutes les espèces. Un terme GO est défini par une fonction biologique précise (catalyse d'une réaction, phosphorylation …) et intervient au niveau soit de composants cellulaires (C) soit de fonctions moléculaires (F) soit de processus biologique (P) (termes d'ontologie).

Read : un read est un fragment de plusieurs bases que lit les séquenceurs. Leur longueur varie en fonctions des technologies utilisées.

RGB : format de codage de couleur définit par la quantité de rouge, de vert et de bleu

Table de hachage : une table de hachage est, en informatique, un tableau de données à deux entrées qui associent une clef unique à un élément (valeur ou objet).

Bibliographie

Bekele WA, Wieckhorst S, Friedt W et Snowdon RJ. (2013). High-throughput genomics in sorghum: from whole-genome resequencing to a SNP screening array. Plant Biotechnol Journal,11: 1112– 1125.

Benjamini, Y., and Hochberg, Y. (1995). Controlling the false discovery rate: a practical and powerful approach to multiple testing. Journal of the Royal Statistical Society Series B 57, 289–300.

Cossu R, Giordani T, Cavallini A and Natali L. (2014). High-throughput analysis of transcriptome variation during water deficit in a poplar hybrid: a general overview. Tree Genetics & Genomes, 10: 53-66

Zhou Du, Xin Zhou, Yi Ling, Zhenhai Zhang and Zhen Su (2010). agriGO: a GO analysis toolkit for the agricultural community. Nucleic Acids Research, 38 : w64-w70, Web Server issue.

G. A. Tuskan, S. DiFazio, S. Jansson, J. Bohlmann, I. Grigoriev, U. Hellsten, N. Putnam, S. Ralph, S. Rombauts, A. Salamov, J. Schein, L. Sterck, A. Aerts, R. R. Bhalerao, R. P. Bhalerao, D. Blaudez, W. Boerjan, A. Brun, A. Brunner, V. Busov, M. Campbell, J. Carlson, M. Chalot, J. Chapman, G.-L. Chen, D. Cooper, P. M. Coutinho, J. Couturier, S. Covert, Q. Cronk, R. Cunningham, J. Davis, S. Degroeve, A. Dejardin, C. dePamphilis, J. Detter, B. Dirks, I. Dubchak, S. Duplessis, J. Ehlting, B. Ellis, K. Gendler, D. Goodstein, M. Gribskov, J. Grimwood, A. Groover,29 L. Gunter,1 B. Hamberger, B. Heinze, Y. Helariutta, B. Henrissat, D. Holligan, R. Holt, W. Huang, N. Islam-Faridi, S. Jones, M. Jones-Rhoades, R. Jorgensen, C. Joshi, J. Kangasja, J. Karlsson, C. Kelleher, R. Kirkpatrick, M. Kirst, A. Kohler, U. Kalluri, F. Larimer, J. Leebens-Mack, J.-C. Leple, P. Locascio, Y. Lou, S. Lucas, F. Martin, B. Montanini, C. Napoli, D. R. Nelson, C. Nelson, K. Nieminen, O. Nilsson, V. Pereda, G. Peter, R. Philippe, G. Pilate, A. Poliakov, J. Razumovskaya, P. Richardson, C. Rinaldi, K. Ritland, P. Rouze, D. Ryaboy, J. Schmutz, J. Schrader, B. Segerman, H. Shin, A.

Sandberg, Y. Van de Peer, D. Rokhsar, (2006). The genome of black cottonwood, Populus trichocarpa (Torr. & Gray). SCIENCE , 313 : 1596 -1604.

Jill L. Wegrzyn,John D. Liechty, Kristian A. Stevens, Le-Shin Wu, Carol A. Loopstra, Hans A. Vasquez-Gross, William M. Dougherty, Brian Y. Lin, Jacob J. Zieve, Pedro J. Martínez-García, Carson Holt, Mark Yandell, Aleksey V. Zimin, James A. Yorke, Marc W. Crepeau, Daniela Puiu, Steven L. Salzberg, Pieter J. de Jong, Keithanne Mockaitis, Doreen Main, Charles H. Langley and David B. Neale, (2014). Unique features of the loblolly pine (Pinus taeda L.) megagenome revealed through sequence annotation. Genetics, 196 : 891-909.

Martin I Krzywinski, Jacqueline E Schein, Inanc Birol, Joseph Connors, Randy Gascoyne, Doug Horsman, Steven J Jones and Marco A Marra, Circos (2009). an Information Aesthetic for Comparative Genomics. Genome Research, 19:1639-1645.

Michael I Love, Wolfgang Huber and Simon Anders , (2014). Moderated estimation of fold change and dispersion for RNA-Seq data with DESeq2 .

Nikos Darzentas , (2010). Circoletto: visualizing sequence similarity with Circos . Vol.26no.20 : 2620–2621 doi:10.1093/bioinformatics/btq484

Hongen Zhang, Paul Meltzer and Sean Davis , (2010). RCircos: an R package for Circos 2D track plots . 14:244 http://www.biomedcentral.com/1471-2105/14/244

Sources d'informations web

http://institut.inra.fr/ : Site de l'INRA

http://www6.clermont.inra.fr/piaf : Site de l'UMR PIAF

http://annuaire.inra.fr/accueil.action : Site de l'annuaire des Laboratoires et des Recherches de l'INRA

http://circos.ca/ : Site de l'Outil de Représentation Graphique Circos

http://www.fao.org/documents/fr/ : Site de l'Organisation des Nations Unies pour l'alimentation et l'agriculture.

http://www.genoscope.cns.fr/spip/ : Site du Centre National de Séquençage GENSCOPE

Annexe 1 : Organigramme de l'UMR0547 PIAF du

centre Clermont-Ferrand-Theix

Annexe 2 : organisation des fichiers

LinkedGeneIDv3v2

Annexe 3 : gamme de gris

(a) Fichiers mycolors.conf :

(b) application de la gamme de gris sur une représentation produite par le script.

Annexe 4 :

représentations graphiques circulaire des niveaux de transcriptions des gènes de peuplier en condition contrôle et de stress classés par terme de GO pour les termes d'ontologie F (a), P (b) et pour les transcrits sans terme d'ontologie (c) d'ontologie via le script avec comme option 10E-15 en BH-pvalue seuil et 10E-30 en FDR-pvalue seuil.

Annexe 5 : Hiérarchisation des dossiers

Projet → agriGo/ → agriGO.159929982.UpRegulated.details.txt → agriGO.282590025.DownRegulated.details.txt circosGraphicRepresentation.5.pl* → conf.directory/ → axes.conf → background.conf → circos.C.conf → circos.F.conf → circos.NoGOAccess.conf → circos.P.conf → etc/ → housekeeping.conf → mycolor.conf → ideogram.conf → ideogram.label.conf → ideogram.position.conf → CossuEtAl2014.control_stressed_SelectedResults.csv → histogram.directory/ → histogram.C.Control.txt → histogram.C.Stress.txt → histogram.F.Control.txt → histogram.F.Stress.txt → histogram.NoGOAccess.Control.txt → histogram.NoGOAccess.Stress.txt → histogram.P.Control.txt → histogram.P.Stress.txt → image.directory/ circos.C.png

circos.C.svg circos.F.png circos.F.svg circos.NoGOAccess.png circos.NoGOAccess.svg circos.P.png circos.P.svg → karyotype.directory/ → karyotype.C.txt → karyotype.F.txt → karyotype.NoGOAccess.txt → karyotype.P.txt → LinkedGeneIDv3v2/ → Cossu_et_al._2014downRegulatedLinkedGeneIDv3v2.csv → Cossu_et_al._2014upRegulatedLinkedGeneIDv3v2.csv → text.directory/ → FDR.C.txt → FDR.F.txt → FDR.NoGOAccess.txt → FDR.P.txt → go.C.txt → go.F.txt → go.NoGOAccess.txt → go.P.txt → ID.C.txt → ID.F.txt → ID.NoGOAccess.txt

→ ticks.C.txt → ticks.F.txt

→ ticks.NoGOAccess.txt → ticks.P.txt

Annexe 6 : Script perl

#!/usr/bin/env perl =head1 NAME

circosGraphicRepresentation.5.pl : script in 4 steps creating all required files for the graphic representation on circos of RNAseq results and finally run Circos scripts.

=head1 SYNOPSIS

circosGraphicRepresentation.pl FDRpvalue] BHpvalue] ResultsFile] [--UpRegulatedLinkedGeneIDv3v2File] [--DownRegulatedLinkedGeneIDv3v2File] agriGOupRegulatedDetailed] agriGOdownRegulatedDetailed]

[--histogramThresold] =head1 DESCRIPTION

Creating all required files (karyotype, histogram, text label, circos.conf files) for the graphic representation of RNAseq results (using --ResultsFile option) and finally run circos.

Creating also a modified housekeeping file to run correctly Circos unless time and data number limits. "debug_auto_timer_report" defined the time before automatic Circos crash and debuging text, "max_ticks, max_ideograms", "max_links" and "max_points_per_track" defined max data number authorized by Circos and "list_field_delim" defined assignment operator (":" is by default and block the conservation of GO access nomenclature).

=head1 OPTIONS

--Help|help|h, produces this help file.

--Verbose[no-Verbose]|verbose[no-verbose]|v[no-v], boolean option to print out warnings during execution. Warnings and errors are redirected to STDERR. Defaults to no verbose (silent mode).

--FDRpvalue|fdrpvalue|f=string, optional, give the maximum FDRpvalue

(threshold) for which the association between the GO class and its entries (up or down regulated gene) is significative.

--BHpvalue|bhpvalue|b=string, optional, give the maximum BHpvalue (threshold) for which transcrits results.

--UpRegulatedLinkedGeneIDv3v2File|upRegulatedLinkedGeneIDv3v2File| u=string, file with link between id v3 & v2 for up regulated gene. Need following structure : geneIDv3\tgeneIDv2.

--DownRegulatedLinkedGeneIDv3v2File|downRegulatedLinkedGeneIDv3v2File| d=string, file with link between id v3 & v2 for down regulated gene. Need following structure : geneIDv3\tgeneIDv2.

--agriGOupRegulatedDetailed|AgriGOupRegulatedDetailed|y=string, file with the gene up regulated and their GO classification. Need heading name

"GO_acc" or "go_acc", "FDR" or "fdr" and "Entries" or "entries".

--agriGOdownRegulatedDetailed|AgriGOdownRegulatedDetailed|z=string, file with the gene down regulated and their GO classification. Need heading name "GO_acc" or "go_acc", "FDR" or "fdr" and "Entries" or "entries".

--histogramThresold|HistogramThresold|t=string, define the histograms scale with the maximum (control/stress) value (use verbose to see the value). --silentCircos|silentCircos|s=string, silent or not circos : option y(yes)/n(no) (n by default). =head1 AUTHORS HOCHART Corentin =head1 VERSION 2.5 =head1 DATE 03/07/2014 =cut # libraries use warnings; use strict; use Getopt::Long; use Pod::Usage; use POSIX; #scalars

my $help; # help flag

my $verbose; # debugging flag

my $FDRpvalueThreshold = 0.000303 ; #FDR pvalue threshold by

my $BHpvalueThreshold = 0.000303 ; #BH pvalue threshold by default #Default files : my $upRegulatedLinkedGeneIDv3v2File = "LinkedGeneIDv3v2/Cossu_et_al._2014upRegulatedLinkedGeneIDv3v2.csv" ; my $downRegulatedLinkedGeneIDv3v2File = "LinkedGeneIDv3v2/Cossu_et_al._2014downRegulatedLinkedGeneIDv3v2.csv" ; my $agriGOupRegulatedDetailed = "agriGO/agriGO.159929982.UpRegulated.details.txt" ; my $agriGOdownRegulatedDetailed = "agriGO/agriGO.282590025.DownRegulated.details.txt" ; my $resultsFile = "CossuEtAl2014.control_stressed_SelectedResults.csv" ; # my $histogramThresold = 0 ; my $histogramThresold2 = $histogramThresold ;

Documents relatifs