@@ -11,4 +11,178 @@ library(tidyverse)
11
11
12
12
## Load the data
13
13
14
+ ``` {r}
15
+ yeast.expression <-
16
+ read_csv("~/Downloads/kelliher-scer-expression-data.csv",
17
+ show_col_types = FALSE)
18
+ ```
19
+
20
+ ``` {r}
21
+ yeast.800 <-
22
+ filter(yeast.expression, normalized_per_rank <= 800) |>
23
+ mutate(normalized_per_rank = NULL)
24
+ ```
25
+
26
+ ``` {r}
27
+ yeast.long <-
28
+ pivot_longer(yeast.800, !gene_ID,
29
+ names_to = "time",
30
+ values_to = "expression",
31
+ names_transform = list(time = as.integer)) |>
32
+ group_by(gene_ID) |>
33
+ mutate(expression = as.numeric(scale(expression))) %>%
34
+ rename(gene = gene_ID)
35
+ ```
36
+
37
+
38
+ ``` {r}
39
+ nrm1 <- filter(yeast.long, gene == "NRM1")
40
+ htb2 <- filter(yeast.long, gene == "HTB2")
41
+
42
+ plot(nrm1$expression, htb2$expression)
43
+ ```
44
+
45
+ ``` {r}
46
+ 1 - cor(nrm1$expression, htb2$expression)
47
+ ```
48
+
49
+
50
+ ``` {r}
51
+ yeast.genes.as.vars <-
52
+ yeast.long |>
53
+ pivot_wider(names_from = gene,
54
+ values_from = expression) |>
55
+ select(-time)
56
+ ```
57
+
58
+ ``` {r}
59
+ yeast.corr <- cor(yeast.genes.as.vars)
60
+ ```
61
+
62
+ ``` {r}
63
+ dim(yeast.corr)
64
+ ```
65
+
66
+ ``` {r}
67
+ yeast.dist <- 1 - yeast.corr
68
+ ```
69
+
70
+ ``` {r}
71
+ 1 - (yeast.corr[1:5, 1:5])
72
+ ```
73
+ ``` {r}
74
+ yeast.clustering.complete <-
75
+ hclust(as.dist(yeast.dist), method = "complete")
76
+ ```
77
+
78
+ ``` {r}
79
+ plot(yeast.clustering.complete)
80
+ ```
81
+
82
+ ``` {r}
83
+ library(dendextend)
84
+ ```
85
+
86
+
87
+ ``` {r}
88
+ yeast.dend <- as.dendrogram(yeast.clustering.complete)
89
+ ```
90
+
91
+
92
+ ``` {r}
93
+ plot(yeast.dend, leaflab = "none")
94
+ ```
95
+ ``` {r}
96
+ plot(color_branches(yeast.dend, k=10),leaflab="none")
97
+ ```
98
+ ``` {r}
99
+ clusters <- cutree(yeast.dend,
100
+ k=10,
101
+ order_clusters_as_data = FALSE)
102
+ ```
103
+
104
+ ``` {r}
105
+ clusters_df <-
106
+ tibble(gene = names(clusters), cluster = clusters)
107
+
108
+ ```
109
+
110
+ ``` {r}
111
+ clusters_df
112
+ ```
113
+
114
+
115
+ ``` {r}
116
+ cluster8.genes <- filter(clusters_df,
117
+ cluster == 8)$gene
118
+
119
+ cluster8.genes
120
+ ```
121
+
122
+
123
+
124
+ ``` {r}
125
+
126
+ yeast.long |>
127
+ filter(gene %in% cluster8.genes) |>
128
+ ggplot(aes(x = time, y = gene)) +
129
+ geom_tile(aes(fill = expression)) +
130
+ scale_fill_gradient2(low = "cyan",
131
+ mid = "black",
132
+ high = "yellow",
133
+ midpoint = 0,
134
+ limits=c(-2.5,2.5),
135
+ oob = scales::squish) +
136
+ theme(axis.text.y = element_text(size = 6)) # set size of y axis labels
137
+
138
+ ```
139
+
140
+
141
+ ``` {r}
142
+
143
+ cluster.genes <- filter(clusters_df,
144
+ cluster == 5)$gene
145
+
146
+ yeast.long |>
147
+ filter(gene %in% cluster.genes) |>
148
+ ggplot(aes(x = time, y = gene)) +
149
+ geom_tile(aes(fill = expression)) +
150
+ scale_fill_gradient2(low = "cyan",
151
+ mid = "black",
152
+ high = "yellow",
153
+ midpoint = 0,
154
+ limits=c(-2.5,2.5),
155
+ oob = scales::squish) +
156
+ theme(axis.text.y = element_text(size = 6)) # set size of y axis labels
157
+
158
+ ```
159
+ ``` {r}
160
+ for (i in 1:10) {
161
+
162
+ cluster.genes <- filter(clusters_df,
163
+ cluster == i)$gene
164
+
165
+ yeast.long |>
166
+ filter(gene %in% cluster.genes) |>
167
+ ggplot(aes(x = time, y = gene)) +
168
+ geom_tile(aes(fill = expression)) +
169
+ scale_fill_gradient2(low = "cyan",
170
+ mid = "black",
171
+ high = "yellow",
172
+ midpoint = 0,
173
+ limits=c(-2.5,2.5),
174
+ oob = scales::squish) +
175
+ theme(axis.text.y = element_text(size = 6)) # set size of y axis labels
176
+
177
+ ggsave(str_c("cluster", i, ".png"))
178
+
179
+ }
180
+
181
+ ```
182
+
183
+
184
+ ``` {r}
185
+ str_c("cluster", 3, ".png")
186
+ ```
187
+
14
188
0 commit comments