上一期我们介绍了如何人工进行亚群注释,本期我们来介绍单细胞转录组数据的自动注释方法:SingleR。
如果已经安装,此步请跳过。
install.packages('Seurat')
install.packages('dplyr')
install.packages('tidyverse')
install.packages('patchwork')
install.packages("BiocManager")
BiocManager::install("SingleR")
library(Seurat)
library(dplyr)
library(tidyverse)
library(patchwork)
library(SingleR)
setwd("D:/sc-seq")
根据自己的数据存放位置自定义路径。
该数据为harmony后的数据。
scRNA <- load("scdata2.Rdata")
数据获取请查看:单细胞转录组 | 多样本处理与Harmony整合
使用SingleR的最简单方法是使用内置参考对细胞进行注释。
这里我们提供了下载好的数据集:链接:https://pan.baidu.com/s/1iThoEbHe_fJOSxiSZGeKFw 提取码:2022
# 加载人数据集
load("D:/sc-seq/SingleR_ref/ref_Human_all.RData")
# 重命名
refdata <- ref_Human_all
函数格式:GetAssayData(object, slot = "data", ...)
object:Seurat对象;
slot:要提取的特定信息。
在这里我们提取了scRNA_harmony中的data数据,即:下图红框里的数据。
data <- GetAssayData(scRNA_harmony, slot="data")
因为后续我们要对clusters进行注释,在这里我们提取clusters数据,即:下图红框里的数据。
clusters <- scRNA_harmony@meta.data$seurat_clusters
test:单细胞表达值的数字矩阵,即:前面提取的data数据;
ref:来自参考数据集的表达式值的数值矩阵,即:前面加载的参考数据集;
labels:ref中所有样本的已知标签的字符向量或因子,一般直接用refdata$label.main即可;
method:选择cluster,因为要以cluster为单位进行注释;
assay.type.test/assay.type.ref:选择对数据进行Log转化。
## SingleR注释
cell_singleR <- SingleR(test = data, ref = refdata, labels = refdata$label.main,
method = "cluster", clusters = clusters,
assay.type.test = "logcounts", assay.type.ref = "logcounts")
## 提取注释信息
celltype = data.frame(ClusterID=rownames(cell_singleR), celltype=cell_singleR$labels, stringsAsFactors = FALSE)
## 查看提取信息
head(celltype)
# ClusterID celltype
# 0 Chondrocytes
# 1 Macrophage
# 2 T_cells
# 3 Macrophage
# 4 Macrophage
# 5 Monocyte
## 保存文件
write.csv(celltype,"celltype_singleR.csv",row.names = FALSE)
# 给meta.data添加一列,并暂时赋予空值
scRNA_harmony@meta.data$celltype = "NA"
# 赋值
for(i in 1:nrow(celltype)){
scRNA_harmony@meta.data[which(scRNA_harmony@meta.data$seurat_clusters == celltype$ClusterID[i]),'celltype'] <- celltype$celltype[i]}
# tsne
p1 = DimPlot(scRNA_harmony, group.by="celltype", label=T, label.size=5, reduction='tsne')
# umap
p2 = DimPlot(scRNA_harmony, group.by="celltype", label=T, label.size=5, reduction='umap')
# 合并
p3 = plotc <- p1+p2+plot_layout(guides = "collect")
# 保存
ggsave("celltype.pdf", p3, width=15 ,height=8)
ggsave("celltype.png", p3, width=15 ,height=8)
查看图片:
save(scRNA_harmony,file="scRNA_harmony.RData")