前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >单细胞转录组 | 使用SingleR进行细胞亚群自动注释

单细胞转录组 | 使用SingleR进行细胞亚群自动注释

作者头像
生信real
发布2022-12-20 09:30:44
4.2K1
发布2022-12-20 09:30:44
举报
文章被收录于专栏:Linux基础入门

前言

上一期我们介绍了如何人工进行亚群注释,本期我们来介绍单细胞转录组数据的自动注释方法:SingleR。

本文框架

1. 安装包

如果已经安装,此步请跳过。

代码语言:javascript
复制
install.packages('Seurat')
install.packages('dplyr')
install.packages('tidyverse')
install.packages('patchwork')
install.packages("BiocManager")
BiocManager::install("SingleR")

2. 加载包

代码语言:javascript
复制
library(Seurat)
library(dplyr)
library(tidyverse)
library(patchwork)
library(SingleR)

3. 设置工作路径

代码语言:javascript
复制
setwd("D:/sc-seq")

根据自己的数据存放位置自定义路径。

4. 数据读取

该数据为harmony后的数据。

代码语言:javascript
复制
scRNA <- load("scdata2.Rdata")

数据获取请查看:单细胞转录组 | 多样本处理与Harmony整合

5. 加载数据集

使用SingleR的最简单方法是使用内置参考对细胞进行注释。

这里我们提供了下载好的数据集:链接:https://pan.baidu.com/s/1iThoEbHe_fJOSxiSZGeKFw 提取码:2022

代码语言:javascript
复制
# 加载人数据集
load("D:/sc-seq/SingleR_ref/ref_Human_all.RData")
# 重命名
refdata <- ref_Human_all

6. 数据提取

6.1 提取data数据

函数格式:GetAssayData(object, slot = "data", ...)

object:Seurat对象;

slot:要提取的特定信息。

在这里我们提取了scRNA_harmony中的data数据,即:下图红框里的数据。

代码语言:javascript
复制
data <- GetAssayData(scRNA_harmony, slot="data")
6.2 提取clusters数据

因为后续我们要对clusters进行注释,在这里我们提取clusters数据,即:下图红框里的数据。

代码语言:javascript
复制
clusters <- scRNA_harmony@meta.data$seurat_clusters

7. SingleR注释

test:单细胞表达值的数字矩阵,即:前面提取的data数据;

ref:来自参考数据集的表达式值的数值矩阵,即:前面加载的参考数据集;

labels:ref中所有样本的已知标签的字符向量或因子,一般直接用refdata$label.main即可;

method:选择cluster,因为要以cluster为单位进行注释;

assay.type.test/assay.type.ref:选择对数据进行Log转化。

代码语言:javascript
复制
## 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)

8. 将注释信息写到metadata中

代码语言:javascript
复制
# 给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]}

9. 绘图

代码语言:javascript
复制
# 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)

查看图片:

10. 保存数据

代码语言:javascript
复制
save(scRNA_harmony,file="scRNA_harmony.RData")
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信百宝箱 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 本文框架
  • 1. 安装包
  • 2. 加载包
  • 3. 设置工作路径
  • 4. 数据读取
  • 5. 加载数据集
  • 6. 数据提取
    • 6.1 提取data数据
      • 6.2 提取clusters数据
      • 7. SingleR注释
      • 8. 将注释信息写到metadata中
      • 9. 绘图
      • 10. 保存数据
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档