ROGUE: 細(xì)胞亞群純度評(píng)估

在多篇高分文章中都出現(xiàn)了評(píng)估細(xì)胞亞群純度的內(nèi)容,用到的是張澤民團(tuán)隊(duì)的ROGEU包。提出了一個(gè)基于熵的統(tǒng)計(jì)量(ROGUE)來準(zhǔn)確地定量鑒定的細(xì)胞團(tuán)的純度,可應(yīng)用于所有測(cè)試的scRNA-seq數(shù)據(jù)集,對(duì)評(píng)估推測(cè)細(xì)胞簇的質(zhì)量、發(fā)現(xiàn)純細(xì)胞亞型以及構(gòu)建全面、詳細(xì)和標(biāo)準(zhǔn)化的單細(xì)胞圖譜具有重要意義。

B. Liu et al., An entropy-based metric for assessing the purity of single cell populations. Nat Commun 11, 3155 (2020).
https://github.com/PaulingLiu/ROGUE
https://htmlpreview.github.io/?https://github.com/PaulingLiu/ROGUE/blob/master/vignettes/ROGUE_Tutorials.html

泛癌NK細(xì)胞ROGUE圖

安裝

if (!requireNamespace("devtools", quietly = TRUE)) install.packages("devtools")
devtools::install_github("PaulingLiu/ROGUE")
# 查看是否安裝成功
suppressMessages(library(ROGUE))
suppressMessages(library(ggplot2))
suppressMessages(library(tidyverse))

數(shù)據(jù)

模擬數(shù)據(jù)有兩個(gè)一個(gè)是表達(dá)矩陣expr(行基因,列細(xì)胞,數(shù)值為原始counts);分組信息meta(每個(gè)細(xì)胞對(duì)應(yīng)的分組信息,例如所屬細(xì)胞群、樣本、患者等)

expr
meta

示例

setwd('~/project/PH/test/ROGUE')
suppressMessages(library(ROGUE))
suppressMessages(library(ggplot2))
suppressMessages(library(tidyverse))

#### 讀入數(shù)據(jù) ----
expr <- readRDS('./data/DC.rds') 
meta <- readRDS('./data/info.rds') 
length(table(meta$CellID)) # 細(xì)胞數(shù)目為913
table(meta$Patient) # 樣本信息
# p1  p2  p3  p4  p5  p6  p7 
# 214   6 171 146 125 110 141
table(meta$ct) #細(xì)胞類型
# tDC1 tDC2 tDC3 tpDC 
# 171  330  101  311

#### 1. S-E ----
## 過濾低質(zhì)量細(xì)胞 (至少10個(gè)細(xì)胞中有表達(dá)的基因,至少表達(dá)10個(gè)基因的細(xì)胞)
expr <- matr.filter(expr, min.cells =10, min.genes =10)
# 使用SE模型 計(jì)算每個(gè)基因的 expression entropy
ent.res <- SE_fun(expr)
head(ent.res)
# A tibble: 6 × 7
#   Gene    mean.expr  entropy  fit    ds    p.value p.adj
#   <chr>        <dbl>   <dbl> <dbl> <dbl>   <dbl> <dbl>
# 1 LYZ           1.65   0.762 1.27  0.510       0     0
# 2 HLA-DQB2      1.35   0.569 1.01  0.437       0     0
# 3 BIRC3         1.21   0.458 0.886 0.428       0     0

## 可視化表達(dá)值和熵的關(guān)系
SEplot(ent.res)
##鑒定出的高度信息性基因可用于聚類和偽時(shí)間分析

#### 2.Rogue Calculate ----
rogue.value <- CalculateRogue(ent.res, platform = "UMI")
rogue.value # 0.7219202 
# ROGUE評(píng)分默認(rèn)>0.9時(shí)是一致性比較高的細(xì)胞亞類

# 推薦使用樣本來計(jì)算異質(zhì)性
rogue.res <- rogue(expr, labels = meta$ct, samples = meta$Patient, platform = "UMI", span = 0.6)
saveRDS(rogue.res, 'rogue_res.RDS')

#### 3.ggplot繪圖 ----
custom_colors <- c("#0072B2", "#D55E00", "#009E73", "#CC79A7")
p <- rogue.boxplot(rogue.res) 
df <- p[["data"]]
# 繪制箱型圖
ggplot(df, aes(x=clusters, y=ROGUE)) +
  geom_boxplot(aes(color=clusters), fill=NA) +  
  geom_jitter(aes(color=clusters), width=0, size=1.5) +  
  scale_color_manual(values=custom_colors) + 
  theme_classic() + 
  theme(axis.text = element_text(color = 'black')) + 
  labs(title="", x="", y="ROGUE index") + 
  #scale_y_continuous(limits = c(0.75, 0.95), breaks = seq(0.75, 0.95, by = 0.1)) +  # 設(shè)置 y 軸范圍和間隔
  theme(legend.position = "none") 
ggsave('rogue_boxplot.pdf', last_plot(), width = 4, height = 3)

結(jié)果

S–E plot

Each point represents one gene. The relationship between S and E was fitted with LOESS regression for each gene.
從圖中觀察到熵S與基因的平均表達(dá)水平E之間有很強(qiáng)的關(guān)系,從而形成了我們的表達(dá)熵模型(S - E模型)的基礎(chǔ)。圖中藍(lán)色代表高可信度基因
對(duì)于異質(zhì)細(xì)胞群體,某些基因會(huì)在部分細(xì)胞中表現(xiàn)出表達(dá)偏差,導(dǎo)致其表達(dá)分布的受限隨機(jī)性,從而導(dǎo)致S的降低。因此,可以在無監(jiān)督的情況下,通過選擇S降低(ds)最大的基因來對(duì)抗零期望,以獲得有信息的基因。

圖中tDC1具有較高的ROGUE值,代表該細(xì)胞群的純度較高;相反tDC2細(xì)胞群純度較低。
直觀地說,對(duì)于所有基因都沒有顯著ds的細(xì)胞群,將接收到一個(gè)ROGUE值為1,表明它是一個(gè)完全純的亞型或狀態(tài)。相反,顯著性ds匯總最多的種群將產(chǎn)生~0的純度評(píng)分。

其他

使用自己的數(shù)據(jù)測(cè)試了下運(yùn)行速度:7萬個(gè)細(xì)胞掛后臺(tái)運(yùn)行了2.5小時(shí),速度不是很快但是還可以接受!

歡迎大家評(píng)論交流!
(每帖分享:在漫長(zhǎng)的黑夜中期盼著破曉后的黎明)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容