问题出在这里:
cellchat <- netClustering(cellchat, type = "functional")
修改为cellchat <- netClustering(cellchat, type = "functional", do.parallel = FALSE)
就ok了
——————分割线——————
library(future)
plan("multisession", workers = 4) # 或者设置您想要的核心数
cellchat <- computeNetSimilarity(cellchat, type = "functional")
cellchat <- netEmbedding(cellchat, type = "functional")
#> Manifold learning of the signaling networks for a single dataset
cellchat <- netClustering(cellchat, type = "functional")
#> Classification learning of the signaling networks for a single dataset
# Visualization in 2D-space
netVisual_embedding(cellchat, type = "functional", label.size = 3.5)
Manifold learning of the signaling networks for a single dataset Classification learning of the signaling networks for a single dataset
#单数据集信令网络的流形学习
Error: No such strategy for futures: 'multiprocess' Traceback: 1. future::plan("multiprocess", workers = nCores) 2. do.call(tweak, args = args, quote = TRUE) 3. (function (strategy, ..., penvir = parent.frame()) . UseMethod("tweak"))(base::quote("multiprocess"), workers = base::quote(4), . penvir = base::quote(<environment>)) 4. tweak.character(base::quote("multiprocess"), workers = base::quote(4), . penvir = base::quote(<environment>)) 5. stopf("No such strategy for futures: %s", sQuote(strategy)) 6. stop(cond)
错误含义
#这个错误说明:No such strategy for futures: 'multiprocess'
(没有这样的future策略:'multiprocess')。
#错误发生在您尝试使用plan("multiprocess", workers = nCores)
命令时,系统找不到名为"multiprocess"的并行计算策略。
之前跑cellchat一直遇到并行计算无法进行的问题,一直就是卡在这个multiprocess上。
future包是多核并行处理的R语言包,
future包中有效的并行策略包括:
- "sequential" - 顺序执行(非并行)
- "multisession" - 多会话并行(推荐用于R会话内并行)
- "multicore" - 多核心并行(仅适用于类Unix系统,Windows不支持)
- "cluster" - 集群并行(适用于多台机器)
问题出在这里:
cellchat <- netClustering(cellchat, type = "functional")
修改为cellchat <- netClustering(cellchat, type = "functional", do.parallel = FALSE)
就ok了
即,可以直接使用do.parallel = FALSE
参数禁用并行计算
netClustering
函数是CellChat包中的一个重要功能,用于对细胞间通讯网络进行聚类分析。这个函数的主要功能和特点如下:
- 网络聚类:将具有相似信号传递模式的配体-受体对分组聚类,帮助识别功能相似的信号通路
- 基于相似性:利用之前由
computeNetSimilarity
计算的网络相似性矩阵进行聚类 - 降维分析:通常在
netEmbedding
函数执行的降维结果基础上进行聚类,将高维的信号网络信息降低到二维空间 - 类型选择:
type = "functional"
:基于功能相似性聚类(信号通路的功能模式)type = "structural"
:基于结构相似性聚类(信号通路的拓扑结构)
- 聚类方法:使用k均值聚类或层次聚类等算法对网络进行分组
- 并行计算选项:
do.parallel = TRUE
:启用并行计算加速处理(默认)do.parallel = FALSE
:禁用并行计算,避免配置问题(如您所用的解决方案)
- 结果应用:聚类结果可以通过
netVisual_embedding
等函数进行可视化,帮助研究人员理解信号通路的功能组织和模块化特征