Seurat Weekly NO.1 || 到底分多少個群是合適的史简?!

Seurat Weekly NO.0 || 開刊詞

在過去的一周里Seurat社區(qū)在github總提問數(shù)由上周的3066上升到3090肛著,當(dāng)然有同一問題反復(fù)討論的情況圆兵,也有之前的問題還有人再問的情況,總的來說上周其在github中的issues往來郵件一共182封.本次主要和大家分享一下幾個枢贿,本期的封面故事是:

Resolution parameter in Seurat's FindClusters function for larger cell numbers

即殉农,在做細(xì)胞分群的時候如何確定分群數(shù)據(jù)量?在這之前我們先來看幾個有趣的問答吧局荚。

Error using WhichCells/subset in a for loop

https://github.com/satijalab/seurat/issues/1053
https://github.com/satijalab/seurat/issues/1839

當(dāng)我們需要循環(huán)地對某個基因列表用WhichCells/subset做條件篩選的時候:

genes <- c("KIF22", "RPGRIP1L")
v <- c(1:length(genes))
for (i in v){
  cells <- WhichCells(seurat_object, expression = genes[i] > 0)
  print(length(cells))
}

我們發(fā)現(xiàn):

Error in FetchData(object = object, vars = expr.char[vars.use], cells = cells, : None of the requested variables were found:

而單獨使用基因名是可以的:

WhichCells(seurat_object, expression = KIF22 > 0) 

為什么呢超凳?為什么基因名作為循環(huán)變量就不行了呢?我們發(fā)現(xiàn)循環(huán)的時候基因名是一個字符串耀态,而單獨寫的時候并不是字符串(沒加引號)轮傍,GitHub的回答是:

Much like R's subset function, subset.Seurat is designed for interactive use only. While we currently don't offer a programmatic way to subset Seurat objects based on feature expression, this can be accomplished relatively easily using which and FetchData:

var1 <- "GeneName"
expr <- FetchData(object = object, vars = var1)
object[, which(x = expr > low & expr < high)]

s所以在我們設(shè)計循環(huán)體的時候,不能直接用WhichCells/subset,可以用上面的方式:

library(Seurat)
gene_cells = list()
items <-c( 'LGALS3', 'S100A11')
for (gene1 in items)
{
    if (gene1 %in% rownames(pbmc_small))
        
    {
        expr <- FetchData(object = pbmc_small, vars = gene1)
        gene_cells[[gene1]] <- pbmc_small[, which(x = expr >= 0.5)]
        
    }
    
}

gene_cells

$LGALS3
An object of class Seurat 
230 features across 24 samples within 1 assay 
Active assay: RNA (230 features)
 2 dimensional reductions calculated: pca, tsne

$S100A11
An object of class Seurat 
230 features across 45 samples within 1 assay 
Active assay: RNA (230 features)
 2 dimensional reductions calculated: pca, tsne

關(guān)于Seurat的subset還有一個詭異的地方:

pbmc_small[VariableFeatures(object = pbmc_small), ]
pbmc_small[, 1:10]

subset(x = pbmc_small, subset = MS4A1 > 4)
subset(x = pbmc_small, subset = `DLGAP1-AS1` > 2)
subset(x = pbmc_small, idents = '0', invert = TRUE)
subset(x = pbmc_small, subset = MS4A1 > 3, slot = 'counts')
subset(x = pbmc_small, features = VariableFeatures(object = pbmc_small))

當(dāng)基因名中有-的時候首装,需要用反單引號引起來才能行创夜。

Fixing batch effect with seurat integrate

biostars : https://www.biostars.org/p/390189/

上一期我們討論了如何在Seurat分析多個樣本。今天選擇這個問題的原因是它讓我們明白在使用工具的時候仙逻,對工具原理的了解是多么重要驰吓。在運用概念時揍魂,對概念之前的關(guān)系理解是多么重要。

提問者拿出nFeatures_RNA 的箱型圖棚瘟,問這是不是批次效應(yīng)造成的现斋,這能不能說明樣本間有批次效應(yīng)?

這是一個經(jīng)典的問題偎蘸,類似地我們可以拿出兩個樣本間任何有差異的東西來做出這樣的提問: 這是不是批次效應(yīng)造成的庄蹋,這能不能說明樣本間有批次影響?那么迷雪,批次效應(yīng)真的是萬惡之源了限书。其實,在觀察到差異的時候章咧,我們首先要問的是:為什么倦西。然后觀察造成這種差異的原因,也許批次效應(yīng)是最后應(yīng)該考慮的赁严。就拿這個問題來說吧扰柠,箱型圖說明不同處理間細(xì)胞捕獲的基因數(shù)量不同,那么是哪些基因不同呢可不可以做一個overlap疼约,看看共有的基因是哪些卤档,哪些又是缺失的?只有闡明了差異的來源才能想辦法消除程剥。

Resolution parameter in Seurat's FindClusters function for larger cell numbers

bioinformatics : https://bioinformatics.stackexchange.com/questions/4297/resolution-parameter-in-seurats-findclusters-function-for-larger-cell-numbers
github : https://github.com/satijalab/seurat/issues/1565

我的細(xì)胞到底分多少個群是合適的劝枣?這是一個廣泛而經(jīng)典問題。就單細(xì)胞技術(shù)而言织鲸,我們常說每個細(xì)胞都是不同的舔腾,也就是說你總可以分到最細(xì)以單細(xì)胞為單位,但是這樣就失去高通量的意義了搂擦。在低通量下稳诚,我們可以著眼于單個細(xì)胞,現(xiàn)在成千上萬的細(xì)胞盾饮,一個一個看是不切實際的采桃。那么,我的細(xì)胞到底分多少個群是合適的丘损?

這個問題表現(xiàn)在Seurat中就是:Finding optimal cluster resolution in Seurat 3? 我們知道普办,不同的resolution參數(shù)會帶來不同的分群結(jié)果。先看一下github上面的回答:

While Seurat doesn't have tools for comparing cluster resolutions, there is a tool called clustree designed for this task and works on Seurat v3 objects natively. It's available on CRAN and can be installed with a simple install.packages('clustree')

clustree我們之前講過徘钥,可以全局地查看不同分群結(jié)果:

#先執(zhí)行不同resolution 下的分群
library(Seurat)
pbmc_small <- FindClusters(
  object = pbmc_small,
  resolution = c(seq(.4,1.6,.2))
)
clustree(pbmc_small@meta.data, prefix = "RNA_snn_res.")

在clustree的圖中我們看到不同resolution的取值情況下分群的關(guān)系衔蹲。既然我們最終是以群為單位來分析的,我們肯定是希望每個群是比較的。如圖可以看到在倒數(shù)第二層級有個亞群來自不同的分群舆驶,這有可能是:

  • 分群過度橱健,把原來分群的中應(yīng)有的異質(zhì)性也提煉出來單獨作為一群了
  • 上一層級分群不足,還包含了不該有的異質(zhì)性沙廉。

這里就帶來靈魂拷問了拘荡,就拿B細(xì)胞來說吧,它本身也是有異質(zhì)性的啊撬陵,那么他的異質(zhì)性是如何的呢珊皿?我們知道,某一類細(xì)胞內(nèi)的異質(zhì)性一般是要小于細(xì)胞群之間的異質(zhì)性的巨税。所以蟋定,拿到這個圖我們就可以根據(jù)自己帶著生物學(xué)意義的期望來做一個判斷了。

其實草添,我們也知道分群終究是非監(jiān)督的驶兜,只是數(shù)據(jù)驅(qū)動的,并不摻雜著數(shù)據(jù)(表達(dá)譜)以外的生物學(xué)意義远寸。如果拋開這些生物學(xué)意義抄淑,其實是有一些辦法來評價分群結(jié)果的:

要方法?一本書夠不夠而晒?

這些方法也是在做群內(nèi)和群之間的比較蝇狼,得出類似群純度的度量單位來評價分群結(jié)果。在不久前張澤民老師團(tuán)隊的一篇文章中提到過一種方法:ROGUE: an entropy-based universal metric for assessing the purity of single cell population倡怎。

該方法已被封裝為一個R包: https://github.com/PaulingLiu/ROGUE

我們看到已經(jīng)有不少的方法來做分群的評估了,還有:IKAP—Identifying K mAjor cell Population groups in single-cell RNA-sequencing analysis :


以上這些方法大同小異贱枣,核心的問題是监署,或者研究者真正關(guān)心的是:

哪種分群結(jié)果的生物解釋性高?

正所謂:分析總會有結(jié)果纽哥,看你敢用不敢用钠乏。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市春塌,隨后出現(xiàn)的幾起案子晓避,更是在濱河造成了極大的恐慌,老刑警劉巖只壳,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俏拱,死亡現(xiàn)場離奇詭異,居然都是意外死亡吼句,警方通過查閱死者的電腦和手機(jī)锅必,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惕艳,“玉大人搞隐,你說我怎么就攤上這事驹愚。” “怎么了劣纲?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵逢捺,是天一觀的道長。 經(jīng)常有香客問我癞季,道長蒸甜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任余佛,我火速辦了婚禮柠新,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘辉巡。我一直安慰自己恨憎,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布郊楣。 她就那樣靜靜地躺著憔恳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪净蚤。 梳的紋絲不亂的頭發(fā)上钥组,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天,我揣著相機(jī)與錄音今瀑,去河邊找鬼程梦。 笑死,一個胖子當(dāng)著我的面吹牛橘荠,可吹牛的內(nèi)容都是我干的屿附。 我是一名探鬼主播,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼哥童,長吁一口氣:“原來是場噩夢啊……” “哼挺份!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起贮懈,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤匀泊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后朵你,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體各聘,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年撬呢,在試婚紗的時候發(fā)現(xiàn)自己被綠了伦吠。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖毛仪,靈堂內(nèi)的尸體忽然破棺而出搁嗓,到底是詐尸還是另有隱情,我是刑警寧澤箱靴,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布腺逛,位于F島的核電站,受9級特大地震影響衡怀,放射性物質(zhì)發(fā)生泄漏棍矛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一抛杨、第九天 我趴在偏房一處隱蔽的房頂上張望够委。 院中可真熱鬧,春花似錦怖现、人聲如沸茁帽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽潘拨。三九已至,卻和暖如春饶号,著一層夾襖步出監(jiān)牢的瞬間铁追,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工茫船, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留琅束,地道東北人。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓透硝,卻偏偏與公主長得像狰闪,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子濒生,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,700評論 2 345