探序基因已入锐竞平台
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
大细胞量运算评测:
90万规模的细胞,修改内存限制后,可以进行FastMNN去批次,大概要运行将近一天,占用三四百G内存