Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Cpp files for running belief propagation can be found in src. Currently the only accepts edge lists where node labels are continuous integers starting at 0. For an example, see 'data/protein.edges'.

Must have installed:

  • git
  • A C++ compiler (default is g++).
  • Boost program_options
  • python3 (I use python3.4. python2 should work, but code might need tweaking)
  • networkx (for synthetic network generation)

Steps to run:

  • Clone this repository to your computer: "git clone"
  • Compile bp: "make -C src"
  • Run on real world datasets with "./ -i data/protein.edges -k 4"
  • Try generating synthetic networks and then running bp with "./"

Results are stored in the ./out folder. The 7th column of out/results.txt contains information on community recovery - what fraction of nodes have the correct community predicted by belief propagation. Found communities are stored in ./out/[edgelist-filename].out. Each row corresponds to a node (corresponding to the node index in the input edgelist), and each column corresponds to a community. Entries give the fraction that a given node is in a given community.

Combine your edgelist and community output into a gml file that can be read by popular graphing software such as Gephi by using ./format_output

Get help on various methods using:

  • ./ -h
  • ./ -h
  • ./ -h
  • src/bp -h


Code for detecting stochastic blockmodel structure in uncertain networks.



No releases published
You can’t perform that action at this time.