美文网首页
NCS质感图表:Seurat单细胞DotPlot函数基因表达气泡

NCS质感图表:Seurat单细胞DotPlot函数基因表达气泡

作者: KS科研分享与服务 | 来源:发表于2023-07-25 08:46 被阅读0次

    关于单细胞气泡图的做法,我们写过很多很多,但是这些图基本上都是利用Seurat提取了数据,然后在ggplot2中完成的。因为Seurat包中的DotPlot函数的底层就是ggplot2,所以这里我们决定就是用Dotplot函数,然后进行修饰,得到具有NCS质感的图片。

    当然了,这篇内容对于高手来说没什么,但是对于一般学习者而言,我们解决的问题有:1、基本函数的使用技巧。2、气泡图注释拼图。首先我们读入数据做一个气泡图。横坐标当然是基因了,纵坐标我们不希望是celltype,而是既包含celltype,还包含分组信息的,于是我们这样作图:

    library(Seurat)
    library(ggplot2)
    library(cowplot)
    markers <- c("SPARCL1","GNG11","IFITM3","AQP1","IGFBP7","IFI27",
                 "CD3D","CD2","TRAC","CD3G","CD3E","TRBC2","PTPRC","GZMA",
                 "AIF1","MS4A6A","MNDA","SPI1","LYZ",
                 "S100A8","S100A9",
                 "MS4A2","HPGDS","TPSAB1","HDC")
    
    DotPlot(human_data, features = markers, split.by = 'orig.ident')
    

    但是收到了如下的报错:

    Error in DotPlot(human_data, features = markers, split.by = "orig.ident") : 
      Not enough colors for the number of groups
    

    很显然分组太多,默认颜色不够了,我们自己添加点。

    library(dittoSeq)
    DotPlot(human_data, 
            features = markers, 
            split.by = 'orig.ident',
            cols = dittoColors())
    
    image.png

    分组没有毛病了,然而这显然也不是我们需要的图,因为每一个样本表达量一种颜色,而我们需要的表达气泡图是一种连续的渐变。

    所以,我们在seurat对象metadata中新建一列,这一列将celltype和样本分组结合起来,然后将新的列设置为idents。这样这个问题就得到完美的解决了。

    human_data@meta.data$newgroup <- paste0(human_data$celltype,"_",human_data$orig.ident)
    Idents(human_data) <- 'newgroup'
    Idents(human_data) <- factor(Idents(human_data), levels = c(paste0("Macrophage","_",unique(human_data$orig.ident)),
                                                                paste0("T cell","_",unique(human_data$orig.ident)),
                                                                paste0("mDC","_",unique(human_data$orig.ident)),
                                                                paste0("Neutrophil","_",unique(human_data$orig.ident)),
                                                                paste0("Mast","_",unique(human_data$orig.ident))))        
    
    DotPlot(human_data, features = markers, cols = c("lightgrey", "red"))
    
    image.png

    然后,我们对图的主题进行修饰,增加分组注释,添加分割线,添加背景,等等一系列的操作之后,我们就得到妥妥的NCS质感的图片。

    image.png

    相关文章

      网友评论

          本文标题:NCS质感图表:Seurat单细胞DotPlot函数基因表达气泡

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