完整的單細(xì)胞分析流程——特征(基因)選擇

背景

我們經(jīng)常在探索性分析中使用scRNA-seq數(shù)據(jù)來表征細(xì)胞間的異質(zhì)性。諸如聚類和降維之類的過程會(huì)根據(jù)細(xì)胞的基因表達(dá)譜對(duì)細(xì)胞進(jìn)行比較病游,這涉及將每個(gè)基因的差異匯總為一對(duì)細(xì)胞之間的單個(gè)(不相似)或相似的度量衷戈。用于此計(jì)算的基因的選擇對(duì)度量的行為和下游分析方法的性能有重大影響狭吼。我們希望選擇包含與系統(tǒng)生物學(xué)相關(guān)且有用信息的基因,同時(shí)刪除包含隨機(jī)噪聲的基因殖妇。這旨在保留有趣的生物學(xué)過程的結(jié)構(gòu)而不會(huì)使該結(jié)構(gòu)模糊不清刁笙,并減小數(shù)據(jù)大小以提高后續(xù)步驟的計(jì)算效率。

特征選擇的最簡(jiǎn)單方法是根據(jù)基因在整個(gè)細(xì)胞群之間的表達(dá)量來選擇變化最大的基因拉一。假定與僅受技術(shù)噪聲或基線水平的“無用”生物學(xué)變異(例如采盒,來自轉(zhuǎn)錄爆發(fā))影響的其他基因相比,真正的生物學(xué)差異將表現(xiàn)為受影響基因的變異增加蔚润。有幾種方法可用于量化每個(gè)基因的變異并選擇適當(dāng)?shù)囊唤M高度可變的基因(HVG)磅氨。我們將在下面使用10X PBMC數(shù)據(jù)集進(jìn)行討論,以進(jìn)行演示:

#--- loading ---#
library(DropletTestFiles)
raw.path <- getTestFile("tenx-2.1.0-pbmc4k/1.0.0/raw.tar.gz")
out.path <- file.path(tempdir(), "pbmc4k")
untar(raw.path, exdir=out.path)

library(DropletUtils)
fname <- file.path(out.path, "raw_gene_bc_matrices/GRCh38")
sce.pbmc <- read10xCounts(fname, col.names=TRUE)

#--- gene-annotation ---#
library(scater)
rownames(sce.pbmc) <- uniquifyFeatureNames(
    rowData(sce.pbmc)$ID, rowData(sce.pbmc)$Symbol)

library(EnsDb.Hsapiens.v86)
location <- mapIds(EnsDb.Hsapiens.v86, keys=rowData(sce.pbmc)$ID, 
    column="SEQNAME", keytype="GENEID")

#--- cell-detection ---#
set.seed(100)
e.out <- emptyDrops(counts(sce.pbmc))
sce.pbmc <- sce.pbmc[,which(e.out$FDR <= 0.001)]

#--- quality-control ---#
stats <- perCellQCMetrics(sce.pbmc, subsets=list(Mito=which(location=="MT")))
high.mito <- isOutlier(stats$subsets_Mito_percent, type="higher")
sce.pbmc <- sce.pbmc[,!high.mito]

#--- normalization ---#
library(scran)
set.seed(1000)
clusters <- quickCluster(sce.pbmc)
sce.pbmc <- computeSumFactors(sce.pbmc, cluster=clusters)
sce.pbmc <- logNormCounts(sce.pbmc)
sce.pbmc
## class: SingleCellExperiment 
## dim: 33694 3985 
## metadata(1): Samples
## assays(2): counts logcounts
## rownames(33694): RP11-34P13.3 FAM138A ... AC213203.1 FAM231B
## rowData names(2): ID Symbol
## colnames(3985): AAACCTGAGAAGGCCT-1 AAACCTGAGACAGACC-1 ...
##   TTTGTCAGTTAAGACA-1 TTTGTCATCCCAAGAT-1
## colData names(3): Sample Barcode sizeFactor
## reducedDimNames(0):
## altExpNames(0):

還有416B數(shù)據(jù)集:

#--- loading ---#
library(scRNAseq)
sce.416b <- LunSpikeInData(which="416b") 
sce.416b$block <- factor(sce.416b$block)

#--- gene-annotation ---#
library(AnnotationHub)
ens.mm.v97 <- AnnotationHub()[["AH73905"]]
rowData(sce.416b)$ENSEMBL <- rownames(sce.416b)
rowData(sce.416b)$SYMBOL <- mapIds(ens.mm.v97, keys=rownames(sce.416b),
    keytype="GENEID", column="SYMBOL")
rowData(sce.416b)$SEQNAME <- mapIds(ens.mm.v97, keys=rownames(sce.416b),
    keytype="GENEID", column="SEQNAME")

library(scater)
rownames(sce.416b) <- uniquifyFeatureNames(rowData(sce.416b)$ENSEMBL, 
    rowData(sce.416b)$SYMBOL)

#--- quality-control ---#
mito <- which(rowData(sce.416b)$SEQNAME=="MT")
stats <- perCellQCMetrics(sce.416b, subsets=list(Mt=mito))
qc <- quickPerCellQC(stats, percent_subsets=c("subsets_Mt_percent",
    "altexps_ERCC_percent"), batch=sce.416b$block)
sce.416b <- sce.416b[,!qc$discard]

#--- normalization ---#
library(scran)
sce.416b <- computeSumFactors(sce.416b)
sce.416b <- logNormCounts(sce.416b)
sce.416b
## class: SingleCellExperiment 
## dim: 46604 185 
## metadata(0):
## assays(2): counts logcounts
## rownames(46604): 4933401J01Rik Gm26206 ... CAAA01147332.1
##   CBFB-MYH11-mcherry
## rowData names(4): Length ENSEMBL SYMBOL SEQNAME
## colnames(185): SLX-9555.N701_S502.C89V9ANXX.s_1.r_1
##   SLX-9555.N701_S503.C89V9ANXX.s_1.r_1 ...
##   SLX-11312.N712_S507.H5H5YBBXX.s_8.r_1
##   SLX-11312.N712_S517.H5H5YBBXX.s_8.r_1
## colData names(10): Source Name cell line ... block sizeFactor
## reducedDimNames(0):
## altExpNames(2): ERCC SIRV

量化基因的變化程度

log轉(zhuǎn)化數(shù)據(jù)的變化程度

量化每個(gè)基因變異的最簡(jiǎn)單方法是簡(jiǎn)單地計(jì)算細(xì)胞群間所有細(xì)胞的每個(gè)基因的對(duì)數(shù)歸一化后的表達(dá)值(為簡(jiǎn)單起見嫡纠,稱為“對(duì)數(shù)值”)的方差烦租。這具有一個(gè)優(yōu)點(diǎn),即特征基因的選擇基于用于后續(xù)下游步驟的相同對(duì)數(shù)值除盏。特別是叉橱,對(duì)數(shù)值的方差最大的基因?qū)?duì)細(xì)胞之間的歐幾里得距離貢獻(xiàn)最大。通過在此處使用對(duì)數(shù)值者蠕,我們可以確保在整個(gè)分析過程中對(duì)異質(zhì)性的定量定義是一致的窃祝。

每個(gè)基因的方差的計(jì)算很簡(jiǎn)單,但是特征選擇需要對(duì)均方差關(guān)系進(jìn)行建模踱侣。正如在數(shù)據(jù)均一化中簡(jiǎn)要討論的那樣粪小,對(duì)數(shù)轉(zhuǎn)換無法實(shí)現(xiàn)完美的方差穩(wěn)定化,這意味著基因的方差更多地是由其豐度驅(qū)動(dòng)的抡句,而不是其潛在的生物異質(zhì)性探膊。為了說明這種影響,我們使用modelGeneVar()函數(shù)描繪所有基因的豐度差異的趨勢(shì)(圖1)待榔。

library(scran)
dec.pbmc <- modelGeneVar(sce.pbmc)

# Visualizing the fit:
fit.pbmc <- metadata(dec.pbmc)
plot(fit.pbmc$mean, fit.pbmc$var, xlab="Mean of log-expression",
    ylab="Variance of log-expression")
curve(fit.pbmc$trend(x), col="dodgerblue", add=TRUE, lwd=2)
PBMC數(shù)據(jù)集中的差異是平均值的函數(shù)逞壁。 每個(gè)點(diǎn)代表一個(gè)基因,而藍(lán)線代表適合所有基因變化度的趨勢(shì)锐锣。

在任何給定的豐度下腌闯,我們都假定大多數(shù)基因的表達(dá)譜受隨機(jī)技術(shù)噪聲的影響。 在此假設(shè)下雕憔,我們的趨勢(shì)代表了技術(shù)噪聲作為豐度函數(shù)的估計(jì)姿骏。 然后,我們將每個(gè)基因的總方差分解為技術(shù)成分橘茉,即該基因豐度時(shí)趨勢(shì)的擬合值工腋; 生物成分姨丈,定義為總差異與技術(shù)成分之間的差。 此生物學(xué)成分代表每個(gè)基因的“有趣”變異擅腰,可用作HVG選擇的指標(biāo)蟋恬。

# Ordering by most interesting genes for inspection.
dec.pbmc[order(dec.pbmc$bio, decreasing=TRUE),] 
## DataFrame with 33694 rows and 6 columns
##              mean     total      tech       bio      p.value          FDR
##         <numeric> <numeric> <numeric> <numeric>    <numeric>    <numeric>
## LYZ       1.95605   5.05854  0.835343   4.22320 1.10534e-270 2.17409e-266
## S100A9    1.93416   4.53551  0.835439   3.70007 2.71036e-208 7.61572e-205
## S100A8    1.69961   4.41084  0.824342   3.58650 4.31570e-201 9.43173e-198
## HLA-DRA   2.09785   3.75174  0.831239   2.92050 5.93940e-132 4.86758e-129
## CD74      2.90176   3.36879  0.793188   2.57560 4.83929e-113 2.50484e-110
## ...           ...       ...       ...       ...          ...          ...
## TMSB4X    6.08142  0.441718  0.679215 -0.237497     0.992447            1
## PTMA      3.82978  0.486454  0.731275 -0.244821     0.990002            1
## HLA-B     4.50032  0.486130  0.739577 -0.253447     0.991376            1
## EIF1      3.23488  0.482869  0.768946 -0.286078     0.995135            1
## B2M       5.95196  0.314948  0.654228 -0.339280   
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市趁冈,隨后出現(xiàn)的幾起案子歼争,更是在濱河造成了極大的恐慌,老刑警劉巖渗勘,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沐绒,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡旺坠,警方通過查閱死者的電腦和手機(jī)乔遮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來取刃,“玉大人蹋肮,你說我怎么就攤上這事¤盗疲” “怎么了坯辩?”我有些...
    開封第一講書人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長崩侠。 經(jīng)常有香客問我漆魔,道長,這世上最難降的妖魔是什么却音? 我笑而不...
    開封第一講書人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任改抡,我火速辦了婚禮,結(jié)果婚禮上僧家,老公的妹妹穿的比我還像新娘雀摘。我一直安慰自己裸删,他們只是感情好八拱,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著涯塔,像睡著了一般肌稻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上匕荸,一...
    開封第一講書人閱讀 51,115評(píng)論 1 296
  • 那天爹谭,我揣著相機(jī)與錄音,去河邊找鬼榛搔。 笑死诺凡,一個(gè)胖子當(dāng)著我的面吹牛东揣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播腹泌,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼嘶卧,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了凉袱?” 一聲冷哼從身側(cè)響起芥吟,我...
    開封第一講書人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎专甩,沒想到半個(gè)月后钟鸵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡涤躲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年棺耍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片种樱。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡烈掠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缸托,到底是詐尸還是另有隱情左敌,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布俐镐,位于F島的核電站矫限,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏佩抹。R本人自食惡果不足惜叼风,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望棍苹。 院中可真熱鬧无宿,春花似錦、人聲如沸枢里。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽栏豺。三九已至彬碱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間奥洼,已是汗流浹背巷疼。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留灵奖,地道東北人嚼沿。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓估盘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親骡尽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子忿檩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

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