From the website:
graph-tool is an efficient python module for manipulation and statistical analysis of graphs (a.k.a. networks). With graph-tool you can do the following:
- Easily create directed or undirected graphs and manipulate them in an arbitrary fashion, using the convenience and expressiveness of the python language!
- Associate arbitrary information to the vertices, edges or even the graph itself, by means of property maps.
- Filter vertices and/or edges “on the fly”, such that they appear to have been removed from the graph, but can be easily recovered.
- Instantaneously reverse the edge direction of directed graphs, and easily transform directed graphs into undirected, and vice-versa.
- Save and load your graphs from files using the graphml and dot file formats, which provide interoperability with other software. You can also pickle your graphs at will!
- Conveniently draw your graphs, using a variety of algorithms and output formats (including to the screen). graph-tool works as a very comfortable interface to the excellent graphviz package.
- Collect all sorts of statistics: degree/property histogram, combined degree/property histogram, vertex-vertex correlations, assortativity, average vertex-vertex shortest distance, etc.
- Run several topological algorithms on your graphs, such as isomorphism, minimum spanning tree, connected components, dominator tree, maximum flow, etc.
- Generate random graphs, with arbitrary degree distribution and degree correlation.
- Calculate clustering coefficients, motif statistics, communities, centrality measures, etc.
- Ad-hoc compilation and execution of C++ code, for efficient implementation of throw-away code for specific projects.
- And probably more stuff I’m forgetting…
Now there’s a feature list!
Comments?