这是一个创建于 504 天前的主题,其中的信息可能已经有所发展或是发生改变。
环境:远程 linux 服务器,R4.1.3 ,使用 conda 管理环境,使用 radian 编辑
目的是将多个对象合并成一个,过程中内存占用可能有 200G 左右。(服务器是 1T 的,所以应该是绰绰有余)
但是程序在合并了 4-5 个之后,报错 Error: vector::reserve 然后程序中断
最见鬼的是我查了查,这甚至不是一个 R 语言报错,有哪位朋友有解决的想法么
函数和包应该是没有问题的,都是常用的
# 加载 pryr 包
library(Seurat)
library(pryr)
# 设置日志文件路径
log_file <- "/home/hanc/Mycode/merge_log1120.txt"
# 开始记录日志
data <- readRDS("/home/hanc/Mycode/data20.RDS")
merged.data <- data [11][[1]][[1]]
for (i in 12:20) {
sink(log_file, append=TRUE)
# 合并 Seurat 对象
merged.data <- merge (merged.data, y = data [i][[1]][[1]], project = "MergedData")
# 计算内存使用量,单位为 GB
mem_used_gb <- mem_used() / 1024^3
# 获取北京时间
beijing_time <- Sys.time()
attr(beijing_time, "tzone") <- "Asia/Shanghai"
# 输出信息
cat(paste("第 ", formatC(i, width = -2, format = "d", flag = "0"), " 个对象已完成,当前内存占用为 ",
formatC(mem_used_gb, digits = 2, format = "f"), " GB ,当前时间为 ", beijing_time, "\n"))
sink()
}
saveRDS(data, file = "/home/hanc/Mycode/data1120.RDS")