Seurat的FetchData()函数
FetchData() 是 Seurat 提供的一个“万能取数”函数,用来 从 Seurat 对象里一次性提取任何你想要的数据——既可以是表达量,也可以是降维坐标、元数据、基因集平均表达等。它在交互分析和可视化准备阶段非常常用。
📌 函数原型(精简)
FetchData(object, vars, slot = "data", cells = NULL, ...)
🔍 参数速查
| 参数 | 说明 |
|---|---|
object | Seurat 对象。 |
vars | 要提取的变量名向量(基因名 / PC 坐标 / 元数据列名)。 |
slot | 表达量在哪个槽位: "data"(log 归一化)、"counts"(原始计数)、"scale.data"(z-score)。 |
cells | 限定提取哪些细胞(默认全部)。 |
✅ 常见用法示例
1️⃣ 提取单个基因的表达量
FetchData(s, vars = "GeneA")
# 返回:data.frame(行=细胞,列=GeneA 表达值)
2️⃣ 提取多个基因
FetchData(s, vars = c("GeneA", "GeneB", "GeneC"))
3️⃣ 提取降维坐标 + 元数据
FetchData(s, vars = c("UMAP_1", "UMAP_2", "celltype"))
4️⃣ 只看特定细胞
selected <- colnames(s)[s$celltype == "Neuron"]
FetchData(s, vars = "GeneA", cells = selected)
5️⃣ 提取原始计数
FetchData(s, vars = "GeneA", slot = "counts")
📊 返回类型
- 总是返回 data.frame
行名 = 细胞 barcode
列名 = 你指定的变量名
🧩 小技巧
- 变量名可以是 基因名、PC 坐标、元数据列名 的任意混合。
- 对基因集做平均表达:
FetchData(s, vars = "avg(GeneA,GeneB,GeneC)")
✅ 一句话总结
FetchData()是 Seurat 的“瑞士军刀”——任何表达量、降维坐标、元数据,一句话就能拎出来做分析或画图。
