当前位置:网站首页>"Tips" to slim down Seurat objects

"Tips" to slim down Seurat objects

2022-07-04 13:09:00 Xu zhougeng

We are using Seurat When processing single cell data , Will find Seurat The object keeps getting bigger , Carelessly, it becomes a bottomless hole in memory ,

For example, one of mine Seurat Objects occupy 22.3 Of memory space

old_size <- object.size(seu.obj)
format(old_size, units="Gb")
# 22.3 Gb

If I need to shut down halfway Rstudio, So in order to ensure their work continuity , I need to put the in memory 20 many G The data of is saved to disk , And the memory will be loaded in the next analysis . This time , Considering the read and write speed of the disk , Time consuming may require 10 More minutes .

Considering that you may have to upload the data to the online disk or GEO database , So this 20 many G The time required for data , It's even more beyond your imagination .

Is there any way to Seurat Object slimming ? It's very simple , because Seurat Mainly in the Scale This step , Turn the original sparse matrix into an ordinary matrix , At the same time, the elements inside are floating-point , It takes up a lot of space . As long as we clear the normalized matrix before saving the data , You can make Seurat Lose weight all at once .

[email protected][email protected] <- matrix()
new_size <- object.size(seu.obj)
format(new_size, units="Gb")
# 5Gb

Operation above , Reduce the memory occupation to only the original 20% about . however , The problem is coming. , What is the cost of memory reduction ? The price is , You need to... The loaded data scale, Restore Seurat Medium scale.data.

all.genes <- rownames(seu.obj)
seu.obj <- ScaleData(seu.obj, features = all.genes)

This is a common idea in Computer Science , Or space for time , Or time for space .

This trick can speed up Seurat Save, read and write objects , Are there any other applications ? because scale The latter data is mainly for principal component analysis (PCA) Provide input . Subsequent nonlinear dimensionality reduction (UMAP), Clustering analysis (Cluster) It's all based on PCA, Not based on scale data , therefore , If the memory space is surprised during the analysis , You can also use this trick to free up memory space . After running some operations that occupy memory , Then restore it .

原网站

版权声明
本文为[Xu zhougeng]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/185/202207041131476916.html