silico.biotoul.fr
 

M1 MABS TDB TD Transcriptome - Clustering

From silico.biotoul.fr

Jump to: navigation, search

Contents

Analyse de transcriptome de souches de Pseudomonas aeruginosa ayant infecté des patients atteints de mucoviscidose

Etude basée sur la publicaton de Lei Yang et al. Bacterial adaptation during chronic infection revealed by independent component analysis of transcriptomic data.

Récupération des données

Récupérer les données relatives à cette publication sur GEO. Pour cela, il vous faudra retrouver dans la publication les références du jeu de données qu'ils ont utilisé.

Normalisation

Le format est celui d'Affymetrix (fichiers .CEL). Nous utiliserons donc la librarie affy de R/Bioconductor.

Après avoir désarchivé les données dans un répertoire, changer le répertoire courant dans R pour se placer dans le répertoire contenant les fichiers .CEL. L'ensemble des données contenues dans les fichiers GSMxxx.CEL est chargé sous R avec les commandes suivantes :

# si la librairie n'est pas installée (cf. http://bioconductor.org) :
# source("http://bioconductor.org/biocLite.R")
# biocLite("affy")
# chargement de la librairie
library(affy)
raw=ReadAffy()

En effet, par défaut, la fonction ReadAffy() charge tous les fichiers .CEL du répertoire courant.

On peut s'assurer du besoin de normaliser avec une boite à moustache :

boxplot(raw)

Pour la normalisation, nous utiliserons la fonction rma() (Robust Multiarray Averaging) de la librairie affy :

raw.rma=rma(raw)

L'objet raw.rma est de type ExpressionSet et contient l'ensemble des données normalisées. Nous nous intéresserons uniquement aux intensités que nous récupérons avec la commande suivante :

rma.expr=exprs(raw.rma)

Pour plus d'information sur le type ExpressionSet vous pouvez consulter l'aide :

?ExpressionSet

Le résultat de la normalisation peut aussi se visualiser avec une boite à moustache :

par(mfrow=c(2,1))
boxplot(raw)
boxplot(rma.expr)

Données annexes sur les hybridations

Afin de plus facilement analyser les données, les informations de la publication concernant le stade ou phénotype (early, late, mucoid) des bactéries a été compilé dans le fichier suivant :

Table 1 : Contenu du fichier chips_info.txt.
FileName Experience color
GSM774085_CF30-1979a.CEL CF30.1979.late red
GSM774086_CF30-1979b.CEL CF30.1979.late red
GSM774086_CF30-1979c.CEL CF30.1979.late red
GSM774088_CF43-1973a.CEL CF43.1973.early green
... ... ...

Charger ces données dans un objet que l'on appellera info.

Clustering des profils

Pour effectuer des analyses de clustering, nous utiliserons la fonction heatplot de la librairie made4. Cette fonction reprend les fonctionnalités de la fonction heatmap vue dans un TD précédent. Elle permet notamment d'utiliser une méthode de distance entre profils d'expression basé sur le coefficient de corrélation de Pearson.

Effectuer un premier clustering avec les paramètres par défaut :

# chargement de la librairie
library(made4)
# on revient à un seul graphique
par(mfrow=c(1,1))
# affichage du clustering
heatplot(rma.expr, dend='column')

L'affichage étant lent à cause du nombre important de lignes, vous pouvez n'afficher que le dendrogramme sur les colonnes (hybridations) :

heatplot(rma.expr, dend='column')

Nous allons ensuite changer les couleurs pour un meilleur contraste :

heatplot(rma.expr, dend='column', lowcol="blue",highcol="yellow", cols.default=FALSE)

Puis, ajouter les informations concernant les puces que vous avez normalement chargé dans l'objet info :

heatplot(rma.expr, dend='column', lowcol="blue",highcol="yellow", ColSideColors=as.character(info$color),cols.default=FALSE)
  • Est-ce que les réplicats sont regroupés dans les mêmes clusters ?
  • Est-ce que les différents stades/phénotypes forment des clusters ?

Par défaut, la méthode pour mesurer la distance entre 2 profils est basée sur le coefficient de corrélation de Pearson (1 - r). Essayer avec une autre méthode de distance : la distance euclidienne

heatplot(rma.expr, dend="column", lowcol="blue",highcol="yellow", ColSideColors=as.character(info$color),cols.default=FALSE, distfun="euclidean")
  • Que pensez vous du résultat : vous paraît-il meilleur ?

Par défaut, la méthode pour identifier les clusters à fusionner est average linkage. Essayer avec une autre méthode de distance entre clusters : single linkage

heatplot(rma.expr, dend="column", lowcol="blue",highcol="yellow", ColSideColors=as.character(info$color),cols.default=FALSE, method="single")
  • Que pensez vous du résultat : vous paraît-il meilleur ?

Essayer également avec la méthode complete linkage :

heatplot(rma.expr, dend="column", lowcol="blue",highcol="yellow", ColSideColors=as.character(info$color),cols.default=FALSE, method="complete")

Consultez l'aide de la fonction heatplot. Y a-t-il d'autres méthodes disponibles ? Essayez-les et notez le résultat qui vous semble le meilleur.


Analyse d'un compendium de données de transcriptome de levure Saccharomyces cerevisiae

Clustering des profils avec MeV

Dans cette partie, vous allez utiliser des données de transcriptome de levure obtenues pour environ 300 mutants (approche compendium). L'idée est d'effectuer un clustering hiérarchique des profils d'expression des gènes dans toutes ces conditions expérimentales afin d'identifier des ensembles de gènes co-exprimés et donc potentiellement co-régulés et qui pourraient donc participer à un même processus biologique. Une fois les gènes regroupés en cluster, le but est de caractériser ces ensembles de gènes par des méthodes de surreprésentation statistique pour identifier dans quel(s) processus biologique(s) ils sont impliqués. L'analyse plus fine d'un cluster de gènes pourra permettre par la suite d'attribuer un processus biologique potentiel pour un gène de fonction inconnue dont le profil d'expression est fortement corrélé avec ceux d'un groupe de gènes bien connus.

Les données que vous allez utiliser ont été rassemblées et analysées et ont fait l'objet d'une publication dont l'identifiant PubMed est 10929718. Retrouver et lire l'abstract sur PubMed.

Avant de réellement analyser ces données, il est préférable d'appliquer un certain filtrage. Pour simplifier pour ce TD, nous avons retenu seulement les gènes au moins 2x plus ou 2x moins exprimés dans au moins 5 conditions ainsi que les conditions pour lesquelles on a au moins 5 gènes 2x plus ou 2x moins exprimés. Télécharger les données sélectionnées et les désarchiver dans votre répertoire de travail.

Nous allons maintenant utiliser un logiciel un peu plus convivial que la ligne de commande R. Trouver dans le menu démarrer le logiciel qui s'appelle MeV pour MultiExperiment Viewer.

Charger ensuite le jeu de données que vous avez extrait à l'étape précédente à partir du menu File->Load Data.

Explorer l'interface utilisateur. Vous trouverez notamment un menu proposant différentes méthodes de clustering, ainsi qu'un menu permettant d'appliquer différents tests statistiques (Student, ANOVA). Remarque : vous pouvez ajuster la taille d'affichage des ratios dans le menu Display->Set element size.

Essayer de transformer les données (menu Adjust Data et d'ajuster les couleurs (menu Display) pour un meilleur rendu. A quoi correspond la fonction Adjust Data->Gene/Row adjustments->Divide Genes/Rows by SD ? la fonction Sample/Column Adjustments->Mean Center Samples/Columns ?

Effectuer des clustering hiérarchiques avec différents paramètres (nombre de clusters, mesures de distance entre profils et entre cluster).

Quand vous serez satisfait de votre clustering hiérarchique, sélectionnez certains clusters, notamment ceux pour lesquels l'expression des gènes semble la plus homogène. Pour cela, il vous faut cliquer sur l'arbre (normalement à gauche des profils) pour sélectionner un cluster ; un clic droit sur le cluster propose un menu contextuel permettant de sauvegarder le groupe de gènes ou échantillons dans le gestionnaire de clusters (Cluster Manager) avec la fonction store cluster.

A présent, sélectionnez, enregistrez et analysez les clusters qui vous semblent pertinents. Pour l'analyse, utilisez l'outil YeastSpec/funSpec en utilisant les sources de données suivantes : MIPS Functional Classification, MIPS Phenotypes, MIPS Subcellular Localization, MIPS Protein Complexes, et GO Biological Process. Interpréter les résultats obtenus.

Pour finir, essayer de retrouver le cluster mis en avant dans la publication associée à FunSpec en figure 1 (celui enrichi en gènes impliqués dans la biosynthèse des acides aminés).

Données