Self-loops are not properly considered when using modularity
vtraag opened this issue · comments
We ignore all self-loops upon reading a particular network. Although this works fine for CPM (as self-loops have no effect there) this is not entirely correct for modularity. In particular, the problem is that the nodeWeights
are calculated using getTotalEdgeWeightPerNodeHelper
, but this is called only after we have removed the self-loops. In other words, the nodeWeights
reflect the degree without the self-loops.
In addition, we do consider self-loops when calculating the "proper" resolution parameter:
Both issues should be corrected in order to make modularity work correctly when self-loops are present in a network.