Augur 能解决什么问题
完成单细胞聚类和注释后,一个常见问题是:接下来应该重点研究哪一种细胞?仅比较细胞比例,有时不足以反映不同实验条件对细胞状态造成的影响。
Augur 用于识别对生物扰动最敏感的细胞类型。这里的“扰动”可以是衰老与年轻、治疗与对照、疾病与健康,也可以是其他具有明确分组的实验条件。
文献中的应用
下面两项研究都使用了细胞类型优先级分析,用来判断哪些细胞对衰老最敏感。原文截图保持原始尺寸展示,避免低分辨率图片被强行拉伸。

肝细胞 Hep 响应最明显
研究指出,在单核转录组数据中,Hep 是对衰老反应最显著的细胞类型。

心肌细胞 CM 受影响最大
研究将 CM 识别为心脏衰老过程中受影响最明显的细胞类型。
安装 Augur
Augur 依赖一组数据处理、建模和并行计算包。首次安装前,请确认 R 环境可以正常连接 CRAN 和 GitHub。以下命令已与 Augur 官方说明核对。
主要依赖
- dplyr ≥ 0.8.0
- purrr ≥ 0.3.2
- tibble ≥ 2.1.3
- magrittr ≥ 1.5
- Matrix ≥ 1.2-14
- sparseMatrixStats ≥ 0.1.0
- parsnip ≥ 0.0.2
- recipes ≥ 0.1.4
- rsample ≥ 0.0.4
- yardstick ≥ 0.0.3
- pbmcapply ≥ 1.5.0
- lmtest ≥ 0.9-37
- rlang ≥ 0.4.0
- glmnet ≥ 2.0
- randomForest ≥ 4.6-14
install.packages("devtools")
devtools::install_github("Bioconductor/MatrixGenerics")
devtools::install_github("const-ae/sparseMatrixStats")
devtools::install_github("neurorestore/Augur")
library(Augur)
运行示例
这里使用 Augur 自带的 sc_sim 示例数据。元数据包含两列:label 表示 treatment 或 control,cell_type 表示细胞类型。
data("sc_sim")
head(sc_sim@meta.data)
label cell_type
1 control CellTypeA
2 treatment CellTypeA
3 treatment CellTypeA
4 control CellTypeA
5 control CellTypeA
6 treatment CellTypeA
计算每种细胞类型的 AUC
运行 calculate_auc() 后,查看结果对象中的 AUC 表。
augur_result <- calculate_auc(sc_sim)
augur_result$AUC
# A tibble: 3 × 2
cell_type auc
<chr> <dbl>
1 CellTypeC 0.879
2 CellTypeB 0.747
3 CellTypeA 0.554
结果解读:CellTypeC 的 AUC 最高,其次是 CellTypeB 和 CellTypeA。因此在这个示例中,CellTypeC 是更值得优先关注的细胞类型。
可视化 AUC 结果
细胞类型数量较少时,横向条形图通常比环形图更容易比较差异;细胞类型较多时,再根据展示场景选择极坐标图或其他形式。
AUC 越高,表示该细胞类型在实验组与对照组之间的分子特征越容易被模型区分。
library(ggplot2)
auc_data <- augur_result$AUC
ggplot(auc_data, aes(x = reorder(cell_type, auc), y = auc)) +
geom_col(fill = "#2558D7", width = 0.68) +
coord_flip() +
labs(x = NULL, y = "Augur AUC") +
theme_minimal(base_size = 12)
参数与数据要求
把 Seurat 对象交给 Augur 前,重点检查分组列、细胞类型列和计算线程数。字段名称不一致时,应明确传入对应参数。
| 项目 | 作用 | 建议 |
|---|---|---|
label | 实验条件,如 treatment / control | 至少包含两个可比较的分组 |
cell_type | 细胞类型注释 | 先检查每类细胞数量是否足够 |
n_threads | 并行计算线程数 | 根据 CPU 与内存设置,不是越大越好 |
cell_type_col | 指定细胞类型列名 | 列名不为 cell_type 时显式传入 |
label_col | 指定实验分组列名 | 列名不为 label 时显式传入 |
augur_result <- calculate_auc(
seurat_object,
cell_type_col = "cell_annotation",
label_col = "condition",
n_threads = 8
)
原理简述
Augur 的核心思路是:如果某类细胞对实验刺激产生了明显响应,那么只根据该细胞的分子特征,模型就更容易判断它来自实验组还是对照组。
因此,AUC 适合用来确定“优先研究谁”,但不能单独替代差异表达、通路富集、细胞比例和生物学验证。