Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def findCommunities(G):
"""
Partition network with the Infomap algorithm.
Annotates nodes with 'community' id and return number of communities found.
"""
conf = infomap.init("--two-level");
# Input data
network = infomap.Network(conf);
# Output data
tree = infomap.HierarchicalNetwork(conf)
print("Building network...")
for e in G.edges_iter():
network.addLink(*e)
network.finalizeAndCheckNetwork(True, nx.number_of_nodes(G));
# Cluster network
infomap.run(network, tree);
print("Found %d top modules with codelength: %f" % (tree.numTopModules(), tree.codelength()))
communities = {}
clusterIndexLevel = 1 # 1, 2, ... or -1 for top, second, ... or lowest cluster level
for node in tree.leafIter(clusterIndexLevel):
communities[node.originalLeafIndex] = node.clusterIndex()
#!/usr/bin/env python
import os.path
from infomap import infomap
conf = infomap.init("--silent -N5")
# Add output directory (and output name) to automatically write result to file
# conf = infomap.init("--silent -N5 . --out-name test")
filename = "../../ninetriangles.net"
name = os.path.splitext(os.path.basename(filename))[0]
print("Loading network from '%s'..." % filename)
network = infomap.Network(conf)
network.readInputData(filename)
print("Running Infomap...")
tree = infomap.HierarchicalNetwork(conf)
infomap.run(network, tree)
print("Found %d top modules with codelength: %f" % (tree.numTopModules(), tree.codelength()))
print("Writing top level clusters to %s_level1.clu..." % name)
tree.writeClu("%s_level1.clu" % name, 1)
print("Writing second level clusters to %s_level2.clu..." % name)
tree.writeClu("%s_level2.clu" % name, 2)
print("Writing tree to %s.tree..." % name)
tree.writeHumanReadableTree("%s.tree" % name)
print("Done!")
network.addLink(1, 2)
network.addLink(2, 1)
network.addLink(2, 0)
network.addLink(3, 0)
network.addLink(3, 4)
network.addLink(3, 5)
network.addLink(4, 3)
network.addLink(4, 5)
network.addLink(5, 4)
network.addLink(5, 3)
print("Num links: %d" % network.numLinks())
network.finalizeAndCheckNetwork()
tree = infomap.HierarchicalNetwork(conf)
infomap.run(network, tree)
print("Found %d top modules with codelength: %f" % (tree.numTopModules(), tree.codelength()))
communities = {}
clusterIndexLevel = 1 # 1, 2, ... or -1 for top, second, ... or lowest cluster level
print("Tree:")
for node in tree.treeIter(clusterIndexLevel):
print("%d %s %f %s" % (node.clusterIndex(), " " * node.depth(), node.data.flow, node.data.name))
if node.isLeafNode():
communities[node.originalLeafIndex] = node.clusterIndex()
print("Communities: %s" % communities)
print("Done!")