AUCell可以識別sc-RNA數(shù)據(jù)中具有活躍基因集或基因模塊的細(xì)胞,即可以將某個通路的富集情況展現(xiàn)在聚類的細(xì)胞上,從而可以鑒定具有特定基因特征的細(xì)胞群馍佑。
AUCell使用“Area Under the Curve”(AUC)來計算輸入基因集的關(guān)鍵子集是否在每個細(xì)胞內(nèi)富集。AUC分?jǐn)?shù)在所有細(xì)胞中的分布允許探索基因的相對表達(dá)飞崖。由于計分方法是基于排名的睬塌,因此AUCell不受基因表達(dá)單位和標(biāo)準(zhǔn)化程序的影響。此外银酬,由于對細(xì)胞進(jìn)行了單獨評估,因此可以輕松地將其應(yīng)用于更大的數(shù)據(jù)集筐钟,并可以根據(jù)需要對表達(dá)式矩陣進(jìn)行分組揩瞪。
AUCell的工作流基于三個步驟:
1.Build the rankings
2.Calculate the Area Under the Curve (AUC)
3.Set the assignment thresholds
運行AUCell
準(zhǔn)備輸入的數(shù)據(jù)以及富集的基因集。
1.輸入的數(shù)據(jù)為單細(xì)胞的表達(dá)矩陣
2.基因集可以從BROAD下載GSEA基因集:MSigDB
如下載h.all.v7.1.symbols.gmt文件
運行AUCell
library(AUCell)
#Build gene expression rankings for each cell
CellRank<- AUCell_buildRankings(as.matrix(seurat.object@assays$RNA@data))
#load gene set, e.g. GSEA lists from BROAD
h <- read.gmt("data/h.all.v7.1.symbols.gmt") ##
head(h)
因為數(shù)據(jù)集的基因是人的篓冲,而我的表達(dá)矩陣的基因是小鼠的李破,所以通過轉(zhuǎn)化大小寫來講人的基因轉(zhuǎn)化成小鼠的。
library(Hmisc)
h$gene<-capitalize(tolower(h$gene))
head(h)
#將基因集改成通路對應(yīng)相應(yīng)基因的list格式
geneSets<-lapply(unique(h$ont),function(x){h$gene[h$ont==x]})
names(geneSets) <- unique(h$ont)
#Calculates the 'AUC' for each gene-set in each cell.
cells_AUC <- AUCell_calcAUC(geneSets, CellRank,nCores = 5, aucMaxRank=nrow(CellRank)*0.05)
#要測試的基因集
geneSet <- "HALLMARK_TNFA_SIGNALING_VIA_NFKB"
aucs <- as.numeric(getAUC(cells_AUC)[geneSet, ])
#將AUC的結(jié)果添加到seurat.object的meta.data中壹将,并畫圖
seurat.object$AUC<-aucs
df<- data.frame(seurat.object@meta.data, seurat.object@reductions$umap@cell.embeddings)
library(dplyr)
class_avg <- df %>%
group_by(cell_type) %>%
summarise(
UMAP_1 = median(UMAP_1),
UMAP_2 = median(UMAP_2)
)
ggplot(df, aes(UMAP_1, UMAP_2)) +
geom_point(aes(colour = AUC)) + viridis::scale_color_viridis(option="A") +
ggrepel::geom_label_repel(aes(label = cell_type),
data = class_avg,
size = 6,
label.size = 0,
segment.color = NA
)+ theme(legend.position = "none") + theme_bw()
參考:http://www.reibang.com/p/2fb20f44da67
https://scenic.aertslab.org/tutorials/AUCell.html#overview-of-the-workflow-to-run-aucell
https://scenic.aertslab.org/tutorials/AUCell.html