igraph社区检测得到的簇如何打分
How to score the clusters obtained through igraph community detection
我从 RNA-seq 数据构建了一个基因共表达网络。网络文件为边缘列表格式,内存约1gb,通过计算每个基因对的Pearson相关性创建,并选择相关性> 95%的基因对创建边缘列表。
我使用 igraph R 包 "cluster_louvian" 社区检测算法对这个基因网络(边缘列表)进行了聚类,并获得了 534 个子聚类。许多子簇中只有一个顶点
我如何对聚类进行评分,以便确定具有更多顶点和边并且对进一步研究很重要的最佳聚类。
你没有提供任何数据,我随便举个例子说明。
library(igraph)
set.seed(1234)
g = erdos.renyi.game(20,0.1)
plot(g)
CL = cluster_louvain(g)
plot(g, vertex.color=CL$membership)
现在您可以获得每个簇中的顶点数以及连接它们的边数。
## number of vertices per cluster
table(CL$membership)
1 2 3 4 5 6 7
1 1 3 2 3 5 5
## number of edges within each cluster
NumClust = max(CL$membership)
sapply(1:NumClust, function(i)
ecount(induced_subgraph(g, which(CL$membership==i))))
[1] 0 0 2 1 2 4 5
我从 RNA-seq 数据构建了一个基因共表达网络。网络文件为边缘列表格式,内存约1gb,通过计算每个基因对的Pearson相关性创建,并选择相关性> 95%的基因对创建边缘列表。
我使用 igraph R 包 "cluster_louvian" 社区检测算法对这个基因网络(边缘列表)进行了聚类,并获得了 534 个子聚类。许多子簇中只有一个顶点
我如何对聚类进行评分,以便确定具有更多顶点和边并且对进一步研究很重要的最佳聚类。
你没有提供任何数据,我随便举个例子说明。
library(igraph)
set.seed(1234)
g = erdos.renyi.game(20,0.1)
plot(g)
CL = cluster_louvain(g)
plot(g, vertex.color=CL$membership)
现在您可以获得每个簇中的顶点数以及连接它们的边数。
## number of vertices per cluster
table(CL$membership)
1 2 3 4 5 6 7
1 1 3 2 3 5 5
## number of edges within each cluster
NumClust = max(CL$membership)
sapply(1:NumClust, function(i)
ecount(induced_subgraph(g, which(CL$membership==i))))
[1] 0 0 2 1 2 4 5