Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >5种方式美化你的单细胞umap散点图

5种方式美化你的单细胞umap散点图

作者头像
生信技能树
发布于 2025-01-11 12:53:10
发布于 2025-01-11 12:53:10
2.9K09
代码可运行
举报
文章被收录于专栏:生信技能树生信技能树
运行总次数:9
代码可运行

我们生信技能树的单细胞月更群里面经常看到小伙伴提出的图片美化需求,这就来看看单细胞umap美化工具吧!

第一种:SCP 包(这个包非常的出色)

关于SCP,我们前面也有一个专门的专辑对其进行了大篇幅的介绍,不知道大家用起来了没呢?

其学习的官网地址为:https://zhanghao-njmu.github.io/SCP/index.html

没有安装的,这次就不要再错过啦:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 安装
devtools::install_github("zhanghao-njmu/SCP")

本次,我们使用的数据为来自 GSE128531 数据注释后的seurat对象,你自己用的时候可以使用任何一个经过了注释后的seurat对象。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rm(list=ls())
library(COSG)
library(harmony)
library(ggsci)
library(dplyr) 
library(future)
library(Seurat)
library(clustree)
library(cowplot)
library(data.table)
library(dplyr)
library(ggplot2)
library(patchwork)
library(stringr)
library(qs)

# 导入数据
sce.all.int <- readRDS('2-harmony/sce.all_int.rds')
sp <- 'human'
head(sce.all.int@meta.data)
load("phe.Rdata")
head(phe)
sce.all.int <- AddMetaData(sce.all.int, metadata = phe)

Idents(sce.all.int) <- "celltype"
table(Idents(sce.all.int))

看一下它对UMAP可视化的厉害之处!

1、先看默认主题一键出图:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
################## umap1
library(SCP)
head(sce.all.int@meta.data)
CellDimPlot(sce.all.int, group.by = "celltype", reduction = "UMAP")

这个配色非常CNS,且图中展示了总细胞数,每个亚群的细胞数这些信息:

2、坐标改成 左下小箭头,也是大家非常常见的需求!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 左下小箭头
CellDimPlot(sce.all.int, group.by = "celltype", reduction = "UMAP", theme_use = "theme_blank")

3、只显示X、Y轴

还可以一键调整整体字体大小

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CellDimPlot(sce.all.int, group.by = "celltype", reduction = "UMAP", 
            theme_use = ggplot2::theme_classic, theme_args = list(base_size = 16))

上面三个是我最喜欢的ump风格,还有很多其他,总有你的一款:

第二种:Nebulosa(r包)

Nebulosa 是一个基于核密度估计可视化单细胞数据的 R 包,主要通过结合细胞之间的相似性来恢复丢失特征中的信号,从而实现细胞特征的“卷积”。

学习官网:https://bioconductor.org/packages/devel/bioc/vignettes/Nebulosa/inst/doc/nebulosa_seurat.html

Nebulosa 的主要功能是 plot_density,让我们按照以下方式绘制 一些marker基因 的核密度估计图,展示的marker基因表达水平高低:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 安装一下
options(BioC_mirror="https://mirrors.westlake.edu.cn/bioconductor")
options("repos"=c(CRAN="https://mirrors.westlake.edu.cn/CRAN/"))
BiocManager::install("Nebulosa")
library(Nebulosa)

1、 绘制一个基因PTPRC

这种图也是在很多CNS级别的文章中出现的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 绘制一个基因PTPRC
p1 <- plot_density(sce.all.int, c("PTPRC"),size = 0.3)
p1

2、绘制多个基因

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 同时绘制多个基因
p3 <- plot_density(sce.all.int, c("CD3D","CD4","CD8A","CD68"),size = 0.3)
p3

结果如下:

3、绘制基因共表达

这里可以同时展示两个基因都表达的地方:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# combine = FALSE 只保留两个基因都表达的区域
p4 <- plot_density(sce.all.int, c("CD8A", "CCR7"), joint = TRUE,combine = FALSE) 
p4

第三种:scCustomize(r包)

学习官网:https://samuel-marsh.github.io/scCustomize/index.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 安装
# Base R
install.packages("scCustomize")

绘图:可以绘制一个marker,也可以展示多个marker

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
################## umap4:scCustomize
library(viridis)
library(Seurat)
library(scCustomize)

FeaturePlot_scCustom(seurat_object = sce.all.int, features = c("VWF","CD3E"), order = F)

这种风格很像早期的椒盐绘图风格:你看这个着色点是不是很像洒在鸡腿上面的椒盐!(椒盐风格这个词我在一篇单细胞文献中遇到过,现在找不见了,当时还专门在群里问了来着哈哈哈哈)

还可以轻松地修改配色:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 修改颜色
# Set color palette
pal <- viridis(n = 10, option = "D")
FeaturePlot_scCustom(seurat_object = sce.all.int, features = c("VWF","CD3E"), 
                     colors_use = pal, order = T,pt.size = 0.3)

第四种:ggplot2绘制细胞密度umap图

在seurat包中有人提出一个绘图需求:https://github.com/satijalab/seurat/issues/6962

这种图主要用来处理数据点重叠问题时非常有用,使用 MASS::kde2d() 进行二维核密度估计,并通过等高线显示结果,geom_density_2d() 绘制等高线,而 geom_density_2d_filled() 绘制填充的等高线带。

链接:https://ggplot2.tidyverse.org/reference/geom_density_2d.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(cetcolor)
library(Seurat)
library(ggplot2)

# 设置颜色
scale.col <- cet_pal(16, name = "fire")

# generate UMAP plot
pl1 <- UMAPPlot(sce.all.int, combine = FALSE) # returns full ggplot object
pl1

# make plot
pl1[[1]] & 
  stat_density_2d(aes_string(x = "umap_1", y = "umap_2", fill = "after_stat(level)"), 
                  linewidth = 0.2, geom = "density_2d_filled", 
                  colour = "ivory", alpha = 0.4, n = 150, h = c(1.2, 1.2)) & 
  scale_fill_gradientn(colours = scale.col) & 
  DarkTheme()

这种风格很独特:

第五种:ggpointdensity(r包)

在二维坐标系中可视化数据点有几种方法:如果你有大量的数据点重叠在一起,geom_point() 无法为你提供重叠点的数量估计。

刚刚上面介绍的geom_density2d()geom_bin2d() 可以解决这个问题,但它们使得无法调查个别异常点,而这些异常点可能具有研究价值。

geom_pointdensity() 旨在通过结合两者的优点来解决这个问题:各个点根据邻近点的数量进行着色。这使得你既能看到整体分布,也能看到个别点。

学习官网:https://github.com/LKremer/ggpointdensity

细胞密度图:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 安装
install.packages("ggpointdensity")
library(ggpointdensity)

# 提取umap坐标数据
dat <- Embeddings(sce.all.int, reduction = "umap")
head(dat)
# umap_1    umap_2
# SC67mf2_AAACCTGAGAGTAATC -3.541568  5.127461
# SC67mf2_AAACCTGAGCGCTTAT -6.623588 -3.025122
# SC67mf2_AAACCTGAGGACACCA -4.586405  1.513219

ggplot(data = dat, mapping = aes(x = umap_1, y = umap_2)) +
  geom_pointdensity() +
  scale_color_viridis()

当然,它还可以展示marker特征基因表达:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 提取umap坐标以及特征基因表达
df <- FetchData(object =sce.all.int, vars = c("umap_1", "umap_2", "CD3D"), layer = "data")
head(df)

# umap_1    umap_2     CD3D
# SC67mf2_AAACCTGAGAGTAATC -3.541568  5.127461 0.000000
# SC67mf2_AAACCTGAGCGCTTAT -6.623588 -3.025122 1.430228
# SC67mf2_AAACCTGAGGACACCA -4.586405  1.513219 0.000000

p <- ggplot(df, aes(x= umap_1, y= umap_2 )) +
  geom_point(data = df %>% filter(CD3D == 0), color = "#440154FF", size = 0.6) +
  ggpointdensity::geom_pointdensity(data = df %>% filter(CD3D > 0), size = 0.6) +
  viridis::scale_color_viridis() +
  theme_classic(base_size = 14) +
  labs(color= "CD3D")
p

结果如下:

上面哪一款是你的菜?可以在评论区大声说出来(爱就要勇敢说出来!)。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
画个同款新奇的“Galaxy”星系UMAP图(Nat Immunol:IF27.8)
前面我们已经介绍了如何在umap图上加圈:给你的单细胞umap图加个cell杂志同款的圈,以及绘制星系umap图:5种方式美化你的单细胞umap散点图,那两者组合起来呢?今天学习的这个好看的图来自文献《The aged tumor microenvironment limits T cell control of cancer》,于2024年6月25日发表在Nat Immunol杂志上(IF27.8)。如下:
生信技能树
2025/02/25
1880
画个同款新奇的“Galaxy”星系UMAP图(Nat Immunol:IF27.8)
scRNA分析 | 定制 美化FeaturePlot 图,你需要的都在这
单细胞常见的可视化方式有DimPlot,FeaturePlot ,DotPlot ,VlnPlot 和 DoHeatmap几种 ,Seurat中均可以很简单的实现,但是文献中的图大多会精美很多。
生信补给站
2023/08/25
9.7K0
scRNA分析 | 定制 美化FeaturePlot 图,你需要的都在这
单细胞水平看生存分析相关基因
针对每个癌症的全部基因批量了做了单基因的cox分析,挑选统计学显著的去对应的癌症去打分,看看是否有单细胞亚群特异性。
凑齐六个字吧
2024/07/02
1600
单细胞水平看生存分析相关基因
又一篇单基因的单细胞数据挖掘思路
单个基因在单细胞里面如何分析呢? 这篇帖子中 探讨了 关键基因 CCL2 在单细胞中的表达,并以其表达与否将细胞分成了 CCL2+ 细胞和 CCL2-细胞,并展示了这两种细胞中不同的其他细胞类型比例,结果认为 CCL2+ 细胞主要在巨噬细胞中表达(占比高),但是这个结论是有问题的!讨论的精华点就在视频最后几分钟,感兴趣的朋友可以再去看看:
生信技能树
2025/03/10
1550
又一篇单基因的单细胞数据挖掘思路
给你的单细胞umap图加个cell杂志同款的圈
+CPI colitis全称:Check point inhibitor-induced colitis
生信技能树
2025/01/22
4740
给你的单细胞umap图加个cell杂志同款的圈
展示你的特征基因:带"辣椒粉"的markers基因umap图
今天来看看如何展示你的特征基因,这个需求在单细胞分析中非常常见。图来自文献《The aged tumor microenvironment limits T cell control of cancer》,于2024年6月25日发表在Nat Immunol杂志上(IF27.8)。如下:
生信技能树
2025/03/11
1590
展示你的特征基因:带"辣椒粉"的markers基因umap图
单细胞实战之亚细胞分群从T/NK至CD4+T细胞——从入门到进阶(中级篇1)
在完成了1. 基础流程、2. 三个“矫正”工具、3. “差异”与“富集”两个工具、以及 4. 两个映射工具 这四个初级部分的学习后,我们将正式进入中级篇,第一讲的主题是亚细胞分群。
凑齐六个字吧
2025/02/22
1741
单细胞实战之亚细胞分群从T/NK至CD4+T细胞——从入门到进阶(中级篇1)
中性粒细胞的质量值到底是多低呢?
今天来看看一篇文献中使用BD单细胞测序技术,鉴定到的一大群中性粒细胞,这就来分析看看!多一点对中性粒细胞的实际认知~
生信技能树
2025/04/11
630
中性粒细胞的质量值到底是多低呢?
单细胞测序—标准流程代码(2) — 标记基因与细胞注释
书接上回,已经做好数据质控、过滤、去批次、降维聚类分群后,接下来就是进行细胞注释方面的工作
sheldor没耳朵
2024/08/22
8730
单细胞测序—标准流程代码(2) — 标记基因与细胞注释
scRNA分析|使用AddModuleScore 和 AUcell进行基因集打分,可视化
有了基因集文件除了做scRNA分析|单细胞GSVA + limma差异分析-celltype分组?样本分组?GSVA分析,还可以计算每个细胞的目标基因集评分 。
生信补给站
2023/08/25
18K0
scRNA分析|使用AddModuleScore 和 AUcell进行基因集打分,可视化
单细胞等高线图
等高线指的是地形图上高程相等的相邻各点所连成的闭合曲线。把地面上海拔高度相同的点连成的闭合曲线,并垂直投影到一个水平面上,并按比例缩绘在图纸上,就得到等高线。 等高线也可以看作是不同海拔高度的水平面与实际地面的交线,所以等高线是闭合曲线。在等高线上标注的数字为该等高线的海拔。
生信交流平台
2022/09/21
8170
单细胞等高线图
跟SCI学umap图| ggplot2 绘制umap图,坐标位置 ,颜色 ,大小还不是你说了算
umap/tsne图作为单细胞转录组的王牌图形之一,当seurat 或者 singleR 直接绘制的umap/tsne 图需要调整的时候,可能比较难调整,当然AI或者PS都可以办到 。但是本次主要分享使用ggplot2进行可视化,能比较方便的进行后期的微调 ,也学习回顾了ggplot2的基本参数。
生信补给站
2021/12/24
23.4K1
跟SCI学umap图|  ggplot2 绘制umap图,坐标位置 ,颜色 ,大小还不是你说了算
无论怎么做都是错误的单细胞水平相关性分析
不过,我这里可能需要提醒大家一定要注意, 如果是真正的单细胞水平相关性分析,无论怎么做都是不合理的。比如大家如果使用代码绘制任意两个基因在单细胞转录组数据里面的相关性散点图,就出现这种多个点排列成一条一条:
生信技能树
2024/11/21
4830
无论怎么做都是错误的单细胞水平相关性分析
单细胞自动注释之Garnett
在使用Seurat包得到降维聚类分群的结果后,就可以对数据进行注释了。Garnett是Cole Trapnell 实验室实验室开发的自动注释R包,使用机器学习算法来预测细胞类型,可以支持训练自己的分类器。
用户11414625
2024/12/20
2560
单细胞自动注释之Garnett
Github代码文献复现之卵巢和子宫内膜癌(六)|| 单细胞第一次注释
作者的注释策略也比较复杂,我们先来看看使用常规的细胞已知marker尝试进行第一次注释。图中的细胞类型名称有:
生信技能树
2025/03/17
1380
Github代码文献复现之卵巢和子宫内膜癌(六)|| 单细胞第一次注释
AUCell:在单细胞转录组中识别细胞对“基因集”的响应
使用AUCell识别单细胞rna数据中具有活性“基因集”(i.e. gene signatures)的细胞。AUCell使用“曲线下面积”(Area Under the Curve,AUC)来计算输入基因集的一个关键子集是否在每个细胞的表达基因中富集。AUC分数在所有细胞的分布允许探索signatures的相对表达。
生信技能树jimmy
2020/10/19
3.9K0
AUCell:在单细胞转录组中识别细胞对“基因集”的响应
AUCell | 识别单细胞对“基因集”的响应
AUCell可以识别sc-RNA数据中具有活跃基因集或基因模块的细胞,即可以将某个通路的富集情况展现在聚类的细胞上,从而可以鉴定具有特定基因特征的细胞群。 AUCell使用“Area Under the Curve”(AUC)来计算输入基因集的关键子集是否在每个细胞内富集。AUC分数在所有细胞中的分布允许探索基因的相对表达。由于计分方法是基于排名的,因此AUCell不受基因表达单位和标准化程序的影响。此外,由于对细胞进行了单独评估,因此可以轻松地将其应用于更大的数据集,并可以根据需要对表达式矩阵进行分组。
生信编程日常
2020/08/24
3.7K0
AUCell | 识别单细胞对“基因集”的响应
基于泛癌scRNAseq的T细胞图谱整合分析
生信技能树jimmy
2023/09/26
3910
基于泛癌scRNAseq的T细胞图谱整合分析
一篇单细胞文献复现及代码部分更新
https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE151177
生信菜鸟团
2023/12/14
1.7K0
一篇单细胞文献复现及代码部分更新
单个基因在单细胞里面如何分析呢?
我们今天来看看第二种思路,介绍的文献标题为:《Tumor cell-intrinsic MELK enhanced CCL2-dependent immunosuppression to exacerbate hepatocarcinogenesis and confer resistance of HCC to radiotherapy》,于 2024 年 6 月份发表在 Mol Cancer 杂志(IF = 27.7)上。
生信技能树
2025/01/16
8690
单个基因在单细胞里面如何分析呢?
推荐阅读
相关推荐
画个同款新奇的“Galaxy”星系UMAP图(Nat Immunol:IF27.8)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验