igraph – The network analysis package

igraph is a collection of network analysis tools with the emphasis on efficiency, portability and ease of use. igraph is open source and free. igraph can be programmed in R, Python, Mathematica and C/C++.


igraph R package python-igraph IGraph/M igraph C library

  C/igraph 0.9.5

C/igraph 0.9.5, the fifth bugfix release of the 0.9 series, has arrived.

The source can be obtained from the GitHub releases page.

This release includes bug fixes and performance improvements only.

Fixed

  • igraph_reindex_membership() does not allow negative membership indices any more.

  • igraph_rewire_directed_edges() now generates multigraphs when edge directions are ignored, to make it consistent with the directed case.

  • Fixed a bug in igraph_gomory_hu_tree() that returned only the equivalent flow tree instead of the cut tree.

  • Fixed a bug in the IGRAPH_TO_UNDIRECTED_COLLAPSE mode of igraph_to_undirected() that provided an incorrect merge vector to the attribute handler, leading to problems when edge attributes were merged using an attribute combination.

  • Fixed the behaviour of the IGRAPH_ENABLE_LTO option when it was set to AUTO; earlier versions had a bug where AUTO simply checked whether LTO is supported but then did not use LTO even if it was supported.

  • When using igraph from a CMake project, it is now checked that the project has the C++ language enabled. This is necessary for linking to igraph with CMake.

Other

  • Improved the root selection method for disconnected graphs in the Reingold-Tilford layout (#1836). The new root selection method provides niceer results if the graph is not a tree, although it is still recommended to use the Sugiyama layout instead, unless the input graph is almost a tree, in which case Reingold-Tilfold may still be preferred.

  • igraph_decompose() is now much faster for large graphs containing many isolates or small components.

  • igraph_largest_cliques() and igraph_clique_number() were re-written to use igraph_maximal_cliques_callback() so they are much faster now.

  • The vendored GLPK has been upgraded to GLPK 5.0.

  • Documentation improvements.


  python-igraph is now simply igraph on PyPI

python-igraph 0.9.8, the sixth bugfix release of the 0.9 series, has arrived.

The only significant change in this release is that the Python interface of igraph has been renamed from python-igraph to igraph on PyPI. We are very grateful to Patrick Fuller, the previous owner of the igraph package on PyPI for giving up the ownership of igraph and letting us use the name instead.

The preferred way of installing the Python interface is still via pip; typing pip install igraph should install a pre-compiled Python wheel on most supported platforms (Windows, Linux and macOS). The pre-compiled wheels and the source code are also available from the Python Package Index page.

python-igraph will keep on working on PyPI until September 1, 2022, but it is now only a stub package that depends on igraph. Running pip install python-igraph will in turn install the matching version of the igraph package from PyPI.

  • Projects listing python-igraph in their dependencies should migrate to using igraph as soon as possible to keep on receiving updates after September 1, 2022.

  • Maintainers who provide pre-packaged versions of python-igraph in Linux distributions should switch to following the igraph package on PyPI instead of python-igraph.


  python-igraph 0.9.7

python-igraph 0.9.7, the fifth bugfix release of the 0.9 series, has arrived.

The preferred way of installing the Python interface is via pip; typing pip install python-igraph should install a pre-compiled Python wheel on most supported platforms (Windows, Linux and macOS). The pre-compiled wheels and the source code are also available from the Python Package Index page.

See the changelog on Github for relevant changes in 0.9.7:

This release also adds support for Python 3.10 and provides experimental native Python wheels for ARM64 and Apple Silicon CPUs. Note that the Apple Silicon wheels are not tested in a CI environment yet; this will hopefully change in the near future when Github Actions starts supporting Apple Silicon. Until then, feel free to report any issues that you find with Apple Silicon wheels (or any other wheel) in the issue tracker on Github.


  R/igraph 1.2.7

In an attempt to bring the R interface of igraph closer to the recent developments of the C core, we have released R-igraph 1.2.7, the seventh bugfix release of the 1.2 series. This version updates the C core of igraph within the R interface to version 0.8.5, which, while still several versions behind the mainline C core, fixes a range of bugs compared to the previous release and introduces a few new functions.

This release is only the beginning; in the next few months we aim to process most of the issues on the Github issue tracker, close the ones that are not relevant any more, fix the ones that should be fixed, and then proceed with updating the R interface to version 0.9.4 of the C core, which is the most recent C core version at the time of writing.

More →


  igraph docs for multiple versions

The online docs for igraph on this website now include multiple versions of API documentation and tutorials for the C core and the R and Python interfaces.

To change version, click on the new button on the top left of the page on the relevant pages:


  Additional funding for igraph

The igraph project is proud to announce that the Chan Zuckerberg Initiative continues to fund the project in their program on Essential Open Source Software for Science. The project will receive two grants of $400,000 over the course of the next two years. One grant will help to further develop and maintain the igraph project. The other grant will help to diversify the pool of contributors and maintainers of the project, which is jointly coordinated with Women in Network Science, and will be led by Brooke Foucault Welles.

Last year, the core library of igraph was enormously improved, making the library easier to build, easier to maintain and easier to use. However, most users are not using the C core directly, but are using it through one of the interfaces: Python, R or Mathematica. The CZI grant will support the igraph development team on improving these interfaces, by making them more intuitive to use and by integrating them more closely in the host language. Additionally, development efforts will be aimed at making the library and the interfaces easier to maintain, focusing on long-term sustainability. This ensures that igraph continues to be a useful tool for network scientists from various disciplines across the globe.

Having people committed to maintain and further develop igraph is critical to ensure its long-term viability. We made steps towards building a more inclusive and engaged community by opening a forum dedicated to igraph. We aim to enlarge and diversify the team of contributors and maintainers of the project. Making it easier to start using igraph and contributing to igraph is an important step. Improving documentation and tutorials helps achieve that goal, but we will also actively organize workshops for users and contributors, with a specific focus on women and non-binary people, and engage more actively on the community forum. Additionally, a mentorship programme will be setup specifically to facilitate women and non-binary people to use and contribute to igraph, paving the way for them to become maintainers of igraph. The CZI grant will enable us to engage more people in achieving these objectives.


  python-igraph 0.9.6

python-igraph 0.9.6, the fourth bugfix release of the 0.9 series, has arrived.

The preferred way of installing the Python interface is via pip; typing pip install python-igraph should install a pre-compiled Python wheel on most supported platforms (Windows, Linux and macOS). The pre-compiled wheels and the source code are also available from the Python Package Index page.

This release provides a fix for a single plotting issue with the Matplotlib backend that was accidentally introduced in 0.9.5. See the changelog on Github for more details:

This release also provides experimental native Python wheels for Apple Silicon CPUs. Note that the Apple Silicon wheels are not tested in a CI environment yet; this will hopefully change in the near future when Github Actions starts supporting Apple Silicon. Until then, feel free to report any issues that you find with Apple Silicon wheels (or any other wheel) in the issue tracker on Github.


  python-igraph 0.9.5

python-igraph 0.9.5, the third bugfix release of the 0.9 series, has arrived.

The preferred way of installing the Python interface is via pip; typing pip install python-igraph should install a pre-compiled Python wheel on most supported platforms (Windows, Linux and macOS). The pre-compiled wheels and the source code are also available from the Python Package Index page.

See the changelogs on Github for relevant changes in 0.9.5:

This release also provides experimental native Python wheels for Apple Silicon CPUs. Note that the Apple Silicon wheels are not tested in a CI environment yet; this will hopefully change in the near future when Github Actions starts supporting Apple Silicon. Until then, feel free to report any issues that you find with Apple Silicon wheels (or any other wheel) in the issue tracker on Github.


  python-igraph 0.9.4

python-igraph 0.9.4, the second bugfix release of the 0.9 series, has arrived. (Yes, we skipped 0.9.2 and 0.9.3).

The preferred way of installing the Python interface is via pip; typing pip install python-igraph should install a pre-compiled Python wheel on most supported platforms (Windows, Linux and macOS). The pre-compiled wheels and the source code are also available from the Python Package Index page.

This release brings python-igraph up-to-date with igraph 0.9.4. See the changelogs on Github for relevant changes in 0.9.4:

This release is also the first one that provides experimental native Python wheels for Apple Silicon CPUs. Note that the Apple Silicon wheels are not tested in a CI environment yet; this will hopefully change in the near future when Github Actions starts supporting Apple Silicon. Until then, feel free to report any issues that you find with Apple Silicon wheels (or any other wheel) in the issue tracker on Github.


  C/igraph 0.9.4

C/igraph 0.9.4, the fourth bugfix release of the 0.9 series, has arrived.

The source can be obtained from the GitHub releases page.

This release includes bug fixes only.

Changed

  • Unweighted transitivity (i.e. clustering coefficient) calculations now ignore multi-edges and edge directions instead of rejecting multigraphs and directed graphs.
  • igraph_transitivity_barrat() now returns an error code if the input graph has multiple edges (which is not handled correctly by the implementation yet).

Fixed

  • igraph_local_scan_k_ecount() now handles loops correctly.
  • igraph_transitivity_avglocal_undirected() is no longer slower than igraph_transitivity_local_undirected().
  • Worked around an invalid warning issued by Clang 9.0 when compiling with OpenMP.

Other

  • Documentation improvements.

All news →