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

相关推荐
Ruiery3 小时前
Linux 6.6内核内存管理深度解析(十六):mmap — 用户态“申请内存“的真相
linux·运维·服务器
欧米欧3 小时前
Linux系统篇(七),环境变量的底层溯源,核心获取机制与安全应用
linux·运维·服务器
Ruiery3 小时前
Linux 6.6内核内存管理深度解析(十八):KASLR 内核地址空间随机化
linux·运维·服务器·安全
ZhengEnCi4 小时前
Agent 架构怎么选:从单 Agent 到多 Agent 编排的选型决策指南
算法·架构
qetfw4 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
秋天的怀念_David4 小时前
第二十二夜 · 数字迷雾
java·程序人生·算法
Pniubi5 小时前
力扣283移动零(双指针法)
算法·leetcode·职场和发展
hhb_6185 小时前
大模型落地三重优化实战
人工智能·算法·机器学习
云和数据.ChenGuang5 小时前
光哥说Python RAG 系统需要哪些评估指标:从检索到生成的全链路评测指南
网络·人工智能·python·算法·langchain
逆风的蚂蚁5 小时前
linux服务器性能调整怎么落地?我把 CPU 调度、I/O 优先级和内核参数这几个旋钮都拧了一遍
linux·运维·服务器