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

相关推荐
Lugas Luo1 小时前
识别DDR故障的“数据总线测试算法”
linux·嵌入式硬件
阿Y加油吧1 小时前
二刷 LeetCode:300. 最长递增子序列 & 152. 乘积最大子数组 复盘笔记
笔记·算法·leetcode
我是大聪明.1 小时前
大模型Tokenizer原理:BPE、WordPiece与子词编码的核心机制深度解析
人工智能·线性代数·算法·机器学习·矩阵
自我意识的多元宇宙1 小时前
数据结构----希尔排序
数据结构·算法·排序算法
惊鸿一博1 小时前
深度学习特征匹配算法 LoFTR、DKM、RoMa 介绍
人工智能·深度学习·算法
BetterNow.1 小时前
安卓内存Previous为什么可以算进freeRam
android·linux·安卓·安卓性能·安卓内存
炽烈小老头1 小时前
【每天学习一点算法 2026/04/29】最长连续序列
学习·算法
时空自由民.1 小时前
ESP32 IDF HTTP OTA升级流程原理
linux·单片机
一只数据集1 小时前
柏林道路路面图像数据集-971张沥青与鹅卵石路面图片-训练测试集划分-支持道路材质识别与自动驾驶视觉算法训练
算法·自动驾驶·材质