我尝试在 RedHat Linux HPC 上使用以下命令在大约 20G、300K 单元的数据集上运行 FindClusters():
df <- FindClusters(df, resolution=seq(0.01,1,by=0.1), verbose = TRUE,algorithm=1)
运行时,我在文件中得到以下输出,但是,代码在以下输入后似乎冻结了。
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
****************************************************
Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck
Number of nodes: 311049
Number of edges: 5724294
Running Louvain algorithm...
Maximum modularity in 10 random starts: 0.9925
Number of communities: 2834
Elapsed time: 146 seconds
出现此消息后,程序继续运行,但似乎没有继续前进。仅在大约 8 小时后,才会打印下一个分辨率值的下一个输出。该程序确实在较小的数据集上运行得更快(2G 和大约 4 分钟),并且完成时没有任何错误,但是,我不认为 20G 数据集应该花这么长时间。
这些是 RedHat HPC 系统设置,我通过以下 qsub 命令提交我的作业:
qsub multiCore.sh
NAME="Springdale Linux"
VERSION="7.9 (Verona)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="7.9"
cat multiCore.sh
#!/bin/bash
#$ -N MULTICORE
#$ -cwd -S /bin/bash
#$ -l mem=50G,time=6::
#$ -pe orte 4
#$ -o output.log
#$ -e error.log
# Run the MPI job with mpirun
mpirun $HOME/bin/Rscript integrate2.R // integrate2.R is the file where FindClusters() is called
到目前为止,我已尝试查看 Seurat 文档以与 future 进行并行处理并一次运行一个分辨率值,但问题仍然存在。
如有任何建议,我们将不胜感激。
我也遇到了同样的麻烦,你解决了吗?