-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathanalyze_xenium.R
68 lines (67 loc) · 2.24 KB
/
analyze_xenium.R
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
# File paths
xenium_path <- here::here("sc_preprocessing/xenium/")
roi_file <- here::here("sc_preprocessing/cells_to_keep.csv")
analyze_xenium <-
list(
tarchetypes::tar_files_input(
xenium_paths,
list.files(xenium_path, full.names = T)
),
tar_target(
roi_file,
command = roi_file,
format = "file"
),
tar_target(
cells_to_keep,
read.csv(roi_file) %>%
janitor::clean_names() %>%
mutate(sample = gsub(".*_","",name), cellname = paste0(dat_cell_id, "_", sample)) %>%
column_to_rownames("cellname")
),
tar_target(
xenium_obj,
gen_xenium(path=xenium_paths),
pattern = map(xenium_paths),
iteration = "list"
),
tar_target(
xenium_merged,
merge(xenium_obj[[1]], xenium_obj[-1]) %>%
AddMetaData(., cells_to_keep) %>%
subset(., reg == "toremove", invert=T) %>%
SCTransform(., method = "qpoisson", assay="Xenium") %>%
RunPCA(.) %>%
RunUMAP(., dims = 1:30) %>%
FindNeighbors(., reduction = "pca", dims = 1:30) %>%
FindClusters(., resolution = 0.8)
),
tar_target(
xenium_mbh,
subset(xenium_merged, subset = reg == "no_assign", invert=T) %>%
SCTransform(., method = "qpoisson", assay="Xenium") %>%
RunPCA(.) %>%
RunUMAP(., dims = 1:30) %>%
FindNeighbors(., reduction = "pca", dims = 1:30) %>%
FindClusters(., resolution = 0.8)
),
tar_target(
xenium_arc,
subset(xenium_merged, subset = reg == "ARC") %>%
SCTransform(., method = "qpoisson", assay="Xenium") %>%
RunPCA(.) %>%
RunUMAP(., dims = 1:30) %>%
FindNeighbors(., reduction = "pca", dims = 1:30) %>%
FindClusters(., resolution = 0.8)
),
tar_target(
xenium_neurons,
classify_cells_v2(xenium_subset, path = "/projects/dylan/target_testing/cell_markers/spatial_markers.txt") %>%
filter_cells_by_column(., column_name = "ann_neuron_v2", value = "Neurons") %>%
SCTransform(., method = "qpoisson", assay="Xenium") %>%
RunPCA(.) %>%
RunUMAP(., dims = 1:30) %>%
FindNeighbors(., reduction = "pca", dims = 1:30) %>%
FindClusters(., resolution = 0.8)
)
)