def kCoreCommunityDetection(G, k, algo=None, inspect=True): """ Perform community detection on the k-core of the graph, which possibly reduces computation time and enhances the result. :param G the graph (may not contain self-loops) :param k k as in k-core :param algorithm community detection algorithm instance :return communities (as type Partition) """ coreDec = CoreDecomposition(G) coreDec.run() cores = coreDec.cores() try: kCore = cores[k] except IndexError: raise Error("There is no core for the specified k") C = graph.Subgraph().fromNodes(G, kCore) # FIXME: node indices are not preserved #properties.overview(C) return detectCommunities(C, algo, inspect)