-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstromal_integration.Rmd
More file actions
100 lines (85 loc) · 2.52 KB
/
Copy pathstromal_integration.Rmd
File metadata and controls
100 lines (85 loc) · 2.52 KB
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
---
title: "Stromal_integration"
author: "Maksym"
date: "3/8/2023"
output: html_document
---
```{r}
library(Seurat)
library(SeuratData)
library(SeuratWrappers)
library(tidyverse)
```
Load data
```{r}
lgpt = readRDS("/Volumes/TOSHIBA/TIMElab/SCPCP000002/stromal_cells.rds")
meningioma = readRDS("/Volumes/TOSHIBA/TIMElab/Wang_Meningioma/stromal_cells.rds")
nf = readRDS("/Volumes/TOSHIBA/TIMElab/GSE163028_RAW/stromal_cells.rds")
mets = readRDS("/Volumes/TOSHIBA/TIMElab/GSE186344/stromal_cells.rds")
gbm = readRDS("/Volumes/TOSHIBA/TIMElab/GSE182109_processed/muralcells.rds")
DefaultAssay(gbm) <- "RNA"
```
```{r}
meningioma$cell.type <- meningioma$Final_celltype
mets$cell.type <- mets$Cell_Type
gbm$cell.type <- gbm$cell.type.fine
```
```{r}
overlapping_genes = Reduce(intersect, list(
rownames(lgpt),
rownames(meningioma),
rownames(nf),
rownames(mets),
rownames(gbm)
))
```
```{r}
count_data = cbind(
lgpt@assays$RNA@counts[overlapping_genes,],
meningioma@assays$RNA@counts[overlapping_genes,],
#nf@assays$RNA@counts[overlapping_genes,],
mets@assays$RNA@counts[overlapping_genes,],
gbm@assays$RNA@counts[overlapping_genes,]
)
```
```{r}
metadata = rbind(
lgpt@meta.data %>% select(cell.type) %>% mutate(Dataset = "PLGG"),
meningioma@meta.data %>% select(cell.type) %>% mutate(Dataset = "Meningioma"),
#nf@meta.data %>% select(cell.type),
mets@meta.data %>% select(cell.type) %>% mutate(Dataset = "BMets"),
gbm@meta.data %>% select(cell.type) %>% mutate(Dataset = "GBM")
)
```
```{r}
seurat_obj = CreateSeuratObject(
counts = count_data,
meta.data = metadata
)
nf = CreateSeuratObject(
counts = nf@assays$RNA@counts[overlapping_genes,],
meta.data = nf@meta.data %>% select(cell.type) %>% mutate(Dataset = "NF")
)
```
```{r}
seurat_obj <- NormalizeData(seurat_obj)
seurat_obj <- merge(seurat_obj, y = nf)
table(seurat_obj$Dataset)
```
```{r}
rm(lgpt, meningioma, nf, mets, gbm)
```
```{r}
seurat_obj <- FindVariableFeatures(seurat_obj)
seurat_obj_integrated <- RunFastMNN(object.list = SplitObject(seurat_obj, split.by = "Dataset"))
seurat_obj_integrated <- RunUMAP(seurat_obj_integrated, reduction = "mnn", dims = 1:15)
seurat_obj_integrated <- FindNeighbors(seurat_obj_integrated, reduction = "mnn", dims = 1:15)
seurat_obj_integrated <- FindClusters(seurat_obj_integrated)
```
```{r}
DimPlot(seurat_obj_integrated, group.by = c("Dataset"), label = T)
DimPlot(seurat_obj_integrated, group.by = c("cell.type"), label = T)
```
```{r}
saveRDS(seurat_obj_integrated, "/Volumes/TOSHIBA/TIMElab/stromal_integration.rds")
```