a b/paper/Application on integrating mouse brain datasets/Slingshot/train_slingshot.Rmd
1
---
2
title: "Seurat_batch_correction"
3
output: html_document
4
---
5
6
```{r setup, include=FALSE}
7
knitr::opts_chunk$set(echo = TRUE)
8
```
9
10
```{r}
11
library(anndata)
12
```
13
14
```{r}
15
# "/project/jingshuw/trajectory_analysis/data/cortex_mouse_brain_merge/cortex_mouse_merged_raw_count_transpose.h5ad"
16
dd <- read_h5ad("cortex_mouse_merged_raw_count_transpose.h5ad",backed = NULL)
17
```
18
```{r}
19
library(Seurat)
20
```
21
```{r}
22
row.names(dd$X) <- dd$obs_names
23
colnames(dd$X) <- dd$var_names
24
```
25
26
27
```{r}
28
se <- CreateSeuratObject(counts = dd$X)
29
```
30
31
```{r}
32
se$Days <- dd$var$Days
33
```
34
```{r}
35
se$Source <- dd$var$Source
36
```
37
```{r}
38
se$Clusters <- dd$var$Clusters
39
```
40
41
```{r}
42
se.list <- SplitObject(se, split.by = "Source")
43
```
44
45
```{r}
46
se.list <- lapply(X = se.list, FUN = function(x) {
47
    x <- NormalizeData(x, verbose = FALSE)
48
    x <- FindVariableFeatures(x, verbose = FALSE)
49
})
50
```
51
52
53
```{r}
54
features <- SelectIntegrationFeatures(object.list = se.list)
55
se.list <- lapply(X = se.list, FUN = function(x) {
56
    x <- ScaleData(x, features = features, verbose = FALSE)
57
    x <- RunPCA(x, features = features, verbose = FALSE)
58
})
59
```
60
61
62
```{r}
63
anchors <- FindIntegrationAnchors(object.list = se.list, reference = c(1, 2), reduction = "cca",
64
    dims = 1:50)
65
se.integrated <- IntegrateData(anchorset = anchors, dims = 1:50)
66
```
67
68
```{r}
69
se.integrated <- ScaleData(se.integrated, verbose = FALSE)
70
se.integrated <- RunPCA(se.integrated, verbose = FALSE)
71
se.integrated <- RunUMAP(se.integrated, dims = 1:50)
72
```
73
74
```{r}
75
DimPlot(se.integrated, group.by = "Source")
76
```
77
```{r}
78
DimPlot(se.integrated, group.by = "Days")
79
```
80
```{r}
81
DimPlot(se.integrated, group.by = "Clusters")
82
```
83
84
```{r}
85
FeaturePlot(object = se.integrated, features = c('Bcl11b'))
86
```
87
```{r}
88
mouse_clusters <- dd$var$Clusters
89
source <- dd$var$Source
90
mouse_days <- dd$var$Days
91
mouse_clusters <- as.character(mouse_clusters)
92
source <- as.character(source)
93
mouse_days <- as.character(mouse_days)
94
95
mouse_days[source == "2"] <-NA
96
mouse_clusters[source == "2"] <-NA
97
```
98
```{r}
99
se.integrated$mouse_days <- mouse_days
100
se.integrated$mouse_clusters <- mouse_clusters
101
```
102
103
```{r}
104
DimPlot(se.integrated, group.by = "mouse_clusters")
105
```
106
107
```{r}
108
109
#f <- "/project/jingshuw/trajectory_analysis/data/cortex_mouse_brain_merge/mouse_brain_merged.h5"
110
#mouse <- read_hdf(f,"grouping")
111
```
112
```{r}
113
DimPlot(se.integrated, group.by = "mouse_days")
114
```
115
116
117
```{r}
118
mouse_grouping <- read.csv("mouse_grouping.csv")
119
```
120
121
```{r}
122
mouse_clusters[source != "2"] <- mouse_grouping$grouping
123
```
124
125
```{r}
126
se.integrated$mouse_raw_clusters <- mouse_clusters
127
```
128
```{r}
129
DimPlot(se.integrated, group.by = "mouse_raw_clusters")
130
```
131
132
133
```{r}
134
ciliated_genes <- c("Npy","Sst","Nxph1")
135
```
136
137
```{r}
138
FeaturePlot(object = se.integrated, features = c("Npy","Sst"),split.by = "Source",ncol=2)
139
```
140
141
```{r}
142
FeaturePlot(object = se.integrated, features = c("Prox1","Cxcl14"),split.by = "Source",ncol=2)
143
```
144
145
146
```{r}
147
FeaturePlot(object = se.integrated, features = c("Etv4","Sp8"),split.by = "Source",pt.size = 1)
148
```
149
```{r}
150
FeaturePlot(object = se.integrated, features = c("Olig1","Olig2"),split.by = "Source",ncol=2)
151
```
152
```{r}
153
FeaturePlot(object = se.integrated, features = c("Pdgfra"),split.by = "Source",ncol=2)
154
```
155
156
157
158
```{r}
159
FeaturePlot(object = se.integrated, features = c("Olig1","Pdgfra"),ncol=2)
160
```
161
162
```{r}
163
FeaturePlot(object = se.integrated, features = c("Olig2"),ncol=2)
164
```
165
```{r}
166
FeaturePlot(object = se.integrated, features = c("Sox2","Pax6"),ncol=2)
167
```
168
169
```{r}
170
FeaturePlot(object = se.integrated, features = c("Sst"),,ncol=2)
171
```
172
173
```{r}
174
FeaturePlot(object = se.integrated, features = c("Prox1"),,ncol=2)
175
```
176
177
```{r}
178
FeaturePlot(object = se.integrated, features = c("Sp8"),,ncol=2)
179
```
180
181
```{r}
182
saveRDS(se.integrated,file = "seuract_batch_correction_cca.rds")
183
```
184
185
186
# load model
187
188
```{r}
189
library(Seurat)
190
library(anndata)
191
```
192
```{r}
193
se.integrated <- readRDS("seurat_batch_correction.rds")
194
```
195
196
```{r}
197
dim(se.integrated@reductions$umap)
198
```
199
```{r}
200
write.table(se.integrated@reductions[["umap"]]@cell.embeddings,"seurat_batch_correction_umap.txt")
201
```
202
203
```{r}
204
write.table(se.integrated@meta.data,"seurat_batch_correction_metadata.txt")
205
```
206
207
```{r}
208
marker <- c("Hmga2","Sox2", "Pax6", "Hes5","Ube2c", "Id4","Olig1", "Olig2", "Pdgfra","Apoe",
209
            "Neurog2","Neurod1","Npy","Sst","Nxph1","Htr3a","Prox1","Cxcl14","Meis2","Etv1","Sp8",
210
            "Btg2","Neurog2","Hes6","Slc1a3","Dbi","Fabp7","Bcl11b")
211
marker_exp <- FetchData(se.integrated,vars = marker,slot = "scale.data")
212
```
213
214
```{r}
215
write.table(marker_exp,"seurat_batch_correction_marker_exp.txt")
216
```
217
218