使用ArchR分析單細胞ATAC-seq數據(第二章)

本文免費閱讀地址: http://xuzhougeng.top/archives/analysis-sc-atac-seq-with-archr-chapter2

第2章: 使用ArchR推斷Doublet

單細胞數據分析中的一個重要問題就是"doublet"對分析的影響。"doublet"指的是單個液滴(droplet)捕獲了一個條形碼珠(barcode bead)和多個細胞核。這會導致原本來自于多個細胞的read結果被當成一個細胞,結果原來兩個細胞被平均成一個細胞。我們在這一章中將會介紹如何使用計算的方法鑒定并過濾doublet。

2.1 ArchR是如何鑒定doublet

幾乎所有平臺得到的單細胞數據都或多或少的存在doublet。所謂的doublet就是一個液滴中混入了多個細胞的細胞核,導致原本的多個細胞被認為是一個細胞。在10X Genomics平臺,doublets的細胞比例和一次反應中的細胞數有關,細胞越多,doublet也就越多。不過即便你按照標準流程,也依舊會存在一定比例的doublet,而只要有5%的doublet數據,就會對后續的聚類分析造成影響,尤其是后續的發育/譜系分析。因為doublet看起來像是兩類細胞的中間狀態,但是當你不知道這是doublet造成的假象時,你就會得到錯誤的結論。

為了預測哪些細胞才是真的doublet,我們通過對不同細胞進行組合得到模擬的doublet(in silico doublets),然后將這些模擬的doublet和原來的細胞一同投影到UMAP,接著確定和它們最近的細胞。通過不斷地迭代對該步驟,我們就可以找到數據中那些與模擬doublet信號最接近的細胞。這些細胞就是潛在的doublet。

Doublet分析原理

為了開發ArchR的doublet鑒定算法并驗證它的可靠性,我們將10個不同類型的細胞進行混樣測序。在沒有doublet的情況下,我們的scATAC-seq數據最終應該有10個不同的細胞類型。但是當我們故意在10X Genomics scATAC-seq試劑中加入過量的細胞(25,000/per reaction), 我們會得到許多doublet。我們使用demuxlet根據一個細胞里是否包括兩種不同細胞的基因型來判斷該細胞是否是doublet。

colored by cell type

如上圖所示,我們的真實結果(ground truth)被預測的doublet覆蓋。ROC曲線中的AUC(area under the curve) > 0.90(見注1)

grouded truth

ArchR通過計算的方法移除這些doublets后,我們數據整體結構有了明顯的變化,符合預期,也就是有10個不同的細胞類型。

Post-ArchR doublet Removal

注1: ROC曲線全稱為受試者工作特征曲線 (receiver operating characteristic curve),它是根據一系列不同的二分類方式(分界值或決定閾),以真陽性率(敏感性)為縱坐標,假陽性率(1-特異性)為橫坐標繪制的曲線。AUC就是衡量學習器優劣的一種性能指標,AUC越接近于1.0,表示檢測方法真實性越高, 等于0.5表示真實性越低

2.2 使用ArchR推斷scATAC-seq doublets

ArchR默認使用ArchR手稿中的doublet參數。我們建議用戶檢查移除doublet前后的數據變化,理解移除doulet對細胞的影響,根據結果對已有的參數進行調整,而不是生搬硬我們的參數設置。我們也會展示一些

我們使用ArchR的addDoubleScores()函數來移除doublet。對于教程中使用的數據,每個樣本大約需要2到5分鐘時間進行處理,最后每個細胞的doublet得分會添加到Arrow文件中。 你可以使用?addDoubletScores了解該函數的每個參數的意義。

doubScores <- addDoubletScores(
    input = ArrowFiles,
    k = 10, #Refers to how many cells near a "pseudo-doublet" to count.
    knnMethod = "UMAP", #Refers to the embedding to use for nearest neighbor search with doublet projection.
    LSIMethod = 1
)

我們以其中一個樣本運行過程的輸出日志信息進行介紹,這里的R^2用于描述樣本中的細胞異質性,如果該數值非常小(例如小于0.9),說明該樣本的細胞都非常相似。那么使用模擬的方法去鑒定doublet就不太合適了。這個很好理解,如果所有細胞都表達一個基因,并且表達量是1,那么你模擬的doublet也會只有一個細胞,且表達量是均值1,結果就是所有細胞都是doublet。在這種情況下,我們推薦跳過doublet預測這一步。或者你可以嘗試設置knnMethod = "LSI",force = TRUE,在LSI子空間中進行投影。(相當于提高分辨率)。無論如何,你都需要手動檢查結果,確保運行過程符合預期。

## If there is an issue, please report to github with logFile!
## 2020-04-15 09:28:44 : Batch Execution w/ safelapply!, 0 mins elapsed.
## 2020-04-15 09:28:44 : scATAC_BMMC_R1 (1 of 3) : Computing Doublet Statistics, 0.001 mins elapsed.
## scATAC_BMMC_R1 (1 of 3) : UMAP Projection R^2 = 0.9736
## scATAC_BMMC_R1 (1 of 3) : UMAP Projection R^2 = 0.9736

這里的R^2大于0.9,表示細胞存在異質性。

addDoubletScores在計算doublet得分的時候,還會在"QualityControl"中為每個樣本生成三張圖(一個樣本一個PDF)

  1. Doublet Enrichments: 假設doublet符合均勻分布,那么每個細胞附近的模擬doublet數目都差不多。如果一個細胞附近相對于其他細胞有更多的doublet, 就認為它富集了doublet
  2. Doublet Score: 基于均勻分布假設,計算doublet富集顯著性,以-log10(binomial adjusted p-value)進行展示。我們更推薦根據doublet enrichment鑒定doublet。
  3. Doublet Density: 模擬的duoblet在二維空間的投影,我們可以直觀的了解我們模擬的doublet的分布情況。
還有 21% 的精彩內容
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
支付 ¥6.66 繼續閱讀