前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >听说 SPOTlight 饼图函数绘图方向是反的:一身反骨!

听说 SPOTlight 饼图函数绘图方向是反的:一身反骨!

作者头像
生信技能树
发布于 2025-06-09 13:10:58
发布于 2025-06-09 13:10:58
4400
代码可运行
举报
文章被收录于专栏:生信技能树生信技能树
运行总次数:0
代码可运行

在这个帖子中:用 SPOTlight 的函数绘制空转Seurat注释结果的大饼子!,眼明心亮的网友留言说在这里观察到了:饼图绘图中上下方向颠倒了。提问如下

此外,如果你有任何生信疑问,可以看看我们的这两个专辑哦:《生信马拉松答疑》《马拉松授课互动答疑》也欢迎大家图文并茂发邮件:jzhang910@qq.com 或者加微信咨询:Biotree123。

如果你在学习生信的过程中觉得孤军难以奋战,可以报名参加我们每月一起的生信入门课程,最新一期在6月2号开课,跟大家一起成长与学习生信入门&数据挖掘线上直播课6月班

还有一个数据在分析中发现方向也是反的12个Cell杂志的疑难杂症空转读取与分析:GSE144240,这个里面已经使用坐标调整进行了解决。下面来看看 SPOTlight  函数绘图问题!

示例数据

数据我还是使用这个帖子中的:用 SPOTlight 的函数绘制空转Seurat注释结果的大饼子!,一直运行到 SPOTlight 绘图之前的反卷积注释部分(注意这里运行的时候使用 Seuratv4 版本,下面的绘图代码暂不支持 seuratv5 ! )

既然 SPOTlight 这个函数绘图上下颠倒了,那我们就看看其源码是如何绘图的好了。

源码链接:https://github.com/MarcElosua/SPOTlight/blob/spotlight-0.1.7/R/scatterpie_plot_fun.R

先把数据整理好:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#################################
mat[1:8, 1:8]
decon_mtrx <- mat

#### 数据处理
cell_types_all <- colnames(decon_mtrx)
cell_types_all

decon_df <- decon_mtrx %>%
  data.frame(check.names = F) %>%
  tibble::rownames_to_column("barcodes")

###添加比例到meta
cortex_sp <- spatial
cortex_sp@meta.data <- cortex_sp@meta.data %>%
  tibble::rownames_to_column("barcodes") %>%
  dplyr::left_join(decon_df, by = "barcodes") %>%
  tibble::column_to_rownames("barcodes")
head(cortex_sp@meta.data)

### plot dot
slice <- names(cortex_sp@images)[1]
slice
metadata_ds <- data.frame(cortex_sp@meta.data)
colnames(metadata_ds) <- colnames(cortex_sp@meta.data)
cell_types_interest <- cell_types_all

metadata_ds <- metadata_ds %>% 
  tibble::rownames_to_column("barcodeID") %>%
  dplyr::mutate(rsum = base::rowSums(.[, cell_types_interest, drop = FALSE])) %>% 
  dplyr::filter(rsum != 0) %>%
  dplyr::select("barcodeID") %>% 
  dplyr::left_join(metadata_ds %>% tibble::rownames_to_column("barcodeID"), by = "barcodeID") %>%
  tibble::column_to_rownames("barcodeID")

spatial_coord <- data.frame(cortex_sp@images[[slice]]@coordinates) %>%
  tibble::rownames_to_column("barcodeID") %>% 
  dplyr::mutate(imagerow_scaled = imagerow * cortex_sp@images[[slice]]@scale.factors$lowres, 
                imagecol_scaled = imagecol * cortex_sp@images[[slice]]@scale.factors$lowres
                ) %>% 
  dplyr::inner_join(metadata_ds %>% tibble::rownames_to_column("barcodeID"), by = "barcodeID")

head(spatial_coord)

mat 为反卷积的结果:

head(spatial_coord) 的结果示意如下,就是seurat 对象的metadata 与 反卷积结果的合并在一起:

接着读取 染色切片:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
img <- png::readPNG("../seurat/V1_Mouse_Brain_Sagittal_Anterior/spatial/tissue_lowres_image.png")

###网格化
img_grob <- grid::rasterGrob(img, interpolate = FALSE, width = grid::unit(1, "npc"), height = grid::unit(1, "npc"))

颜色定义:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 颜色定义
paletteMartin <- c(
  "#000000", "#004949", "#009292", "#ff6db6", "#ffb6db", 
  "#490092", "#006ddb", "#b66dff", "#6db6ff", "#b6dbff", 
  "#920000", "#924900", "#db6d00", "#24ff24", "#ffff6d")

pal <- colorRampPalette(paletteMartin)(length(ct))
names(pal) <- ct
pal

绘图:scatterpie

SPOTlight 你可以看出来 源码是使用了 scatterpie 进行的绘图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#### 饼图绘制
scatterpie_pie <- ggplot2::ggplot() + 
  ggplot2::annotation_custom(grob = img_grob, xmin = 0, xmax = ncol(img), ymin = 0, ymax = -nrow(img)) +
  scatterpie::geom_scatterpie(
    data = spatial_coord, 
    ggplot2::aes(x = imagecol_scaled, y = imagerow_scaled), 
    cols = cell_types_all, color = NA,alpha = 0.6, pie_scale = 0.4) +
  ggplot2::scale_y_reverse() + 
  ggplot2::ylim(nrow(img),0) + 
  ggplot2::xlim(0, ncol(img)) + 
  cowplot::theme_half_open(11,rel_small = 1) + 
  ggplot2::theme_void() + 
  ggplot2::coord_fixed(ratio = 1, xlim = NULL, ylim = NULL, expand = TRUE, clip = "on") + 
  ggplot2::guides(color = guide_legend(ncol = 2)) + 
  ggplot2::scale_fill_manual(values = pal)

结果如下:

现在方向就不是反的了吧!

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
空间转录组细胞类型和配受体的空间定位图
人生之路曲折盘恒、错综复杂,看似一条路的终点其实也是另一条路的起点。人生没有永远的高居临下,也没有永远的低谷失意,一路走下去才是人生的本意。其实无论发生任何事,都是教我们如何做人,低调前行是最为稳妥的做法,平凡就很好。
追风少年i
2023/07/21
6770
空间转录组细胞类型和配受体的空间定位图
空间转录组共定位展示分析图
追风少年i
2023/07/21
7630
空间转录组共定位展示分析图
SPOTlight || 用NMF解卷积空间表达数据
Giotto|| 空间表达数据分析工具箱 Seurat 新版教程:分析空间转录组数据(上) Seurat 新版教程:分析空间转录组数据(下) scanpy教程:空间转录组数据分析 10X Visium:空间转录组样本制备到数据分析 空间信息在空间转录组中的运用 定量免疫浸润在单细胞研究中的应用
生信技能树jimmy
2021/01/12
2.9K0
SPOTlight || 用NMF解卷积空间表达数据
空转 | 我,SPOTlight,用解卷积,解决空间转录组spot注释!
前面介绍过整合scRNA-seq和空间转录组数据主要有(1)映射(Mapping)和(2)去卷积(Deconvolution)两种方法。前面空转 | 结合scRNA完成空转spot注释(Seurat Mapping) & 彩蛋(封面的空转主图代码)介绍了使用Seurat Mapping的方式进行spot注释,本文介绍一种经典的解卷积方法-SPOTlight。
生信补给站
2023/08/25
2.4K0
空转 | 我,SPOTlight,用解卷积,解决空间转录组spot注释!
SPOTlight || 用NMF解卷积空间表达数据
空间解析基因表达谱是理解组织组织和功能的关键。然而,目前空间转录组分析技术(Spatial Transcriptomics,ST)尚未达到单细胞分辨率,往往需要结合单细胞RNA测序(scRNA-seq)信息来反褶积(或解卷积,Deconvolute )空间数据集。SPOTlight利用这两种数据类型的优势,能够将ST与scRNA-seq数据集成,从而推断出复杂组织中细胞类型和状态的位置。SPOTlight基于一个种子的非负矩阵因子分解回归(Seeded NMF regression ),使用细胞类型标记基因和非负最小二乘(NNLS)初始化,随后去卷积ST捕获位置(spot)。在作者的文章中,在示例数据人类胰腺癌中,成功地将患者切片划分为健康和癌区,并进一步精细绘制正常和肿瘤细胞状态。SPOTlight 流程如下:
生信技能树
2021/10/22
1.6K0
关于10X HD和Xenium数据整合分析以及HD解卷积RCTD的运用
追风少年i
2024/06/10
4580
关于10X HD和Xenium数据整合分析以及HD解卷积RCTD的运用
课前准备---空间基因梯度2
追风少年i
2024/08/05
1190
课前准备---空间基因梯度2
Nature | 5月14日发表:空间转录组文章复现(四)
在前三篇文章中,我们按照文章的结果顺序依次复现了Figure1、Figure2、Figure3。Figure1构建了人类胎儿大脑皮层的空间图谱,并构建了三个层级的聚类体系。Figure2识别出一组兴奋性神经元(EN)亚型,根据其分布模式分析出了大脑皮层的渐进形成过程。Figure3根据动态变化党的皮质层层级基因表达证明了神经亚型的区域特异性。基于以上的复现结果,我们今天继续完成Figure4的绘制,Figure4展示了V1与V2之间的明显转录边界。
天意生信云
2025/06/12
870
Nature | 5月14日发表:空间转录组文章复现(四)
绘制空间转录组的反卷积注释结果饼图:R包STdeconvole的函数
我们这一次使用另外一个空间转录组反卷积的办法来进行可视化:STdeconvolve!
生信技能树
2025/06/09
990
绘制空间转录组的反卷积注释结果饼图:R包STdeconvole的函数
空间转录组数据注释分析:SPOTlight反卷积
空间分辨的基因表达谱对于理解组织结构和功能至关重要。然而,空间转录组学(Spatial Transcriptomics, ST)分析技术缺乏单细胞分辨率,并且需要结合scRNA-seq 信息来解析空间索引数据集。
生信技能树
2025/03/24
3310
空间转录组数据注释分析:SPOTlight反卷积
Seurat4.0系列教程22:空间转录组的分析、可视化与整合
Seurat4.0系列教程告一段落,但这决不是终点。这个系列教程只是给大家打开一扇窗,知道Seurat4.0有这些功能可用,少走弯路,起到一个抛砖引玉的作用,后续还要自己深入研究。不要像我当初入门单细胞之时,为了找到整合方法耗费大量时间及不必要的金钱。君子生非异也,善假于物也。学,然后知不足。加油吧!少年!用好单细胞测序及分析这个技术,为人类健康研究做出自己的贡献!不足之处,恳请批评指正!
生信技能树jimmy
2021/08/20
10.9K0
脚本更新----多样本联合分析(Seurat V4)空间基因梯度(STG)
追风少年i
2024/11/26
1230
脚本更新----多样本联合分析(Seurat V4)空间基因梯度(STG)
R tips:celltrek细胞共定位分析
CellTrek是一个空间分析工具包,可以做单细胞和空间的整合分析、空间细胞共定位和空间基因表达分析。
生信菜鸟团
2025/03/17
1850
R tips:celltrek细胞共定位分析
单细胞空间转录组分析流程学习(二)
本次使用GSE217414数据,包含4个结直肠癌肝转移患者样本数据,这个数据集的数据整理的挺好的,都做了归类。
凑齐六个字吧
2024/10/18
1631
单细胞空间转录组分析流程学习(二)
课前准备---空间基因梯度(STG)
细胞组成和信号传导在不同的生态位中有所不同,这可以诱导细胞亚群中基因表达的梯度。这种空间转录组梯度(STG)是肿瘤内异质性的重要来源,可以影响肿瘤的侵袭、进展和对治疗的反应。 肿瘤组织包含异质性细胞群,在复杂的细胞微环境中具有不同的转录、遗传和表观遗传特征。解剖这种多因素的肿瘤内异质性(ITH)是了解肿瘤发生、转移和治疗耐药性的基础。细胞中转录变异的一个来源是它们的微环境,微环境通过不同的方式塑造基因表达,如细胞间通讯(如配体受体信号)或局部信号提示(如pH值、氧、代谢物)。因此,一些细胞会随着它们的空间定位而表现出渐变的转录变异,这被称为“空间转录组梯度”(STG)。
追风少年i
2024/08/01
1120
课前准备---空间基因梯度(STG)
空间转录组数据分析之空间基因梯度(STG)
Spatial relationship between gradients and tumor boundary
追风少年i
2024/03/24
4290
空间转录组数据分析之空间基因梯度(STG)
Seurat新版教程:分析空间转录组数据(下)
Seurat提供了两个工作流程来识别与组织空间位置相关的分子特征。第一种是根据组织内预先标注的解剖区域进行差异表达,这种差异表达可以通过非监督聚类或先验知识来确定。这种策略在这种情况下有效,因为上面的集群显示出明显的空间差异。
生信技能树jimmy
2020/03/27
3K0
Seurat空间转录组分析(一)数据读入
关于空间转录组分析的学习,我推荐先学习单细胞转录组分析,熟练掌握单细胞的数据读入,常规分析,整合去批次,以及部分高级分析(例如拟时序、转录因子和细胞通讯分析),在这个基础上,理解和学习单细胞空间转录组就非常快了,Seurat官方文档(https://satijalab.org/seurat/articles/spatial_vignette.html)就是一个很好的入门教程。
生信技能树
2023/11/07
1.5K0
Seurat空间转录组分析(一)数据读入
RNA-seq 详细教程:可视化(12)
当我们处理大量数据时,以图形方式显示该信息以获得更多信息,可能很有用。在本课中,我们将让您开始使用探索差异基因表达数据时常用的一些基本和更高级的图,但是,其中许多图也有助于可视化其他类型的数据。
数据科学工厂
2023/02/27
9950
RNA-seq 详细教程:可视化(12)
空间转录组合作项目分析示例(四)
追风少年i
2024/09/09
1180
空间转录组合作项目分析示例(四)
推荐阅读
相关推荐
空间转录组细胞类型和配受体的空间定位图
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验