前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >回溯亚群细分效果到初始分群

回溯亚群细分效果到初始分群

作者头像
生信技能树jimmy
发布2021-07-02 17:42:35
2K0
发布2021-07-02 17:42:35
举报
文章被收录于专栏:单细胞天地单细胞天地

分享是一种态度

  • 1 加载R包
  • 2 读取Seurat object
  • 3 提取子集并做亚群分析
  • 4 修改亚群命名,便于区分初始分群序号
  • 5 回溯亚群细分效果到初始分群

1 加载R包

代码语言:javascript
复制
library(Seurat)
library(ggplot2)

2 读取Seurat object

代码语言:javascript
复制
# Remove variables
rm(list = ls())

# Set workdir
workdir <- 'F:/R_Language/R_Practice/scRNA_Seq_column'
setwd(workdir)

# Load seurat object variable
data.filt <- readRDS(file = "data/Raw_data/Cluster_all_again.Rdata")
print(table(Idents(data.filt)))
代码语言:javascript
复制
## 
##   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16 
## 406 399 352 340 332 283 247 208 184 181 159  81  56  47  41  37
代码语言:javascript
复制
DT::datatable(data.filt@meta.data)

3 提取子集并做亚群分析

代码语言:javascript
复制
sub_cells <- subset(data.filt, cluster == 1)
DT::datatable(sub_cells@meta.data)
代码语言:javascript
复制
# Determine the K-nearest neighbor graph
sub_cells <- FindNeighbors(sub_cells, reduction="pca", dims = 1:20, verbose = F)
# Determine the clusters for various resolutions
sub_cells <- FindClusters(sub_cells, resolution = 0.5, verbose = F)

# t-SNE and Clustering
sub_cells <- RunTSNE(sub_cells, reduction = "pca", dims = 1:20, verbose = F) # check_duplicates = FALSE, Remove duplicates before running TSNE
sub_cells <- RunUMAP(sub_cells, reduction = "pca", dims = 1:20, verbose = F)

4 修改亚群命名,便于区分初始分群序号

代码语言:javascript
复制
## Rename sub cells
metadata <- sub_cells@meta.data
metadata$cluster <- Idents(sub_cells)
metadata$sub_cluster <- paste0('M', metadata$cluster)
sub_cells@meta.data <- metadata
table(sub_cells$sub_cluster)
代码语言:javascript
复制
## 
##  M0  M1  M2 
## 170 151  85

5 回溯亚群细分效果到初始分群

代码语言:javascript
复制
## Mapping to old clusters
metadata <- data.filt@meta.data
metadata$cell_type <- NA
metadata$cell_type <- sub_cells@meta.data[match(rownames(data.filt@meta.data), rownames(sub_cells@meta.data)), 'sub_cluster']
print(table(metadata$cell_type))
代码语言:javascript
复制
## 
##  M0  M1  M2 
## 170 151  85
代码语言:javascript
复制
DT::datatable(metadata)
代码语言:javascript
复制
celltype_names <- NULL
for(i in 1:dim(metadata)[1]){
  # print(i)
  sub_data <- metadata[i,]
  if(is.na(sub_data$cell_type)){
    # print('Change value')
    sub_data$cell_type <- sub_data$cluster
    celltype_names <- c(celltype_names, sub_data$cell_type)
  }else{
    celltype_names <- c(celltype_names, sub_data$cell_type)
  }
}

print(table(celltype_names))
代码语言:javascript
复制
## celltype_names
##  10  11  12  13  14  15  16   2   3   4   5   6   7   8   9  M0  M1  M2 
## 181 159  81  56  47  41  37 399 352 340 332 283 247 208 184 170 151  85
代码语言:javascript
复制
metadata$cell_type <- celltype_names
metadata$cell_type <- factor(metadata$cell_type)
metadata$cell_type <- factor(metadata$cell_type, levels = c(names(table(sub_cells$sub_cluster)), 2:nlevels(Idents(data.filt))))
print(table(metadata$cell_type))
代码语言:javascript
复制
## 
##  M0  M1  M2   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16 
## 170 151  85 399 352 340 332 283 247 208 184 181 159  81  56  47  41  37
代码语言:javascript
复制
data.filt@meta.data <- metadata 

DimPlot(data.filt, reduction='tsne', label=T, label.size=5, pt.size=1, group.by='cluster') + ggtitle('original celltype')
代码语言:javascript
复制
DimPlot(data.filt, reduction='tsne', label=T, label.size=5, pt.size=1, group.by='cell_type') + ggtitle('new celltype')

往期回顾

对细胞簇重命名

OSCA单细胞数据分析笔记10—Marker gene detection

NC单细胞文章复现(七):Gene expression signatures(2)

多组学分析肺结核队列的记忆T细胞状态




如果你对单细胞转录组研究感兴趣,但又不知道如何入门,也许你可以关注一下下面的课程

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 单细胞天地 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 加载R包
  • 2 读取Seurat object
  • 3 提取子集并做亚群分析
  • 4 修改亚群命名,便于区分初始分群序号
  • 5 回溯亚群细分效果到初始分群
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档