我只是想知道如何绘制 MST,就像使用 flowsom 时一样,但使用 Catalyst 包来代替。我已经遵循了生物导体上的催化剂教程,刚刚完成了聚类部分。如果能够使用 MST 可视化聚类就好了,但我不知道该怎么做...... 非常感谢您的帮助
这是我尝试使用催化剂包进行聚类的代码:
sce <- cluster(sce, features = "type",
xdim = 10, ydim = 10, maxK = 20,
verbose = FALSE, seed = 1)
然后我尝试了以下方法来绘制 MST:
fsom <- metadata(sce)$SOM
PlotStars(fsom, view = "MST", backgroundValues = fsom$metaclustering)
但是我得到了以下信息: UpdateFlowSOM(fsom) 中的错误:fsom 应该是 FlowSOM 对象。
我现在不知道如何进行这项工作...
首先,提取SOM结果:
som_结果<- metadata(sce)$SOM
2)获取SOM权重和元聚类结果:
som_weights <- som_results$codes
meta_clusters <- som_results$metaclustering
计算SOM节点之间的距离:
图书馆(区) 距离 <- as.matrix(dist(som_weights))
使用这些距离创建 MST:
图书馆(igraph) 最大 <- minimum.spanning.tree(graph_from_adjacency_matrix(distances, weighted = TRUE, mode = "undirected"))
5)最后,绘制 MST:
library(ggraph)
library(tidygraph)
graph_data <- as_tbl_graph(mst) %>%
mutate(cluster = meta_clusters)
ggraph(graph_data, layout = "kk") +
geom_edge_link() +
geom_node_point(aes(color = factor(cluster)), size = 5) +
theme_void() +
labs(color = "Meta-cluster")
此代码使用 SOM 结果创建 MST,并根据元簇为每个节点着色。结果将类似于 FlowSOM 的 MST 可视化。