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

相关推荐
jsons11 小时前
autofs挂载
linux·服务器·网络
37.2℃9951 小时前
专业的Claude Design解决方案
前端·算法
め.1 小时前
定点数运算库
算法·unity
liwulin05061 小时前
【ollama】自定义结构化输出
linux·前端·数据库·ollama
dyxal2 小时前
最长公共子序列(LCS)
python·算法
时空无限2 小时前
vllm 大模型启动缓存相关环境变量 export
linux·缓存·vllm
Echo_cy_3 小时前
基于ZYNQ-7000的Ethernet驱动配置
linux·驱动开发·嵌入式硬件·fpga开发·ethernet·zynq
ShineWinsu3 小时前
对于Linux:模版方法类的解析以及socket、TcpSocket的封装
linux·c++·面试·socket·模板方法模式·封装·tcpsocket
无足鸟ICT4 小时前
【RHCA+】查看变量
linux·运维·服务器
Kina_C4 小时前
Linux DNS 服务器-从高速缓存到辅助 DNS 部署指南
linux·运维·服务器·dns