Seurat提速——并行化(future包)2022-06-07

分享
开发者 2024-9-5 13:56:57 50 0 来自 中国
关键词


  • Parallelization in Seurat
  • Seurat 并行化
  • Seurat 加速运行速率
  • Seurat 并行运算
  • Seurat 进步服从
  • Seurat 加速整合速率
  • Seurat 加速ScaleData/NormalizeData/FindMarkers/FindIntegrationAnchors/FindClusters速率
  • Seurat 加速SCTransform速率
实用配景

Seurat包好用是好用,但其分析流程中的某些函数运行起来着实太慢了,较小的数据集还好,但一旦高出10w以上,就须要等待很长时间。Seurat团队应该也发现了 这个标题,以是他们在v3.0版本开始就举行了优化,也就是只要Seurat版本>=3.0,就能对某些步调实现并行化,从而进步运行服从。(Seurat 4系列版本也可用)


实用函数

Seurat的流程并不须要每个函数都并行化运算,以是根据官网先容,只有以下几个函数能实现并行化运算:

  • NormalizeData
  • ScaleData
  • JackStraw
  • FindIntegrationAnchors
  • FindMarkers
  • FindClusters - if clustering over multiple resolutions
    但根据本人实测发现,SCTransform函数也能实现并行化,但官网貌似没有更新。
利用方法

Seurat的并行策略是基于future包的plan函数,只须要参加以下三行内容,此中workers设置进程数,这个根据个人现实环境填写即可.
library(future)plan("multiprocess", workers = 4)options(future.globals.maxSize = 100000 * 1024^5)future.globals.maxSize则是为了排除运行内存限定,否则会出现以下报错。
Error in getGlobalsAndPackages(expr, envir = envir, globals = TRUE) :   The total size of the X globals that need to be exported for the future expression ('FUN()') is X GiB. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). The X largest globals are 加速SCTransform速率

SCTransform是官网保举的数据预处理惩罚方法,但是极其慢,官网利用glmGamPoi举行优化提速,但是这是仅限于4.0版本及以上,本人在R3.6版本无法安装glmGamPoi包,而且Seurat 3的SCTransform函数也没有参加glmGamPoi方法,会报错。
if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager")BiocManager::install("glmGamPoi")pbmc <- SCTransform(pbmc, method = "glmGamPoi", vars.to.regress = "percent.mt", verbose = FALSE)小结与增补

实现并行化后运行进度条大概会消散,官网表明这与future框架与R自己限定有关,具体我也不太懂,更多具体的内容可以浏览官方教程。
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-19 15:43, Processed in 0.158130 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表