单细胞测序分析单细胞学习单细胞组学

scRNA基础分析-4:细胞亚类再聚类、注释

2020-08-26  本文已影响0人  小贝学生信

scRNA基础分析-1:安装包、导入数据、过滤质控 - 简书
scRNA基础分析-2:降维与聚类 - 简书
scRNA基础分析-3:鉴定细胞类型 - 简书
scRNA基础分析-4:细胞亚类再聚类、注释 - 简书
scRNA基础分析-5:伪时间分析 - 简书
scRNA基础分析-6:富集分析 - 简书

上一步已经鉴定出每个cluster细胞类型。在单细胞数据分析中,一般需要对可以细分的细胞再聚类,比如本次分析中的T细胞群体可以细分为Navie T cells、CD8+ T cells、Treg cells、Tmemory cells等。

rm(list = ls())
library(Seurat)
library(tidyverse)
library(patchwork)
scRNA <- readRDS("scRNA.rds")

首先提取待分析数据

Cells.sub <- subset(scRNA@meta.data, celltype=="T_cells")
summary(Cells.sub$seurat_clusters)
scRNAsub <- subset(scRNA, cells=row.names(Cells.sub))
#

步骤一:降维,聚类

scRNAsub <- FindVariableFeatures(scRNAsub, selection.method = "vst", nfeatures = 2000)
scRNAsub <- RunPCA(scRNAsub, features = VariableFeatures(scRNAsub))
ElbowPlot(scRNAsub, ndims=20, reduction="pca")
# 如下图结果,选取10个主成分为宜
1-1
pc.num=1:10
scRNAsub <- FindNeighbors(scRNAsub, dims = pc.num) 
scRNAsub <- FindClusters(scRNAsub, resolution = 0.9)
table(scRNAsub@meta.data$seurat_clusters)
#  0   1   2   3   4 
#177 125  64  57  44
metadata <- scRNAsub@meta.data
cell_cluster <- data.frame(cell_ID=rownames(metadata), cluster_ID=metadata$seurat_clusters)
#将所有的T cell 分成了5类
#tSNE
scRNAsub = RunTSNE(scRNAsub, dims = pc.num)
embed_tsne <- Embeddings(scRNAsub, 'tsne')
#细胞坐标信息
plot1 = DimPlot(scRNAsub, reduction = "tsne") 

#UMAP
scRNAsub <- RunUMAP(scRNAsub, dims = pc.num)
embed_umap <- Embeddings(scRNAsub, 'umap')
plot2 = DimPlot(scRNAsub, reduction = "umap") 

plotc <- plot1+plot2+ plot_layout(guides = 'collect')
1-2

步骤二:注释cell type

法1:人工注释
diff.wilcox = FindAllMarkers(scRNAsub)
all.markers = diff.wilcox %>% select(gene, everything()) %>% subset(p_val<0.05)
top10 = all.markers %>% group_by(cluster) %>% top_n(n = 10, wt = avg_logFC)
#挑选出5个cluster里的top10 高变基因,结合相关数据库,判断亚类类型
2-1
法2:SingleR包注释
library(SingleR)
#refdata <- MonacoImmuneData()
#好慢呀...,未成功;下面的因此还没有follow
load("ref_Monaco_114s.RData")
#加载之前下载好的数据库
refdata <- ref_Monaco
testdata <- GetAssayData(scRNAsub, slot="data")
clusters <- scRNAsub@meta.data$seurat_clusters
cellpred <- SingleR(test = testdata, ref = refdata, labels = refdata$label.fine, 
                # 注意此时labels参数为 refdata$label.fine,与上一节注释时的设置不同
                    method = "cluster", clusters = clusters, 
                    assay.type.test = "logcounts", assay.type.ref = "logcounts")
celltype = data.frame(ClusterID=rownames(cellpred), celltype=cellpred$labels, stringsAsFactors = F)
2-2
#结合上述分析结果,给scRNAsub注释
for(i in 1:nrow(celltype)){
scRNAsub@meta.data[which(scRNAsub@meta.data$seurat_clusters == celltype$ClusterID[i]),'celltype'] <- celltype$celltype[i]}

#可视化
p1 = DimPlot(scRNAsub, group.by="celltype", label=T, label.size=5, reduction='tsne')
p2 = DimPlot(scRNAsub, group.by="celltype", label=T, label.size=5, reduction='umap')
p3 = plotc <- p1+p2+ plot_layout(guides = 'collect')
2-3
# 最后保存结果文件,下一步拟时分析会用到
saveRDS(scRNAsub, file="scRNAsub.rds")
上一篇下一篇

猜你喜欢

热点阅读