FeaturePlot画图让有表达的点展示在上方
在使用FeaturePlot画图的时候会因为细胞太多存在一些细胞被覆盖的现象,导致表达某基因的细胞由于处于底层而展示不出来。我们如果想要让表达特定基因的细胞都展示在上层,从而让效果更加明显,可以使用下面的方法实现,核心是根据表达量进行排序。
library(ggplot2)
library(tidyverse)
library(Seurat)
library(SeuratObject)
seurat_obj <- readRDS('file_path')
# 提取 SPP1 基因的表达量
spp1_expression <- FetchData(seurat_obj, vars = "SPP1")
# 排序:根据 SPP1 基因的表达量进行排序,默认是升序,可以使用 `order()` 函数进行降序排序
sorted_cells <- order(spp1_expression$SPP1, decreasing = FALSE)
# 提取排序后的 barcode
sorted_barcodes <- rownames(spp1_expression)[sorted_cells]
# 根据排序后的 barcode 顺序重新排列 umap_embeddings
umap_embeddings_sorted <- umap_embeddings[sorted_barcodes, ]
# 更新 Seurat 对象中的 UMAP 降维结果
seurat_obj@reductions[["umap"]]@cell.embeddings <- umap_embeddings_sorted
FeaturePlot(
seurat_obj,
features = c("SPP1"),
max.cutoff = 3,
pt.size = 0.01 # 设置点的大小
)
可以看到排序后该基因的表达在视觉上是明显要高于排序前的,是一种突出展示的方式。
(此贴分享自心尖上的ml ♥)
共有 0 条评论