前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Error: vector memory exhausted (limit reached?)

Error: vector memory exhausted (limit reached?)

原创
作者头像
JJJJack
发布2023-10-21 10:07:22
5012
发布2023-10-21 10:07:22
举报

记录一下今天碰到的error:

今天在处理单细胞数据的时候,出现了如题所示的报错 (in Rstudio)

在数据合并的之后scale数据的时候报错的,代码如下:

代码语言:javascript
复制
//  合并数据
sce.big <- merge(gse175453list[[1]],
y = c(gse175453list[[2]],
gse175453list[[3]],
gse175453list[[4]],
gse175453list[[5]],
gse175453list[[6]],
gse175453list[[7]],
gse175453list[[8]],
gse175453list[[9]],
gse242127list[[1]],
gse242127list[[2]],
gse242127list[[3]],
gse242127list[[4]],
gse242127list[[5]],
gse242127list[[6]]),
add.cell.ids = ids,
project = "gse175453_gse242127")

//标准化下游流程
sce.big <- NormalizeData(sce.big)
sce.big <- ScaleData(sce.big, vars.to.regress = c("nCount_RNA"), model.use = 'linear', use.umi = FALSE)
Error: vector memory exhausted (limit reached?) #提示报错

通过一番检索之后,发现生信技能树的Jimmy老师以前发过的一篇文章提及了一个问题:即某些数据库并没有对数据进行过滤,会导致sample中存在几十万个细胞,这样未过滤的数据在进行下游数据分析的时候很明显会对内存有极高的要求。

我在前期处理数据的时候也发现gse175453这个数据库每个sample都存在70多万个细胞,如下图所示:

代码语言:javascript
复制
// 其中一个sample的数据,32738个基因,73万个细胞
An object of class Seurat 
32738 features across 737280 samples within 1 assay 
Active assay: RNA (32738 features, 0 variable features)

通过一系列filter之后,再次run ScaleData()就没有报错了。

具体filter可参考如下代码:(隔空感谢Jimmy老师)

代码语言:javascript
复制
// 
gse175453list <- lapply(gse175453list,function(x){
  subset(x,subset=nFeature_RNA > 200 & nFeature_RNA < 8000 & nCount_RNA > 400)
})
gse175453list <- lapply(gse175453list,function(x){
  rownames(x)[grepl('^mt-',rownames(x),ignore.case = T)]
  x[["percent.mt"]] <- PercentageFeatureSet(x, pattern = "^MT-")
  subset(x,subset = percent.mt < 10)
})

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档