-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path08-analyseDiff.Rmd
125 lines (77 loc) · 2.43 KB
/
08-analyseDiff.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# Analyse d’expression différentielle : MA-plot
## C'est quoi un MA plot
### Nos data
```{r}
head(exprs, 10)
```
### La théorie

Le MA plot représente le lien entre différence d’expression et intensité moyenne.
- M (magnitude) est le logarithme en base 2 du rapport d’expression (“log2 fold-change”)
- A (average intensity) est la moyenne des logarithmes des valeurs d'expression.
**log2 fold change, “magnitude”**
```
M = log2(KO/WT) = log2(KO) - log2(WT)
```
**average log2 value**
```
A = ½ log2(KO x WT) = ½ (log2(KO) + log2(WT))
```
## Calculs sur les colonnes
1. Calcul de moyennes par ligne (`rowMeans`) pour un sous-ensemble donné des colonnes (WT1 et WT2).
```{r}
rowMeans(exprs[ , c("WT1","WT2")])
```
2. Ajout de colonnes avec les expressions moyennes des WT et des KO
```{r}
exprs$meanWT <- rowMeans(exprs[ , c("WT1","WT2")])
exprs$meanKO <- rowMeans(exprs[ , c("KO1","KO2")])
```
3. Vérification des résultats
```{r}
head(exprs)
```
4. Fold-change KO vs WT
```{r}
exprs$FC <- exprs$meanKO / exprs$meanWT
```
5. Vérification des résultats
```{r}
head(exprs)
```
6. Moyenne de tous les échantillons
```{r}
exprs$mean <- rowMeans(exprs[ , c("WT1", "WT2", "KO1", "KO2")])
```
7. Vérification des résultats
```{r}
head(exprs)
```
## MA-plot : log2FC vs intensité
### Calcul de M et A
```{r}
exprs$M <- log2(exprs$FC)
exprs$A <- (log2(exprs$meanKO) + log2(exprs$meanWT)) /2
```
### Visualisation
On peut ensuite dessiner un nuage de points (en l’agrémentant un peu)
```{r}
plot(x = exprs$A, y = exprs$M, main = "MA plot",
col = "blue", pch = 16, xlab = "A = intensity", ylab = "M = log2FC")
grid(lty = "solid", col = "lightgray")
abline(h = 0)
```
## Appliquer une fonction sur les lignes/colonnes
### Appliquer une fonction (moyenne, variance, ...) sur chaque ligne d’un tableau
```{r}
mean_per_row <- apply(exprs[ , c("WT1", "WT2", "KO1", "KO2")], 1, mean)
mean_per_row <- apply(exprs[ , c(2, 3, 4, 5)], 1, mean)
mean_per_row <- apply(exprs[ , -1 ], 1, mean)
mean_per_row <- apply(exprs[ , which(sapply(exprs, class) != "factor")], 1, mean)
var_per_row <- apply(exprs[ , c("WT1", "WT2", "KO1", "KO2")], 1, var)
```
### Appliquer une fonction (moyenne, variance, ...) sur chaque colonne d’un tableau
```{r}
mean_per_col <- apply(exprs[ , c("WT1", "WT2", "KO1", "KO2")], 2, mean)
var_per_col <- apply(exprs[ , c("WT1", "WT2", "KO1", "KO2")], 2, var)
```