About igraph releases and other things
There are a lot of improvements and corrections in this version. We would like to thank all the people who sent comments, bug reports, patches, or just questions. Without their contribution igraph would be definitely much less and worse than it is now. Please keep sending your comments and ideas!
Here is a list of major changes, with links to the relevant sections of the documentation. See below for the complete list of changes.
igraph includes the BLISS graph isomorphism algorithm and implementation now. This and the improved VF2 implementation, which can now calculate subgraph isomorphism, make igraph support the bleeding edge of graph isomorphism algorithms. Many thanks to the authors of BLISS. See the details in the Python documentation.
ARPACK is a library for solving large scale sparse eigenvalue problems. In igraph it is very handy, as many centrality problems are in fact eigenvalue problems: Kleinberg’s hub and authority scores, PageRank, the leading eigenvector community detection algorithm are some examples. Many thanks to the authors of ARPACK and James Fowler, who suggested to include it in igraph.
Plotting functionality based on the Cairo graphics library (so you need to install python-cairo if you want to use it). Currently the following objects can be plotted: graphs, adjacency matrices and dendrograms. Some crude support for plotting histograms is also implemented. Plots can be saved in PNG, SVG and PDF formats.
See the details in the documentation.
igraph can now be invoked by calling the script called
igraph from the command line. The script launches the
Python interpreter and automatically imports igraph functions into the
Some classic graphs can be created by giving their name. This is very handy if one needs a test graph quickly. See Famous. (The idea is based on Combinatorica, a Mathematica extension.)
Some functions were added and improved to handle non-simple graphs (i.e. graphs with loop and/or multiple edges) better: testing that a graph is simple, testing for loop edges, testing for multiple edges) and counting the multiplicity of edges.
igraph Graph objects can be serialized (pickled) in Python.
This is a nice force-based layout algorithm. See the documentation of details.
igraph can now write graphs to files in the DOT format, used by GraphViz. See documentation.
These measures can be quickly estimated by specifying an upper bound for path lengths to be considered. This is useful for larger graphs, for which the calculation takes a long time. See documentation for closeness, betweenness and edge betweenness.
igraphfrom the command line. The script launches the Python interpreter and automatically imports igraph functions into the main namespace
Graph.layoutmethod for accessing layout algorithms
EdgeSeqobjects can now be restricted to subsets of the whole network (e.g., you can select vertices/edges based on attributes, degree, centrality and so on)
igraph_community_leading_eigenvector_*. New functions based on ARPACK:
Experimental C attribute interface added. I.e. it is possible to use graph/vertex/edge attributes from C code now.
igraph_is_multiple“return” boolean vectors
igraph_add_edgeadds a single edge to the graph
igraph_full_citationto create full citation networks
igraph_path_length_hist, create a histogram of path lengths
igraph_read_graph_*functions can handle all possible line terminators now (\r, \n, \r\n, \n\r)
cutvector was used