News

About igraph releases and other things

R/igraph 0.6.5

The version number is not a mistake, we jump to 0.6.5 from 0.6, for technical reasons.

Release Notes

igraph 0.6.5 is a minor release that contains only few big changes, and fixes a number of very annoying bugs.

See at the end for the complete list of changes. First let’s see the most important new features and changes.

Vertex shape API in R

It is now possible to create user-defined vertex shapes for drawing graphs in R. See vertex.shapes() in the R manual.

Convert graphs to data frames in R

Function get.data.frame() does the opposite of graph.data.frame(), it converts a graph to one or two data frames that contain vertex and/or edge data.

Pajek reader supports bipartite graphs

See more in the manual.

Graphical degree sequences

We added some new functions if a sequence of integers is graphial, i.e. it can be the degree sequence of a simple graph. See more in the manual.

k-regular random graphs

It is possible now to generate regular random graphs, faster than the general degree sequence based generator. See more in the manual.

Fitting power law distributions

This release includes the plfit library to maximum likelihood fit power laws to discrete or contiouous data. See more in the manual.

Speedup in R

Many basic graph operations (eg. printing the summary to the screen, querying attribute values) now avoid copying the graph, so these operations are now much faster in R.

R: new features and bug fixes

  • Added a vertex shape API for defining new vertex shapes, and also a couple of new vertex shapes.
  • Added the get.data.frame() function, opposite of graph.data.frame().
  • Added bipartite support to the Pajek reader and writer, closes bug #1042298.
  • degree.sequence.game() has a new method now: simple_no_multiple.
  • Added the is.degree.sequence() and is.graphical.degree.sequence() functions.
  • rewire() has a new method: loops, that can create loop edges.
  • Walktrap community detection now handles isolates.
  • layout.mds() returns a layout matrix now.
  • layout.mds() uses LAPACK instead of ARPACK.
  • Handle the ~ character in write.graph and read.graph. Bug #1066986.
  • Added k.regular.game().
  • Use vertex names to plot if no labels are specified in the function call or as vetex attributes. Fixes issue #1085431.
  • power.law.fit() can now use a C implementation.

  • Fixed a bug in barabasi.game() when out.seq was an empty vector.
  • Fixed a bug that made functions with a progress bar fail if called from another package.
  • Fixed a bug when creating graphs from a weighted integer adjacency matrix via graph.adjacency(). Bug #1019624.
  • Fixed overflow issues in centralization calculations.
  • Fixed a minimal.st.separators() bug, some vertex sets were incorrectly reported as separators. Bug #1033045.
  • Fixed a bug that mishandled vertex colors in VF2 isomorphism functions. Bug \#1032819.
  • Pajek exporter now always quotes strings, thanks to Elena Tea Russo.
  • Fixed a bug with handling small edge weights in shortest paths calculation in shortest.paths() (Dijkstra’s algorithm.) Thanks to Martin J Reed.
  • Weighted transitivity uses V(graph) as vids if it is NULL.
  • Fixed a bug when pie vertices were drawn together with other vertex shapes.
  • Speed up printing graphs.
  • Speed up attribute queries and other basic operations, by avoiding copying of the graph. Bug #1043616.
  • Fixed a bug in the NCV setting for ARPACK functions. It cannot be bigger than the matrix size.
  • layout.merge()s DLA mode has better defaults now.
  • Fixed a bug in layout.mds() that resulted vertices on top of each other.
  • Fixed a bug in layout.spring(), it was not working properly.
  • Fixed layout.svd(), which was completely defunct.
  • Fixed a bug in layout.graphopt() that caused warnings and on some platforms crashes.
  • Fixed community.to.membership(). Bug #1022850.
  • Fixed a graph.incidence() crash if it was called with a non-matrix argument.
  • Fixed a get.shortest.paths() bug, when output was set to both.
  • Motif finding functions return NA for isomorphism classes that are not motifs (i.e. not connected). Fixes bug #1050859.
  • Fixed get.adjacency() when attr is given, and the attribute has some complex type. Bug #1025799.
  • Fixed attribute name in graph.adjacency() for dense matrices. Bug #1066952.
  • Fixed erratic behavior of alpha.centrality().
  • Fixed igraph indexing, when attr is given. Bug #1073705.
  • Fixed a bug when calculating the largest cliques of a directed graph. Bug #1073800.
  • Fixed a bug in the maximal clique search, closes #1074402.
  • Warn for negative weights when calculating PageRank.
  • Fixed dense, unweighted graph.adjacency when diag=FALSE. Closes issue #1077425.
  • Fixed a bug in eccentricity() and radius(), the results were often simply wrong.
  • Fixed a bug in get.all.shortest.paths() when some edges had zero weight.
  • graph.data.frame() is more careful when vertex names are numbers, to avoid their scientific notation. Fixes issue #1082221.
  • Better check for NAs in vertex names. Fixes issue #1087215
  • Fixed some potential crashes in the DrL layout generator.
  • Fixed a bug in the Reingold-Tilford layout when the graph is directed and mode != ALL.
  • Eliminate gap between vertex and edge when plotting an edge without an arrow. Fixes #1118448.
  • Fixed a bug in has.multiple() that resulted in false negatives for some undirected graphs.
  • Fixed a crash in weighted betweenness calculation.
  • R plotting: fixed a bug that caused misplaced arrows at rectangle vertex shapes.