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.8.2

C/igraph 0.8.2, the second bugfix release of the 0.8 series, has arrived.

The sources can be obtained from the GitHub releases page.

This release includes no new features, only bug fixes and reliability improvements. The changelog is below.

Changed

  • Improved argument checking: igraph_all_st_mincuts() and igraph_sir()
  • Improved interruptibility: igraph_sir()

Fixed

  • igraph_community_leiden(): fixed crash when interrupting
  • The tests are now more robust. Some incorrect test failures were fixed when running on i386 architecture, or when using different versions of external dependencies.

Others

  • Improved error messages from igraph_sir().
  • Improved compatibility with more recent versions of Microsoft Visual C.

  C/igraph 0.8.1

We are happy to announce the first bugfix release of the 0.8 series of igraph's C core!

The sources can be obtained from the GitHub releases page.

This release includes no new features, only bug fixes and reliability improvements. The changelog is below.

Changed

  • Improved interruptability: igraph_degree_sequence_game()
  • Improved argument checking: igraph_forest_fire_game()
  • Updated the plfit library to version 0.8.1

Fixed

  • igraph_community_edge_betweenness(): fix for graphs with no edges (PR #1312)
  • igraph_bridges() now handles multigraphs correctly (PR #1335)
  • igraph_avg_nearest_neighbor_degree(): fix for memory leak in weighted case (PR #1339)
  • igraph_community_leiden(): fix crash bug (PR #1357)

Other

  • Included ACKOWLEDGEMENTS.md
  • Documentation improvements

  python-igraph 0.8.0

Release 0.8.0 of igraph's Python interface follows the recent release of version 0.8.0 of the C core with many bug fixes that have accumulated over the last five years, and an improved build process that does not require the C core of igraph to be downloaded at the time when python-igraph is installed; the tarball of python-igraph already bundles the appropriate version of the C core in it.

Including the C core directly in the source tarball also allows us to decouple python-igraph's version number from the version number of the C core in the future. This means that we no longer have to wait for a release of the C core in order to fix some bugs in the Python interface.

Precompiled Python wheels

Starting from this release, we will also aim to provide pre-compiled Python wheels for most platforms. The current release includes Python wheels for Python 2.7, 3.5, 3.6, 3.7 and 3.8 on Windows, macOS and Linux, so most users will not have to compile anything when installing python-igraph from pip. Currently the only limitation is that the Windows wheels do not support GraphML import; this will be fixed in the next patch release (0.8.1).

End of support for Python 2.7

python-igraph 0.8.x will also be the last version that supports Python 2.7. Since Python 2 has reached its end of life, we will drop support for Python 2 before python-igraph 0.9 so we can simplify some parts of the codebase where we needed to introduce additional code to support both Python versions.

As for Python 3, we are committing ourselves to supporting at least the last three minor releases of Python 3.

Although we are not suporting PyPy officially, python-igraph will also be tested with PyPy regularly in a CI environment, and we will strive to fix any issues that arise with PyPy. If you use python-igraph with PyPy and you are willing to become an official maintainer responsible for PyPy compatibility, please let us know in the community forum.

New community forum

Concurrently with the release of igraph 0.8, we have launched a new community forum, which replaces the mailing list as the main support channel. The community forum is also meant for users of python-igraph, so If you are a current python-igraph user or just interested in the project, please join!

We would like to thank everyone who reported issues, contributed features or fixes, or edited the documentation. igraph is an open-source project run by volunteers. As always, your contributions are very welcome!


  C/igraph 0.8.0

Release 0.8.0 of igraph's C core, coming almost five years after 0.7.1, is a major improvement with several new features, performance and robustness improvements, and many bug fixes. New functionality includes additional graph generators, functions for handling trees, new community detection methods, improved clique finding, spectral graph embedding, as well as several other features. Please see the changelog for more details.

We would like to thank everyone who reported issues, contributed features or fixes, or edited the documentation. igraph is an open-source project run by volunteers. As always, your contributions are very welcome!

Most people use igraph through its high-level interfaces for R, Python or Mathematica. A new release of the Python interface, incorporating all these improvements, is expected to be released in a few weeks. The R and Mathematica interfaces already include some of the improvements, and will continue to integrate more.

Concurrently with the release of igraph 0.8, we are launching a new community forum, which will replace the mailing list as the main support channel. If you are a current igraph user or just interested in the project, please join!


  IGraph/M 0.3.103

IGraph/M, a Mathematica interface for igraph is now officially one of the supported higher-level interfaces for igraph. We would like to thank Szabolcs Horvát for all his efforts dedicated to supporting igraph from Mathematica!

New releases of IGraph/M will be published on the GitHub page of the project.


  R/igraph 1.0.0

Release Notes

This is a new major release, with a lot of UI changes. We tried to make it easier to use, with short and easy to remember, consistent function names. Unfortunately this also means that many functions have new names now, but don't worry, all the old names still work.

Apart from the new names, the biggest change in this release is that most functions that used to return numeric vertex or edge ids, return vertex/edge sequences now. This requires some time to get used to and if you want the numeric ids instead, just use the as.vector() function on the vertex/edge sequences.

We will update the documentation on this site, once the package is on CRAN and available for all architectures.

More →


  Repositories at GitHub

A couple of days ago we changed how we use GitHub for igraph development. Our goal is to make igraph development more accessible, and our build process simpler. Instead of using a common repository for everything, we now use separate repos for the igraph C library, the R package and the Python extension. The igraph.org website was already in a separate repository, and we will also break up the R package, by putting loosely coupled parts in their own packages and repositories.

Main igraph repositories now:


  R/igraph 0.7.1

Release Notes

Some bug fixes, to make sure that the code included in 'Statistical Analysis of Network Data with R' works. See https://github.com/kolaczyk/sand

Detailed changes:

  • Graph drawing: fix labels of curved edges, issue #181.
  • Graph drawing: allow fixing edge labels at given positions, issue #181.
  • Drop the 'type' vertex attribute after bipartite projection, the projections are not bipartite any more, issue #255.
  • Print logical attributes in header properly (i.e. encoded by l, not x, which is for complex attributes. Issue #578.
  • Add a constructor for communities objects, see create.communities(). Issue #547.
  • Better error handling in the GraphML parser.
  • GraphML reader is a bit more lenient now; makes it possible to read GraphML files saved from yWorks apps.
  • Fixed a bug in constaint(), issue #580.
  • Bipartite projection now detects invalid edges instead of giving a cryptic error, issue #543.
  • Fixed the simplify argument of graph.formula(), which was broken, issue #586.
  • The function crossing() adds better names to the result, fixes issue #587.
  • The sir() function gives an error if the input graph is not simple, fixes issue #582.
  • Calling igraph functions from igraph callbacks is not allowed now, fixes issue #571.

  C/igraph 0.7.1

Release Notes

Some bug fixes, to make sure that the code included in 'Statistical Analysis of Network Data with R' works. See http://github.com/kolaczyk/sand

Detailed changes:

  • Better error handling in the GraphML parser.
  • GraphML reader is a bit more lenient now; makes it possible to read GraphML files saved from yWorks apps.
  • Fixed a bug in igraph_constaint(), issue #580.
  • Bipartite projection now detects invalid edges instead of giving a cryptic error, issue #543.
  • Bipartite projection now detects invalid edges instead of giving a cryptic error, issue #543.

  R/igraph 0.7.0

Release Notes

There are a bunch of new features in the library itself, and other important changes in the life of the project. Thanks everyone for sending code and reporting bugs!

igraph @ github

igraph's development has moved from Launchpad to github. This has actually happened several month ago, but never announced officially. The place for reporting bugs is at https://github.com/igraph/igraph/issues.

New homepage

igraph's homepage is now hosted at http://igraph.org, and it is brand new. We wanted to make it easier to use and modern.

More →


All news →