Skip to contents

Subgraph centrality of a vertex measures the number of subgraphs a vertex participates in, weighting them according to their size.


subgraph_centrality(graph, diag = FALSE)



The input graph, it should be undirected, but the implementation does not check this currently.


Boolean scalar, whether to include the diagonal of the adjacency matrix in the analysis. Giving FALSE here effectively eliminates the loops edges from the graph before the calculation.


A numeric vector, the subgraph centrality scores of the vertices.


The subgraph centrality of a vertex is defined as the number of closed loops originating at the vertex, where longer loops are exponentially downweighted.

Currently the calculation is performed by explicitly calculating all eigenvalues and eigenvectors of the adjacency matrix of the graph. This effectively means that the measure can only be calculated for small graphs.


Ernesto Estrada, Juan A. Rodriguez-Velazquez: Subgraph centrality in Complex Networks. Physical Review E 71, 056103 (2005).


Gabor Csardi based on the Matlab code by Ernesto Estrada


g <- sample_pa(100, m = 4, dir = FALSE)
sc <- subgraph_centrality(g)
cor(degree(g), sc)
#> [1] 0.929038