Dear community / Tiago
I have a hierarchical partition of a nested block state. The original network contained 4453 vertices and 50051 edges.
state.print_summary() l: 0, N: 4453, B: 126 l: 1, N: 126, B: 46 l: 2, N: 46, B: 20 l: 3, N: 20, B: 9 l: 4, N: 9, B: 3 l: 5, N: 3, B: 1
I want to extract the community label of each vertex of each possible hierarchical level. To do this I wrote a loop based upon the guide at https://graph-tool.skewed.de/static/doc/demos/inference/inference.html Where vertexblocksdf is simply a df populated with the vertex numbers 0-4452.
for idx in range(len(vertexblocksdf)):
r = levels[0].get_blocks()[idx] # group membership of node idx in level 0 vertexblocksdf.ix[idx, 'level0'] = r
r = levels[0].get_blocks()[r] # group membership of node idx in level 1 vertexblocksdf.ix[idx, 'level1'] = r
r = levels[0].get_blocks()[r] # group membership of node idx in level 2 vertexblocksdf.ix[idx, 'level2'] = r
r = levels[0].get_blocks()[r] # group membership of node idx in level 3 vertexblocksdf.ix[idx, 'level3'] = r
r = levels[0].get_blocks()[r] # group membership of node idx in level 4 vertexblocksdf.ix[idx, 'level4'] = r
r = levels[0].get_blocks()[r] # group membership of node idx in level 5 vertexblocksdf.ix[idx, 'level5'] = r
But, I am getting strange results. My level0 column variables make sense, with 126 possibilities (as per l0 above). But my level1 column is a number between 0 and 13; of which none of my levels have 14 blocks. My level2 output is either 0 or 1, again doesn’t make sense! Level3-5 are all simply 0. *this also reproduces the same behaviour if done manually without loop.
Any ideas??
James