DoubletFinder

相信各位做單細(xì)胞的童鞋們囊嘉,都遇到過去除多細(xì)胞的情況,而Cellranger默認(rèn)的是前1%(3000cell),對于低質(zhì)量的細(xì)胞有了算法來確認(rèn)是否保留柱宦,但是對于多細(xì)胞而言,Cellranger和Seurat并沒有相應(yīng)的算法進(jìn)行去除播瞳,今天給大家介紹一個去除多細(xì)胞的方法-DoubletFinder掸刊,一個R包,現(xiàn)在我們開回顧一下這個包的用法

DoubletFinder概述

DoubletFinder工作流程是從處理過的Seurat對象開始赢乓。

seu_kidney <- CreateSeuratObject(kidney.data)
seu_kidney <- NormalizeData(seu_kidney)
seu_kidney <- ScaleData(seu_kidney)
seu_kidney <- FindVariableFeatures(seu_kidney, selection.method = "vst", nfeatures = 2000)
seu_kidney <- RunPCA(seu_kidney)
seu_kidney <- RunUMAP(seu_kidney, dims = 1:10)

## Pre-process Seurat object (sctransform) -----------------------------------------------------------------------------------
seu_kidney <- CreateSeuratObject(kidney.data)
seu_kidney <- SCTransform(seu_kidney)
seu_kidney <- RunPCA(seu_kidney)
seu_kidney <- RunUMAP(seu_kidney, dims = 1:10)

至于更多的Seurat的細(xì)節(jié)處理忧侧,這里不再詳述,大家可以根據(jù)自己的需求編寫Seurat代碼牌芋,我們這里從構(gòu)建好Seurat對象開始分析DoubletFinder蚓炬。
然后,通過對通過隨機(jī)抽樣與替換選擇的細(xì)胞對的基因表達(dá)譜求平均躺屁,從原始UMI計數(shù)矩陣中生成Artificial doublets肯夏。然后生成足夠的Artificial doublets,占合成數(shù)據(jù)的25%(pN = 0.25)犀暑。接下來驯击,使用原始數(shù)據(jù)分析工作流程中使用的相同scale,縮放和可變基因定義參數(shù)耐亏,對真實數(shù)據(jù)和人工數(shù)據(jù)進(jìn)行合并和預(yù)處理余耽。值得注意的是,為了保留singlets and doublets之間的差異苹熏,在合并的人工數(shù)據(jù)集預(yù)處理期間不執(zhí)行nUMI回歸碟贾。使用在原始數(shù)據(jù)預(yù)處理期間選擇的具有統(tǒng)計意義的相同數(shù)量的PC,然后使用“ fields” R包中的“ rdist”函數(shù)將PC單元嵌入轉(zhuǎn)換為歐幾里得距離矩陣(Nychka等人轨域,2017)袱耽。
然后,從此距離矩陣中定義每個單元格的最近鄰居干发,然后通過將每個實際單元格的人工鄰居數(shù)除以鄰域大兄炀蕖(pK),為每個實際單元格計算人工最近鄰居的比例枉长。然后冀续,將最終的doublet分類分配給具有最高pANN的單元格,其中將n設(shè)置為具有或不具有同型doublet調(diào)整的期望doublet的總數(shù)必峰。
在這里我們只用單細(xì)胞數(shù)據(jù)來進(jìn)行模擬
DoubletFinder可以分為4個步驟:
一洪唐、 從現(xiàn)有的scRNA-seq數(shù)據(jù)生成 artificial doublets
二、預(yù)處理合并的real-artificial data
三吼蚁、執(zhí)行PCA并使用PC距離矩陣來找到每個單元的人工k最近鄰(pANN)的比例
四凭需、根據(jù) expected number of doublets排列順序和閾值pANN值
DoubletFinder采用以下參數(shù):
(1)seu?這是一個經(jīng)過充分處理的Seurat對象( after NormalizeData, FindVariableGenes, ScaleData, RunPCA, and RunTSNE have all been run)
(2)PC?具有統(tǒng)計意義的主成分?jǐn)?shù),指定為范圍(e.g., PCs = 1:10)
(3)pN?定義生成的人工雙峰的數(shù)量,表示為合并的真實人工數(shù)據(jù)的一部分粒蜈。 基于DoubletFinder性能在很大程度上是pN是不變的顺献,默認(rèn)設(shè)置為25%
(4)pK?定義用于計算pANN的PC鄰域大小,表示為合并的真實real-artificial數(shù)據(jù)的一部分枯怖。 未設(shè)置默認(rèn)值注整,因為應(yīng)該為每個scRNA-seq數(shù)據(jù)集調(diào)整pK。 最佳pK值應(yīng)使用以下描述的策略進(jìn)行估算度硝。
(5)nExp?這定義了用于進(jìn)行最終doublet/singlet預(yù)測的pANN閾值肿轨。 可以從10X / Drop-Seq裝置中的細(xì)胞裝載密度來最好地估計該值,并根據(jù)homotypic doublets的估計比例進(jìn)行調(diào)整塘淑。

'Best-Practices' for scRNA-seq data generated without sample multiplexing

Input scRNA-seq Data

不要將DoubletFinder應(yīng)用于代表多個不同樣本的匯總scRNA-seq數(shù)據(jù)。 例如蚂斤,如果您對表示跨10Xlane測序的WT和突變細(xì)胞系的匯總數(shù)據(jù)運(yùn)行DoubletFinder存捺,則將從WT和突變細(xì)胞生成artificial doublet,它們在您的數(shù)據(jù)中不存在曙蒸。 這些artificial doublets 會歪曲結(jié)果捌治。 值得注意的是,可以對通過在多個10Xlane上分割單個樣本而生成的數(shù)據(jù)運(yùn)行DoubletFinder纽窟。
確保清除輸入數(shù)據(jù)中的低質(zhì)量cluster

pK Selection

通過對模擬的scRNAseq數(shù)據(jù)進(jìn)行pN-pK參數(shù)掃描的ROC分析肖油,其中(I)細(xì)胞狀態(tài)數(shù)目可變,并且(II)轉(zhuǎn)錄異質(zhì)性的變量大小表明(I)最佳pK值選擇取決于細(xì)胞狀態(tài)總數(shù)臂港,并且(II )DoubletFinder性能在應(yīng)用于轉(zhuǎn)錄同源數(shù)據(jù)時會受到影響森枪。
使用BCMVN最大化優(yōu)化pK
雙峰系數(shù)(BC)測量數(shù)據(jù)分布中與單峰的偏差.對于DoubletFinder參數(shù)擬合,我們認(rèn)為產(chǎn)生非單峰pANN分布的參數(shù)集將最佳地將單重態(tài)與雙態(tài)分離审孽,結(jié)果將表現(xiàn)最佳县袱。 Thus scRNA-seq datasets,我們測試了在pN-pK參數(shù)掃描期間生成的每個pANN分布,以發(fā)現(xiàn)具有較高BC值的pANN分布佑力。 具體來說式散,我們按照modes R包中的“ bimodality_coefficient”函數(shù)中實現(xiàn)的方式計算了BC,其形式為:

$9W7KS9~PDTGZ8ZUG}J3E9D.png

其中g(shù)是pANN分布偏度打颤,k是峰度暴拄,n是樣本大小。 然后编饺,我們測量了在所有測試的pN值中每個pK的BC平均值和方差乖篷,因為先前已證明DoubletFinder的性能不受生成的人工doublet數(shù)量的影響。
我們記錄了此工作流程的結(jié)果透且。當(dāng)pK值太高(例如pK> 0.1)時那伐, singlets and doublets 具有相似的人工最近鄰比例,并且所得的pANN分布與低BC和AUC有關(guān)。相反罕邀,當(dāng)pK值太低(例如pK = 5e-4)時畅形,DoubletFinder性能會受到影響,因為基因表達(dá)空間中的鄰域受到導(dǎo)致多峰pANN分布的局部效應(yīng)的支配诉探。由于這些分布不是單峰分布日熬,因此它們與高BC相關(guān)。
但是肾胯,局部效應(yīng)對集成到數(shù)據(jù)集中(pN)的人工雙峰的數(shù)量敏感竖席,導(dǎo)致相關(guān)pK值的BC方差升高。 最后敬肚,理想的pK值(例如pK = 0.01)會生成長尾pANN分布毕荐,其特征是高AUC和高BC,且方差低艳馒。 我們利用這些觀察結(jié)果設(shè)計了一個新的pK參數(shù)選擇指標(biāo)-BCMVN-形式為憎亚;
2.png

分別是pN值中每個pK的BC平均值和方差。 這項研究中測試的四個數(shù)據(jù)集的BCMVN分布具有一個單一的弄慰,視覺上可分辨的最大值第美。 對于真實數(shù)據(jù)集,此最大值與通過ROC分析確定的理想pK值相對應(yīng)陆爽。

sweep.res.list_kidney <- paramSweep_v3(pbmc, PCs = 1:20, sct = FALSE)
#head(sweep.res.list_kidney)
sweep.stats_kidney <- summarizeSweep(sweep.res.list_kidney, GT = FALSE)
#head(sweep.res.list_kidney)
bcmvn_kidney <- find.pK(sweep.stats_kidney)

根據(jù)上面的描述什往,最佳的pk值應(yīng)該是

mpK<-as.numeric(as.vector(bcmvn_kidney$pK[which.max(bcmvn_kidney$BCmetric)]))
annotations <- pbmc@meta.data$seurat_clusters
## Homotypic Doublet Proportion Estimate -------------------------------------------------------------------------------------
homotypic.prop <- modelHomotypic(annotations)           ## ex: annotations <- seu_kidney@meta.data$ClusteringResults
nExp_poi <- round(0.075*length(seu_kidney@cell.names))  ## Assuming 7.5% doublet formation rate - tailor for your dataset
nExp_poi.adj <- round(nExp_poi*(1-homotypic.prop))

最后,我們運(yùn)用

 pbmc <- doubletFinder_v3(pbmc, PCs = 1:20, pN = 0.25, pK = mpK, nExp = nExp_poi, reuse.pANN = FALSE, sct = FALSE)

就大功告成了~~~~~

?著作權(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

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