单细胞转录组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内存

相关推荐
Julien20041 小时前
自动挂载网络附加存储
linux·服务器·网络
阳明山水1 小时前
校准分位数驱动智能库存决策
人工智能·深度学习·算法·机器学习·架构
codigger1 小时前
服务器又卡了?一篇讲透 Linux 性能排查(基础四件套 + perf/strace/火焰图)
linux·后端·性能优化
顶点多余2 小时前
9.18 面试题总结 --- 绿盟
linux·面试
挖掘狂人2 小时前
当生产环境"变慢",我用这套 perf + strace 30 分钟定位瓶颈
linux·运维·性能优化
别动我齐刘海2 小时前
ROS2 Jazzy + C++ 实战路线——进阶学习3
c++·人工智能·vscode·python·算法·机器学习·机器人
zhangfeng11333 小时前
《从“人工适配“到“智能生成“:KernelSwift 跨国产芯片算子迁移全栈方案解读》 —— 强调范式跃迁和跨硬件属性,适合偏架构分析的写法
人工智能·算法·华为·ai编程·npu
0+1113 小时前
算法 --滑动窗口
c++·算法·leetcode
reikocao3 小时前
大场景下 Hessian 特征值放大与退化检测
算法
hetao17338373 小时前
2026-09-18 hetao1733837 的刷题记录
c++·算法