Voici l’evaluation pratique : 3 etapes:
Lire cette documentation et preparer le code avant l’evaluation finale.
Execution du code a partir des donnees fournies par Greg: lundi 20 avril (90 minutes).
Revision du travail (si necessaire): REMISE avant le 24 avril a minuit!
OBJECTIFS de cette evaluation:
- tester un jeu de donnees reel.
- se confronter a une nouvelle approche: RDA
- apprendre a resoudre les problemes.
(“AnnotationHub”,“knitr”,“GenomicRanges”, “vegan”, “limma”, “biomaRt”)
Quel est le nombre de replicat par groupe? groupe DG, groupe n_DG, DIETE, INSULINE, et combinaisons DG_DIETE et DG_INSULIN
dim(exprData)
## [1] 46889 44
head(colnames(exprData))
## [1] "nDG_NA_1" "DG_INSULIN_2" "DG_DIETE_3" "DG_INSULIN_4"
## [5] "nDG_NA_5" "DG_INSULIN_6"
head(rownames(exprData))
## Ku8QhfS0n_hIOABXuE fqPEquJRRlSVSfL.8A ckiehnugOno9d7vf1Q
## "346389" "1" "1"
## x57Vw5B5Fbt5JUnQkI ritxUH.kuHlYqjozpE QpE5UiUgmJOJEkPXpc
## "29974" "29974" "29974"
La distribution des échantillons est conséquente avec ce a quoi on s’attenderais, alors que pour chaque groupe la mediane et le range sont semblables. Pour tous les patients des valeurs d’environ: Min : 7.1 1st Qu.:7.35 Median : 7.5 Mean : 7.8 3rd Qu.:7.7 Max :15.0
Ces valeurs suggèrent aussi qu’il y a beaucoup de gènes qui s’expriment avec des lectures autour de 7.8 et quelques veleurs sont significativement plus élevées, à des valeurs allant jusqu’à 15.
Les noms de colonnes sont uniques et correspondent à 44 patients répartis en 3 groupes. Les noms de colonnes donnent aussi des informations sur l’état de santé des patients, par rapport au DG/nDG et au type de traitement (insuline, diète, NA):
DG : diabete gestationnel
nDG: non diabete gestationnel
DIETE/INSULIN: traitement applique chez les patients “diabete gestationnel”
NA : No Applicable (pas de traitement pour le diabete gestationnel)
Le nom des lignes est en deux parties, un entrezID numérique (numérique, jusqu’à 6 chiffres) et un Illumin_ID (alphanumérique du type: 01LVKJbtyL14UlF95Q). Le entrezID n’est pas unique, mais le Illumin_ID
Ce sont des transcrits de gènes entrezID associés à des sondes Illumin_ID
Cette approche nous permet d’optimiser le temps de calcul et de travailler sur une selection non biaisee.
exprDataSample = exprData[sample(nrow(exprData), 10000), ]
class(exprDataSample)
## [1] "matrix"
dim(exprDataSample)
## [1] 10000 44
Ce qui est attendu: une matrice de 10000 lignes appelee exprDataSample
Presenter les donnees dans UN boxplot representant les groupes par 3 couleurs differentes. De plus, les labels dans les axes des X doivent etre representer verticalement (quel option pouvait vous utiliser) et comment faire pour que les labels soient visibles dans leur totalite
Ce qui est attendu : un boxplot avec les criteres demandes.
Ces boxplots démontrent un bon QC, alors que les données semblent constantes entre les patients. Cela confirme aussi ce qui a été souligné plus tôt, soit que la majorité des valeurs se situent sous 8 et quelques gènes ont valeurs beaucoup plus élevées (les points au haut des boites à moustaches).
Representer les echantillons dans un dendrogramme apres un clustering (et non les genes)
Les groupes ne sont pas fortement classifiés, alors que les feuilles voisines proviennent surtout de groupes séparés. Il y a une petit portion où les traitements sont regroupés, annoté par le carré jaune sur la deuxième figure. Les résultats des patients DG_INSULIN_2, DG_INSULIN_6, DG_INSULIN_9, DG_INSULIN_25, DG_INSULIN_36 sont tous adjacents et pourraient être considérée comme classés correctement.
Les échantillons semblent encore ici (comme avec le Dendrogramme) difficile à regrouper sur la base de ce graphique. Les données ne semblent pas se séparer latéralement en groupes, selon l’axe de la PC1. Elles ne semblent pas non plus se séparer horizontalement, selon l’axe de la PC2. Il serait possible de distinguer un groupe plus ou moins clair en haut à droite, mais avec des ééchantillons associés à différents labels regroupés, il n’est pas possible de faire de conclusions.
La valeur d’inertie associée à la PC1 est d’environ 13,3% (32.43/243.3 : inertie PC1 / inertie totale). Cela veut dire que la PC1 explique 13,3% de la variation des données.
La valeur d’inertie associée à la PC2 est d’environ 12,3% (29.96/243.3 : inertie PC2 / inertie totale). Cela veut dire que la PC2 explique 12,3% de la variation des données. En somme, même avec les deux premières composantes principales, on ne peut qu’expliquer 25,6% de la variance totale. Les données ne semblent pas suivre les axes tracées par les conditions expérimentales sur le graphique de RDA présenté ci-dessous.
Quelques explications sur RDA:
L’analyse proprement dite
243.326 (Total_variance)
Il y a environ 6% de la variance qui est expliquée par le modèle (Constrained_Proportion: 0.061) et donc 94% de non expliqué.
Le biplot de RDA:
La fonction goodness de rda:
A partir de l’object exprData,
1. creez 2 matrices de donnees:
-une contenant les donnees diabete gestionnel-diete (label = “DG_DIETE”). Cette matrice s’appelera exprData_DGD.
-une contenant les donnees diabete gestionnel-insuline (label = “DG_INSULIN”). Cette matrice s’appelera exprData_DGI.
Au final: associez les 2 matrices en une matrice. Cette matrice s’appellera exprData_DG.
Ce qui est attendu: object designLIMMA
fit <- lmFit(exprData_DG,designLIMMA)
fit2= eBayes(fit)
res_TopTable = topTable(fit2 , coef=1 , adjust="fdr", p.value=0.01, number = 46889)
Il y a 46 889 gènes avec une variance significativement différente entre les groupes DG_INSULIN et DG_DIETE. Ils sont contenus dans l’objet “res_TopTable”
L’objet “geneID.annotated” est une liste des gènes sélectionnés par la TopTable de l’analyse différentielle, accompagnés de leur annotations respectives (“hgnc_symbol”,“entrezgene”,“ensembl_transcript_id”, “description”,“start_position”,“end_position”). C’est une liste de 88 774 gènes.
Decrivez l’object ensGene.
REPONSE: GRanges object with 63 280 ranges and 5 metadata columns, C’est une liste de tous les positions des gènes (transcrits et leurs variants) du génome humain Hg18. C’est une base de donnée de bioconductor qui utilise les informations sur les transcrits de Ensembl.
Decrivez ce que represente l’object mask.
REPONSE: Ce mask est l’intercept en commun de EnsGene avec les GeneID sélectionnés pus tôt. Cela permet de créer l’objet “ensGene_select”, qui contient les gènes sélectionnée avec toutes les informations associées au transcrit sélectionné. length(ensGene_select) = 18 457 indique le nombre de gènes sélectionnés et bien annotés.
Quels types d’information sont fournies par la librarie “FDb.InfiniumMethylation.hg18”
REPONSE (en quelques mots):
C’est une liste de 487 117 “GRanges object”" (avec 14 colonnes de metadata) qui correspondent à autant de sites de méthylation connus dans le génome humain.
Comment interpretation le output de la fonction findoverlap?
REPONSE: La liste overlap_info contient 278 574 entrées, qui correspondent aux CpG répertoriés qui ont été retrouvés dans l’environnement immédiat (+/- 2000pb) des gènes sélectionnés plus tôt.
A ce stade nous avons selectionne des CpGs d’interet en accord avec les donnees transcriptomiques. Ces CpGs pourraient etre interessants pour continuer l’analyse.
FIN DE L’EVALUATION PRATIQUE 2.
Comment interpreter ces valeurs numeriques?
Le résultat de “goodness(rda.vegan)” est une liste des gènes les mieux expliqués par les composantes principales de la RDA. Ainsi, entrezID = “650058” est expliqué à 2.25% par la composante DRA1 et à 8.0% par la RDA2. En fait, dans cette liste de head, c’est la RDA2 qui semble le plus expliquer la variance observée pour ces gènes.