你的位置:电竞投注是真的吗安全吗知乎 > 新闻动态 >
plot1cell美化UMAP/TSNE结果
发布日期:2025-12-30 13:55    点击次数:145
plot1cell简介

plot1cell——高级单细胞数据可视化包,可以基于Seurat分析结果对象直接进行可视化绘图,主要依赖于Seurat,circlize,ComplexHeatmap等R包

图片

调用的函数分别存放在R文件夹里面

图片

里面是分别是画不同图用到的脚本,可以帮助我们理解绘图用到的函数,也方便有需要是进行一些参数的修改!

根据帮助文档介绍来看,plot1cell可以基于seurat结果进行可视化:

细胞聚类分群的圆圈图各组基因表达点图跨组别基因表达的小提琴图跨组的 Umap 基因图谱细胞群间差异表达基因Upset图细胞比例分布柱状图

这期我们一起来了解一下,使用plot1cell来可视化细胞聚类分群的UMAP/TSNE圆圈图

plot1cell包给的示例结果:

图片

plot1cell包使用

根据plot1cell包的帮助文档,以及提供的plot_circlize.R脚本学习绘图

绘制UMAP圈图安装需要的R包及其依赖包
#安装需要的R包及其依赖包devtools::install_github("TheHumphreysLab/plot1cell")bioc.packages <- c("biomaRt","GenomeInfoDb","EnsDb.Hsapiens.v86","GEOquery","simplifyEnrichment","ComplexHeatmap")BiocManager::install(bioc.packages)dev.packages <- c("chris-mcginnis-ucsf/DoubletFinder","Novartis/hdf5r","mojaveazure/loomR")devtools::install_github(dev.packages)#加载需要的R包library(plot1cell)library(Seurat)library(tidyverse)library(stringr)library(RColorBrewer)
加载注释后的seurat结果数据

虽然plot1cell也提供对应的示例数据,但是运行加载时间太长,所以我们直接加载自己的数据即可

图片

那我们用上次胃癌数据集的结果数据:人类胃癌(GC)器官特异性转移的转录异质性

基于注释结果,直接使用Dimplot可视化:

图片

加载数据使用plot1cell可视化:

#加载自己的数据sce = readRDS('3-Celltype/sce_celltype.rds') head(sce,2)# 绘制细胞分群圈图###Check and see the meta data info on your Seurat objectcolnames(sce@meta.data)  ###Prepare data for plotingcirc_data <- prepare_circlize_data(sce, scale = 0.8 )set.seed(1234)

使用prepare_circlize_data获取我们需要的metadata信息,并进行了一些计算。

帮助文档给了两个参数的介绍,我们可以去到plot_circlize.R脚本查看一下用到的函数

图片

prepare_circlize_data获取metadata信息是基于get_metadata函数

图片

小tips:

get_metadata函数中是使用metadata$Cluster<-seu_obj@active.ident提取亚群的注释信息,所以在我们注释完单细胞亚群之后,记得使Idents(sce)=sce$celltype让active.ident变为注释完的细胞亚群名字

得到的结果和原始的metadata信息相比,多了UMAP的坐标信息

图片

#设置需要的颜色mycolors <-c('#E64A35','#4DBBD4' ,'#01A187'  ,'#6BD66B','#3C5588'  ,'#F29F80'  ,             '#7F2268','#91D0C1')             cluster_colors<-mycolorsgroup_colors<-rand_color(length(names(table(sce$group))))rep_colors<-rand_color(length(names(table(sce$orig.ident))))###plot and save figuresplot_circlize(circ_data,do.label = T, pt.size = 0.02,              col.use = cluster_colors ,bg.color = '#f8f2e4',              kde2d.n = 200, repel = T, label.cex = 1)add_track(circ_data, group = "group", colors = group_colors, track_num = 2) add_track(circ_data, group = "orig.ident",colors = rep_colors, track_num = 3) 

图片

外圈展示的细胞亚群图例看的不太清楚,如果需要调整的话,可以修改一下脚本里面的plot_circlize函数

修改方法,基于plot_circlize.R脚本对plot_circlize函数中circos.text的cex进行修改,保存修改结果然后加载R脚本,调用里面的函数即可!

图片

source("plot_circlize.R")plot_circlize(circ_data,do.label = T, pt.size = 0.02,              col.use = cluster_colors ,bg.color = '#f8f2e4',              kde2d.n = 200, repel = T, label.cex = 1)              add_track(circ_data, group = "group", colors = group_colors, track_num = 2) add_track(circ_data, group = "orig.ident",colors = rep_colors, track_num = 3) 

图片

对TSNE结果进行可视化

直接使用DimPlot函数对TSNE结果进行可视化:

图片

也可以对TSNE的结果进行可视化,使用plot1cell代码步骤是一样的,不过因为我们直接使用prepare_circlize_data函数获取画图的数据及信息,里面调用的get_metadata默认参数是"umap",所以也是稍稍修改一下plot_circlize.R脚本即可

图片

source("plot_circlize.R")circ_data <- prepare_circlize_data(sce, scale = 0.8)set.seed(1234)mycolors <-c('#E64A35','#4DBBD4' ,'#01A187'  ,'#6BD66B','#3C5588'  ,'#F29F80'  ,             '#7F2268','#91D0C1')cluster_colors<-mycolorsgroup_colors<-rand_color(length(names(table(sce$group))))rep_colors<-rand_color(length(names(table(sce$orig.ident))))###plot and save figuresplot_circlize(circ_data,do.label = T, pt.size = 0.5,              col.use = cluster_colors ,bg.color = '#f8f2e4',              kde2d.n = 200, repel = T, label.cex = 1)add_track(circ_data, group = "group", colors = group_colors, track_num = 2) add_track(circ_data, group = "orig.ident",colors = rep_colors, track_num = 3)

图片

plot1cell可视化UMAP/TSNE小结使用prepare_circlize_data获取画图需要的数据其中get_metadata用于获取并计算umap/tsne坐标信息使用plot_circlize函数绘制圈图可以基于plot_circlize.R按照自己的需求修改,source("plot_circlize.R")加载后,调用里面的函数即可添加亚群可视化结果

在文献解读推文小鼠糖尿病肾病(DKD)的单细胞转录组图谱-1,里面提到的推文就是把细分注释后的亚群也放到了UMAP图上,看起来非常炫酷

图片

生信补给站去年就整理了相关的代码——scRNA复现|所见即所得,和Cell学umap,plot1cell完成惊艳的细胞注释umap图,可以参考里面的代码进行亚群信息的添加

批量获取需要的亚群信息

就不一一进行每个亚群的注释啦,直接看看可视化的效果!

#查看并整理需要的亚群table(sce$celltype)sub_celltype <- c("B","Epithelial" ,"Myeloid" ,"T")#循环对每个亚群进行降维聚类分群sub.celltype_list <- sapply(sub_celltype,function(pro){  print(pro)  sub.celltype <- subset(sce , celltype == pro )  sub.celltype <- NormalizeData(sub.celltype)  sub.celltype <- FindVariableFeatures(sub.celltype)  sub.celltype <- ScaleData(sub.celltype )   sub.celltype <- RunPCA(sub.celltype)  sub.celltype <- FindNeighbors(sub.celltype,dims = 1:15)  sub.celltype <- FindClusters(sub.celltype, resolution = 0.5)  sub.celltype <- RunUMAP(sub.celltype,dims = 1:15)  return(sub.celltype)}) sub.celltype_list

图片

添加亚群信息至plot1cell的圈图

此处参考生信补给站——scRNA复现|所见即所得,和Cell学umap,plot1cell完成惊艳的细胞注释umap图代码进行调整

图片

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。

栏目分类
相关资讯