空转第10课共定位内容补充(通路 && 细胞类型)
2023-11-08 本文已影响0人
单细胞空间交响乐
作者,Evil Genius
在空转系列的课程中,第10课讲解了细胞类型的共定位描述,可以获得如下的分析结果:
其中不止一位学员问通路和细胞类型的共定位是如何做的,示例图如下:
我们这一篇进行空转第10课的内容补充,还是以课上的数据为例
library(argparse)
library(tidyverse)
library(Seurat)
library(mistyR)
source("misty_utilities.R")
自定义函数run_colocalization和source的脚本misty_utilities.R放在了最后,同样借助R包progeny做通路富集为例,其他富集结果替换即可。
library(progeny)
slide = readRDS(spatial_rds)
gene_expression = as.matrix(slide@assays$Spatial@data)
pathways <- progeny(gene_expression, scale=TRUE,organism="Mouse",top = 100, perm = 1) ###物种是人的写Human
head(pathways)
下面在创建slot的时候时候是否进行均一化大家视情况而定
slide[['progeny']] <- CreateAssayObject(counts = t(pathways))
assay_label <- "progeny"
assay <- assay_label
DefaultAssay(slide) <- assay
useful_features <- rownames(slide)
useful_features <- useful_features[! useful_features %in% c("TNFa")] ###通路特征
useful_features_ct <- rownames(GetAssayData(slide, assay = "predictions")) ###细胞类型特征
useful_features_ct <- useful_features_ct[! useful_features_ct %in% "max"]
slide_id = 'CTR'###图片的slide信息
细胞类型和通路的共定位分析
mout <- run_colocalization(slide = slide,
useful_features = useful_features,
useful_features_ct = useful_features_ct,
out_label = slide_id,
assay = assay,
misty_out_alias = "./")
misty_res_slide <- collect_results(mout)
可视化
plot_folder <- paste0(mout, "/plots")
system(paste0("mkdir ", plot_folder))
pdf(file = paste0(plot_folder, "/", slide_id, "_", "summary_plots.pdf"))
mistyR::plot_improvement_stats(misty_res_slide)
mistyR::plot_view_contributions(misty_res_slide)
mistyR::plot_interaction_heatmap(misty_res_slide, "intra", cutoff = 0)
mistyR::plot_interaction_communities(misty_res_slide, "intra", cutoff = 0.5)
mistyR::plot_interaction_heatmap(misty_res_slide, "juxta_5", cutoff = 0)
mistyR::plot_interaction_communities(misty_res_slide, "juxta_5", cutoff = 0.5)
mistyR::plot_interaction_heatmap(misty_res_slide, "para_15", cutoff = 0)
mistyR::plot_interaction_communities(misty_res_slide, "para_15", cutoff = 0.5)
mistyR::plot_interaction_heatmap(misty_res_slide, "intra_ct", cutoff = 0)
mistyR::plot_interaction_heatmap(misty_res_slide, "para_ct_15", cutoff = 0)
dev.off()