admin管理员组

文章数量:1037775

百万级别的单细胞数据是怎样完成注释的(R)

1.背景知识

细胞数量太大时,单纯的一次降维聚类分群是无法搞定的,所以需要二次分群然后把注释的结果重新放回原来的对象中。

2.加载数据

sce.Rdata是降维聚类分群+手动注释的结果,其中celltype列是细胞类型注释列。

seurat_Fibro.obs.csv是成纤维细胞二次分群+注释得到的meta表格。在本公众号聊天框(注意不是评论区)回复:anno1039可以获取本文的示例数据。

代码语言:javascript代码运行次数:0运行复制
rm(list = ls())
library(Seurat)
library(dplyr)
library(ggplot2)
load("sce.Rdata")
DimPlot(sce, reduction = "umap",label=T)+NoLegend()+
  scale_color_brewer(palette = 'Set1')
image.png

image.png

代码语言:javascript代码运行次数:0运行复制
subcell_annotator = read.csv('seurat_Fibro.obs.csv',row.names = 1)['celltype']
head(subcell_annotator)
代码语言:javascript代码运行次数:0运行复制
##                    celltype
## AAAGGATGTAGAAACT-1       M0
## AACAAAGGTAAGGTCG-1       M0
## AACGGGACAACACAGG-1       M1
## AACTTCTTCCTACAAG-1       M0
## AAGATAGGTCGTTGGC-1       M1
## AAGCCATTCTAGACCA-1       M1
代码语言:javascript代码运行次数:0运行复制
unique(subcell_annotator$celltype)
代码语言:javascript代码运行次数:0运行复制
## [1] "M0" "M1"

3.整合

将二次分群的结果整合到原来的seurat对象的meta.data中去

代码语言:javascript代码运行次数:0运行复制
sce$celltype = as.character(Idents(sce))
sce$celltype = ifelse(sce$celltype=='Fibroblasts',
       subcell_annotator$celltype[match(colnames(sce),rownames(subcell_annotator))],
       sce$celltype)

这句是R语言基础部分的两个精华知识ifelse和match的合体。 真羡慕你一步到位从我这里学到了这么厉害的技能

百万级别的单细胞数据是怎样完成注释的(R)

1.背景知识

细胞数量太大时,单纯的一次降维聚类分群是无法搞定的,所以需要二次分群然后把注释的结果重新放回原来的对象中。

2.加载数据

sce.Rdata是降维聚类分群+手动注释的结果,其中celltype列是细胞类型注释列。

seurat_Fibro.obs.csv是成纤维细胞二次分群+注释得到的meta表格。在本公众号聊天框(注意不是评论区)回复:anno1039可以获取本文的示例数据。

代码语言:javascript代码运行次数:0运行复制
rm(list = ls())
library(Seurat)
library(dplyr)
library(ggplot2)
load("sce.Rdata")
DimPlot(sce, reduction = "umap",label=T)+NoLegend()+
  scale_color_brewer(palette = 'Set1')
image.png

image.png

代码语言:javascript代码运行次数:0运行复制
subcell_annotator = read.csv('seurat_Fibro.obs.csv',row.names = 1)['celltype']
head(subcell_annotator)
代码语言:javascript代码运行次数:0运行复制
##                    celltype
## AAAGGATGTAGAAACT-1       M0
## AACAAAGGTAAGGTCG-1       M0
## AACGGGACAACACAGG-1       M1
## AACTTCTTCCTACAAG-1       M0
## AAGATAGGTCGTTGGC-1       M1
## AAGCCATTCTAGACCA-1       M1
代码语言:javascript代码运行次数:0运行复制
unique(subcell_annotator$celltype)
代码语言:javascript代码运行次数:0运行复制
## [1] "M0" "M1"

3.整合

将二次分群的结果整合到原来的seurat对象的meta.data中去

代码语言:javascript代码运行次数:0运行复制
sce$celltype = as.character(Idents(sce))
sce$celltype = ifelse(sce$celltype=='Fibroblasts',
       subcell_annotator$celltype[match(colnames(sce),rownames(subcell_annotator))],
       sce$celltype)

这句是R语言基础部分的两个精华知识ifelse和match的合体。 真羡慕你一步到位从我这里学到了这么厉害的技能

本文标签: 百万级别的单细胞数据是怎样完成注释的(R)