News

About igraph releases and other things

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.

Other major changes:

  • A generic make_graph() function to create graphs.
  • A generic layout_() (not the underscore!) function to create graph layouts, see also add_layout_().
  • The igraph data type has changed. You need to call upgrade_graph() on graphs created with previous igraph versions.
  • Vertex and edge sequence operations: union, intersection, etc.
  • Vertex and edge sequences can only be used with the graphs they belong to. This is now strictly checked.
  • Vertex and edge sequences have a [[ operator now, for easy viewing of vertex/edge metadata.
  • Vertex and edge sequences are implemented as weak references. See also the as_ids() function to convert them to simple ids.
  • Vertex order can be specified for the circle layout now.
  • Davidson-Harel layout algorithm layout_with_dh().
  • GEM layout algorithm layout_with_gem().
  • Neighborhood functions have a mindist parameter for the smallest distance to consider.
  • all_simple_paths() function to list all simple paths in a graph.
  • triangles() lists all triangles in a graph.
  • Fruchterman-Reingold and Kamada-Kawai layout algorithms rewritten from scratch. They are much faster and follow the original publications closely.
  • Nicer printing of graphs, vertex and edge sequences.
  • local_scan() function calculates scan statistics.
  • Embeddings: embed_adjacency_matrix() and embed_laplacian_matrix().
  • Product operator: *, the same graph multiple times. Can be also used as rep().
  • Better default colors, color palettes for vertices.
  • Random walk on a graph: random_walk()
  • adjacenct_vertices() and incident_edges() functions, they are vectorized, as opposed to neighhors() and incident().
  • Convert a graph to a long data frame with as_long_data_frame().