SingleR单细胞类型自动注释与celldex参考数据包

SingleR包可基于参考数据集,实现对单细胞数据细胞类型的自动注释。celldex包提供若干常用的人/老鼠的注释细胞类型的Bulk RNA-seq/microarray参考数据。

一、SingleR自动注释流程

1、准备输入数据

  • 同一格式要求:(1)矩阵(matrix)/稀疏矩阵(dgCMatrix)/数据框(data.frame)均可,或者是SummarizedExperiment对象(默认指定为logcounts slot);(2)必须是经标准化并log转换的表达矩阵,对应Seurat对象的data slot。
  • 未知细胞类型、待注释的单细胞表达矩阵
#例如从 Seurat对象中提取
library(scRNAseq)
hESCs <- LaMannoBrainData('human-es') #SingleCellExperiment对象
assays(hESCs) #only counts
hESCs <- scuttle::logNormCounts(hESCs) 
# add logcounts slot
hESCs
library(Seurat)
scRNA = as.Seurat(hESCs)
scRNA
head(scRNA@meta.data)
scRNA <- NormalizeData(scRNA, normalization.method = "LogNormalize", scale.factor = 10000)
scRNA <- FindVariableFeatures(scRNA, selection.method = "vst", nfeatures = 2000) 
scRNA <- ScaleData(scRNA, features = VariableFeatures(scRNA))
scRNA <- RunPCA(scRNA, features = VariableFeatures(scRNA)) 
pc.num=1:20
scRNA <- FindNeighbors(scRNA, dims = pc.num) 
scRNA <- FindClusters(scRNA, resolution = c(0.01,0.05,0.1,0.2,0.5,0.7,0.9),
                      verbose = F)
table(scRNA$originalexp_snn_res.0.2)

norm_count = GetAssayData(scRNA, slot="data") #稀疏矩阵
dim(norm_count)
#[1] 18538  1715
norm_count[1:4,1:4]
# 4 x 4 sparse Matrix of class "dgCMatrix"
# 1772122_301_C02 1772122_180_E05 1772122_300_H02 1772122_180_B09
# WASH7P-p1               1.1275620       .                0.485604               .
# LINC01002-loc4          .               .                .                      .
# LOC100133331-loc1       0.7149377       0.5823631        .                      .
# LOC100132287-loc2       .               .                .                      .
  • 已经完成细胞类型注释的参考数据集 ref
library(celldex)
ref = HumanPrimaryCellAtlasData()
#ref = readRDS("C:/Users/xiaoxin/Desktop/生信数据/celldex/HumanPrimaryCellAtlasDatar.rds")

2、SingleR注释

根据注释方法以及参考数据集可分为如下几种情况

  • (1)参考数据集为Bulk RNA-seq/microarray来源的SummarizedExperiment对象,为每个细胞进行单独注释
pred<- SingleR(test = norm_count, 
               ref = ref, 
               labels = ref$label.main)
head(pred)
table(pred$labels)
# Astrocyte         Chondrocytes Embryonic_stem_cells            iPS_cells 
# 32                    1                  127                  195 
# Neuroepithelial_cell              Neurons  Smooth_muscle_cells 
# 1030                  325                    5 


#identical(rownames(pred),colnames(norm_count))
#TRUE

#将注释结果添加到seurat对象里
scRNA$singleR_cell = pred$labels
table(scRNA$singleR_cell)
  • (2)参考数据集为Bulk RNA-seq/microarray来源的SummarizedExperiment对象,以每个cluster为单位进行注释
    其实只需要添加clusters参数即可,如下:
pred<- SingleR(test = norm_count, 
               ref = ref, 
               clusters = scRNA$originalexp_snn_res.0.2,
               labels = ref$label.main)
head(pred)
table(pred$labels)
scRNA$singleR_cluster = pred$labels[match(scRNA$originalexp_snn_res.0.2,
                                          rownames(pred))]
table(scRNA$singleR_cluster)
  • (3)参考数据集为Bulk RNA-seq/microarray来源的自己构建的表达矩阵,为每个细胞进行单独注释
# 表达矩阵: 行名为基因名,列名为细胞类型注释

# if start from "counts"
# ref <-  SummarizedExperiment(assays=list(counts=ref))
# ref <- scuttle::logNormCounts(ref) 
# ref_logcount<- assay(ref, "logcounts")

ref_logcount[1:4,1:4]
pred<- SingleR(test = norm_count, 
               ref = ref_logcount, 
               labels = colnames(ref_logcount))
head(pred)
table(pred$labels)
  • (4)参考数据集为scRNA-seq,为每个细胞进行单独注释
    由于单细胞表达矩阵的特殊性(稀疏,大部分表达值为零),所以需要选择更适合的比较算法Wilcoxon ranked sum test秩和检验。其它与上述一致
pred<- SingleR(test = test, 
               ref = ref, 
               labels = ref$label.main,
               de.method="wilcox")
  • (5)注释score可视化
plotScoreHeatmap(pred)
plotDeltaDistribution(pred.grun, ncol = 3)

二、celldex参考数据包

  • celldex数据包按人/鼠来分包含以下类型
    Human reference dataset
Mouse reference dataset
  • 下载数据集时,使用同名函数即可
library(celldex)
ref = HumanPrimaryCellAtlasData()
  • 因为国外数据原因,有时数据集下载不稳定,可以在网络良好情况时下载,并保存为本地对象,方便下次使用
ref = readRDS("C:/Users/xiaoxin/Desktop/生信数据/celldex/HumanPrimaryCellAtlasDatar.rds")
assay(ref, "logcounts")[1:4,1:4]
unique(ref$label.main)
unique(ref$label.fine)
unique(ref$label.ont)
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,122评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,070评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,491评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,636评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,676评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,541评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,292评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,211评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,655评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,846评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,965评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,684评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,295评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,894评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,012评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,126评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,914评论 2 355

推荐阅读更多精彩内容