Universiteit Leiden

nl en

Research project

igraph - To modernize the igraph interfaces to make network analysis easier

igraph development focused on improving the most-used interfaces, which are Python, R, and Mathematica. Additionally, the developers aim to make the library and the interfaces easier to maintain, focusing on long-term sustainability. This ensures that igraph continues to be a useful tool for network scientists from various disciplines across the globe.

Duration
2021 - 2023
Contact
Vincent Traag
Partners

SixDegrees, Tamás Nepusz
Max Planck Institute of Molecular Cell Biology and Genetics, Szabolcs Horvát
University of New South Wales SydneyFabio Zanini
jitjit, Daniël Noom

igraph enables fast network analysis across the sciences. Its highly optimized core is programmed in C, on top of which igraph offers interfaces to high-level languages: R, Python and Mathematica.This is a unique feature among network libraries and greatly lowers the barrier to entry for new users, especially bioinformaticians. Over the last two years, the team has improved the C library considerably, and it is maturing towards a stable 1.0 release, as well as attracting new contributors, some of whom have an active interest in maintaining and further developing igraph. However, the high-level language interfaces are lagging behind: none expose the full functionality of the C core and they rely on legacy code that is difficult to maintain and time consuming to expand. This project aims to modernize these interfaces to construct a scalable and consistent high-level API with feature parity with the C core. The C library itself will be improved to better support the high-level interfaces. At the moment, most functionality in the Python interface is concentrated in a single monolithic class, impeding users to find the desired functionality. In addition, the Python interface is completely manually written at the moment, making its maintenance relatively time-consuming. The team plans to change this to a partly automated approach based on code generation, which makes the Python interface easier to maintain and extend and more flexible at the same time.

ipb@cwts.leidenuniv.nl

This website uses cookies.  More information.