打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
R可视化之美化山脊图

基因集可视化是很常见的分析内容,山脊图使用较少,原因可能是默认生成的图片不美观。本文提供山脊图的美化后的效果图,供选择。

1、加载R包

rm(list=ls())
library(Seurat)
library(purrr)
library(dplyr)
library(ggplot2)
library(cowplot)
library(ggridges)
library(RColorBrewer)
library(viridis)

2、读取Seurat object,生成可视化基因集

sce <- readRDS('F:/R_Language/R_Practice/scRNA_Seq_column/src/scRNA-seq_advance/Data/sce.rds')

seurat_object <- sce
# 可视化基因集来源有三种:初始矩阵所在行、高可变基因、各细胞类型间差异表达基因。
# 第三种基因集表达量高且差异较大,可视化的山脊图较为美观。
# gene_set <- rownames(seurat_object@assays$RNA)
# gene_set <- VariableFeatures(seurat_object)

DefaultAssay(seurat_object) <- 'RNA'
data.markers <- FindAllMarkers(seurat_object, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25, verbose = F)
gene_set <- unique(data.markers$gene)
length(gene_set)
## [1] 1768

3、山脊图可视化

3.1 Seurat内置函数绘制ridgeplot

p <- RidgePlot(seurat_object, features = gene_set[1], fill.by = 'feature')
p

3.2 美化默认ridgeplot:对基因表达量着色

# Color by gene expression level
p$data %>% ggplot(aes_string(x = gene_set[1], y = 'ident')) +
  geom_density_ridges_gradient(aes(fill=stat(x)), scale = 2, rel_min_height = 0.00, size = 0.3) +
  scale_fill_gradientn(name = "Gene Expression Level", colours = colorRampPalette(rev(brewer.pal(11,'Spectral')))(32)) +
  theme_classic() + labs(caption = '核密度估计峰峦图', x='', y='', title = gene_set[1]) +
  theme(plot.caption = element_text(hjust=0.5, size=rel(1.2))) 

3.3 美化默认ridgeplot:对表达的细胞数目着色

# Fill by expressed cells level of gene
p$data %>% ggplot(aes_string(x = gene_set[1], y = 'ident')) +
  geom_density_ridges_gradient(aes(fill = ..density..), scale = 2, rel_min_height = 0.00, size = 0.3) +
  scale_fill_gradientn(name = "Expressed cells Level", colours = colorRampPalette(rev(brewer.pal(11,'Spectral')))(32)) +
  theme_classic() + labs(caption = '核密度估计峰峦图', x='', y='', title = gene_set[1]) +
  theme(plot.caption = element_text(hjust=0.5, size=rel(1.2))) 

3.4 美化默认ridgeplot:对表达的细胞数目着色(第二种配色方案)

# Set other colors
p$data %>% ggplot(aes_string(x = gene_set[1], y = 'ident')) +
  geom_density_ridges_gradient(aes(fill = ..density..), scale = 2, rel_min_height = 0.00, size = 0.3) +
  scale_fill_viridis(name = "Expressed cells Level", option = "C") +
  theme_classic() + labs(caption = '核密度估计峰峦图', x='', y='', title = gene_set[1]) +
  theme(plot.caption = element_text(hjust=0.5, size=rel(1.2))) 

3.5 对基因集批量美化着色

# Batch
beautifulRidgePlot <- function(gene_set){
  p <- RidgePlot(seurat_object, features = gene_set, fill.by = 'feature')
  p$data %>% ggplot(aes_string(x = gene_set, y = 'ident')) +
    geom_density_ridges_gradient(aes(fill = ..density..), scale = 2, rel_min_height = 0.00, size = 0.3) +
    scale_fill_gradientn(name = "Expressed cells Level", colours = colorRampPalette(rev(brewer.pal(11,'Spectral')))(32)) +
    theme_classic() + labs(x='', y='', title = gene_set) + theme(legend.position = "top")
}

ridge.plot <- plot_grid(plotlist=purrr::map(gene_set[1:2], beautifulRidgePlot))
ridge.plot
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
你到底想要什么样的umap/tsne图?
玩转单细胞(2):Seurat批量做图修饰
R语言学习 - 柱状图
gggenes绘制多物种基因结构比较
R绘图笔记 | 柱状图绘制
scRNA分析|使用AddModuleScore 和 AUcell进行基因集打分,可视化
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服