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 ♥)

版权声明:
作者:玉兰
链接:https://www.techfm.club/p/170711.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>