單細胞細胞類型自動化註釋利器-scCATCH (3.2.2)

前言

準確的細胞類型識別是單細胞數據分析的先決條件和重要步驟,在先前的文章中已經詳細介紹了SingleR的基本操作以及用法,在這裡就為大家介紹另一款自動註釋細胞類型的R套件-scCATCH

sccatch-1

scCATCH套件架設了一個細胞類型整合數據庫,其中包含了至少353種的細胞類型,與184種組織相關的686種細胞亞型,以及2096個人類和小鼠的細胞類型參考文獻,細胞類型整合數據庫可經由此處連接

sccatch-2

如何下載scCATCH套件?

# 下載scCATCH套件
install.packages("scCATCH")
# 檢查版本
packageVersion("scCATCH")
sccatch-3

下載完scCATCH套件後可以使用packageVersion()函數檢查版本,本篇所使用的scCATCH套件版本為v3.2.2,接著我們便直接進入操作流程囉!

範例數據

在這次範例中,我們分析來自10X Genomics的周邊血(PBMC)單細胞數據集,這是一個包含2700個單細胞的數據集,採用Illumina NextSeq 500進行测序,原始數據可以在這裡下載。在這裡我們將使用已經處理好的數據來進行分析,分析檔案可以在這裡下載。如果想要了解這套數據的詳細分析步驟,可以參考Seurat V4.9.9 – 一個強大的單細胞分析R套件教學。

# 加載套件
library(Seurat)
library(dplyr)
library(patchwork)
library(scCATCH)

# 載入分析好的PBMC數據集,需用電腦中的正確路徑,須將"\"更改為"/"
pbmc <- readRDS(file = "C:/Users/Administrator/Desktop/pbmc3k_final.rds")
pbmc
# 檢查分析結果
DimPlot(pbmc, reduction = "umap", label = TRUE)
sccatch-4

我們可以看到pbmc數據集中已經完成了PCA,UMAP和TSNE的基礎分析,接下來我們要進一步使用scCATCH套件對數據的細胞類型做自動化註釋。

scCATCH的使用範例

scCATCH套件主要包括兩個函數,分別為findmarkergene()findcelltype()函數,使用上非常方便簡潔。它可以處理來自不同物種、不同組織或不同癌症的單細胞數據,並允許分析人員使用自定義的CellMatch或自行添加更多的特徵基因來進行註釋。它可以直接從Seurat結果創建scCATCH對象,並不需要進行額外的數據格式轉換,接下來我們便運用scCATCH來對pbmc數據進行細胞類型註釋。

1. 以周邊血(Peripheral blood)細胞類型參考數據集分析

PBMC是peripheral blood mononuclear cell的縮寫,因此需以相同的細胞類型參考數據集來分析pbmc單細胞數據,參考數據集可以在scCATCH所整合的數據庫中找到,細胞類型整合數據庫可經由此處連接

# 初始設定 (cell_min_pct = 0.25,logfc = 0.25)
# 第一步:準備一個包含log1p歸一化單細胞轉錄組數據矩陣和細胞群信息的Seurat對象。
obj <- createscCATCH(data = pbmc[['RNA']]@data, cluster = as.character(Idents(pbmc)))
# 第二步:尋找各細胞群中的特徵基因,這裡使用的方法為use_method = "1"
obj <- findmarkergene(object = obj, species = "Human", use_method = "1", marker = cellmatch, tissue = c("Peripheral blood"), cell_min_pct = 0.25, logfc = 0.25,pvalue = 0.05, verbose = TRUE)
# 第三步:自動化辨識可能的細胞類別
obj <- findcelltype(object = obj, verbose = TRUE)
# 第四步:檢視結果
View(obj@celltype)

tissue()函數使用Peripheral blood,尋找特徵基因的方式有兩種,分別為use_method = "1"與每個其他細胞群進行比較;以及use_method = "2"與其他細胞群一起比較,這兩個方式各有優缺點,結果如下:

use_method = “1”結果

sccatch-5

use_method = “2”結果

sccatch-6

從結果上不難看出,use_method = "1"的結果比較符合pbmc數據細胞類型判別的預期,下圖是Seurat官方對pbmc數據細胞類型判別的正確答案,各位可以跟scCATCH的結果做個比較。

sccatch-7

2. 假定pbmc數據集為癌細胞數據集

scCATCH除了能分析正常細胞外,也能針對癌細胞數據進行分析,現在我們假定pbmc數據集是癌細胞樣本,嘗試以scCATCH來對其進行分析。

# 初始設定 (cell_min_pct = 0.25,logfc = 0.25)
# 第一步:準備一個包含log1p歸一化單細胞轉錄組數據矩陣和細胞群信息的Seurat對象。
obj <- createscCATCH(data = pbmc[['RNA']]@data, cluster = as.character(Idents(pbmc)))
# 第二步:尋找各細胞群中的特徵基因,這裡使用的方法為use_method = "1",設定癌症細胞為Hepatocellular Cancer
obj <- findmarkergene(object = obj, species = 'Human', cancer = c("Hepatocellular Cancer"), use_method = "1", marker = cellmatch, tissue = c("Blood", "Bone marrow", "Embryo", "Liver"),cell_min_pct = 0.1,logfc = 0.1,pvalue = 0.05,verbose = TRUE)
# 第三步:自動化辨識可能的細胞類別
obj <- findcelltype(obj)
# 第四步:檢視結果
View(obj@celltype)
sccatch-8

從上述結果可以看出,套件會根據使用者所設定的細胞類型參考數據集做分析,並不能自行判斷單細胞數據是甚麼類型的樣本。因此,在選擇參考數據集時,務必要小心再小心,千萬別選錯了!

3. 自定義用法

當想要以不同組合的組織或癌症進行注釋時,分析人員可以在 cellmatch()函數自定義所需要的組合模式,並且在 findmarkergene()函數中設置if_use_custom_marker為TRUE,以下是scCATCH所提供的自定義指令,提供給大家參考,大家可以嘗試玩玩看:

# 例子一
cellmatch_new <- cellmatch[cellmatch$species == "Human" & cellmatch$tissue %in% c("Kidney", "Liver", "Lung", "Brain"), ]
obj <- findmarkergene(object = obj, if_use_custom_marker = TRUE, marker = cellmatch_new)
obj <- findcelltype(obj)
View(obj@celltype)

# 例子二
cellmatch_new <- cellmatch[cellmatch$species == "Human" & cellmatch$cancer %in% c("Lung Cancer", "Lymph node", "Renal Cell Carcinoma", "Prostate Cancer"), ]
obj <- findmarkergene(object = obj, if_use_custom_marker = TRUE, marker = cellmatch_new)
obj <- findcelltype(obj)
View(obj@celltype)

# 例子三
cellmatch_new <- cellmatch[cellmatch$species == "Human", ]
obj <- findmarkergene(object = obj, if_use_custom_marker = TRUE, marker = cellmatch_new)
obj <- findcelltype(obj)
View(obj@celltype)

# 例子四 
cellmatch_new <- cellmatch[cellmatch$cancer %in% c("Lung Cancer", "Lymph node", "Renal Cell Carcinoma", "Prostate Cancer") | cellmatch$tissue %in% c("Kidney", "Liver", "Lung", "Brain"), ]
obj <- findmarkergene(object = obj, if_use_custom_marker = TRUE, marker = cellmatch_new)
obj <- findcelltype(obj)
View(obj@celltype)

結語

scCATCH算是一款優秀且簡單使用的自動化辨識細胞類型套件,它可以與SingleR套件搭配使用,互相驗證不同套件所辦別的細胞類型結果。此外,scCATCH的細胞類型參考數據集也比SingleR套件多很多,如果在熟悉自己單細胞數據的大前提下,scCATCH的效果或許會比SingleR套件來得好。

參考文獻

Xin Shao, Jie Liao, Xiaoyan Lu, Rui Xue, Ni Ai, Xiaohui Fan, scCATCH:Automatic Annotation on Cell Types of Clusters from Single-Cell RNA Sequencing Data, iScience, Volume 23, Issue 3, 27 March 2020.

您的分享,我非常感激!!!
MillionQuesn
MillionQuesn

一個旅居台灣的異鄉人,分享突然靈光一現的亮點。

文章: 46

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

error: Alert: Content selection is disabled!!