美文网首页单细胞测序分析单细胞学习单细胞组学
scRNA基础分析-4:细胞亚类再聚类、注释

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

作者: 小贝学生信 | 来源:发表于2020-08-26 13:09 被阅读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")
    

    首先提取待分析数据

    • 本次演示,我们提取之前注释的T cell 进行分析;
    • 思路同前笔记2、3。先降维聚类,再注释亚类类型
    Cells.sub <- subset(scRNA@meta.data, celltype=="T_cells")
    summary(Cells.sub$seurat_clusters)
    scRNAsub <- subset(scRNA, cells=row.names(Cells.sub))
    #
    

    步骤一:降维,聚类

    • 1、寻找高变基因
    scRNAsub <- FindVariableFeatures(scRNAsub, selection.method = "vst", nfeatures = 2000)
    
    • 2、PCA降维(线性降维)
    scRNAsub <- RunPCA(scRNAsub, features = VariableFeatures(scRNAsub))
    ElbowPlot(scRNAsub, ndims=20, reduction="pca")
    # 如下图结果,选取10个主成分为宜
    
    1-1
    • 3、聚类 cluster
    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类
    
    • 4、非线性降维
    #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")
    

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/nzkxsktx.html