前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >单细胞基因集打分方法——AUCell

单细胞基因集打分方法——AUCell

作者头像
生信菜鸟团
发布2023-10-16 11:09:57
1.5K0
发布2023-10-16 11:09:57
举报
文章被收录于专栏:生信菜鸟团

❝继续之前关于对单细胞数据进行基因集打分的推文更新,今天选择用AUCell,一个大家很常用的R包。 对之前做过降维聚类分群的数据进行分析。 ❞

导入数据
代码语言:javascript
复制
rm(list=ls())
library(Seurat)
library(ggplot2)
library(dplyr)
library(clusterProfiler)
library(org.Hs.eg.db)
library(stringr)
library(msigdbr)

getwd()
#setwd("./3-cell")  
load("sce.all_by_celltype.Rdata")

#取文章中列出的marker gene
paper<-"ALB,SERPINA1,HNF4A,EPCAM,CD3D,CD3E,NKG7,CD68,CD14,CD163,
CD1C,CLEC4C,KIT, IGHG1,JCHAIN,CD79A,VWF,PECAM1,
FCGR2B,ACTA2,COL1A1,COL1A2"
papermarker<-str_to_upper(trimws(strsplit(paper,',')[[1]]))
papermarker
设置合适的基因集
代码语言:javascript
复制
# 将基因转为list 
features <- list(papermarker)
#直接使用文件中基因向量,并转为list形式
homo_KEGG = msigdbr(species = "Homo sapiens",
                    category = "C2",
                    subcategory = "KEGG") %>% dplyr::select(gs_name,gene_symbol)#这里可以选择gene symbol,也可以选择ID
#基因集是list
homo_KEGG_gene = homo_KEGG %>% split(x =.$gene_symbol, f =.$gs_name)
AUCell打分
代码语言:javascript
复制
###本地安装AUCell包###
#github包:https://github.com/aertslab/AUCell
devtools::install("../AUCell-master/")
library(AUCell)
#cells_AUC <- AUCell_run(sce.all@assays$RNA@data, geneSets)
cells_rankings <- AUCell_buildRankings(sce.all@assays$RNA@data,splitByBlocks=TRUE) 
cells_rankings
cells_AUC <- AUCell_calcAUC(homo_KEGG_gene, cells_rankings, 
                            aucMaxRank=nrow(cells_rankings)*0.1)
cells_AUC
#提取P53 Pathway
homo_KEGG_gene$KEGG_P53_SIGNALING_PATHWAY
geneSet <- "KEGG_P53_SIGNALING_PATHWAY"
AUCell_auc <- as.numeric(getAUC(cells_AUC)[geneSet, ])
AUCell_auc
#添加至metadata中
sce.all$AUCell <- AUCell_auc
head(sce.all@meta.data)

「对于可视化部分,小提琴图,tSNE图或者umap图都可以展示出来AUCell打分得出的值。」

一些细节的解释:
  • 在安装AUCell R包的时候,遇到了一个报错,查了一下发现是:

如果直接用 BiocManager::install("AUCell")来安装,AUCell包的版本不够新了,所以推荐本地安装。

代码语言:javascript
复制
cells_rankings <- AUCell_buildRankings(sce.all@assays$RNA@data,splitByBlocks=TRUE) 
#Error in AUCell_buildRankings(sce.all@assays$RNA@data, splitByBlocks = TRUE) : 
 # could not find function "AUCell_buildRankings"
  • 「cells_rankings」

是对每个细胞里面的基因都排序了,其中 Top-left corner of the ranking,而且还计算了Quantiles for the number of genes detected by cell

代码语言:javascript
复制
cells_rankings
# Ranking for 24590 genes (rows) and 69997 cells (columns).
# 
# Top-left corner of the ranking:
#   cells
# genes           HCC01T_AAACCTGAGGGCATGT HCC01T_AAACCTGAGTCGCCGT
# RP11-34P13.7                    23497                   19215
# FO538757.2                       8795                   20627
# AP006222.2                       1598                    2164
# RP4-669L17.10                   18808                    6330
# RP5-857K21.4                     3508                   17640
# RP11-206L10.9                   19009                   18844
# cells
# genes           HCC01T_AAACCTGGTCACACGC HCC01T_AAACCTGTCCAGTATG
# RP11-34P13.7                    17115                   22521
# FO538757.2                      10350                   11762
# AP006222.2                      16968                   12078
# RP4-669L17.10                   16280                   16136
# RP5-857K21.4                     4398                    8877
# RP11-206L10.9                   22727                   17715
# cells
# genes           HCC01T_AAACGGGTCGCTTGTC
# RP11-34P13.7                     2166
# FO538757.2                      12879
# AP006222.2                      16149
# RP4-669L17.10                   16618
# RP5-857K21.4                    20486
# RP11-206L10.9                   21591
  • 对于「AUC」计算,考虑表达矩阵的top10%的基因,这个案例里面的是24590 个基因的表达矩阵,所以需要考虑2459个基因。我这个设置的比例有点高了,所以代码运行时间会比较长,对于基因较多的表达矩阵可以灵活减少,可以设置top5%的基因。还是结合自身数据来做这个分析。
代码语言:javascript
复制
cells_AUC <- AUCell_calcAUC(homo_KEGG_gene, cells_rankings, 
                            aucMaxRank=nrow(cells_rankings)*0.1)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信菜鸟团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导入数据
  • 设置合适的基因集
  • AUCell打分
  • 一些细节的解释:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档