单细胞转录组Seurat去批次-FastMNN算法及大细胞量评测

探序基因已入锐竞平台

Seurat版本为:5.5.0,操作系统:centos

要把每个样本都建立一个Seurat对象,然后组成一个list,再进行FastMNN去批次。

R语言代码:

library(Seurat)

library(SeuratObject)

library(tidyverse)

library(patchwork)

library(SeuratWrappers)

load("GCMat.RData") #读入矩阵

load("BarcodeSamplesTable.RData") #读入细胞对应样本名的表格

AllSamples <- unique(BarcodeSamplesTable$Samples)

cnum <- 1

for(i in AllSamples)

{

print(i)

ThisBars <- rownames(BarcodeSamplesTablewhich(BarcodeSamplesTable$Samples == i),)

ThisGCMat <- GCMat,ThisBars

This.Seurat <- CreateSeuratObject(ThisGCMat)

This.Seurat <- NormalizeData(object = This.Seurat, normalization.method = "LogNormalize", scale.factor = 10000)

This.Seurat <- ScaleData(object = This.Seurat)

if(cnum == 1)

{

obj_list <- list(This.Seurat)

}else

{

obj_list <- c(obj_list,This.Seurat)

}

cnum <- cnum + 1

}

fastmnn.Seurat <- RunFastMNN(object.list = obj_list)

save(obj_list,file="obj_list.Seurat.RData")

最后在fastmnn.Seurat中的reduction中生成有mnn矩阵

注意:如果细胞量过大,会出现内存限制报错,例如,

错误: C stack usage 7970832 is too close to the limit

此外: There were 34 warnings (use warnings() to see them)

停止执行

解决方法:

在linux命令行,输入ulimit -s,可以看到限制的内存数,把它改大就行。

修改限制方法,在命令行输入:ulimit -s 51200000

C stack usage xxx is too close to the limit infervnvhttps://blog.csdn.net/qq_52813185/article/details/134121492

大细胞量运算评测:

90万规模的细胞,修改内存限制后,可以进行FastMNN去批次,大概要运行将近一天,占用三四百G内存

相关推荐
aqiu1111111 小时前
【C++算法打怪专栏】8. 字符串转换整数 (atoi)
开发语言·c++·算法
爱吃香菜的初学者2 小时前
十四.Linux——消息队列
linux·运维·开发语言
Apipi*8 小时前
30天速通Linux 第六章信号及信号处理
linux·运维·信号处理
天启HTTP9 小时前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
信奥卷王10 小时前
[GESP202609 六级] 分树规划
算法
夏幻灵10 小时前
LeetCode 21:合并两个有序链表——双指针与哑节点详解
算法·leetcode·链表
徐小黑ACG11 小时前
Golang 基础05 结构体struct
开发语言·算法·golang
广州浮点FLOATLIC12 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
Navigator_Z12 小时前
LeetCode //C - 1286. Iterator for Combination
c语言·算法·leetcode