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

  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.

  C/igraph 0.9.3

C/igraph 0.9.3, the third 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.

Added

  • OpenMP is now enabled and used by certain functions (notably PageRank calculation) when the compiler supports it. Set IGRAPH_OPENMP_SUPPORT=OFF at configuration time to disable this.

Fixed

  • igraph_get_incidence() no longer reads and writes out of bounds when given a non-bipartite graph, but gives a warning and ignores edges within a part.
  • igraph_dyad_census() no longer reports an overflow on singleton graphs, and handles loops and multigraphs correctly. Undirected graphs are handled consistently and will no longer give a warning.
  • igraph_vector_lex_cmp() and igraph_vector_colex_cmp() dereferenced their arguments only once instead of twice, and therefore did not work with igraph_vector_ptr_sort().
  • igraph_maximal_cliques_subset() and igraph_transitivity_barrat() corrupted the error handling stack (“finally stack”) under some circumstances.
  • CMake package files did not respect CMAKE_INSTALL_LIBDIR. This only affected Linux distributions which install into lib64 or other locations instead of lib.
  • The parser sources could not be generated when igraph was in a location that contained spaces in its path.
  • igraph no longer links to the math library (libm) when this is not necessary.
  • _CRT_SECURE_NO_WARNINGS is now defined during compilation to enable compatibility with UWP.
  • Fixed a compilation issue on MSYS / MinGW when link-time optimization was enabled and the MSYS Makefiles CMake generator was used. Some source files in igraph were renamed as a consequence, but these should not affect users of the library.

Deprecated

  • igraph_rng_min() is now deprecated; assume a constant zero as its return value if you used this function in your own code.

Other

  • Updated the vendored CXSparse library to version 3.2.0

  C/igraph 0.9.2

C/igraph 0.9.2, the second 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. We have also added support for CMake package files, making it easier to use igraph in CMake-based projects.

Added

  • CMake package files are now installed with igraph. This allows find_package(igraph) to find igraph and detect the appropriate compilation options for projects that link to it.

Fixed

  • igraph can now be used as a CMake subproject in other CMake-based projects.
  • The documentaton can now be built from the release tarball.
  • Configuration will no longer fail when the release tarball is extracted into a subdirectory of an unrelated git repository.
  • The generated pkg-config file was incorrect when CMAKE_INSTALL_<dir> variables were absolute paths.
  • On Unix-like systems, the library name is now libigraph.so.0.0.0, as it used to be for igraph 0.8 and earlier.
  • Fixed a return type mismatch in parser sources, and fixed some warnings with recent versions of gcc.
  • Fixed a bug in igraph_get_shortest_paths_dijkstra() and igraph_get_shortest_paths_bellman_ford() that returned incorrect results for unreachable vertices.

Other

  • Improved installation instructions and tutorial.

All news →