There is a newer version of this record available.

Software Open Access


Szabolcs Horvát


New functions:

  • Deterministic graph generators: IGKautzGraph, IGCompleteGraph, IGCompleteAcyclicGraph, IGDeBruijnGraph, IGChordalRing, IGEmptyGraph, IGRealizeDegreeSequence, IGFromPrufer, IGToPrufer, IGKaryTree, IGSymmetricTree, IGBetheLattice, IGTriangularLattice, IGMycielskian, IGExpressionTree, IGShorthand, IGFromNauty.
  • Random graph generators: IGWattsStrogatzGame, IGCallawayTraitsGame, IGEstablishmentGame, IGTreeGame, IGErdosRenyiGameGNM, IGErdosRenyiGameGNP.
  • Weighted graph functions: IGWeightedSimpleGraph, IGWeightedUndirectedGraph, IGWeightedVertexDelete, IGWeightedSubgraph, IGUnweighted, IGDistanceWeighted, IGWeightedAdjacencyGraph, IGVertexWeightedQ, IGEdgeWeightedQ, IGVertexStrength, IGVertexInStrength, IGVertexOutStrength.
  • Community detection: IGCommunitesFluid, IGCommunitiesLeiden.
  • Graph colouring functions: IGVertexColoring, IGEdgeColoring, IGKVertexColoring, IGKEdgeColoring, IGMinimumVertexColoring, IGMinimumEdgeColoring, IGChromaticNumber, IGChromaticIndex, IGVertexColoringQ.
  • Clique cover: IGCliqueCover, IGCliqueCoverNumber.
  • Mesh/graph conversion: IGMeshGraph, IGMeshCellAdjacencyMatrix, IGMeshCellAdjacencyGraph.
  • Lattice generation: IGLatticeMesh, IGTriangularLattice.
  • Proximity graphs: IGDelaunayGraph, IGGabrielGraph, IGRelativeNeighborhoodGraph, IGLuneBetaSkeleton, IGCircleBetaSkeleton.
  • Centralization: IGDegreeCentralization, IGBetweennessCentralization, IGClosenessCentralization, IGEigenvectorCentralization.
  • Planar graphs: IGPlanarQ, IGMaximalPlanarQ, IGOuterplanarQ, IGKuratowskiEdges, IGFaces, IGDualGraph, IGEmbeddingQ, IGPlanarEmbedding, IGOuterplanarEmbedding, IGCoordinatesToEmbedding, IGEmbeddingToCoordinates, IGLayoutPlanar, IGLayoutTutte.
  • Adjacency lists and embeddings: IGAdjacencyList, IGAdjacencyGraph.
  • Spanning trees and other tree-related functionality: IGSpanningTree, IGRandomSpanningTree, IGSpanningTreeCount, IGUnfoldTree, IGTreeQ, IGForestQ, IGTreelikeComponents, IGTreeGame, IGStrahlerNumber, IGOrientTree.
  • Matching functions: IGMaximumMatching, IGMatchingNumber.
  • Dominance: IGDominatorTree, IGImmediateDominators
  • Maximum flow: IGMaximumFlowValue, IGMaximumFlowMatrix.
  • Isomorphism: IGGetIsomorphism and IGGetSubisomorphism (they work with multigraphs), IGColoredSimpleGraph (for transforming multigraph isomorphism to coloured graph isomorphism).
  • Transitivity: IGVertexTransitiveQ, IGEdgeTransitiveQ, IGSymmetricQ, IGDistanceTransitiveQ.
  • Regular graphs: IGRegularQ, IGStronglyRegularQ, IGStronglyRegularParameters, IGDistanceRegularQ, IGIntersectonArray.
  • A framework for easy property transformations and graph styling: IGVertexProp, IGEdgeProp, IGEdgeVertexProp, IGVertexMap, IGEdgeMap, IGVertexPropertyList, IGEdgePropertyList.
  • Import functions: IGImport, IGImportString, $IGImportFormats; support for importing Graph6, Digraph6 and Sparse6.
  • Export functions: IGExport, IGExportString, $IGExportFormats; support for exporting standards-compliant GraphML that can be read by other igraph interfaces (R, Python).
  • Matrix functions: IGZeroDiagonal, IGTakeUpper, IGTakeLower, IGAdjacencyMatrixPlot, IGKirchhoffMatrix, IGJointDegreeMatrix.
  • Bipartite graphs: IGBipartiteIncidenceMatrix, IGBipartiteIncidenceGraph, IGBipartiteProjections.
  • Random walks: IGRandomEdgeWalk, IGRandomEdgeIndexWalk
  • Connectivity: IGGiantComponent, IGMinimalSeparators, IGFindMinimumCuts, IGFindMinimalCuts, IGBridges, IGConnectedComponentSizes, IGWeaklyConnectedComponentSizes, IGGomoryHuTree.
  • Efficiency measures: IGGlobalEfficiency, IGLocalEfficiency, IGAverageLocalEfficiency.
  • Neighbour degrees: IGAverageNeighborDegree, IGAverageDegreeConnectivity
  • Other testing functions: IGTriangleFreeQ, IGSelfComplementaryQ, IGCactusQ,IGNullGraphQ, IGHomeomorphicQ, IGAdjacentVerticesQ.
  • Other new functions: IGNeighborhoodSize, IGCoreness, IGVoronoiCells, IGSmoothen, IGSimpleGraph, IGPartitionsToMembership, IGMembershipToPartitions, IGSinkVertexList, IGSourceVertexList, IGIsolatedVertexList, IGReorderVertices, IGTakeSubgraph, IGDisjointUnion, IGTryUntil, IGVertexAssociate.
  • Added IGIndexEdgeList for retrieving the edge list of a graph in terms of vertex indices. This function is very fast and returns a packed array. It facilitates the efficient implementation of graph processing functions in pure Mathematica code, or interfacing with C libraries.

Updates to existing functions:

  • Community detection: Several functions support the "ClusterCount" option now.
  • IGRewireEdges now supports rewiring only the start or endpoint of directed edges (instead of both).
  • IGBipartiteQ now supports checking that a given partitioning is valid for a bipartite graph.
  • IGBipartitePartitions now provides control over the ordering of partitions using its second argument.
  • Isomorphism functions now ignore the directedness of empty graphs.
  • Isomorphism functions can now take vertex or edge colours from graph attributes.
  • IGBlissCanonicalGraph will now include include vertex colours into its output when appropriate, encoded as the "Color" vertex property.
  • IGDistanceCounts now optionally takes a list of starting vertices.
  • IGBetweenness(Estimate) and IGCloseness(Estimate) now optionally take a set of vertices to do the calculation on.
  • IGBetweenness(Estimate) and IGEdgeBetweenness(Estimate) now have the Normalized option.
  • IGRandomWalk now supports edge weights and the EdgeWeights option. Use EdgeWeights -> None to ignore weights, and thus restore the previous behaviour.
  • Clustering coefficient functions now support the "ExcludeIsolates" option.

Incompatible changes from IGraph/M 0.3:

  • A flat namespace structure is used. Functions from IGraphM`Utilities` have been moved to IGraphM`.
  • Renamed "MultipleEdges" option to MultiEdges for convenient typing and auto-completion.
  • Renamed IGMinSeparators to IGMinimumSeparators.
  • Renamed IGMakeLattice to IGSquareLattice. The name IGMakeLattice works, but it is deprecated.

Other changes:

  • Improved compatibility with Mathematica versions 11.2–12.1; handling of TwoWayRule as an edge specification and support for edge tagged graphs.
  • Bug fixes, performance improvements, documentation updates, and general polish.


Please go to the GitHub repository to download an immediately usable version of this software.
Files (12.3 MB)
Name Size
12.3 MB Download
All versions This version
Views 485117
Downloads 1953
Data volume 2.8 GB36.8 MB
Unique views 361103
Unique downloads 383


Cite as