Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >R tips:使用shiny和plotly获得umap图的点坐标

R tips:使用shiny和plotly获得umap图的点坐标

作者头像
生信菜鸟团
发布于 2024-11-23 03:40:03
发布于 2024-11-23 03:40:03
3360
举报
文章被收录于专栏:生信菜鸟团生信菜鸟团

有的时候需要获取单细胞umap图中的部分点的坐标,并对其进行后续操作。

本文提供一种方法用于实现这个目的。

以Seruat的pbmc数据为例。

1. 查看umap plot,检查需要获得的点

代码语言:txt
AI代码解释
复制
library(tidyverse)
 
library(Seurat)
 

 

 
#1. 查看umap plot,检查需要去除的点
 
pbmc_small <- pbmc_small %>% RunUMAP(dims = 1:10)
 
DimPlot(pbmc_small)
 

查看降维图,并考虑获得右上角的点的坐标。

2. 使用plotly手动绘制可交互的umap plot

使用plotly手动实现这个umap plot散点图。

代码语言:txt
AI代码解释
复制
library(plotly)
 
umap_df <- pbmc_small[['umap']]@cell.embeddings %>%
 
 as.data.frame() %>%
 
  rownames_to_column("cell_id") %>%
 
  left_join(
 
    pbmc_small[['RNA_snn_res.1']] %>% rownames_to_column("cell_id"),
 
 by = "cell_id"
 
 ) 
 

 
# 实际项目中,数据点太多,只需要随机选择部分点绘制
 
# 能找到目标区域的位置即可
 
sub_umap_df <-
 
  umap_df %>%
 
  group_by(RNA_snn_res.1) %>% 
 
  slice_sample(n = 10000)
 

 
p <-
 
  plot_ly(showlegend = T) %>%
 
  add_markers(data = sub_umap_df, x= ~umap_1, y = ~umap_2, text = ~cell_id, color = ~RNA_snn_res.1, tooltip = c('x', 'y'))
 

3. 将交互式的umap plot使用shiny打开,并可以使用套索工具获得选区边界

代码语言:txt
AI代码解释
复制
library(shiny)
 
library(plotly)
 

 
ui <- fluidPage(
 
  plotlyOutput("plot"),
 
  verbatimTextOutput("selected"),
 
)
 

 
server <- function(input, output, session) {
 

 
  output$"plot-text" <- renderText("Plot: ")
 
  output$plot <- renderPlotly(p)
 

 

 
  output$selected <- renderPrint({
 
    d <- event_data("plotly_brushed")
 
 if (!is.null(d)) {
 
      saveRDS(d, "lassso_boundary.rds")
 
      d
 
 }
 
 })
 

 
}
 

 
shinyApp(ui, server)
 

4. 在shiny页面圈选感兴趣的区域

在shiny页面,使用套索工具圈选感兴趣的区域,程序会自动将选区边界坐标导出到家目录中的lassso_boundary.rds文件中。

5. 读取套索选区,找到点坐标

代码语言:txt
AI代码解释
复制
lasso_boudnary <- readRDS("lassso_boundary.rds")
 

 

 
# find points
 
point_in_poly_idx <-
 
  sp::point.in.polygon(
 
    point.x = umap_df$umap_1,
 
    point.y = umap_df$umap_2,
 
    pol.x = lasso_boudnary$x,
 
    pol.y = lasso_boudnary$y
 
 )
 

 

 
points_selected <- umap_df[point_in_poly_idx != 0, ]
 

 

 
sub_umap_df %>%
 
  ggplot(aes(x = umap_1, y = umap_2, color = RNA_snn_res.1)) +
 
  geom_point() +
 
  geom_polygon(data = as.data.frame(lasso_boudnary), aes(x = x, y = y), fill = NA, color = "black", inherit.aes = F) +
 
  geom_point(data = points_selected, color = "black")
 

 
points_selected
 

使用sp包计算所有在选区中的点,并在umap中展示套索选区和选中的点。

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

本文分享自 生信菜鸟团 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
🤩 hdWGCNA | 单细胞数据怎么做WGCNA呢!?(三)(pseudobulk data)
今天没什么废话,主要讲讲如何用pseudobulk data做hdWGCNA。🙃
生信漫卷
2024/05/27
5101
🤩 hdWGCNA | 单细胞数据怎么做WGCNA呢!?(三)(pseudobulk data)
跟SCI学umap图| ggplot2 绘制umap图,坐标位置 ,颜色 ,大小还不是你说了算
umap/tsne图作为单细胞转录组的王牌图形之一,当seurat 或者 singleR 直接绘制的umap/tsne 图需要调整的时候,可能比较难调整,当然AI或者PS都可以办到 。但是本次主要分享使用ggplot2进行可视化,能比较方便的进行后期的微调 ,也学习回顾了ggplot2的基本参数。
生信补给站
2021/12/24
23.6K1
跟SCI学umap图|  ggplot2 绘制umap图,坐标位置 ,颜色 ,大小还不是你说了算
clustree—聚类可视化利器
我们知道在研究问题时,分组是很重要的,有分组才有故事可讲。比如,两块田一块施肥一块不施肥,可以做比较嘛。在单细胞数据分析中用到较多的数据分组技术是聚类(clustering),这里面有很多的喜怒哀乐,因为聚类是无监督的,而且可以聚成不同的层次,在第一次聚类后,又可以对亚群聚类,真是子子孙孙无穷匮也。这也是单细胞数据分析的魅力所在:不同层次的聚类就像剥洋葱,剥着剥着,说不定就泪流满脸了呢?
生信技能树jimmy
2021/04/16
2.4K0
clustree—聚类可视化利器
给你的单细胞umap图加个cell杂志同款的圈
+CPI colitis全称:Check point inhibitor-induced colitis
生信技能树
2025/01/22
5550
给你的单细胞umap图加个cell杂志同款的圈
跟SCI学Pseudotime 2 | 将拟时序分析结果映射到 umap 中
偶然见到一张将拟时序分析的结果映射到umap中的图(https://www.jianshu.com/p/e2f0dc8a485c),想了下只需要获取 时序分析的结果 + umap的位置信息 ,使用ggplot2是不是就可以绘制了?
生信补给站
2022/03/11
2.1K1
跟SCI学Pseudotime 2 | 将拟时序分析结果映射到 umap 中
CytoTRACE2可视化进阶(修改坐标维持umap图前后一致)
CytoTRACE2单细胞分化潜力预测工具学习:https://mp.weixin.qq.com/s/inF9iGy2X9D2CZLzQBtRdw
凑齐六个字吧
2024/09/19
4804
CytoTRACE2可视化进阶(修改坐标维持umap图前后一致)
单细胞专栏-如何给orig.ident换名字
​由于上游的分析是公司给做的,但是发现我在跟他们说样本名字的时候发错了,想后面自己更改一下每个orig.ident和groups的名字,百度了一下有没有类似问题,果然在seurat的官网上发现了类似的问题(https://github.com/satijalab/seurat/issues/1479
小胡子刺猬的生信学习123
2022/05/10
10K1
单细胞专栏-如何给orig.ident换名字
你还缺scRNA-seq的workflow吗?
之前曾老师给我看了一位在pipebio工作的生信工程师Roman Hillje的scRNA-seq的workflow,今天整理一下分享给大家。
生信菜鸟团
2024/07/31
4490
你还缺scRNA-seq的workflow吗?
让Single cell UMAP注释支棱起来
最近在画UMAP的时候发现有的时候细胞亚群的注释与点重合颜色上不是很搭配,同事提出让注释“支棱”起来,首先想到的是ggforce中的geom_mark_ellipse,实践中遇到一些问题(比如,ggforce会受outlier影响,看起来比较乱),于是有了这一篇Single cell的记录。
生信技能树jimmy
2021/09/15
1.2K0
让Single cell UMAP注释支棱起来
单细胞代码解析-妇科癌症单细胞转录组及染色质可及性分析8
单细胞代码解析-妇科癌症单细胞转录组及染色质可及性分析1:https://cloud.tencent.com/developer/article/2055573
小胡子刺猬的生信学习123
2022/08/30
4070
单细胞代码解析-妇科癌症单细胞转录组及染色质可及性分析8
你到底想要什么样的umap/tsne图?
随着生物学背景知识的增加,单细胞图谱的可视化直接用10X的Loup或者seurat的Dimplot函数直接绘制的umap/tsne图往往很难达到要求了,这就要求我们提高绘图技能。我们都知道ggplot2是一款很好的绘图R包,甚至可以说在语法上扩展了R语言本身。那么,当我们需要绘图的时候,自然我们会想到它及其周边。今天我们就主要地看一下ggforce这个包带给我们的可能性。
生信技能树jimmy
2020/07/09
2.5K0
5种方式美化你的单细胞umap散点图
关于SCP,我们前面也有一个专门的专辑对其进行了大篇幅的介绍,不知道大家用起来了没呢?
生信技能树
2025/01/11
3.5K0
5种方式美化你的单细胞umap散点图
119-R可视化37-利用循环实现ggplot批量作图并拼图
其实简单的R 拼图,我喜欢patchwork 的加减乘除。但这种4x4 布局的图片,对象又多,一个个创建不现实;代码写起来,也非常不优雅。
北野茶缸子
2022/04/05
6.4K0
119-R可视化37-利用循环实现ggplot批量作图并拼图
单细胞分析十八般武艺5:monocle3
单细胞初级8讲和高级分析8讲 单细胞分析十八般武艺1:harmony 单细胞分析十八般武艺2:LIGER 单细胞分析十八般武艺3:fastMNN 单细胞分析十八般武艺4:velocyto
生信技能树jimmy
2021/04/29
23.3K0
单细胞分析十八般武艺5:monocle3
画个同款新奇的“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
2220
画个同款新奇的“Galaxy”星系UMAP图(Nat Immunol:IF27.8)
R tips:使用最近邻算法进行空间浸润带的计算
以10X的官方xenium示例数据为例https://www.10xgenomics.com/datasets/ffpe-human-breast-with-pre-designed-panel-1-standard。
生信菜鸟团
2025/02/18
1620
R tips:使用最近邻算法进行空间浸润带的计算
Seurat Weekly NO.05 || 大数据集处理之Pseudocell
记得17年的时候,单细胞文章的样本数很少大于10 ,2020年的今天,单篇文章讨论的细胞数以已经翻了好几番。同时,鉴于单细胞的很多分析点是借鉴bulk RNA的,在细胞数大幅提升后,计算资源和模型的适用性有时候会受到挑战。
生信菜鸟团
2021/01/05
1.3K0
单细胞实战之样本整理,细胞注释和部分图表绘制---从入门到进阶(初级篇1)
在完成了马拉松课程后,我们应该对单细胞分析有了基本了解。接下来,我们将开启新的篇章——单细胞实战:从入门到进阶。
凑齐六个字吧
2025/02/08
2660
单细胞实战之样本整理,细胞注释和部分图表绘制---从入门到进阶(初级篇1)
AUCell:在单细胞转录组中识别细胞对“基因集”的响应
使用AUCell识别单细胞rna数据中具有活性“基因集”(i.e. gene signatures)的细胞。AUCell使用“曲线下面积”(Area Under the Curve,AUC)来计算输入基因集的一个关键子集是否在每个细胞的表达基因中富集。AUC分数在所有细胞的分布允许探索signatures的相对表达。
生信技能树jimmy
2020/10/19
4K0
AUCell:在单细胞转录组中识别细胞对“基因集”的响应
SARS-CoV-2感染的雪貂支气管肺泡灌洗液单细胞转录组数据挖掘(4)巨噬细胞内部细分亚群的拟时序和RNA速率分析
给学徒们收集整理了几套带GitHub源代码的文献图表合辑,让优秀者一点一滴拆解开来分享给大家。(全部的代码复制粘贴即可运行,欢迎尝试以及批评指正)
生信技能树
2022/03/03
6600
SARS-CoV-2感染的雪貂支气管肺泡灌洗液单细胞转录组数据挖掘(4)巨噬细胞内部细分亚群的拟时序和RNA速率分析
推荐阅读
相关推荐
🤩 hdWGCNA | 单细胞数据怎么做WGCNA呢!?(三)(pseudobulk data)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档