单细胞转录组细胞比例:
关于单细胞比例的计算和作图我们之前出过3期,单细胞比例的展示是很多单细胞文章必不可少的内容:
跟着Cell学单细胞转录组分析(六):细胞比例计算及可视化
相信跟着学习的小伙伴已经掌握了。最近学习一篇《nature medicine》的文章,标题是:A single-cell atlas of the peripheral immune response in patients with severe COVID-19。单细胞比例的展示可以是柱状图,也可以是统计散点图。而当你是多样本,尤其是类似于这篇NM的文章,需要与对照相比统计的时候,使用统计检验的三点图就相当重要了(跟着Cell学单细胞转录组分析(六):细胞比例计算及可视化)。 可是有一个问题,就是每当你要进行一个数据集的统计的时候,都要修改很多参数,很麻烦,有时候还不一定正确。这篇NM中提供了一种函数,但是只适用于这篇文章的数据集,群主对函数进行了修改再造,将其改成了一个适用于普遍数据集的函数,也算是半原创吧!以后作图只需要调用函数即可,修改一两个参数!
前面虽说这个函数是通用型的,但是有两个条件,第一个是你的metadata中细胞类型那一列的列名需要是celltype,一般人在分析的时候应该都是这样命名的,但是总是有特殊的,所以在函数中我也注明了需要按照自己习惯修改的地方。第二个是orig.ident需要有一个对应的group,也就是样本分组,orig.ident就相当于重复。 将函数放在一个文件夹,可以专门建立一个,source加载函数:
library(Seurat)
library(dplyr)
library(reshape2)
library(plyr)
library(ggplot2)
setwd("D:/KS项目/公众号文章/单细胞比例统计函数")
source("./Singlecellratio_plotstat.R")
my_comparisons <- list(c("BM", "GM"))#我这里只有两组,如果是多组,这里设置相互比较对
先做一个柱状图,柱状图的参数是color.by=”cell.type“,这是固定的。这里细胞类型的颜色我是固定了的,设置了有20几种颜色,如果你自己需要修改,只需要在后面加sacle_fill_manual函数修改即可。scedata是定好细胞群的单细胞seurat对象。
Singlecellratio_plotstat(scedata, group_by = "group",
meta.include = c("group","orig.ident"),
color_by = 'cell.type')
将color.by参数设置为group,增加comparisons参数(比较设置),group_by.point设置为orig.ident, label.x = 1, pt.size = 3(点大小),label有两种选择,p.signif是显示*,p.format显示p值。ncol是显示的散点箱线图的排列行数,可自行设置数目。同样的,分组颜色我默认设置了6种,如果需要修改,在后面+sacle_color_manual函数修改。
Singlecellratio_plotstat(scedata, group_by = "group",
meta.include = c("group","orig.ident"),
comparisons = my_comparisons, color_by = 'group',
group_by.point = "orig.ident",label.x = 1, pt.size = 3,
label = 'p.format', ncol =3)
其他参数不变,我们将color.by参数设置orig.ident,因为我设置默认颜色是渐变的,所以每一组每个样本的颜色都有区别,但是分组却是可以看出来的,这样图更生动。同样的,只有6种颜色,样本多余6个后在后面+sacle_color_manual函数修改。
Singlecellratio_plotstat(scedata, group_by = "group",
最后,分组的点形状也是可以变化的,只需要增加参数shape_by = 'group'即可完成。不过我觉得有颜色区分了,这个意义不大了。
Singlecellratio_plotstat(scedata, group_by = "group",
meta.include = c("group","orig.ident"),
comparisons = my_comparisons, color_by = 'orig.ident',
group_by.point = "orig.ident",label.x = 1, pt.size = 3,
label = 'p.format', ncol =3)
这就是所有内容了,其实函数还可以进行很多修改,感兴趣的小伙伴可在此基础上继续完善。觉得小编内容有用的,点个赞,分享一下呗,看完不点赞是怎么个事呢!!!