From: Gábor Csárdi <csardi.gabor_at_gmail.com>

Date: Sun, 17 Jun 2012 23:19:54 -0400

Major new features

R: Other new features

R: New or updated functions

R-packages mailing list

R-packages_at_r-project.org

https://stat.ethz.ch/mailman/listinfo/r-packages Received on Mon 18 Jun 2012 - 21:37:37 EST

Date: Sun, 17 Jun 2012 23:19:54 -0400

Dear All,

we have released version 0.6 of the igraph package today. This is a major new version, with a lot of new features, and (sadly) it is not completely compatible with code that was written for the previous igraph versions. (See "Major new features" below for details.)

I have included below a list of (bigger) changes. Please see the details in the release notes and the NEWS section at the igraph homepage: http://igraph.sf.net

Best Regards,

Gabor

Major new features

- Vertices and edges are numbered from 1 instead of 0. Note that this makes most of the old R igraph code incompatible with igraph 0.6. If you want to use your old code, please use the igraph0 package. See more at http://igraph.sf.net/relnotes-0.6.html.
- The '[' and '[[' operators can now be used on igraph graphs, for '[' the graph behaves as an adjacency matrix, for '[[' is is treated as an adjacency list. It is also much simpler to manipulate the graph structure, i.e. add/remove edges and vertices, with some new operators. See more at ?graph.structure.
- In all functions that take a vector or list of vertices or edges, vertex/edge names can be given instead of the numeric ids.
- New package 'igraphdata', contains a number of data sets that can be used directly in igraph.
- Igraph now supports loading graphs from the Nexus online data repository, see nexus.get(), nexus.info(), nexus.list() and nexus.search().
- All the community structure finding algorithm return a 'communities' object now, which has a bunch of useful operations, see ?communities for details.
- Vertex and edge attributes are handled much better now. They are kept whenever possible, and can be combined via a flexible API. See ?attribute.combination.
- R now prints igraph graphs to the screen in a more structured and
informative way. The output of summary() was also updated
accordingly.

R: Other new features

- It is possible to mark vertex groups on plots, via shading. Communities and cohesive blocks are plotted using this by default.
- Some igraph demos are now available, see a list via 'demo(package="igraph")'.
- igraph now tries to select the optimal layout algorithm, when plotting a graph.
- Added a simple console, using Tcl/Tk. It contains a text area for status messages and also a status bar. See igraph.console().
- Reimplemented igraph options support, see igraph.options() and getIgraphOpt().
- Igraph functions can now print status messages.

R: New or updated functions

Community detection

- The multi-level modularity optimization community structure detection algorithm by Blondel et al. was added, see multilevel.community().
- Distance between two community structures: compare.communities().
- Community structure via exact modularity optimization, optimal.community().
- Hierarchical random graphs and community finding, porting the code from Aaron Clauset. See hrg.game(), hrg.fit(), etc.
- Added the InfoMAP community finding method, thanks to Emmanuel Navarro for the code. See infomap.community().

Shortest paths

- Eccentricity (eccentricity()), and radius (radius()) calculations.
- Shortest path calculations with get.shortest.paths() can now return the edges along the shortest paths.
- get.all.shortest.paths() now supports edge weights.

Centrality

- Centralization scores for degree, closeness, betweenness and eigenvector centrality. See centralization.scores().
- Personalized Page-Rank scores, see page.rank().
- Subgraph centrality, subgraph.centrality().
- Authority (authority.score()) and hub (hub.score()) scores support edge weights now.
- Support edge weights in betweenness and closeness calculations.
- bonpow(), Bonacich's power centrality and alpha.centrality(), Alpha centrality calculations now use sparse matrices by default.
- Eigenvector centrality calculation, evcent() now works for directed graphs.
- Betweenness calculation can now use arbitrarily large integers, this is required for some lattice-like graphs to avoid overflow.

Input/output and file formats

- Support the DL file format in graph.read(). See http://www.analytictech.com/networks/dataentry.htm.
- Support writing the LEDA file format in write.graph().

Plotting and layouts

- Star layout: layout.star().
- Layout based on multidimensional scaling, layout.mds().
- New layouts layout.grid() and layout.grid.3d().
- Sugiyama layout algorithm for layered directed acyclic graphs, layout.sugiyama().

Graph generators

- New graph generators: static.fitness.game(), static.power.law.game().
- barabasi.game() was rewritten and it supports three algorithms now, the default algorithm does not generate multiple or loop edges. The graph generation process can now start from a supplied graph.
- The Watts-Strogatz graph generator, igraph_watts_strogatz() can now create graphs without loop edges.

Others

- Added the Spectral Coarse Graining algorithm, see scg().
- The cohesive.blocks() function was rewritten in C, it is much faster now. It has a nicer API, too. See demo("cohesive").
- Added generic breadth-first and depth-first search implementations with many callbacks, graph.bfs() and graph_dfs().
- Support vertex and edge coloring in the VF2 (sub)graph isomorphism functions (graph.isomorphic.vf2(), graph.count.isomorphisms.vf2(), graph.get.isomorphisms.vf2(), graph.subisomorphic.vf2(), graph.count.subisomorphisms.vf2(), graph.get.subisomorphisms.vf2()).
- Assortativity coefficient, assortativity(), assortativity.nominal() and assortativity.degree().
- Vertex operators that work by vertex names: graph.intersection.by.name(), graph.union.by.name(), graph.difference.by.name(). Thanks to Magnus Torfason for contributing his code!
- Function to calculate a non-induced subraph: subgraph.edges().
- More comprehensive maximum flow and minimum cut calculation, see functions graph.maxflow(), graph.mincut(), stCuts(), stMincuts().
- Check whether a directed graph is a DAG, is.dag().
- has.multiple() to decide whether a graph has multiple edges.
- Added a function to calculate a diversity score for the vertices, graph.diversity().
- Graph Laplacian calculation (graph.laplacian()) supports edge weights now.
- Biconnected component calculation, biconnected.components() now returns the components themselves.
- bipartite.projection() calculates multiplicity of edges.
- Maximum cardinality search: maximum.cardinality.search() and chordality test: is.chordal()
- Convex hull computation, convex.hull().
- Contract vertices, contract.vertices().

R-packages mailing list

R-packages_at_r-project.org

https://stat.ethz.ch/mailman/listinfo/r-packages Received on Mon 18 Jun 2012 - 21:37:37 EST

*
This archive was generated by hypermail 2.2.0
: Mon 18 Jun 2012 - 21:40:01 EST
*