-
Notifications
You must be signed in to change notification settings - Fork 7
/
scArches_setup.Rmd
78 lines (68 loc) · 2.1 KB
/
scArches_setup.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
---
title: "Untitled"
author: "Nick Borcherding"
date: "2023-01-18"
output: html_document
---
```{r}
Sys.setenv(RETICULATE_PYTHON = "/Users/ncborch/Library/r-miniconda-arm64/envs/r-reticulate/bin/python")
sc <- import('scanpy')
sca <- import('scarches')
np <- import('numpy')
mpl <- import("matplotlib")
import("gdown")
import("torch")
meta.data <- readRDS("./data/meta.rds")
library(ggplot2)
library(RColorBrewer)
library(harmony)
library(Seurat)
library(SeuratDisk)
source("./R/sparse.merger.R")
seurat.merged <- readRDS("./data/SCT_list.rds")
genes <- SelectIntegrationFeatures(seurat.merged)
#Remove TCR related genes
unwanted_genes <- "^TR[ABDG][VDJ]"
genes <- genes[!grepl(unwanted_genes, genes)]
#seurat.merged <- subset(seurat.merged, features = genes)
counts <- NULL
meta <- NULL
for(i in seq_along(seurat.merged)) {
tmp <- subset(seurat.merged[[i]], features = genes)
counts[[i]] <- tmp@assays$SCT@counts
meta[[i]] <- tmp@meta.data
}
counts <- merge.sparse(counts)
headers <- intersect(colnames(meta[[30]]), colnames(meta[[1]]))
meta2 <- lapply(meta, function(x) {
x <- x[,headers]
})
meta2 <- do.call(rbind, meta2)
seurat.merged <- CreateSeuratObject(counts = counts)
seurat.merged <- AddMetaData(seurat.merged, meta2[,c(1,4:25)])
SaveH5Seurat(seurat.merged, filename = "./data/processedData/OverallTcells.h5Seurat")
Convert("./data/processedData/OverallTcells.h5Seurat", dest = "h5ad")
file.remove("./data/processedData/OverallTcells.h5Seurat")
```
# Full expression object
```{r}
seurat.merged <- readRDS("./data/SCT_list.rds")
counts <- NULL
meta <- NULL
for(i in seq_along(seurat.merged)) {
tmp <- seurat.merged[[i]]
counts[[i]] <- tmp@assays$SCT@counts
meta[[i]] <- tmp@meta.data
}
rm(seurat.merged)
gc()
counts <- merge.sparse(counts)
headers <- intersect(colnames(meta[[30]]), colnames(meta[[1]]))
meta2 <- lapply(meta, function(x) {
x <- x[,headers]
})
meta2 <- do.call(rbind, meta2)
seurat.merged <- CreateSeuratObject(counts = counts)
seurat.merged <- AddMetaData(seurat.merged, meta2[,c(1,5:22)])
saveRDS(seurat.merged, "./data/processedData/OverallT_SeuratObj.rds")
```