單細(xì)胞分析之細(xì)胞注釋工具Garnett

本文摘自公眾號(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/

a993753032104b1371104904b8159ad0.png

b84303b69baa1fbcc7067ca42e05959c.png

  1. 安裝
    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/

e747d2d33f4254246a8fdee173af68a0.png

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)
0032fecb2b1dc90358bddb565889c59a.png

評(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
)
  1. 使用自己訓(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")
90e0f0441fb5da39b896391426f35e64.png

上圖是用自己的真實(shí)的數(shù)據(jù)測(cè)試的結(jié)果。

準(zhǔn)確性暫不評(píng)價(jià),等測(cè)試完SingleR,scCATCH之后再對(duì)比一下。

生信學(xué)習(xí)交流Q群:826162518

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容