Seurat 基因表达数据查看教程

最后发布时间 : 2026-08-05 17:42:06 浏览量 :

Seurat 基因表达数据查看教程

1. 查看 obj_sub 中标准化后的基因表达数据

在 Seurat 对象中,标准化后的表达数据存储在 RNA assay 的 data slot 中(默认是 log1p(TP10K) 标准化)。

# 查看完整的标准化表达矩阵
GetAssayData(obj_sub, assay = "RNA", slot = "data")

# 或使用默认参数(默认取 slot = "data")
GetAssayData(obj_sub, assay = "RNA")

# 查看特定基因的标准化表达值
FetchData(obj_sub, vars = genes_vec)

# 用矩阵形式查看指定基因
as.matrix(obj_sub[["RNA"]]$data[genes_vec, ])

2. 如何判断 GetAssayData 获取的是标准化数据

GetAssayData(obj_sub, assay = "RNA") 默认取 slot = "data",即标准化后的数据。

方法一:对比不同 slot 的数值特征

# data slot(标准化 log-normalized)
norm <- GetAssayData(obj_sub, assay = "RNA")           # 或 slot = "data"

# counts slot(原始 UMI 计数)
raw  <- GetAssayData(obj_sub, assay = "RNA", slot = "counts")

# scale.data slot(z-score 缩放)
scaled <- GetAssayData(obj_sub, assay = "RNA", slot = "scale.data")

# 对比前几个值:counts 是整数,data 是小数
norm[1:5, 1:5]
raw[1:5, 1:5]

方法二:快速一行判断

# 如果有小数出现,说明是 data slot(标准化数据),而非 counts
any(GetAssayData(obj_sub, assay = "RNA") %% 1 != 0)
  • 返回 TRUE → 是标准化数据(有小数)
  • 返回 FALSE → 是 raw counts(全是整数)

3. 三个 slot 的区别

slot内容数值特征
counts原始 UMI 计数整数(如 0, 1, 23, 157)
data标准化 + log 变换小数(如 0.00, 1.23, 3.45),范围通常在 0~5
scale.dataz-score 缩放有正有负,均值 ≈ 0