##1
cellchat <- computeNetSimilarity(cellchat, type = "structural")
cellchat <- netEmbedding(cellchat, type = "structural")
Error in runUMAP(Similarity, min_dist = min_dist, n_neighbors = n_neighbors, :
? Cannot find UMAP, please install through pip (e.g. pip install umap-learn or reticulate::py_install(packages = 'umap-learn')).
按照指示裝了umap-learn也還是同樣的報錯!
##
cellchat <- aggregateNet(cellchat)?
cellchat <- netAnalysis_computeCentrality(cellchat, slot.name = "netP")
Fortran runtime error: Insufficient number of elements in TARRAY.
Fortran runtime error: Insufficient number of elements in TARRAY.
Fortran runtime error: Insufficient number of elements in TARRAY.
Fortran runtime error: Insufficient number of elements in TARRAY.
Error in unserialize(node$con):
? MultisessionFuture (future_sapply-1) failed to receive results from cluster RichSOCKnode #1 (PID 1498926 on localhost ‘localhost’). The reason reported was ‘error reading from connection’. Post-mortem diagnostic: No process exists with this PID, i.e. the localhost worker is no longer alive. The total size of the 7 globals exported is 151.66 KiB. The three largest globals are ‘computeCentralityLocal’ (142.34 KiB of class ‘function’), ‘...future.FUN’ (5.59 KiB of class ‘function’) and ‘net’ (3.68 KiB of class ‘numeric’)
示例代碼復現
此部分參考知乎博主做的,鏈接為
library(Seurat)
library(dplyr)
library(SeuratData)
library(patchwork)
library(ggplot2)
library(CellChat)
library(ggalluvial)
library(svglite)
options(stringsAsFactors = FALSE)
rm(list=ls())?
options(stringsAsFactors = F)?
cellchat.NL <- readRDS(url("https://ndownloader.figshare.com/files/25954199"))
cellchat.LS <- readRDS(url("https://ndownloader.figshare.com/files/25956518"))
cellchat.NL <- readRDS("/Users/jinsuoqin/Documents/CellChat/tutorial/cellchat_humanSkin_NL.rds")
cellchat.LS <- readRDS("/Users/jinsuoqin/Documents/CellChat/tutorial/cellchat_humanSkin_LS.rds")
object.list <- list(NL = cellchat.NL, LS = cellchat.LS)
cellchat <- mergeCellChat(object.list, add.names = names(object.list))
gg1 <- compareInteractions(cellchat, show.legend = F, group = c(1,2))
gg2 <- compareInteractions(cellchat, show.legend = F, group = c(1,2), measure = "weight")
gg1 + gg2
par(mfrow = c(1,2), xpd=TRUE)
netVisual_diffInteraction(cellchat, weight.scale = T)
netVisual_diffInteraction(cellchat, weight.scale = T, measure = "weight")
gg1 <- netVisual_heatmap(cellchat)
gg2 <- netVisual_heatmap(cellchat, measure = "weight")
gg1 + gg2
weight.max <- getMaxWeight(object.list, attribute = c("idents","count"))
par(mfrow = c(1,2), xpd=TRUE)
for (i in 1:length(object.list)) {
? netVisual_circle(object.list[[i]]@net$count, weight.scale = T, label.edge= F, edge.weight.max = weight.max[2], edge.width.max = 12, title.name = paste0("Number of interactions - ", names(object.list)[i]))
}
group.cellType <- c(rep("FIB", 4), rep("DC", 4), rep("TC", 4))
group.cellType <- factor(group.cellType, levels = c("FIB", "DC", "TC"))
object.list <- lapply(object.list, function(x) {mergeInteractions(x, group.cellType)})
cellchat <- mergeCellChat(object.list, add.names = names(object.list))
weight.max <- getMaxWeight(object.list, slot.name = c("idents", "net", "net"), attribute = c("idents","count", "count.merged"))
par(mfrow = c(1,2), xpd=TRUE)
for (i in 1:length(object.list)) {
? netVisual_circle(object.list[[i]]@net$count.merged, weight.scale = T, label.edge= T, edge.weight.max = weight.max[3], edge.width.max = 12, title.name = paste0("Number of interactions - ", names(object.list)[i]))
}
par(mfrow = c(1,2), xpd=TRUE)
netVisual_diffInteraction(cellchat, weight.scale = T, measure = "count.merged", label.edge = T)
netVisual_diffInteraction(cellchat, weight.scale = T, measure = "weight.merged", label.edge = T)
num.link <- sapply(object.list, function(x) {rowSums(x@net$count) + colSums(x@net$count)-diag(x@net$count)})
weight.MinMax <- c(min(num.link), max(num.link)) # control the dot size in the different datasets
gg <- list()
for (i in 1:length(object.list)) {
? gg[[i]] <- netAnalysis_signalingRole_scatter(object.list[[i]], title = names(object.list)[i], weight.MinMax = weight.MinMax)
}
patchwork::wrap_plots(plots = gg)
par(mfrow = c(1,2), xpd=TRUE)
netVisual_diffInteraction(cellchat, weight.scale = T, measure = "count.merged", label.edge = T)
netVisual_diffInteraction(cellchat, weight.scale = T, measure = "weight.merged", label.edge = T)
num.link <- sapply(object.list, function(x) {rowSums(x@net$count) + colSums(x@net$count)-diag(x@net$count)})
weight.MinMax <- c(min(num.link), max(num.link)) # control the dot size in the different datasets
gg <- list()
for (i in 1:length(object.list)) {
? gg[[i]] <- netAnalysis_signalingRole_scatter(object.list[[i]], title = names(object.list)[i], weight.MinMax = weight.MinMax)
}
patchwork::wrap_plots(plots = gg)
gg1 <- netAnalysis_signalingChanges_scatter(cellchat, idents.use = "Inflam. DC", signaling.exclude = "MIF")
gg2 <- netAnalysis_signalingChanges_scatter(cellchat, idents.use = "cDC1", signaling.exclude = c("MIF"))
patchwork::wrap_plots(plots = list(gg1,gg2))
cellchat <- computeNetSimilarityPairwise(cellchat, type = "functional")
cellchat <- netEmbedding(cellchat, type = "functional")
報錯:
Error in runUMAP(Similarity, min_dist = min_dist, n_neighbors = n_neighbors, :
? Cannot find UMAP, please install through pip (e.g. pip install umap-learn or reticulate::py_install(packages = 'umap-learn')).
##這里重裝了也沒用!但是,萬能的百度,讓我找到了答案!yes!!
(49條消息) cellchat分析時,cellchat netEmbedding 運行出錯解決方案_生信~魚的博客-CSDN博客
install.packages("uwot")
library(uwot)
cellchat <- netEmbedding(cellchat, umap.method = 'uwot',type = "functional") #調用uwot實現umap, 程序自帶,只需使用參數umap.method = 'uwot',無需修改對應的netEmbedding函數源碼
修改方案:參考
library(reticulate)
py_available()
reticulate::py_install(packages = 'umap-learn')
重啟R,還是報錯
Manifold learning of the signaling networks for datasets 1 2 Error in runUMAP(Similarity, min_dist = min_dist, n_neighbors = n_neighbors, :
? Cannot find UMAP, please install through pip (e.g. pip install umap-learn or reticulate::py_install(packages = 'umap-learn')).
總得來說:
##
cellchat <- aggregateNet(cellchat)?
cellchat <- netAnalysis_computeCentrality(cellchat, slot.name = "netP")
Fortran runtime error: Insufficient number of elements in TARRAY.
Fortran runtime error: Insufficient number of elements in TARRAY.
Fortran runtime error: Insufficient number of elements in TARRAY.
Fortran runtime error: Insufficient number of elements in TARRAY.
Error in unserialize(node$con):
? MultisessionFuture (future_sapply-1) failed to receive results from cluster RichSOCKnode #1 (PID 1498926 on localhost ‘localhost’). The reason reported was ‘error reading from connection’. Post-mortem diagnostic: No process exists with this PID, i.e. the localhost worker is no longer alive. The total size of the 7 globals exported is 151.66 KiB. The three largest globals are ‘computeCentralityLocal’ (142.34 KiB of class ‘function’), ‘...future.FUN’ (5.59 KiB of class ‘function’) and ‘net’ (3.68 KiB of class ‘numeric’)
這個問題還沒有搞懂!根本不知道怎么回事!哭哭