本文摘自公眾號(hào) 【生信診斷所】
原文鏈接:https://mp.weixin.qq.com/s/eV0m1H6a9gyf4FMZjqQnzA
摘要
Garnett是一個(gè)單細(xì)胞自動(dòng)注釋軟件包,輸入數(shù)據(jù)包括一個(gè)單細(xì)胞數(shù)據(jù)集和細(xì)胞類型定義文件。Garnett使用彈性網(wǎng)回歸模型的機(jī)器學(xué)習(xí)算法訓(xùn)練出一個(gè)基于回歸的分類器。隨后訓(xùn)練好的分類器就可以用于更多數(shù)據(jù)集的細(xì)胞類型定義。 官網(wǎng):https://cole-trapnell-lab.github.io/garnett/


- 安裝
Garnett的運(yùn)行依賴于monole,因此在安裝garnett前需要先安裝monole和其他依賴包。
我這里安裝的是monocle3,所以以下記錄都是根據(jù)monocle3的版本。
從Github上安裝:必須要先安裝monocle3和其他依賴包。
# First install Bioconductor and Monocle 3
if (!requireNamespace("BiocManager"))
install.packages("BiocManager")
BiocManager::install()
# Next install a few more dependencies
BiocManager::install(c('BiocGenerics', 'DelayedArray',
'DelayedMatrixStats',
'limma', 'S4Vectors', 'SingleCellExperiment',
'SummarizedExperiment'))
install.packages("devtools")
devtools::install_github('cole-trapnell-lab/monocle3')
安裝Garnett
# Install a few Garnett dependencies:
BiocManager::install(c('org.Hs.eg.db', 'org.Mm.eg.db'))
# Install Garnett
devtools::install_github("cole-trapnell-lab/garnett",ref="monocle3")
導(dǎo)入Garnett
安裝后,通過(guò)打開一個(gè)新的R會(huì)話并鍵入,測(cè)試Garnett是否安裝正確
library(garnett)
2.使用
2.1,如果你有自己的marker,就可以訓(xùn)練你自己的classifier,
如果沒(méi)有,可以下載官方的marker文件進(jìn)行訓(xùn)練,或者直接下載已經(jīng)訓(xùn)練好的classifier。
2.1a :訓(xùn)練自己的文件
先準(zhǔn)備文件:文件格式要求如下:
>B cells
expressed: CD19, MS4A1
>T cells
expressed: CD3D
可以根據(jù)需要:
>B cells
expressed: CD19, MS4A1
expressed above: CD79A 10
references: https://www.abcam.com/primary-antibodies/b-cells-basic-immunophenotyping,
10.3109/07420528.2013.775654
>T cells
expressed: CD3D
sample: blood # A meta data specification
>Helper T cells
expressed: CD4
subtype of: T cells
references: https://www.ncbi.nlm.nih.gov/pubmed/?term=12000723
可以使用check_markers 和plot_markers去檢查你自己的marker表達(dá)情況,根據(jù)情況再去調(diào)整marker文件,以達(dá)到最好的效果。
2.1b :下載已經(jīng)訓(xùn)練好的classifier
下載地址:https://cole-trapnell-lab.github.io/garnett/classifiers/

2.2 導(dǎo)入數(shù)據(jù)
這里使用Seurat前期處理后的
Garnett 是基于monocle3,所以它輸入的數(shù)據(jù)格式是CellDataSet(CDS)。
這一部分的操作可以參考monocle3的使用。
需要先創(chuàng)建CDS 對(duì)象
library(monocle3)
library(garnett)
library(org.Hs.eg.db)
# 這里使用的是Seurat經(jīng)過(guò)標(biāo)準(zhǔn)流程處理過(guò)的seurat對(duì)象
data = GetAssayData(sc_seurat_obj, assay="RNA", slot = 'counts')
cell_metadata <- sc_seurat_obj@meta.data
gene_annotation <- data.frame(gene_short_name = rownames(data))
rownames(gene_annotation) <- rownames(data)
# 創(chuàng)建cds 對(duì)象
cds <- monocle3::new_cell_data_set(data, cell_metadata = cell_metadata,
gene_metadata = gene_annotation)
cds <- monocle3::preprocess_cds(cds, num_dim = 10)
# 對(duì)marker file中的marker基因評(píng)分
# 將自己準(zhǔn)備的marker文件放入這里:"pbmc_bad_markers.txt",
marker_check <- check_markers(pbmc_cds, "./my_marker_file.txt",
db=org.Hs.eg.db,
cds_gene_id_type = "SYMBOL",
marker_file_gene_id_type = "SYMBOL")
plot_markers(marker_check)

評(píng)估結(jié)果會(huì)以紅色字體提示哪些marker基因在數(shù)據(jù)庫(kù)中找不到對(duì)應(yīng)的Ensembl名稱,以及哪些基因的特異性不高(標(biāo)注“High overlap with XX cells”)。我們可以根據(jù)評(píng)估結(jié)果優(yōu)化marker基因,或者添加其他信息來(lái)輔助區(qū)分細(xì)胞類型。
2.4 訓(xùn)練分類器
# 使用marker file和cds對(duì)象訓(xùn)練分類器 # 這一步比較慢可以使用cores
sc_seurat_obj_classifier <- train_cell_classifier(cds = cds,
marker_file = "./my_marker_file.txt",
db = org.Hs.eg.db,
cds_gene_id_type = "SYMBOL",
num_unknown = 10,
marker_file_gene_id_type = "SYMBOL",
min_observations = 50,
cores = 16, # windows
# cores = 64, # linux
)
- 使用自己訓(xùn)練好的classifier預(yù)測(cè)自己的數(shù)據(jù)
pData(cds)$garnett_cluster <- pData(cds)$seurat_clusters
# 使用前面訓(xùn)練的pbmc_classifier來(lái)對(duì)自己的數(shù)據(jù)進(jìn)行細(xì)胞分型
cds <- classify_cells(cds, sc_seurat_obj_classifier,
db=org.Hs.eg.db,
cluster_extend = TRUE,
cds_gene_id_type = "SYMBOL")
## 將結(jié)果返回給seurat對(duì)象# 提取分類結(jié)果
cds.meta <- subset(pData(cds),
select = c("cell_type","cluster_ext_type")) %>% as.data.frame()
sc_seurat_obj <- AddMetaData(sc_seurat_obj, metadata = cds.meta)
# 查看結(jié)果
DimPlot(sc_seurat_obj, group.by = "cluster_ext_type",
label = T, label.size = 3) + ggtitle("Classified by Garnett")

上圖是用自己的真實(shí)的數(shù)據(jù)測(cè)試的結(jié)果。
準(zhǔn)確性暫不評(píng)價(jià),等測(cè)試完SingleR,scCATCH之后再對(duì)比一下。
生信學(xué)習(xí)交流Q群:826162518