silico.biotoul.fr
 

M1 Traitement de Donnees Biologiques - Rice Expression Atlas Guided Tour

From silico.biotoul.fr

(Difference between revisions)
Jump to: navigation, search
m (Contexte)
m (Librairies tidyverse)
Line 27: Line 27:
* '''Caractériser la liste des gènes''' sur-exprimés dans la condition expérimentale étudiée
* '''Caractériser la liste des gènes''' sur-exprimés dans la condition expérimentale étudiée
-
= Librairies <tt>tidyverse</tt/> =
+
= Librairies <tt>tidyverse</tt/>, chargement et préparation des données =
Pour ce TP, vous allez commencer à utiliser un ensemble de librairies de plus en plus utilisées en traitement de données (et ''data science''). Les 2 principaux avantages sont que :
Pour ce TP, vous allez commencer à utiliser un ensemble de librairies de plus en plus utilisées en traitement de données (et ''data science''). Les 2 principaux avantages sont que :
Line 41: Line 41:
Les fichiers fournis sont au format TSV, c'est-à-dire que la 1ère ligne contient le nom des colonnes, et les colonnes sont séparées par des tabulations. Chargez le fichier contenant les informations relatives aux 98 hybridations, et affichez le contenu comme suit :
Les fichiers fournis sont au format TSV, c'est-à-dire que la 1ère ligne contient le nom des colonnes, et les colonnes sont séparées par des tabulations. Chargez le fichier contenant les informations relatives aux 98 hybridations, et affichez le contenu comme suit :
<source lang='rsplus'>
<source lang='rsplus'>
 +
library(tidyverse)
info = read_tsv("rice.atlas.info.tsv")
info = read_tsv("rice.atlas.info.tsv")
info
info
</source>
</source>
 +
 +
La fonction <tt>read_tsv</tt> renvoie un <tt>tibble</tt> qui est stocké dans la variable <tt>info</tt>. L'affichage du contenu est plus lisible que pour un data.frame : on a la taille, les types des colonnes, et s'il y a beaucoup de lignes et de colonnes, la console n'est pas submergée par des centaines de lignes de données.
 +
 +
<span style='color: #990000'>Adaptez la commande pour charger les données d'expression du fichier <tt>rice.atlas.expr.normalized.tsv</tt> dans une variable que vous pourrez appeler <tt>tb</tt>, et affichez son contenu. Combien de lignes et de colonnes contient-elle ?</span>
 +
 +
La première colonne des 2 tibbles correspond à l'identifiant des hybridations et permet de faire le lien entre les 2 tables. Pour réaliser l'ACP et les autres traitements du TP, nous allons isoler les valeurs numériques d'expression dans une matrice (numérique) comme suit :
 +
<source lang='rsplus'>
 +
dm = tb %>%
 +
  select(-id) %>%
 +
  as.matrix
 +
</source>
 +
 +
Cela nous permet d'utiliser le pipe <tt>%>%</tt> pour la première fois, explication :
 +
* <tt>tb %>%</tt> : a pour effet que le résultat de <tt>tb</tt> (normalement l'affichage) est transmis/redirigé à la commande suivante (de la ligne suivante)
 +
* <tt>select(-id) %>%</tt> : sur le tibble renvoyé par la ligne précédente (la totalité des données), on utilise la fonction <tt>select</tt> qui permet de sélectionner certaines colonnes dans un tibble (ou data.frame) ; ici, on sélectionne toutes les colonnes sauf <tt>id</tt>, et le résultat est passé à la ligne suivante avec le <tt>%>%</tt>
 +
* <tt>as.matrix</tt> : sur le tibble renvoyé par la ligne précedent, on appelle la fonction <tt>as.matrix</tt> qui a pour effet de transformer le ''tibble'' en ''matrix'' (tableau dont toutes les cases ont le même type).
 +
* Le résultat est donc une variable de type <tt>matrix</tt> et est stocké dans la variable <tt>dm</tt> (pour ''data matrix'').

Revision as of 08:38, 28 September 2022

Préparation de l'environnement

Au cours de ce TP, vous allez travailler sur un jeu de données d'expression du génome du riz dans différents tissus et organes au cours du développement. Il s'agit de données obtenues par hybridation sur des microarrays pour chacun des 57k probesets présents sur le microarray.

Il s'agit pour commencer de créer l'environnement de travail.

Créez tout d'abord un répertoire de travail sur le bureau (par exemple TDB-TP5) et commencez par télécharger le fichier source que vous allez utiliser et compléter pour générer le compte rendu de TP : M1.TDB.TP_Rice_Expression_Atlas.Rmd (click droit de la souris -- enregistrer la cible sous...). Ouvrez le logiciel RStudio et chargez ce fichier puis lancez sa compilation pour voir le compte rendu. Pour cela cliquez sur le bouton Knit HTML ou bien utilisez la combinaison de touches Ctrl + shift + K.


Récupération des données. Il s'agit ensuite de récupérer les fichiers de données. Téléchargez les fichiers suivant dans votre répertoire de travail :

Contexte

Dans ce TP, nous allons analyser les données de transciptome obtenues sur Oryza sativa par microarray. Le déroulement des analyses suit les travaux de Fujita et al. publiés en 2010 (pmid:21062870). Ces données sont publiques et ont été mises à disposition sur la banque GEO et sont accessibles avec l'identifiant GSE14304. Il s'agit de 98 hybridations réalisées avec un microarray de la société Affymetrix ayant l'identifiant GPL2025 comportant 57 381 spots (ou probesets) correspondant à 51 279 transcrits d'Oryza sativa japonica et indica.

Pour réaliser ce TP, les données brutes ont été prétraitées afin d'obtenir pour chaque probeset une valeur d'expression normalisée (= comparable entre une hybridation et une autre). Le traitement effectué suit les étapes décrites dans le paragraphe Microarray data extraction, processing and cluster analysis de la partie Materials and Methods :

"For Affymetrix array data, CEL files produced by GCOS 1.3 (Affymetrix, Inc.) were analyzed using the statistical software R with bioconductor package ‘affy’. Signal intensities were extracted by expresso algorithm with parameters: bgcorrect.method = ‘mas’, normalize = ‘F’, pmcorrect.method = ‘pmonly’, summary.method = ‘mas’. Extracted signal intensities were introduced into GeneSpring 7.3.1 (Agilent Technologies, Inc.) and scaled to the 75th percentile per chip."

Les objectifs de ce TP sont multiples et vont être :

  • Prise en main des librairies et fonctions nécessaires,
  • Déterminer si les résultats sont reproductibles : ACP sur les 98 conditions expérimentales → est-ce que les réplicats se regroupent ?
  • Réaliser une analyse d'expression différentielle afin de déterminer les gènes différentiellement exprimés dans une des conditions expérimentales
  • Faire une analyse de clustering sur les profils d'expression de ces gènes et visualiser le résultat
  • Caractériser la liste des gènes sur-exprimés dans la condition expérimentale étudiée

Librairies tidyverse, chargement et préparation des données

Pour ce TP, vous allez commencer à utiliser un ensemble de librairies de plus en plus utilisées en traitement de données (et data science). Les 2 principaux avantages sont que :

  • il y a énormément de documentation en ligne, dans différentes langues, sous forme de tutoriels, de forums, ..., notamment stackoverflow, et que même si la prise en main peut-être un peu ardue au tout début, il y a, le plus généralement, quand on cherche à faire un traitement, quelqu'un qui a eu les mêmes problèmes et donc, la solution disponible mais à adapter à votre jeu de données,
  • le code gagne en lisibilité, et donc plus facile à reprendre, améliorer et maintenir.

Pour ce TP, nous allons utiliser

  • la lecture de fichier,
  • les tibbles : un data.frame amélioré,
  • un opérateur particulier : le pipe %>% qui permet plus de lisibilité dans l’enchaînement des traitements effectué, le résultat d'une fonction étant passé à la fonction suivante,
  • les fonctions graphiques améliorés de la librairie ggplot2.

Les fichiers fournis sont au format TSV, c'est-à-dire que la 1ère ligne contient le nom des colonnes, et les colonnes sont séparées par des tabulations. Chargez le fichier contenant les informations relatives aux 98 hybridations, et affichez le contenu comme suit :

library(tidyverse)
info = read_tsv("rice.atlas.info.tsv")
info

La fonction read_tsv renvoie un tibble qui est stocké dans la variable info. L'affichage du contenu est plus lisible que pour un data.frame : on a la taille, les types des colonnes, et s'il y a beaucoup de lignes et de colonnes, la console n'est pas submergée par des centaines de lignes de données.

Adaptez la commande pour charger les données d'expression du fichier rice.atlas.expr.normalized.tsv dans une variable que vous pourrez appeler tb, et affichez son contenu. Combien de lignes et de colonnes contient-elle ?

La première colonne des 2 tibbles correspond à l'identifiant des hybridations et permet de faire le lien entre les 2 tables. Pour réaliser l'ACP et les autres traitements du TP, nous allons isoler les valeurs numériques d'expression dans une matrice (numérique) comme suit :

dm = tb %>% 
  select(-id) %>% 
  as.matrix

Cela nous permet d'utiliser le pipe %>% pour la première fois, explication :

  • tb %>% : a pour effet que le résultat de tb (normalement l'affichage) est transmis/redirigé à la commande suivante (de la ligne suivante)
  • select(-id) %>% : sur le tibble renvoyé par la ligne précédente (la totalité des données), on utilise la fonction select qui permet de sélectionner certaines colonnes dans un tibble (ou data.frame) ; ici, on sélectionne toutes les colonnes sauf id, et le résultat est passé à la ligne suivante avec le %>%
  • as.matrix : sur le tibble renvoyé par la ligne précedent, on appelle la fonction as.matrix qui a pour effet de transformer le tibble en matrix (tableau dont toutes les cases ont le même type).
  • Le résultat est donc une variable de type matrix et est stocké dans la variable dm (pour data matrix).