前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >🤩 Ragas | 有手就行!分分钟上手的单细胞分析R包!~

🤩 Ragas | 有手就行!分分钟上手的单细胞分析R包!~

作者头像
生信漫卷
发布2024-11-23 09:08:43
发布2024-11-23 09:08:43
16300
代码可运行
举报
文章被收录于专栏:R语言及实用科研软件
运行总次数:0
代码可运行

写在前面

这周末不值班哦,开心的一批!~😀

最近经常去骑车,真的是忘却烦恼的好办法,各位马喽,一起骑车吧🚴🏻!~🫡

做单细胞的小伙伴,刚入门的时候,肯定觉得要学的包好多啊。🫠

今天和大家分享一个R包,Ragas,真的是有手就行,非常好用。👍

熟练的老手可以直接跳过了,我相信你写的code更个性化,更符合你的数据。🦉

用到的包

代码语言:javascript
代码运行次数:0
复制
rm(list = ls())
library(tidyverse)
# BiocManager::install(c("Seurat", "ggplot2", "randomcoloR", "SingleCellExperiment", "Matrix", "future", "dplyr", "reshape2", "scales", "ComplexHeatmap", "grid", "circlize", "gplots", "muscat", "limma", "ggtree", "patchwork", "ggprism", "rstatix", "cowplot", "aplot", "crayon"), update = F)
# devtools::install_github("davidsjoberg/ggsankey", upgrade = "never")
# devtools::install_github("jig4003/Ragas", upgrade = "never")
library(Ragas)
library(ggsci)

示例数据

今天用到的是Ragas 包中的示例数据,Seurat格式。😘

分为健康(cHD)和 SLE (cSLE) 儿童的PBMC单细胞测序数据。📈

代码语言:javascript
代码运行次数:0
复制
csle.pbmc.small

构建Pi格式文件

代码语言:javascript
代码运行次数:0
复制
my.pbmc.pi <- CreatePostIntegrationObject(object = csle.pbmc.small)
my.pbmc.pi

聚类可视化

代码语言:javascript
代码运行次数:0
复制
RunDimPlot(object = my.pbmc.pi)

手动注释

代码语言:javascript
代码运行次数:0
复制
RunDimPlot(object = my.pbmc.pi,
           group.by = "cluster.annotation")

FindAllMarkers

运行RunFindAllMarkerSeurat调用FindAllMarkers。😘

代码语言:javascript
代码运行次数:0
复制
my.pbmc.pi <- RunFindAllMarkers(my.pbmc.pi,
                                ident = "cluster.annotation")
my.pbmc.pi

查看一下找到的marker吧。😏

代码语言:javascript
代码运行次数:0
复制
my.pbmc.pi[["markers"]]

Matrix plot

Marker分析完成后,可以使用Matrix plot绘制每个clusterTop Marker。💪

代码语言:javascript
代码运行次数:0
复制
RunMatrixPlot(my.pbmc.pi,
              markers.key = "Markers|cluster.annotation|AllMarkers|test.use=wilcox", 
              column.anno.name.rot = 45, 
              heatmap.height = 6)

pseudobulk分析

计算表达频率

在运行pseudobulk分析之前,我们需要先进行表达频率分析。🧐

低表达基因将在最终的pseudobulk分析中被过滤掉。😘

代码语言:javascript
代码运行次数:0
复制
my.pbmc.pi <- CalculateExpFreqs(my.pbmc.pi, 
                                ident = "cluster.annotation",
                                verbose = FALSE)

代码语言:javascript
代码运行次数:0
复制
my.pbmc.pi

开始pseudobulk分析

代码语言:javascript
代码运行次数:0
复制
my.pbmc.pi <- RunPseudobulkAnalysis(object = my.pbmc.pi,
                                    ident.var = "cluster.annotation",
                                    group.var = "Groups",
                                    sample.var = "Names",
                                    group.1 = "cSLE",
                                    group.2 = "cHD")
my.pbmc.pi

可视化pseudobulk分析结果

代码语言:javascript
代码运行次数:0
复制
RunDSDotPlot(object = my.pbmc.pi,
             exp.freq.key = "ExpFreq|cluster.annotation|cutoff=0",
             ds.key = "DS|cluster.annotation|edgeR|group=Groups;sample=Names;gp1=cSLE;gp2=cHD;contrast=cSLE-cHD", 
             p.filter = 0.05,
             FC.filter = 4,
             to.adjust = TRUE
                    )

比例分析

按cluster可视化

代码语言:javascript
代码运行次数:0
复制
RunProportionPlot(csle.pbmc.small, ## input can be a Seurat object
                  ident = "cluster.annotation",
                  group.by = "Groups",
                  method = "pooled",
                  pooled.prop.by = "cluster", ## default
                  axis.text.angle = 45,
                  axis.text.size = 8,
                  return.value = 'ggplot'
                  )

堆叠条形图!~📊

代码语言:javascript
代码运行次数:0
复制
my.pbmc.pi <- RunProportionPlot(my.pbmc.pi, ## if input is a Pi object, an updated Pi object will be the returned by default
                                ident = "Groups",
                                group.by = "cluster.annotation",
                                method = "pooled",
                                pooled.prop.by = "cluster", ## default
                                axis.text.size = 8)

## A new data field called "cell.prop" will be added to the Pi object.
my.pbmc.pi

按group可视化

代码语言:javascript
代码运行次数:0
复制
my.pbmc.pi <- RunProportionPlot(my.pbmc.pi,
                                ident = "cluster.annotation",
                                group.by = "Groups",
                                method = "pooled",
                                pooled.prop.by = "group",
                                axis.text.size = 8
                                )
my.pbmc.pi

分组boxplot

代码语言:javascript
代码运行次数:0
复制
my.pbmc.pi <- RunProportionPlot(my.pbmc.pi,
                  ident = "cluster.annotation",
                  group.by = "Groups",
                  method = "unpooled",
                  unpool.by = "Names",
                  unpool.ncol = 3,
                  title.text.size = 6)

分组barplot

代码语言:javascript
代码运行次数:0
复制
my.pbmc.pi <- RunProportionPlot(my.pbmc.pi,
                                ident = "cluster.annotation",
                                group.by = "Groups",
                                method = "unpooled",
                                unpool.by = "Names",
                                unpool.plot.type = "barplot",
                                unpool.ncol = 3,
                                title.text.size = 6)

dotplot可视化features

代码语言:javascript
代码运行次数:0
复制
my.list <- list(Monocytes = c("CD14","FCGR3A"),
                B = "MS4A1",
                T = c("CCR7", "CD8A"),
                NK = "NKG7")

RunAnnotatedDotPlot(object = my.pbmc.pi,
                    annotations = my.list,
                    annotation.cols = c( 'Monocytes'= 'tomato', 'B' = 'seagreen', 'T' = 'steelblue', 'NK' = 'purple'),
                    group.by = "cluster.annotation")

堆积小提琴图可视化features

代码语言:javascript
代码运行次数:0
复制
RunStackedVlnPlot(my.pbmc.pi,
                  ident = "cluster.annotation",
                  features = my.list,
                  color.by = "mean.exp",
                  column.names.rotation = 90)

再加个参数,复杂一点!~🕐

代码语言:javascript
代码运行次数:0
复制
RunStackedVlnPlot(my.pbmc.pi,
                  ident = "cluster.annotation",
                  features = my.list,
                  split.by = "Groups",
                  color.by = "split.var",
                  column.names.rotation = 45)

热图可视化features

代码语言:javascript
代码运行次数:0
复制
features <- list("T cell" = c("CD8A", "CD8B"),
                ISG = c("ISG15","ISG20","IFI44L", "IFI6", "MX1"),
                "Housekeeping" = c("ACTB"))
RunSummarizedHeatmap(object = my.pbmc.pi,
                     ident = "cluster.annotation",
                     features = features,
                     split.by = "Groups", 
                     column.names.rotation = 30,
                     heatmap.width = 20)

再加2个参数,复杂地卷起来!~🧐

代码语言:javascript
代码运行次数:0
复制
RunSummarizedHeatmap(object = my.pbmc.pi,
                     ident = "cluster.annotation",
                     features = features,
                     split.by = "Names", ## sample name
                     additional.metadata = c("Groups", "Gender"),
                     heatmap.width = 60,
                     heatmap.height = 15,
                     show.column.names = FALSE)

表达水平可视化

代码语言:javascript
代码运行次数:0
复制
RunExpressionPlot(object = my.pbmc.pi,
                  feature = "ISG15",
                  ident = "cluster.annotation",
                  group.by = "Names",
                  split.by = "Groups"
                  )+
  theme(
    panel.background = element_blank(), 
    panel.grid.major = element_blank(), 
    panel.grid.minor = element_blank(),  
    panel.border = element_blank(),      
    axis.line = element_line(color = "black") 
  )+
  scale_color_npg()

导出结果

代码语言:javascript
代码运行次数:0
复制
ExportPiData(object = csle.pbmc.pi,
             field = 'ds',
             key = 'DS|subcluster_idents|edgeR|group=Groups;sample=Names;gp1=cSLE;gp2=cHD;contrast=cSLE-cHD',
             file.prefix = 'pbmc.ds' ## A mandatory argument. User should provide an informative prefix (e.g., "csle.pbmc") for exported data
)
最后祝大家早日不卷!~
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信漫卷 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在前面
  • 用到的包
  • 示例数据
  • 构建Pi格式文件
  • 聚类可视化
  • 手动注释
  • FindAllMarkers
  • Matrix plot
  • pseudobulk分析
    • 计算表达频率
    • 开始pseudobulk分析
    • 可视化pseudobulk分析结果
  • 比例分析
    • 按cluster可视化
    • 按group可视化
  • 分组boxplot
    • 分组barplot
  • dotplot可视化features
  • 堆积小提琴图可视化features
  • 热图可视化features
  • 表达水平可视化
  • 导出结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档