单细胞亚群细胞数量不一致,如何实现抽样?

有人提问,他自己做单细胞的gsva, 细胞通讯,转录因子,拟时序, inferCNV这些分析,发现特别的消耗计算资源,因为项目很多,每个细胞亚群都是过万的细胞。希望可以将这些单细胞亚群进行抽样,使得其细胞数量一致。

我们以 seurat 官方教程为例:

rm(list = ls())
library(Seurat)
# devtools::install_github('satijalab/seurat-data')
library(SeuratData)
library(ggplot2)
library(patchwork)
library(dplyr)
load(file = 'basic.sce.pbmc.Rdata')

DimPlot(pbmc, reduction = 'umap', 
        label = TRUE, pt.size = 0.5) + NoLegend()

sce=pbmc

如果你不知道 basic.sce.pbmc.Rdata 这个文件如何得到的,麻烦自己去跑一下 可视化单细胞亚群的标记基因的5个方法,自己 save(pbmc,file = 'basic.sce.pbmc.Rdata') ,我们后面的教程都是依赖于这个 文件哦!

比如subset函数就有downsample参数

使用起来超级方便,subset(sce, downsample = 15) 即可,全部的 代码如下:

features= c('IL7R', 'CCR7','CD14', 'LYZ',  'IL7R', 'S100A4',"MS4A1", "CD8A",'FOXP3',
            'FCGR3A', 'MS4A7', 'GNLY', 'NKG7',
            'FCER1A', 'CST3','PPBP')

DoHeatmap(subset(sce ), 
          features = features, 
          size = 3
          )
table(Idents(sce))
DoHeatmap(subset(sce, downsample = 15), 
          features = features, size = 3)

抽样前后很容易看出来:

可以看到:

自己写函数进行抽样


# 每个细胞亚群抽10 
allCells=names(Idents(sce))
allType = levels(Idents(sce))

choose_Cells = unlist(lapply(allType, function(x){
  cgCells = allCells[Idents(sce)== x ]
  cg=sample(cgCells,10)
  cg
}))

cg_sce = sce[, allCells %in% choose_Cells]
cg_sce
table(Idents(cg_sce))

可以看到抽样很成功:

> as.data.frame(table(Idents(cg_sce)))
          Var1 Freq
1  Naive CD4 T   10
2   CD14+ Mono   10
3 Memory CD4 T   10
4            B   10
5        CD8 T   10
6 FCGR3A+ Mono   10
7           NK   10
8           DC   10
9     Platelet   10


(0)

相关推荐

  • 单细胞工具箱|Seurat官网标准流程

    学习单细胞转录组肯定先来一遍Seurat官网的标准流程. 数据来源于Peripheral Blood Mononuclear Cells (PBMC),共2700个单细胞, Illumina Next ...

  • 构建单细胞亚群网络(类似于细胞通讯分析)

    最近一直在这里细胞通讯分析相关软件工具及原理,看到不同细胞亚群的网络图,就以为是细胞通讯分析. 细胞通讯分析在肿瘤领域的单细胞研究数据处理很常见,因为恶性的肿瘤细胞并不是孤立存在的,它会跟其周围的肿瘤 ...

  • 你的单细胞分群数量太少可能就是因为你测的细胞数量不够

    数据库构建也是生物信息学领域一个大方向,尤其是现在大热的单细胞领域,应该是不少团队在为单细胞数据库资源网页在踌躇满志了,不过单细胞数据之大,绝大部分实验室课题组是hold不住这个方向的数据这里的,最近 ...

  • 施什么肥韭菜越长越粗?不同生育期施肥数量不一致

    韭菜生长旺盛,前提是密度要合适,肥料充足,并保持一定的土壤湿度,在合适的温度条件下.现在谈谈施什么肥韭菜越长越粗的问题. 韭菜施氮肥韭菜越长越粗.韭菜进入旺盛生长期,多施氮肥,可以明显提高产量.但不同 ...

  • cytof数据处理难点之细胞数量平衡

    前面我们已经完成了cytof数据处理的主要步骤,读入文件,质量控制,降维聚类分群,生物学注释和细胞亚群比例差异分析.目录如下: 1.cytof数据资源介绍(文末有交流群) 2.cytofWorkflo ...

  • 可视化单细胞亚群的标记基因的5个方法

    好的颜值,人人都爱,是你接触有趣的灵魂的敲门砖.单细胞数据分析也是如此,人人都知道需要降维聚类分群. 有了好的代码,甚至非本专业的财务人员都可以复制粘贴我们写好的的代码,参考前面的例子:人人都能学会的 ...

  • 当你的单细胞亚群都不特异的时候肿么办

    做单细胞数据分析,我们当然希望看到一个清晰的降维聚类分群结果,这样才方便做生物学亚群注释,比如前面的例子:人人都能学会的单细胞聚类分群注释  ,第一次分群就非常漂亮! 但那个毕竟是理想情况下,实际上很 ...

  • 一篇COVID-19患者支气管肺泡免疫细胞的单细胞亚群标记基因

    最近在整理新冠疫情相关的单细胞文章,尤其是那些提供了数据集的而且还有配套GitHub代码的,超级棒的学习资料. 比如北京大学张泽民教授的实验室发表在 Nat Med. 2020 Jun的文章<S ...

  • 听说你还缺单细胞亚群标记基因

    我们做肿瘤研究的单细胞数据,一般来说初步定义细胞亚群, 第一次分群是通用规则,按照 : immune (CD45+,PTPRC), epithelial/cancer (EpCAM+,EPCAM), ...

  • 单细胞亚群标记基因何止五种可视化方法

    以前我们做了一个投票:可视化单细胞亚群的标记基因的5个方法,下面的5个基础函数相信大家都是已经烂熟于心了: VlnPlot(pbmc, features = c("MS4A1", ...