A polished Mathematica interface to the igraph graph manipulation and analysis library. This package is still under development and looking for contributors.

Load the package with


The documentation can be opened using


and contains a few examples. Specific documentation for each function is mainly contained in the usage messages.

All functions provided by the package have the prefix IG in their name to distinguish them from similar or equivalent functions built into Mathematica or provided by Combinatorica.


The IGraph/M functions work directly on Mathematica's built-in Graph datatype.

g = RandomGraph@BarabasiAlbertGraphDistribution[50, 2]

Let's randomly rewire edges 1000 types while keeping the degree sequence:

g = IGRewire[g, 1000]

And find the edges that we need to remove to make the graph acyclic:

feedback = IGFeedbackArcSet[g]

AcyclicGraphQ@EdgeDelete[g, feedback]
(* True *)