News

Introduction

This is another library for creating and manipulating graphs. There is simply no other graph library out there which can be handle graphs of the size the author is confronted with efficiently. Whenever possible igraph tries to be also user friendly and portable.

igraph started as an additional package to the GNU R statistical environment, and still some functions which are hard to implement in C are available only in R (like interactive graphics). Most functions are however now written in C and they can be compiled without R as a separate library. Still the author highly recommends the R package version, as it is a sophisticated, well designed modern system.

The advantage of the C version is that it is portable, can be used with other mathematical software (as soon as somebody writes the interfaces to it), and for large scale scientific computation in the Condor environment we are using here at KFKI.

igraph also features a Python interface, and other interfaces can be added without too much pain.

Features

  • igraph contains functions for generating regular and random graphs according to known algorithms and models in the network theory literature.

  • igraph provides routines for manipulating graphs, adding and removing edges and vertices.

  • a set of structural property calculation functions like degree, betweenness, etc. are also included.

  • force based layout generators are included for smaller graphs, another method is expected to be added for large graphs soon.

  • a set of conversion functions are also included and will be extended shortly.

  • igraph iterators provide a simple and efficient way of walking through graphs.

  • igraph is well documented both for users and developers.

  • igraph is open source and distributed under GNU GPL.

Download

The latest released version of the igraph library is @VERSION@. The source code can be obtained from here: igraph-@VERSION@.tar.gz. It was tested on various Linux flavours, SunOS 5.8, and Cygwin.

If you are using Debian Linux, feel free to use the packages provided in our package repository. The repository is currently located here. You must add the following lines to /etc/apt/sources.list:

deb http://cneurocvs.rmki.kfki.hu /packages/binary/
deb-src http://cneurocvs.rmki.kfki.hu /packages/source/

Binary packages are built for i386 architecture. Source packages should compile on x64 architecture as well.

You can also get the latest development version from http://cneurocvs.rmki.kfki.hu/arch/csardi@rmki.kfki.hu--2004-public, with the tla arch revision control system.

The R source package version of the latest release is available here: igraph_@VERSION@.tar.gz. A binary R package for windows can be obtained from here: igraph_@VERSION@.zip.

The Python interface can be downloaded from its Python Cheese Shop page. Note that this is a standalone package and you don't need to download and install the igraph library at all.

Contacts

Please send questions, comments and bug reports to the igraph-help mailing list or to Gabor Csardi <csardi@rmki.kfki.hu>. The mailing list is preferred.

Documentation

Igraph is documented in the igraph Reference Manual. This manual is for those who want to use the C library directly. You can download it as a HTML bundle, a PDF file, a GNU info document, or browse it online.

The original XML DocBook format of the manual can be obtained by downloading the latest igraph development version from http://cneurocvs.rmki.kfki.hu/arch/csardi@rmki.kfki.hu--2004-public.

There is also an igraph tutorial under development, you can read the current version online here. PDF and other versions are also planned.

The R package documentation is included in the package but can also be browsed online here. It is available in PDF format as well.

The Python package documentation is provided in the docstrings using Epytext markup, but it can also be browsed online here. It is available in PDF format as well.

Screenshots

The first picture is a screenshot of the tkplot interactive graph manipulation facility which is part of the R inteface. The Zachary Karate Club data is plotted. The vertex placement was calculated by the Kamada-Kawai algorithm. The size of the vertices is proportional to their betweenness centrality index.

The second and third plots are examples from the paper T. M. J. Fruchterman and E. M. Reingold. Graph drawing by force-directed placement. Software - Practic and Experience, 21, 1129-1164, 1991. http://citeseer.ist.psu.edu/fruchterman91graph.html

The second was made with the Fruchterman-Reingold, the third with the Kamada-Kawai vertex placement algorithm.

The fourth image is a screenshot of the Python interface.

Click on the images to see the bigger picture.

Videos

The first video shows how fast igraph can generate various random graphs, the second introduces some bits of the new attribute and vertex/edge sequence mechanism introduced in version 0.2.

Both videos use the R interface of igraph.

Requirements

For using the igraph C library the only requirement is a fairly recent C library. Python version at least python 2.4 is needed for the python interface.

For compiling igraph from source you'll need a fairly modern C compiler and some standard unix tools: sed, touch, chmod, etc. GNU bison is also needed, at least version 1.35 or newer.

Mailing Lists

There are two igraph mailing lists: igraph-help and igraph-announce.

igraph-help is for general igraph discussion and questions, help, suggestions, etc. See its page at savannah for subscription and archives.

igraph-announce is a very low-traffic mailing list for important announcements only, such as a new igraph release for example. igraph-announce is a read-only list, you cannot post any messages to it. See its page at savannah for subscription and archives.

Links

Pajek

Pajek is an excellent network analysis and vizualization software writen for Windows (but it runs in Wine under Linux as well). See the Pajek homepage. It can handle quite large (millions of vertices) graphs smoothly. Its main drawbacks are that (1) it is interactive, (2) closed source, (3) hard to extend.

Ucinet

Ucinet is a collection of graph analysis software, it also includes Pajek. It's intended audience is social scientists, and cannot handle large graphs well. It can be used freely for 30 days and it is closed source. Homepage: http://www.analytictech.com/ucinet.htm.

The Boost Graph Library

This is an impressive library written in C++ for manipulating graphs. It is quite fast, and can handle moderately large graphs. A good choice for anyone who likes programming in C++, but it also has interfaces from some higher level languages. See http://www.boost.org/libs/graph/doc/index.html.

NetworkX

NetworkX is another nice piece of software written in Python. See https://networkx.lanl.gov/.

SNA

SNA (Social Network Analysis) is an extension package to the GNU R system. It is useful for small graphs only, as it uses adjacency matrices. See http://erzuli.ss.uci.edu/R.stuff/ for more.

Copying

IGraph library. Copyright (C) 2003, 2004, 2005, 2006 Gabor Csardi <csardi@rmki.kfki.hu> MTA RMKI, Konkoly-Thege Miklos st. 29-33, Budapest 1121, Hungary

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA