【TOP生物信息】使用SingleR注释细胞类型

这篇具有很好参考价值的文章主要介绍了【TOP生物信息】使用SingleR注释细胞类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

扫码关注下方公粽号,回复推文合集,获取400页单细胞学习资源!

本文共计1887字,阅读大约需要6分钟,目录如下:

  • SingleR基本介绍

  • SingleR包安装

  • SingleR包使用

    • 1.使用已有的参考数据集进行细胞定义
    • 2.使用自定义数据集进行细胞定义
  • 小结

  • 获取代码

  • 代码参考

  • 往期单细胞系统教程


SingleR基本介绍

SingleR最早发表在2019年Nature Immunology杂志的一篇文章上,文章题目为"Reference-based analysis of lung single-cell sequencing reveals a transitional profibrotic macrophage"。截止至2023年3月10日,引用量已经达到了947。SingleR的基本原理是利用已知类型细胞的基因表达谱和单个细胞的基因表达谱的相关性进行细胞类型鉴定。

SingleR的具体流程是(图1):

【TOP生物信息】使用SingleR注释细胞类型

图1:SingleR工作示意图(来源:Nat Immunol. 2019 Feb;20(2):163-172.)

1.计算参考数据集中各个细胞类型基因表达谱的可变基因,对于每一个需要鉴定的细胞,计算单个细胞与参考数据集中各个细胞类型基因在可变基因上的Spearman相关性;

2.根据参考基因集的命名注释聚合每个细胞类型的多重相关系数,每种细胞类型的评分默认选择相关系数值的80%,此时可以筛选得到每个细胞最可能的细胞定义类型;

3.计算来自参考数据集中最可能的细胞类型基因表达谱的可变基因,并计算单个细胞与最可能细胞类型在可变基因上的Spearman相关性,去除最低值的细胞(或是比最高值低于0.05的细胞),重复此步骤,直到只保留两种细胞类型。最后一次运行后,相关系数值最高的细胞类型则作为需要鉴定的细胞的定义。

此外,SingleR还提供了网页版工具(图2)用于在线注释细胞类型(https://comphealth.ucsf.edu/app/singler)。

【TOP生物信息】使用SingleR注释细胞类型

图2:SingleR网页版


SingleR包安装

使用devtools包或者BiocManager进行安装。

devtools::install_github('dviraran/SingleR')
#BiocManager::install("SingleR")

SingleR包使用

1.使用已有的参考数据集进行细胞定义

celldex(http://bioconductor.org/packages/release/data/experiment/vignettes/celldex/inst/doc/userguide.html)提供了来自bulk RNA-seq或者是芯片测序的7个常用的参考数据库:

①General-purpose references:

Human primary cell atlas (HPCA);

Blueprint/ENCODE;

Mouse RNA-seq。

②Immune references:

Immunological Genome Project (ImmGen);

Database of Immune Cell Expression/eQTLs/Epigenomics (DICE);

Novershtern hematopoietic data;

Monaco immune data。

可用HumanPrimaryCellAtlasData()函数从Human Primary Cell Atlas中获取参考数据,建议将参考数据本地保存,便于每次分析时加载。

library(celldex)
hpca.se <- HumanPrimaryCellAtlasData()
hpca.se
save(hpca.se,file="hpca.se.RData")

加载SingleR和待注释单细胞数据集(待注释数据集来自10X官网的PBMC数据,已经按照官方流程整理成pbmc3k.rds),保证两个数据集的基因相同。由于参考集里面是logcounts矩阵,后面对于单细胞数据集也要做类似的处理。

library(SingleR)
library(scater)
library(SummarizedExperiment)
library(cowplot)

test.seu<-readRDS('pbmc3k.rds')
test.count=as.data.frame(test.seu[["RNA"]]@counts)
load(file="hpca.se.RData")

common_hpca <- intersect(rownames(test.count), rownames(hpca.se))
hpca.se <- hpca.se[common_hpca,]
test.count_forhpca <- test.count[common_hpca,]
test.count_forhpca.se <- SummarizedExperiment(assays=list(counts=test.count_forhpca))
test.count_forhpca.se <- logNormCounts(test.count_forhpca.se)

定义主要的细胞类型,这里使用的是label.main参数进行细胞大类注释。

pred.main.hpca <- SingleR(test = test.count_forhpca.se, ref = hpca.se, labels = hpca.se$label.main)
result_main_hpca <- as.data.frame(pred.main.hpca$labels)
result_main_hpca$CB <- rownames(pred.main.hpca)
colnames(result_main_hpca) <- c('HPCA_Main', 'CB')
head(result_main_hpca)

【TOP生物信息】使用SingleR注释细胞类型

图3:result_main_hpca数据结构

整合到meta.data中,利用UMAP展示结果(图4)。

test.seu@meta.data$CB=rownames(test.seu@meta.data)
test.seu@meta.data=inner_join(test.seu@meta.data,result_main_hpca,by="CB")
rownames(test.seu@meta.data)=test.seu@meta.data$CB

DimPlot(test.seu, reduction = "umap", group.by = "HPCA_Main",label = TRUE,repel = TRUE,ncol=1)+
          DimPlot(test.seu, reduction = "umap", group.by = "ident",label = TRUE,repel = TRUE,ncol=1)&
  theme(axis.line = element_blank(), axis.ticks= element_blank(),axis.text = element_blank())

【TOP生物信息】使用SingleR注释细胞类型

图4:SingleR鉴定结果

SingleR细胞注释结果与典型的marker基因表达结果对比,可见在单核细胞(LYZ、CD14)、B细胞(MS4A1)、T细胞(CD3E、CD8A)、NK细胞(GNLY)、血小板(PPBP)大群上注释比较准确(图5)。

FeaturePlot(test.seu, features = c("MS4A1", "GNLY", "CD3E", "CD14", "FCER1A", "FCGR3A", "LYZ", "PPBP", "CD8A"))

【TOP生物信息】使用SingleR注释细胞类型

图5:细胞典型标记物的表达情况

我们也可以将参数修改为label.fine进行再次分析,与典型标记物结果对比可见,比如表达FCER1A的树突状细胞并没有区分出来,但是也根据FCGR3A的表达区分出来两群单核细胞(图6)。

pred.detail.hpca <- SingleR(test = test.count_forhpca.se, ref = hpca.se, labels = hpca.se$label.fine)

【TOP生物信息】使用SingleR注释细胞类型

图6:SingleR鉴定结果2

2.使用自定义数据集进行细胞定义

使用自己定义/找到的单细胞数据集做注释,演示用到的数据集来自10X官网的PBMC数据。用PBMC5k数据集作为参考(已根据典型细胞标记物定义好细胞类型)来注释PBMC3k的细胞。两套数据集,已经跑完Seurat标准流程并整理成rds文件:pbmc3k.rdspbmc5k.rds。首先进行参考数据集的构建。

library(Seurat)
library(tidyverse)
library(SummarizedExperiment)
library(scuttle)

pbmc5k=readRDS("pbmc5k.rds")
pbmc5k_count=pbmc5k[["RNA"]]@counts

pbmc5k@meta.data$Index =rownames(pbmc5k@meta.data) #给metadata增加一列Index,代表每个细胞名字
pdata=pbmc5k@meta.data[,c("Index","celltype")]
rownames(pdata)=pdata$Index
pdata$Index=NULL
colnames(pdata)="ref_label"

pbmc5k_SE <- SummarizedExperiment(assays=list(counts=pbmc5k_count),colData = pdata)
pbmc5k_SE <- logNormCounts(pbmc5k_SE) 

saveRDS(pbmc5k_SE,"pbmc5k_SE.ref2.rds")

数据整理完毕后就可以导入待注释数据集和参考数据集进行细胞注释(图7),和前面用已有的参考数据集鉴定的结果是还是有点差异的。

library(tidyverse)
library(Seurat)
library(SingleR)
library(scuttle)
library(SummarizedExperiment)

pbmc5k_SE=readRDS("pbmc5k_SE.ref2.rds")
pbmc3k=readRDS("pbmc3k.rds")
pbmc3k_count=pbmc3k[["RNA"]]@counts

common_gene <- intersect(rownames(pbmc3k_count), rownames(pbmc5k_SE))
pbmc5k_SE <- pbmc5k_SE[common_gene,]
pbmc3k_count <- pbmc3k_count[common_gene,]

pbmc3k_SE <- SummarizedExperiment(assays=list(counts=pbmc3k_count))
pbmc3k_SE <- logNormCounts(pbmc3k_SE)

singleR_res <- SingleR(test = pbmc3k_SE, ref = pbmc5k_SE, labels = pbmc5k_SE$ref_label)
anno_df <- as.data.frame(singleR_res$labels)
anno_df$Index <- rownames(singleR_res)
colnames(anno_df)[1] <- 'ref_label_from_pbmc5k'

pbmc3k@meta.data=pbmc3k@meta.data%>%inner_join(anno_df,by="Index")
rownames(pbmc3k@meta.data)=pbmc3k@meta.data$Index
DimPlot(pbmc3k, reduction = "umap", group.by = "HPCA_Main",label = TRUE,repel = TRUE,ncol=1)+
  DimPlot(pbmc3k, reduction = "umap", group.by = "ref_label_from_pbmc5k",label = TRUE,repel = TRUE,ncol=1)&
  theme(axis.line = element_blank(), axis.ticks= element_blank(),axis.text = element_blank())

【TOP生物信息】使用SingleR注释细胞类型

图7:自定义数据集鉴定结果


小结

使用SingleR自带的数据集在进行细胞的大类定义时还是比较准确的,但在更细致的亚群区分中往往表现不佳,后续我们也将介绍其他一些在单细胞转录组测序中常用细胞注释软件。

获取代码

代码和测试数据请关注公粽号获取


代码参考

GitHub - dviraran/SingleR: SingleR: Single-cell RNA-seq cell types Recognition (legacy version)

https://satijalab.org/seurat/articles/pbmc3k_tutorial.html


往期单细胞系统教程

单细胞分析实录(1): 认识Cell Hashing

单细胞分析实录(2): 使用Cell Ranger得到表达矩阵

单细胞分析实录(3): Cell Hashing数据拆分

单细胞分析实录(4): doublet检测

单细胞分析实录(5): Seurat标准流程

单细胞分析实录(6): 去除批次效应/整合数据

单细胞分析实录(7): 差异表达分析/细胞类型注释

推荐几个细胞注释网站

如何批量查询marker基因(对应的蛋白)会不会在膜上表达?

单细胞分析实录(8): 展示marker基因的4种图形(一)

单细胞分析实录(9): 展示marker基因的4种图形(二)

单细胞分析实录(10): 消除细胞周期的影响

单细胞分析实录(11): inferCNV的基本用法

单细胞分析实录(12): 如何推断肿瘤细胞

单细胞分析实录(13): inferCNV结合UPhyloplot2分析肿瘤进化

单细胞分析实录(14): 细胞类型注释的另一种思路 — CellID

单细胞分析实录(15): 基于monocle2的拟时序分析

单细胞分析实录(16): 非负矩阵分解(NMF)检测细胞异质性

单细胞分析实录(17): 非负矩阵分解(NMF)代码演示

单细胞分析实录(18): 基于CellPhoneDB的细胞通讯分析及可视化 (上篇)

单细胞分析实录(19): 基于CellPhoneDB的细胞通讯分析及可视化 (下篇)

一个对接CellPhoneDB的R包

【代码更新】单细胞分析实录(20): 将多个样本的CNV定位到染色体臂,并画热图

【代码更新】单细胞分析实录(21): 非负矩阵分解(NMF)的R代码实现,只需两步,啥图都有文章来源地址https://www.toymoban.com/news/detail-442828.html

到了这里,关于【TOP生物信息】使用SingleR注释细胞类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【卡梅德生物】单B细胞技术:制备鼠单抗

    1.鼠单B细胞技术原理        单个B细胞抗体制备技术是近年来新发展的一类快速制备单克隆抗体的技术,基于流式细胞分选技术进行单B细胞单抗制备,利用每个B细胞只含有一个功能性重链可变区DNA序列和一个轻链可变区DNA序列且只产生一种特异性抗体的特性,从动物的淋巴

    2024年02月01日
    浏览(27)
  • 【卡梅德生物】关于羊驼单B细胞单抗制备服务技术问答

    1. 制备羊驼单B细胞单抗,对客户提供的样品有什么要求? 重组蛋白:≥2.5 mg,要求蛋白纯度85%,蛋白要求分子量大于10 kDa,可溶性蛋白浓度在0.5~5mg/mL之间。若要求抗原亲和纯化,需额外提供10 mg左右重组蛋白。 多肽与小分子:裸肽≥10 mg,多肽纯度90%,不少于10个AA,偶联

    2024年02月20日
    浏览(31)
  • 谈思生物医疗直播 | 霍德生物研发中心负责人王安欣博士“iPSC衍生神经细胞产品全悬浮自动化工艺及特殊质控方法开发”

    iPSC通过人体来源的终端体细胞重编程而来,其衍生细胞产品的生产与质控面临着诸多挑战,但也解决了许多自体细胞治疗的不稳定性和高成本等产业化难点。例如自体细胞不仅供体之间的差异对产品质量可能造成影响,即使同一个供体,体细胞的异质性对细胞产品的质量和功

    2024年02月06日
    浏览(28)
  • 生信步骤|原核生物基因组注释--Prokka

    全基因组注释是鉴定生物基因组特征的过程。Prokka是一个适用于原核生物基因组注释工具,可以注释细菌,古菌和病毒基因组。Prokka在预测基因组CDS区域时采用了多种数据库,内置的三个核心数据库包括ISfinder数据库,NCBI细菌抗性数据库和UniprotKB数据库。 此外,prokka内置基因

    2024年02月04日
    浏览(71)
  • 【Python】类型注解 ③ ( 使用 # type: 类型 注释方式设置类型注解 | 类型注解是提示性而非强制性 )

    除了使用 变量: 类型 的语法格式 设置 类型注解 之外 , 还可以 使用 注释语法 为 Python 变量 设置 类型注解 , 语法如下 : 类型注解 不是 强制性的 , 只是提示性的 ; 不按照 类型注解进行 赋值 , 代码也不会报错 ; 为 基础类型变量 设置 \\\" 类型注解 \\\" : 为 类 的 对象类型变量 设置

    2024年02月17日
    浏览(26)
  • DeepBIO:一个自动化和可解释的深度学习平台,用于高通量生物序列预测,功能注释和可视化分析

    DeepBIO: an automated and interpretable deep-learning platform for high-throughput biological sequence prediction, functional annotation and visualization analysis 期刊:Nucleic Acids Research 中科院分区:2区 影像因子:19.16 出版时间:2023年2月17号 摘要 在这里,我们介绍了DeepBIO,这是首个用于 高通量生物序列功能

    2024年02月10日
    浏览(35)
  • 生物信息-软件安装

    从终端进wsl: WSL2下安装conda 1.wget: unable to resolve host address解决方法 2.Windows中WSL2(子系统)设置默认root用户登入修改conf文件出现报错: E212: Can\\\'t open file for writing Press ENTER or type command to continue 原因: 1.当前用户的权限不足 2.此文件可能正被其他程序或用户使用。 一般错误原因

    2024年02月03日
    浏览(34)
  • 区块链与生物信息数据分析:实现生物研究的新方法

    生物信息学是一门研究生物数据的科学,其主要关注生物数据的收集、存储、处理、分析和挖掘。随着生物科学领域的快速发展,生物信息学也在不断发展,为生物研究提供了更多的数据和工具。然而,生物信息学数据的规模非常庞大,分布在多个数据库和平台上,这使得数

    2024年04月16日
    浏览(39)
  • 线性代数在生物信息学中的应用

    生物信息学是一门研究生物学信息的科学,它涉及到生物数据的收集、存储、处理、分析和挖掘。生物信息学的应用范围广泛,包括基因组学、蛋白质结构和功能、生物网络、生物信息数据库等方面。线性代数是一门数学分支,它研究的是向量和矩阵之间的关系和运算。线性

    2024年04月28日
    浏览(35)
  • Selenium定向爬取PubMed生物医学摘要信息

    目录 一、前言 1、PubMed是什么? 2、PubMed特点 二、实现代码 三、分析HTML

    2024年02月08日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包