future——加速你的单细胞分析
2024-04-09 18:20:33  阅读数 1072
由于单细胞数据本身就具有数据量大的特点,所以在进行单细胞数据分析时往往会出现运行时间太长的问题。

不过好在 Seurat 为我们提供了部分函数与 future 并行计算的链接。

安装future

future已经托管到CRAN上了,所以我们可以直接通过CRAN对其进行安装:

install.packages("future")

支持future并行计算的函数

  • NormalizeData()
  • ScaleData()
  • JackStraw()
  • FindMarkers()
  • FindIntegrationAnchors()
  • FindClusters()

如何使用future

为了方便我们的使用,Seurat没有特殊的其它操作来实现并行计算,也就是说函数的调用方式是没有改变的。

  • 查看可用核数
library(future)
availableCores()
  • 调用多核
#使用plan来查看当前plan的情况
plan()
#此处我们想调用4个核来并行完成我们的marker基因鉴定
plan("multiprocess", workers = 4)

通过上面的操作我们就成功地向系统“借”了四个核。

实战

在这里我们想寻找pbmc数据集中 Naive CD4 T 细胞的基因marker。
首先不使用多核:

start <- Sys.time()
FindMarkers(object = pbmc3k.final, ident.1 = 'Naive CD4 T')
end <- Sys.time()
print(end - start)

最终耗时:6.63347s
然后我们调用四个核来 并行 做同样的事情,注意到Seurat函数的调用形式不会改变:

plan("multiprocess", workers = 4)

start <- Sys.time()
FindMarkers(object = pbmc3k.final, ident.1 = 'Naive CD4 T')
end <- Sys.time()
print(end - start)

最终耗时:2.361096s

这将有效提升我们的单细胞数据分析效率!