Count the size and amount of clusters/hubs/sub-networks

Hi there,

I’m completely inexperienced with igraph. My main objective here is count the amount and size of clusters/hubs/sub-networks (not sure if that is the correct term). By clusters/hubs/sub-networks I mean vertices that are connected directly or indirectly to each other and show no connection to other vertices with the same behavior. In the picture below you can see the example of two clusters/hubs/sub-networks that are part of a big network showing same structure. By size I mean the number of vertices that a given cluster has.

I tried first using degree( ), but is quite an indirect measure of what I need.
Then, I tried ego_size( ), using a spurious number for order= to ensure that I would retrieve all vertices interacting in these clusters/hubs/sub-networks. The problem is that the output is per vertices, and I need per clusters/hubs/sub-networks. I thought about using unique ( ) , but it would create a problem for that different clusters/hubs/sub-networks that shows the size (amount of vertices).

My ideal output would be something like a distribution of the amount clusters/hubs/sub-networks per size. Like:
2 vertices connecting = 10
3 vertices connecting indirectly or directly= 50
I read the tutorial and looked at the manual, but I couldn’t find anything specific for this. Is there any way to do that?

Thank you for you time

I am writing this with the intention to be as helpful as possible:

It seems to me that your first challenge here is not of a technical nature (i.e. regarding igraph usage). I would recommend that you find a good introductory book on network science and learn about established analysis techniques, as well as standard terminology. Or perhaps have a discussion with someone who has knowledge of the topic. A forum is not going to be the best place to get help at this stage.

Thank you for your quick reply.
My point was just to discuss this with someone since, like I stated, I’m not experienced on network analysis. My objective here is just to get the output I specified to move on and I couldn’t find a better a place to find experience people on this than here.
In case you can point me out a function or so, I would be grateful.

I have a technical question.
I discovered that I’m working with flat communities and I need to index my vertices.
I want my clusters to be formed by any order of connection independently of the edges direction.

What would be the best algorithm for cluster to achieve that?
I realized that my goal is the sizes() function

> sizes( )

I don’t quite understand what you are trying to do. If you can describe it in a mathematically precise way, using standard terminology, then perhaps we can help.

It is my impression that you are trying to learn network analysis solely by looking at igraph, without already understanding the concepts that are involved. I do not think this is a productive way to go about it. An introductory textbook would take you further in less time, and would give you the basic terminology so you can explain problems to others.

I don’t know what you mean by “flat communities” or “index my vertices”. I also don’t know what you mean by “clusters/hubs/sub-networks”. My best guess is that you might want connected components (igraph function: components()), but I don’t see what this has to do with degrees (the next thing you mention).