projet-analyse-donnees/Projet.Rmd
2024-12-26 19:10:17 +01:00

275 lines
No EOL
10 KiB
Text

---
title: "Projet"
output: html_document
date: "2024-12-04"
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(ggplot2)
library(gridExtra)
library(reshape2)
library(corrplot)
library(FactoMineR)
library(factoextra)
```
```{r}
T = read.table("DataProjet3MIC-2425.txt",header=TRUE,sep=";")
T$ExpT1 = as.factor(T$ExpT1)
T$ExpT2 = as.factor(T$ExpT2)
T$ExpT3 = as.factor(T$ExpT3)
head(T)
summary(T)
str(T)
levels(T$ExpT1)
```
### Contenu du jeu de données :
- 3 variables qualitatives nominales représentant l'expression du gêne $$g$$ dont les modalités sont $$\{"sur","sous","non"\}$$. chaque variable correspond respectivement à la différence d'expression du gêne mesurée à la 6èeme heure lors du traitement $$T \in \{T1,T2,T3\}$$
- $$3*6 + 3*6 = 36$$ variables quantitatives continues représentant les effets des traitements sur l'expression des gênes T1 T2 et T3 à 1h,2h,3h,4h,5h,6h après l'administration pour les replicats R1 et R2, par rapport à leur expression à T=0 ( sans traitement).
- Ce jeu de données contient des relevés sur 542 individus, ici des gênes.
## Analyse unidimentionnelle :
### Expression des gênes lors du traitement T1
```{r}
g1<-ggplot(T, aes(x=T$ExpT1))+
geom_bar()+
ylab("Effectifs")+ggtitle("Effectifs")
g2<-ggplot(T, aes(x = T$ExpT1)) +
geom_bar(aes(y = (..count..)/sum(..count..)))+ylab("")+ggtitle("Frequences")
df <- data.frame(group = levels(T$ExpT1),
value = as.vector(table(T$ExpT1))/nrow(T))
g3<-ggplot(df, aes(x="", y=value, fill=group))+
geom_bar(width = 1, stat = "identity")+
coord_polar("y", start=0)+
theme(legend.position="bottom")
grid.arrange(g3,g1,g2,ncol=3)
```
### Expression des gênes lors du traitement T2
```{r}
g1<-ggplot(T, aes(x=T$ExpT2))+
geom_bar()+
ylab("Effectifs")+ggtitle("Effectifs")
g2<-ggplot(T, aes(x = T$ExpT2)) +
geom_bar(aes(y = (..count..)/sum(..count..)))+ylab("")+ggtitle("Frequences")
df <- data.frame(group = levels(T$ExpT2),
value = as.vector(table(T$ExpT2))/nrow(T))
g3<-ggplot(df, aes(x="", y=value, fill=group))+
geom_bar(width = 1, stat = "identity")+
coord_polar("y", start=0)+
theme(legend.position="bottom")
grid.arrange(g3,g1,g2,ncol=3)
```
### Expression des gênes lors du traitement T3
```{r}
g1<-ggplot(T, aes(x=T$ExpT3))+
geom_bar()+
ylab("Effectifs")+ggtitle("Effectifs")
g2<-ggplot(T, aes(x = T$ExpT3)) +
geom_bar(aes(y = (..count..)/sum(..count..)))+ylab("")+ggtitle("Frequences")
df <- data.frame(group = levels(T$ExpT3),
value = as.vector(table(T$ExpT3))/nrow(T))
g3<-ggplot(df, aes(x="", y=value, fill=group))+
geom_bar(width = 1, stat = "identity")+
coord_polar("y", start=0)+
theme(legend.position="bottom")
grid.arrange(g3,g1,g2,ncol=3)
```
### Analyse de de ces 3 variables
On remarque que les traitements T2 et T3 semblent avoir un effet assez similaire sur l'expression des gênes relevée à la 6ème heure : Une polarisation entre la sous expression et la sur expression qui se partagent presque la totalité des relevés, avec un poids légèrement superieur à 55% pour la sur-expression au détriment de la sous-expression. Cela a peut être un rapporrt avec le fait que T3 est une combinaison des traitement T1 et T2.
T1 quant à lui se démarque grandement par une large majorité (Un peu plus de 80%), de gêne n'ayant pas changé d'expression après 6h de traitement.
### Expression relative des gênes mesurées à intervalle régulier
#### Traitement T1
```{r, fig.height=10}
#apply(T[-c(37:39)],2,function(col){
# which(T == col)
#hist(col, main = paste("Histogram of", colnames(T)[which(T == col)[2]]),
# xlab = "Values", col = "lightblue", border = "black")
#})
T_long = melt(T[c(1,2,3,4,5,6,19,20,21,22,23,24)])
ggplot(T_long, aes(x = value)) +
geom_histogram(binwidth = 1, fill = "blue", color = "black", alpha = 0.7) +
facet_wrap(~variable,scales = "free",ncol=6) +
labs(title = "Histograms for Each Column", x = "Values", y = "Frequency")
```
### Traitement T2
```{r, fig.height=10}
T_long = melt(T[c(7,8,9,10,11,12,25,26,27,28,29,30)])
ggplot(T_long, aes(x = value)) +
geom_histogram(binwidth = 1, fill = "blue", color = "black", alpha = 0.7) +
facet_wrap(~variable,scales = "free",ncol=6) +
labs(title = "Histograms for Each Column", x = "Values", y = "Frequency")
```
### Traitement T3
```{r, fig.height=10}
T_long = melt(T[c(13,14,15,16,17,18,31,32,33,34,35,36)])
ggplot(T_long, aes(x = value)) +
geom_histogram(binwidth = 1, fill = "blue", color = "black", alpha = 0.7) +
facet_wrap(~variable,scales = "free",ncol=6) +
labs(title = "Histograms for Each Column", x = "Values", y = "Frequency")
```
Nous observons bien une concordance avec l'analyse des expressions des gênes figure <celle de la question precedente>. EN effet, les histogrammes en rapport avec le traitement 1 sont très nettement regroupés vers 0, soit une expression relative des gênes qui ne change peu. Les histogrammes pour les relevés des variables en lien avec T2 et T3 sont tout aussi similaires aux résultats précédents : La variance de l'expression relative des gênes est plus élevée et on observe bien une polarisation "sous-exprimé-"sur-exprimé" sur les relevés à 6h. Attention, ici on observe aussi que T2 et T3 n'ont pas leur effet caractéristique directement : à 2h, la distribution de l'expression des genes semble presque Gaussienne, et à 1h elle ne se distingue pas beaucoup du traitement 1 avec un regroupement sur 0.
### boxplots pour faire joli
```{r}
ggplot(melt(T[1:18]),aes(x=variable,y=value))+
geom_boxplot()+ theme(axis.text.x = element_text(angle=90, vjust = 0.5, hjust = 1))
ggplot(melt(T[19:36]),aes(x=variable,y=value))+
geom_boxplot() + theme(axis.text.x = element_text(angle=90, vjust = 0.5, hjust = 1))
```
On voit que même sans réduire les données, chaque variable s'exprime environ avec la même intensité.
# TODO : RAJOUTER LES BOXPLOTS PAIRE QUANTITATIF QUALITATIF POUR DECELER UNE CORRELATION, INUTILE
```{r}
# traitement 1 corrélation avec l'expression des genes du T1 T2 et T3
ggplot(T,aes(y=T$T1_6H_R1,x=T$ExpT1))+
geom_boxplot()
ggplot(T,aes(y=T$T1_6H_R2,x=T$ExpT1))+
geom_boxplot()
ggplot(T,aes(y=T$T1_6H_R1,x=T$ExpT2))+
geom_boxplot()
ggplot(T,aes(y=T$T1_6H_R2,x=T$ExpT2))+
geom_boxplot()
ggplot(T,aes(y=T$T1_6H_R1,x=T$ExpT3))+
geom_boxplot()
ggplot(T,aes(y=T$T1_6H_R2,x=T$ExpT3))+
geom_boxplot()
# traitement 2 corrélation avec l'expression des genes du T1 T2 et T3
ggplot(T,aes(y=T$T2_6H_R1,x=T$ExpT1))+
geom_boxplot()
ggplot(T,aes(y=T$T2_6H_R2,x=T$ExpT1))+
geom_boxplot()
ggplot(T,aes(y=T$T2_6H_R1,x=T$ExpT2))+
geom_boxplot()
ggplot(T,aes(y=T$T2_6H_R2,x=T$ExpT2))+
geom_boxplot()
ggplot(T,aes(y=T$T2_6H_R1,x=T$ExpT3))+
geom_boxplot()
ggplot(T,aes(y=T$T2_6H_R2,x=T$ExpT3))+
geom_boxplot()
# traitement 2 corrélation avec l'expression des genes du T1 T2 et T3
ggplot(T,aes(y=T$T3_6H_R1,x=T$ExpT1))+
geom_boxplot()
ggplot(T,aes(y=T$T3_6H_R2,x=T$ExpT1))+
geom_boxplot()
ggplot(T,aes(y=T$T3_6H_R1,x=T$ExpT2))+
geom_boxplot()
ggplot(T,aes(y=T$T3_6H_R2,x=T$ExpT2))+
geom_boxplot()
ggplot(T,aes(y=T$T3_6H_R1,x=T$ExpT3))+
geom_boxplot()
ggplot(T,aes(y=T$T3_6H_R2,x=T$ExpT3))+
geom_boxplot()
```
Analyse des boxplots :
- traitement 1 (réplicats 1 et 2)
Les genes sur-exprimés au T1 n'ont pas changé d'expression relativement à l'absence de traitement durant le T2.
Il est difficile d'observer une catégorie de genes de T1 qui se soient sous exprimés dans T2. De même pour la sur-expression dans T2.
Ceux qui s'étaient sur-exprimés au T1 ont affiché aucun changement semblent ne pas avoir changé d'expression au T3 ( relativement à l'absence de traitement).
Ceux qui n'avaient pas changés d'expression relative durant T1, se sont sous exprimé ou sur exprimé.
Il faut bien se rappeler que T1 ne cible que très peu de genes donc ces observations sont cohérentes.
- traitement 2
On observe une légère tendance des genes s'étant sous-exprimé avec T1 à se sous exprimer avec T2 mais le reste des boxplots ne permettent pas de relever quoi que ce soit par rapport à T2.
En revanche, il est très clair que T2 et T3 ciblent les mêmes genes, toutes les expressions relevées par T2 concordent aux modalités qualitatives moyennes calculées sur T3.
## Analyse bi-dimensionnelle
### matrice de correlation des variables quantitatives
```{r, fig.height = 18}
cr = cor(T[-c(37:39)])
corrplot(cr,method="ellipse", type="lower", bg = "lightgrey")
```
### Regression linéaire des variables 2 à 2 ???
### librairie biostatR
```{r}
library(BioStatR)
# Calculate eta² for Treatment 1
print("T1 vs T2")
eta2(T$T1_6H_R1, T$ExpT2)
eta2(T$T1_6H_R2, T$ExpT2)
print("T1 vs T3")
eta2(T$T1_6H_R1, T$ExpT3)
eta2(T$T1_6H_R2, T$ExpT3)
print("T2 vs T3")
eta2(T$T2_6H_R1, T$ExpT3)
eta2(T$T2_6H_R2, T$ExpT3)
```
Le calcul du rapport de correlation eta² bien notre observation de la grande similarité d'expression des genes traités avec T2 et T2 et la dissimilarité des expression des genes lorsque la plante est traitée avec T1 comparée à T2 et T3, chose normale au vu du peu de genes affectés par T1.
### table de contingence pour les variables quali 2 à 2, mosaic plot ?
```{r}
table(T$ExpT1,T$ExpT2)
table(T$ExpT1,T$ExpT3)
table(T$ExpT2,T$ExpT3)
```
Nouvelle confirmation de nos résultats de manière encore plus précise, on observe que T1 ne change pas l'expression de la très grande majorité des genes. Plus finement, on peut confirmer l'observation faite sur les boxplots tendant à dire que le peu de genes s'étant sous exprimés avec T1 se sont aussi sous-exprimés avec T2 et T3.
La grande valeur des effectifs partiels sur la diagonale de la table de contingence entre T2 et T3 montre bien la similarité de l'effet de ces deux traitement sur l'expression des genes.
## Menez une analyse en composantes principales où les Tt sH Rr sont les individus décrits par les gènes.
```{r}
donnees_transposees = t(T[-c(37:39)])
res_pca<-PCA(donnees_transposees,scale.unit=TRUE,graph=FALSE)
res_pca$eig
fviz_eig(res_pca)
```
On voit qu'on dépasse 80% de l'inertie totale des points rien qu'avec les deux premières dimensions, on en prend donc les 2 plus grandes.