当前位置:网站首页>"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 .
边栏推荐
- 《天天数学》连载57:二月二十六日
- MySQL three-level distribution agent relationship storage
- AI painting minimalist tutorial
- [Android kotlin] lambda return statement and anonymous function
- 使用宝塔部署halo博客
- 面向个性化需求的在线云数据库混合调优系统 | SIGMOD 2022入选论文解读
- Transformer principle and code elaboration (pytorch)
- Jetson TX2配置Tensorflow、Pytorch等常用库
- C#/VB. Net to add text / image watermarks to PDF documents
- A taste of node JS (V), detailed explanation of express module
猜你喜欢
![[data clustering] section 3 of Chapter 4: DBSCAN performance analysis, advantages and disadvantages, and parameter selection methods](/img/e6/2b46d72049ea50f89d0234eab88439.png)
[data clustering] section 3 of Chapter 4: DBSCAN performance analysis, advantages and disadvantages, and parameter selection methods
Efficient! Build FTP working environment with virtual users

Dry goods sorting! How about the development trend of ERP in the manufacturing industry? It's enough to read this article

实战:fabric 用户证书吊销操作流程

DGraph: 大规模动态图数据集

Runc hang causes the kubernetes node notready

A treasure open source software, cross platform terminal artifact tabby

Talk about the design and implementation logic of payment process

Transformer principle and code elaboration (tensorflow)

VIM, another program may be editing the same file If this is the solution of the case
随机推荐
面向个性化需求的在线云数据库混合调优系统 | SIGMOD 2022入选论文解读
干货整理!ERP在制造业的发展趋势如何,看这一篇就够了
A treasure open source software, cross platform terminal artifact tabby
Master the use of auto analyze in data warehouse
Reinforcement learning - learning notes 1 | basic concepts
AI 绘画极简教程
n++也不靠谱
聊聊支付流程的设计与实现逻辑
runc hang 导致 Kubernetes 节点 NotReady
敏捷开发/敏捷测试感受
Leetcode day 17
When to use pointers in go?
C fonctions linguistiques
MDK在头文件中使用预编译器时,#ifdef 无效的问题
Excuse me, have you encountered this situation? CDC 1.4 cannot use timestamp when connecting to MySQL 5.7
golang 设置goproxy代理的小细节,适用于go module下载超时,阿里云镜像go module下载超时
Interviewer: what is the difference between redis expiration deletion strategy and memory obsolescence strategy?
Using nsproxy to forward messages
Why can the implementation class of abstractdispatcherservletinitializer be called when initializing the web container
ISO 27001 Information Security Management System Certification