




library(STutility)
library(harmony)
library(RColorBrewer)
library(patchwork)
library(dplyr)
library(tidyr)
library(purrr)
library(broom)
library(ggpmisc)
adata = readRDS('test.rds')
####读取单细胞空间联合分析的矩阵,推荐cell2location
cell_anno <- read.csv('联合矩阵',row.names = 1)
head(cell_anno)
##### Add metadata to se obj ####
adata <- AddMetaData(adata, cell_anno)###### Cell~Factor correlation ######
###### Cell~Factor correlation ######
groups_use <- c("All", "Healthy", "IPF_1", "IPF_2", "IPF_3", "IPF_4") ###选取样本
factor_cell_cor_data_group <- setNames(lapply(groups_use, function(g){
if (g=="All") {
factor_cell_cor_subset <- factor_cell_cor_data
} else if (g=="Healthy") {
factor_cell_cor_subset <- subset(factor_cell_cor_data, condition == "control")
} else {
factor_cell_cor_subset <- subset(factor_cell_cor_data, subject_alias == g)
}
factor_cell_density_hm <- cor(factor_cell_cor_subset[,c(new_c2l_names_filtered, factor_names)])
diag(factor_cell_density_hm) <- 0
factor_cell_density_hm <- as.data.frame(factor_cell_density_hm)
factor_cell_density_hm <- factor_cell_density_hm[factor_names, new_c2l_names_filtered]
}),
nm = groups_use)
saveRDS(factor_cell_cor_data_group, file.path(DIR_OBJ_C2L, "hs_visium_A_nmf_1-30_factor_cell_cor_data_group.rds"))
# Plot pheatmap
pal_length <- 11
ph_colors <- RColorBrewer::brewer.pal(pal_length, "RdBu") %>% rev()
abs_max_val <- lapply(factor_cell_cor_data_group, max) %>% unlist() %>% max()
pdf(file = file.path(DIR_FIG_C2L, "hs_visium_c2l_res_cell_type_A-NMF30_factor_cor_heatmap_per_subject.pdf"), width = 10, height = 10, useDingbats = F)
for(g in groups_use){
factor_cell_density_hm <- factor_cell_cor_data_group[[g]]
if(g=="all"){abs_max_val <- max(cell_density_hm)}
ph_breaks <- c(seq(-abs_max_val, 0, length.out=ceiling(pal_length/2) + 1),
seq(abs_max_val/pal_length, abs_max_val, length.out=floor(pal_length/2)))
print(
pheatmap::pheatmap(t(factor_cell_density_hm),
cellwidth = 10,
cellheight = 10,
color = ph_colors,
breaks = ph_breaks,
main = g)
)
}
dev.off()
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。