Skip to main content
PLOS One logoLink to PLOS One
. 2026 Aug 4;21(8):e0355108. doi: 10.1371/journal.pone.0355108

igraph 1.0 enables fast and robust network analysis across programming languages

Michael Antonov 1,#, Gábor Csárdi 2, Szabolcs Horvát 3,4,*,#, Kirill Müller 1,#, Tamás Nepusz 5,#, Daniel Noom 6,#, Maëlle Salmon 1,#, Vincent Traag 7,#, Brooke Foucault Welles 8,#, Fabio Zanini 9,10,*,#
Editor: Amit Nanavati11
PMCID: PMC13436765  PMID: 42550872

Abstract

Networks or graphs are widely used across the sciences to represent relationships of many kinds. The igraph (https://igraph.org) software library supports graph construction, analysis, and visualisation, combining fast and robust performance with a low entry barrier. igraph pairs a fast core written in C with beginner-friendly interfaces in Python, R, and Mathematica. After twenty years of development, igraph 1.0 has been released, enabling public access to a robust and stable network analysis with over a million monthly downloads. Thanks to its cross-language design, igraph delivers both speed and flexibility: it can handle billions of edges, supports interactive plotting, integrates with notebooks, facilitates conversions to and from other network libraries, includes a rich library of graph layout and community detection algorithms, and has a detailed documentation including non-English translations. Modern testing features such as continuous integration, address sanitizers, stricter typing, and memory-managed vectors have also increased robustness. Hundreds of bug reports have been fixed and a community forum has been opened to connect users and developers. Specific effort has been made to broaden use and community participation by women, non-binary people, and other demographic groups typically underrepresented in open source software.

Introduction

Networks or graphs are widely used across multiple scientific disciplines. In mathematics, graphs have been studied for centuries from a theoretical perspective and are still a topic of considerable interest. Random graphs, initially defined by Erdős and Rényi [1], and more recently scale-free stochastic networks, have sparked a new wave of interest aimed at understanding the analytical properties of graphs generated according to statistical rules, with real world applications in engineering, finance, and biology [2]. In biology and medicine, the genomics revolution driven by next-generation sequencing has brought graphs into the spotlight for a wide array of applications, from De Bruijn graphs for genome assembly [3] to cell similarity networks in cell atlases [4]. Social network analysis has a long history, dating back to Moreno’s sociometry [5], and includes the widespread study of social systems, ranging from friendships to organizations and social movements [6–8]. The advent of large online behavioural data opened up many new possibilities, helping give rise to computational social science [9], in which networks play a pivotal role.

Open source computational tools are of central importance in the investigation of graphs. In the case of random graphs, computers enable the simulation of thousands of such graphs at scale and allow empirical computations of their statistical properties. Real-world networks such as protein-protein interactions, single-cell transcriptomics, citation networks or online social networks have thousands or even millions of vertices. High-performance and efficient software libraries are therefore absolutely necessary for their analysis and manipulation. A few general-purpose graph analysis libraries are widely used. NetworkX is a popular library in the Python community [10] that is written in pure Python. Graph-tool is also used by many researchers for its faster speed and its focus on stochastic networks [11]. NetworKit is a fast Python/C++ library that includes parallelized algorithms [12] and rustworkx combines a Python, NetworkX-like API with a Rust core library [13]. StatNet is an R library geared towards dynamic networks and statistical inference that is popular among social scientists [14]. Boost Graph, which implements about a dozen core functions [15], and SNAP, which includes about 100 functions and was last updated in 2020 [16], are available in C++. In addition to graph analysis, graph visualisation is also essential across multiple scientific disciplines. Cytoscape is a popular choice for advanced graph visualization [17], while D3.js can be used from JavaScript to embed networks in a web page [18]. Gephi is a popular network analysis tool with a central role for graph visualization [19], and both NetworkX and graph-tool can produce relatively simple visualisations from Python. Despite this vibrant software ecosystem, there is a strong demand for a general-purpose graph analysis library that is fast, consistent across programming languages, cross-platform, easy to install, and well documented. igraph meets these needs by providing efficient implementations of widely used algorithms, many of which are not available in any other library, including for determining shortest paths [20], vertex centrality [21,22], cycle bases [23], motif finding [24], clique finding [25], community detection [26], and graph layout [27].

Materials and methods

Performance and comparison tests

Scalability tests for Fig 1 were performed on a tower server with 512 GB of RAM and using a single Intel Xeon Platinum 8160T CPU at 2.10GHz. Comparisons against scikit-network (Supplementary Figures) were performed on a laptop with 32GB RAM and Intel Core Ultra 7 265H cpus. All tests were run 10 times with memory deallocation/garbage collection between runs and libraries. Library versions: igraph 1.0.0, networkx 3.6.1, scikit-network 0.33.0 and graph-tool 2.98 (Supplementary Figures).

Fig 1. Runtime scalability of igraph.

Fig 1

(A-B) Runtimes to construct (A) and analyse (B) graphs of varying sizes. Top row: Construction runtime of an undirected Bethe lattice or regular tree, an Erdős–Rényi or random graph and a directed ring graph using the igraph C core directly and, for the latter, the Python igraph interface and the networkx library. Bottom row: Analysis runtime – excluding graph construction time – for size-3 motif search, transitivity, and Leiden clustering using the C core. Each graph size was tested 10 times (crosses). Solid lines: averages for each graph size. (C) ratios of average runtimes between igraph (python interface) and networkx for four example algorithms across graph sizes (1-30,000 nodes).

Graph layouts

To demonstrate the graph layout capabilities of igraph, we constructed graphs of increasing size. Each graph is built as a set of 10 groups of vertices that are tightly connected internally and with random distance between groups. The 2D Fruchterman-Reingold algorithm (force variant for graphs with less than 500 nodes, energy variant for larger graphs) and the UMAP algorithm [27] were run on the same graph for sizes up to 1,000 vertices. For the 100,000-node graph, only UMAP was run for performance reasons. Notice that UMAP is not designed to work on very small (e.g., 30-node) graphs. All plots use the new matplotlib backend for igraph.

Package statistics

Download statistics for PyPI were computed using PyPI stats (https://pypistats.org/). Download statistics for R were computed using cranlogs.app (https://github.com/r-hub/cranlogs.app). Counts of edited lines, forks, and stars were computed using GitHub’s online interface. The number of functions in Python were estimated using the inspect standard module. The number of functions in R were estimated using lsf.str(“package:igraph”).

Results

Growing a large userbase across four programming languages

Since the initial publication in 2006 [28], igraph has grown in multiple areas, including the C core, extensions in Python, R, and Mathematica [29]. The codebase has had around 3 million lines of code edited across approximately 10,000 versioning commits. As of June 2026, the four main code repositories, one for each programming language, have been forked approximately 800 times and starred 3,000 times. During that month, the Python and R packages were downloaded around 2.1 million and 600 thousand times respectively, which is a conservative estimate given that tracking downloads is challenging.

Scaling network analysis to billions of edges through a fast C core

igraph is based on a low-level core codebase in C, on top of which higher-level language interfaces (Python, R, Mathematica) are built to leverage high-level languages’ conciseness without loss of speed (see S1 Fig for a cross-language example). The C core includes approximately 1,100 user-facing functions. Since 2006, three thousand files have been edited and 154 individual features added to the C core (S1 Table). The build system has been designed to enable easy cross-platform installation from source in Linux, macOS and Windows. Precompiled packages are also available at the system level (e.g., Ubuntu, Debian, and Alpine Linux, Homebrew and MacPorts for macOS, and vcpkg for Windows) and the language-specific extensions are available on PyPI for Python, the comprehensive R network (CRAN) for R, and as a Paclet for Mathematica.

To reach the largest audience, igraph relies on a compile-time configurable integer size. This enables support of users on 32-bit embedded devices but also 64-bit desktops, laptops, and servers, enabling analysis of networks with billions of vertices and edges. As an example, constructing an undirected Bethe lattice with 3.2 billion edges took 4 minutes on a server using a single CPU core (Fig 1A). Similar results were obtained when constructing a random graph with 400 million edges and a directed ring graph with 3.3 billion edges (Fig 1A). In addition to graph construction routines, several graph analysis routines were also assessed for runtime (Fig 1B) performance and memory usage (S2 Fig). Comparison of direct usage of the C API versus the igraph Python interface showed significant overhead for small graphs, reducing the performance of igraph’s Python code to networkx’s speed, but very little overhead for large graphs, where igraph’s execution is approximately 10 times faster than networkx. igraph’s R interface is more limited in terms of network size due to R’s internal usage of double precision floating point numbers to represent integers. To further assess igraph’s speed against networkx, we computed runtime ratios for four algorithms across a wide range of graph sizes (1–30 thousand nodes) and found that igraph was faster in essentially all cases, usually by approximately one order of magnitude (Fig 1C and S3 Fig). Comparisons with graph-tool and scikit-network were also performed (S4 Fig).

igraph includes hundreds of functions for graph construction, I/O, structural analysis, paths or traversals, community detection, and layouts. Community detection includes, among others, Leiden [26], multilevel (or Louvain) [30] and fluid communities [31]. Graph layout algorithms include Fruchterman-Reingold, multidimensional scaling [32], the Large Graph Layout [33], Davidson-Harel [34], the GEM layout [35], Kamada-Kawai, and an implementation of Uniform Manifold Approximation and Projection (UMAP) [27] that does not depend on cross-language packages such as numba and llvmlite.

Broad accessibility to R, Python, and Mathematica users

The Python interface, which includes around 600 functions, is compatible with Jupyter notebooks, a browser-based environment for scientific computing and rapid prototyping that supports both R and Python and is widely used in education, research, and industry [36]. The Python visualisation layer has also been redesigned to support not only the existing Cairo backend but also matplotlib [37] and plotly [38], which enable interactive plots (e.g., zoom and pan) and animations (Fig 2). Furthermore, igraph’s Python interface supports in-memory import/export of graphs to and from networkx [10] and graph-tool [11], two popular network analysis libraries (Fig 3A). Conversions preserve graph, vertex, and edge attributes, making it easy to convert an igraph graph into a networkx object, call a specific function on it, then convert back to igraph for further analysis (Fig 3B). Moreover, conversions are fast (S5 Fig): generating a graph in igraph and then converting it to a library of choice can sometimes be faster than using native constructor routines. Compatibility with pandas dataframes has been added as well [39]. Finally, we aimed to facilitate the use of igraph as a data preparation step for graph-based machine learning by adding a function that exports networks from igraph to pytorch geometric [40] (Fig 3A).

Fig 2. igraph enables simple and interactive graph visualisation.

Fig 2

(A) Example code to plot a simple graph with topological sorting. (B) Examples of graph layouts in igraph. The spring-based Fruchterman-Reingold layout and the Uniform Manifold Approximation and Projection (UMAP) layout algorithms [27] for graphs of increasing size. Plots within brackets are outside of the typical range of applicability of the respective algorithm.

Fig 3. Linking network libraries together.

Fig 3

(A) igraph’s Python interface can exchange in-memory graphs with networkx, [10] graph-tool [11], and pytorch geometric [40]. (B) Example of a network conversion from igraph to networkx and back using the new import/export functions, which preserve attributes as well.

The R interface of igraph supports R 4.0 and later and comprises approximately 750 user functions. As of June 2026, on CRAN, the main code repository for the R language, igraph is imported by 713 packages: igraph has even been used to compute CRAN’s own dependency graph [41]. Most R functions are wrappers around fast C functions, however the user interface and the structure of the package are idiomatic to R to lower the entry barrier for contributors.

A Mathematica interface is available at http://szhorvat.net/mathematica/IGraphM. Unlike the C, R, and Python interfaces, it is mainly designed to extend the network analysis capabilities of the Mathematica standard library rather than to replace them. For instance, the Mathematica interface exposes useful community detection, layout, motif finding, and random graph generation algorithms that are otherwise not available. It also implements a dedicated interactive editor to construct graphs visually, which is especially appealing for prototyping or brainstorming. Details of the Mathematica interface were described in a recent publication [29].

Documentation and testing

igraph has an extensive and robust testing framework. Continuous integration across multiple architectures (64-bit Linux for Intel and AMD CPUs, macOS for 64-bit Intel and the Apple Silicon M-series CPUs, and Windows), including usage of address sanitizers, ensures that the codebase is not just well tested but that new contributions are thoroughly vetted as well. Test coverage for the C core is 85% excluding vendored dependencies which are already tested separately. In the Python interface, visualization functions are tested by pixel-by-pixel matching of the resulting images, as in matplotlib [37].

igraph’s documentation includes an R package vignette and documentation website using pkgdown [42] designed to help new users. The Python interface is provided through readthedocs.org and includes a gallery of examples available as scripts or Jupyter notebooks [43]. Translations for both the R and Python interface tutorials into Spanish are available, and other translations (e.g., Mandarin) are planned.

Open science development towards a diverse community

We continue aiming to grow the contributor and user bases (Fig 4) via transparent development practices. Repository issues are the agora where aspiring contributors interact with the core development team on specific bugs, feature requests, or enhancement proposals. Automatic testing of new contributions via continuous integration is configured openly, with results accessible by anyone. Releases are triggered for the popular dissemination platforms for each language (e.g., PyPI for Python, CRAN for R) and relationships with downstream package managers are actively maintained. The igraph documentation is deployed using language-specific conventions, which feels familiar even to new users. In addition to internal communication on development via chat rooms and regular video calls, igraph has a public user forum at https://igraph.discourse.group/ that is regularly visited by both developers and users. The developers also check in on online Q&A platforms such as Stack Overflow to provide answers.

Fig 4. Schematic of igraph’s open source/open science infrastructure.

Fig 4

From the top: development, releases, documentation, internal and external communication channels, and initiatives.

The recent collaboration with Women in Network Science (WiNS) aims to extend our user and contributor base to a more diverse group of individuals, especially from women, non-binary people, and people from other groups that are traditionally underrepresented in open source. A team led by Foucault Welles ran a workshop with Women in Network Science that trained 25 women to use igraph for network analysis and visualization. Most participants had been unaware of igraph before the workshop, but successfully used igraph for network analysis and network visualization projects during the workshop. All expressed interest in continuing to use igraph in their scientific work, suggesting that targeted workshops are an effective strategy for onboarding new diverse users. In addition, the team conducted interviews with 19 open-source community managers lasting 60–90 minutes each on strategies for increasing diversity, inclusion, and belonging in open-source communities [44]. Briefly, these interviews suggested that the work of recruiting and onboarding new users and developers was universally recognized as important but often sidelined in favor of more technical tasks. Projects that successfully maintain diverse user and contributor bases had transparent governance structures with leaders specifically assigned to community maintenance tasks such as onboarding new users and giving constructive feedback to new contributors [44]. Based on these results, igraph has recently transitioned to a transparent governance structure with a Steering Committee that includes members responsible for strengthening the relationship between core developers and the broader user and developer community.

Discussion

The computational analysis of graphs and networks has become a foundational element across scientific disciplines including mathematics, physics, engineering, biology and medicine, and the social sciences. It is also essential in industry settings, such as graph-based machine learning. A general-purpose, open source network analysis software library is essential for academia, start-up companies, non-profit organisations, and for other small teams and individuals. Over the last decade, igraph has morphed from a remarkable hobby project of two developers into an essential tool across disciplines and industries.

igraph’s scalability to billions of edges on consumer hardware is poised to simplify analytics on important graphs that are challenging due to their sheer size. Huge networks, which include a Twitter network of 40 million vertices and 1.5 billion edges [45] and a citation network with more than 240 million vertices and almost 2 billion edges [46], have become increasingly common in recent years. Beyond current data capabilities, igraph is ready for future analyses of global networks, for instance in epidemiology (8 billion people) and on social media (e.g., Facebook, 3 billion users). In turn, the results of such large computations can inform research and decision making in areas such as public health and online content moderation.

Interfaces in high-level languages have seen widespread use across the sciences due to their relatively flat learning curve and affinity for exploratory data science. In particular, systems biomedicine is a growing field where networks are of paramount importance. Cell-cell similarity graphs in single cell omics [47], gene regulatory networks [48] and protein-protein interaction networks [49] are fundamental tools to rationalize the complexity of biological systems such as the human body. The Python and R interfaces of igraph are widely used in some of these areas and the improvements implemented in the last years are designed to create a solid basis for further expansion in these areas.

One of the fastest growing areas of application of graphs is machine learning (ML), including graph-based sparse matrices [50], kernels [51], and graph neural networks (GNNs) [52]. Although igraph does not focus on ML applications, its efficient and generic design is amenable to tighter integration workflows with ML libraries. For instance, GraKeL is a Python graph kernel library that instantiates graphs from adjacency lists or dictionaries [53], both of which can be already obtained from the Python igraph interface. Extending igraph to export to GraKeL or, vice versa, extending GraKeL to import from igraph would be a straightforward task. A similar GNN-oriented export function for pytorch geometric required only 15 lines of code.

igraph’s design incurs some limitations. The current internal data structure is based on numbered arrays of vertices and edges, making it particularly efficient for static graph analysis but less performant for dynamic networks, i.e., networks in which vertices and edges are frequently added or removed. Although this is only noticeable on very large networks or for long simulations, future work is planned to provide a swappable core data structure that adapts to distinct use scenarios.

Another challenge of current igraph development is the entry barrier towards new code contributors. Although igraph’s codebase is vast and spans multiple languages, we are committed to creating a welcoming environment for new contributors. In particular, the joint operation with WINS is an exciting opportunity to include new contributors who identify with groups that have been historically underrepresented in igraph’s development team, such as women and non-binary people. As igraph’s coding standards continue to improve, it will be especially important to “walk a few steps” towards new community members in a context of mutual respect and positive encouragement. A new structure of formal governance, together with tighter interoperability with networkx and other packages, are key areas that will help increase accessibility for all types of users and developers.

Supporting information

S1 Fig. Example of igraph usage across programming languages.

The code computes edge betweenness for a simple, manually constructed graph.

(PDF)

pone.0355108.s001.pdf (97.5KB, pdf)
S2 Fig. Memory usage of igraph across graph sizes.

Transitivity and Leiden clustering were computed for random graphs and assessed by malloc_stats() using igraph’s C core as in Figure 1B. Tests run on a tower server with 512 GB RAM and Intel Xeon cpus.

(PDF)

pone.0355108.s002.pdf (18.1KB, pdf)
S3 Fig. Runtimes of igraph (Python) versus networkx for four algorithms across graph sizes.

Tests run on a tower server with 512 GB RAM and Intel Xeon cpus. Tests run on networkx 3.6.1 and igraph 1.0.0.

(PDF)

pone.0355108.s003.pdf (25KB, pdf)
S4 Fig. Runtimes of igraph (Python) versus graph-tool and scikit-network across graph sizes.

(A) Leiden clustering of the Zachary karate club network (left) and of random graphs of various sizes (right) for scikit-network and igraph. Runtimes refer to community detection only, not graph construction. Comparisons performed on a laptop with 32GB RAM and Intel(R) Core(TM) Ultra 7 265H cpus, using scikit-network 0.33.0 and igraph 1.0.0. (B) Global transitivity for the Zachary karate club network (left) and random graphs of various sizes (m = 4 * n, with m = number of edges, n = number of nodes) for graph-tool and igraph. For the left and centre panels, runtimes include only the transitivity computation, not the graph construction. The right panel shows graph construction times for the random graphs of the middle panel. Total wall time is the sum of the analysis and construction runtime. Note that igraph is much faster than graph-tool to construct this particular type of graph, but graph-tool is faster (2-4x) for transitivity computations specifically of large graphs. Comparisons performed on a tower server with 512 GB RAM and Intel Xeon cpus, using graph-tool 2.98 and igraph 1.0.0.

(PDF)

pone.0355108.s004.pdf (139.9KB, pdf)
S5 Fig. Runtimes for in-memory conversions of networks between igraph, networkx, and graph-tool.

Each comparison was measured 10 times on a tower server with 512 GB RAM and Intel Xeon cpus using networkx 3.6.1, graph-tool 2.98, and igraph 1.0.0. Conversions from other libraries to igraph with large networks were limited by the runtime required to construct the network (in the external library).

(PDF)

pone.0355108.s005.pdf (23.6KB, pdf)
S1 Table. Tabular history of features in igraph.

(XLSX)

pone.0355108.s006.xlsx (10.3KB, xlsx)

Acknowledgments

We would like to thank all igraph contributors for their effort, and all members of the igraph community for their respectful engagement.

Data Availability

The code and datasets used and/or analysed during the current study are publicly available on Zenodo (DOI: 10.5281/zenodo.21348995).

Funding Statement

Development of igraph and its interfaces is supported by two Chan Zuckerberg Essential Open Source Software (EOSS) grants (N. EOSS2-0000000067 and EOSS4-0000000179) and a Chan Zuckerberg Diversity grant (N. EOSS-DI-0000000021). There was no additional external funding received for this study. The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.

References

  • 1.Erdős P, Rényi A. On Random Graphs I. Publicationes Mathematicae Debrecen. 1959;6:290.
  • 2.Barabasi A, Albert R. Emergence of scaling in random networks. Science. 1999;286(5439):509–12. doi: 10.1126/science.286.5439.509 [DOI] [PubMed] [Google Scholar]
  • 3.Bankevich A, Nurk S, Antipov D, Gurevich AA, Dvorkin M, Kulikov AS, et al. SPAdes: a new genome assembly algorithm and its applications to single-cell sequencing. J Comput Biol. 2012;19(5):455–77. doi: 10.1089/cmb.2012.0021 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 4.Tabula Muris Consortium. Single-cell transcriptomics of 20 mouse organs creates a Tabula Muris. Nature. 2018;562:367–72. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 5.Moreno JL. Foundations of Sociometry: An Introduction. Sociometry. 1941;4(1):15–35. [Google Scholar]
  • 6.Burt RS. The Network Structure of Social Capital. Research in Organizational Behavior. 2000;22:345–423.
  • 7.Diani M. The Concept of Social Movement. Sociol Rev. 1992. Feb;40(1):1–25. [Google Scholar]
  • 8.McFarland DA, Moody J, Diehl D, Smith JA, Thomas RJ. Network Ecology and Adolescent Social Structure. Am Sociol Rev. 2014;79(6):1088–121. doi: 10.1177/0003122414554001 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 9.Lazer D, Pentland A, Adamic L, Aral S, Barabási AL, Brewer D, et al. Computational Social Science. Science. 2009;323(5915):721–3. doi: 10.1126/science.1167742 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 10.Hagberg AA, Schult DA, Swart PJ. Exploring Network Structure, Dynamics, and Function using NetworkX. Varoquaux G, Vaught T, Millman J. Proceedings of the 7th Python in Science Conference. Pasadena, CA USA; 2008. 11 15. [Google Scholar]
  • 11.Peixoto TP. The graph-tool python library. figshare. 2014. 10.6084/m9.figshare.1164194 [DOI]
  • 12.Angriman E, van der Grinten A, Hamann M, Meyerhenke H, Penschuck M. Algorithms for Large-Scale Network Analysis and the NetworKit Toolkit. Lecture Notes in Computer Science. Springer Nature Switzerland. 2022. 3–20. 10.1007/978-3-031-21534-6_1 [DOI] [Google Scholar]
  • 13.Treinish M, Carvalho I, Tsilimigkounakis G, Sá N. rustworkx: A High-Performance Graph Library for Python. JOSS. 2022;7(79):3968. doi: 10.21105/joss.03968 [DOI] [Google Scholar]
  • 14.Pavel N Krivitsky MSH, Hunter DR, Butts CT, Klumb C, Goodreau SM, Morris M. Statnet: Tools for the Statistical Modeling of Network Data. https://statnet.org
  • 15.Siek JG, Lee LQ, Lumsdaine A. Boost Graph Library, The: User Guide and Reference Manual. Addison-Wesley Professional; 2002. https://www.informit.com/store/boost-graph-library-user-guide-and-reference-manual-9780132651837
  • 16.Leskovec J, Sosič R. SNAP: A General Purpose Network Analysis and Graph Mining Library. ACM Trans Intell Syst Technol. 2016;8(1):1. doi: 10.1145/2898361 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 17.Shannon P, Markiel A, Ozier O, Baliga NS, Wang JT, Ramage D, et al. Cytoscape: a software environment for integrated models of biomolecular interaction networks. Genome Res. 2003;13(11):2498–504. doi: 10.1101/gr.1239303 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 18.Bostock M. D3.js - Data-Driven Documents; 2012. http://d3js.org/
  • 19.Bastian M, Heymann S, Jacomy M. Gephi: An Open Source Software for Exploring and Manipulating Networks; 2009. http://www.aaai.org/ocs/index.php/ICWSM/09/paper/view/154
  • 20.Yen JY. An algorithm for finding shortest routes from all source nodes to a given destination in general networks. Quart Appl Math. 1970;27(4):526–30. [Google Scholar]
  • 21.Brandes U, Dorfmüller G. PageRank - What Is Really Relevant in the World-Wide Web? Vöcking B, Alt H, Dietzfelbinger M, Reischuk R, Scheideler C, Vollmer H, et al. Algorithms Unplugged. Berlin, Heidelberg: Springer Berlin Heidelberg; 2011. 89–96. [Google Scholar]
  • 22.Gleich D, Zhukov L, Berkhin P. Fast Parallel PageRank: A Linear System Approach; 2005. https://profs.info.uaic.ro/ancai/CN/bibliografie/FastParallelPageRank-paper%20lin%20syst.pdf
  • 23.Horton JD. A Polynomial-Time Algorithm to Find the Shortest Cycle Basis of a Graph. SIAM J Comput. 1987;16(2):358–66. doi: 10.1137/0216026 [DOI] [Google Scholar]
  • 24.Wernicke S, Rasche F. FANMOD: a tool for fast network motif detection. Bioinformatics. 2006;22(9):1152–3. doi: 10.1093/bioinformatics/btl038 [DOI] [PubMed] [Google Scholar]
  • 25.Östergård PRJ. A fast algorithm for the maximum clique problem. Discrete Applied Mathematics. 2002;120(1–3):197–207. doi: 10.1016/s0166-218x(01)00290-6 [DOI] [Google Scholar]
  • 26.Traag VA, Waltman L, van Eck NJ. From Louvain to Leiden: guaranteeing well-connected communities. Sci Rep. 2019;9(1):5233. doi: 10.1038/s41598-019-41695-z [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 27.McInnes L, Healy J, Melville J. UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction. 2018;1802:03425. http://arxiv.org/abs/1802.03426 [Google Scholar]
  • 28.Csárdi G, Nepusz T. The igraph software package for complex network research. InterJournal Complex Systems. 2006;1695. [Google Scholar]
  • 29.Horvát S, Podkalicki J, Csárdi G, Nepusz T, Traag V, Zanini F, et al. IGraph/M: graph theory and network analysis for Mathematica. JOSS. 2023;8(81):4899. doi: 10.21105/joss.04899 [DOI] [Google Scholar]
  • 30.Blondel VD, Guillaume JL, Lambiotte R, Lefebvre E. Fast unfolding of communities in large networks. J Stat Mech. 2008 Oct;2008(10):P10008.
  • 31.Parés F, Gasulla DG, Vilalta A, Moreno J, Ayguadé E, Labarta J, et al. Fluid Communities: A Competitive, Scalable and Diverse Community Detection Algorithm. Studies in Computational Intelligence. Springer International Publishing. 2017. 229–40. 10.1007/978-3-319-72150-7_19 [DOI] [Google Scholar]
  • 32.Cox MAA, Cox TF. Multidimensional Scaling. Handbook of Data Visualization. Springer Berlin Heidelberg. 2008. 315–47. 10.1007/978-3-540-33037-0_14 [DOI] [Google Scholar]
  • 33.Adai AT, Date SV, Wieland S, Marcotte EM. LGL: creating a map of protein function with an algorithm for visualizing very large biological networks. J Mol Biol. 2004;340(1):179–90. doi: 10.1016/j.jmb.2004.04.047 [DOI] [PubMed] [Google Scholar]
  • 34.Davidson R, Harel D. Drawing graphs nicely using simulated annealing. ACM Trans Graph. 1996;15(4):301–31. doi: 10.1145/234535.234538 [DOI] [Google Scholar]
  • 35.Frick A, Ludwig A, Mehldau H. A fast adaptive layout algorithm for undirected graphs (extended abstract and system demonstration). Lecture Notes in Computer Science. Springer Berlin Heidelberg. 1995. 388–403. 10.1007/3-540-58950-3_393 [DOI] [Google Scholar]
  • 36.Granger BE, Pérez F. Jupyter: Thinking and Storytelling With Code and Data. Comput Sci Eng. 2021;(2):7–14.35939280 [Google Scholar]
  • 37.Hunter JD. Matplotlib: A 2D Graphics Environment. Comput Sci Eng. 2007;9(3):90–5. doi: 10.1109/mcse.2007.55 [DOI] [Google Scholar]
  • 38.Plotly PTI. Collaborative data science. Montreal, QC: Plotly Technologies Inc.; 2015. https://plot.ly
  • 39.McKinney W. Data Structures for Statistical Computing in Python. In: Proceedings of the Python in Science Conference, 2010. 56–61. 10.25080/majora-92bf1922-00a [DOI]
  • 40.Fey M, Sunil J, Nitta A, Puri R, Shah M, Stojanovič B, et al. PyG 2.0: Scalable Learning on Real World Graphs; 2025. http://arxiv.org/abs/2507.16991
  • 41.Lee C. Modelling the number of reverse dependencies; 2023. https://cran.r-project.org/web/packages/crandep/vignettes/degree.html
  • 42.Wickham H, Hesselberth J, Salmon M. pkgdown: Make Static HTML Documentation for a Package; 2022. https://github.com/r-lib/pkgdown
  • 43.Nájera O, Larson E, Liu L, Estève L, Varoquaux G, Grobler J, et al. sphinx-gallery/sphinx-gallery: v0.12.2. Zenodo; 2023.
  • 44.Lange RA, Gibson A, Trujillo MZ, Welles BF. Invisible Labor: The Backbone of Open Source Software; 2025. https://arxiv.org/abs/2503.13405
  • 45.Kwak H, Lee C, Park H, Moon S. What is Twitter, a social network or a news media?. In: Proceedings of the 19th international conference on World wide web, 2010. 591–600. 10.1145/1772690.1772751 [DOI]
  • 46.Sinha A, Shen Z, Song Y, Ma H, Eide D, Hsu BJP, et al. An Overview of Microsoft Academic Service (MAS) and Applications. In: International World Wide Web Conferences. Microsoft; 2015. https://www.microsoft.com/en-us/research/publication/overview-microsoft-academic-service-mas-applications/
  • 47.Barkas N, Petukhov V, Nikolaeva D, Lozinsky Y, Demharter S, Khodosevich K, et al. Joint analysis of heterogeneous single-cell RNA-seq dataset collections. Nat Methods. 2019;16(8):695–8. doi: 10.1038/s41592-019-0466-z [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 48.Bravo González-Blas C, De Winter S, Hulselmans G, Hecker N, Matetovici I, Christiaens V, et al. SCENIC+: single-cell multiomic inference of enhancers and gene regulatory networks. Nat Methods. 2023;20(9):1355–67. doi: 10.1038/s41592-023-01938-4 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 49.Cong Q, Anishchenko I, Ovchinnikov S, Baker D. Protein interaction networks revealed by proteome coevolution. Science. 2019;365(6449):185–9. doi: 10.1126/science.aaw6718 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 50.Bonald T, de Lara N, Lutz Q, Charpentier B. Scikit-network: Graph Analysis in Python. Journal of Machine Learning Research. 2020;21(185):1–6. http://jmlr.org/papers/v21/20-412.html34305477 [Google Scholar]
  • 51.Shervashidze N, Schweitzer P, Van Leeuwen EJ, Mehlhorn K, Borgwardt KM. Weisfeiler-lehman graph kernels. Journal of Machine Learning Research. 2011;12(9). [Google Scholar]
  • 52.Jiao P, Wang B, Wang X, Liu B, Wang Y, Li J. Struct2GO: protein function prediction based on graph pooling algorithm and AlphaFold2 structure information. Bioinformatics. 2023;39(10):btad637. doi: 10.1093/bioinformatics/btad637 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 53.Siglidis G, Nikolentzos G, Limnios S, Giatsidis C, Skianis K, Vazirgiannis M. Grakel: A graph kernel library in python. Journal of Machine Learning Research. 2020;21(54):1–5.34305477 [Google Scholar]

Decision Letter 0

Amit Nanavati

3 Jun 2026

-->PONE-D-26-21907-->-->igraph 1.0 enables fast and robust network analysis across programming languages-->-->PLOS One

Dear Dr. Zanini,

Thank you for submitting your manuscript to PLOS ONE. After careful consideration, we feel that it has merit but does not fully meet PLOS ONE’s publication criteria as it currently stands. Therefore, we invite you to submit a revised version of the manuscript that addresses the points raised during the review process.-->

  • Kindly address the concerns raised by Reviewer#2 and Reviewer#3.

Please submit your revised manuscript by Jul 18 2026 11:59PM. If you will need more time than this to complete your revisions, please reply to this message or contact the journal office at plosone@plos.org. When you're ready to submit your revision, log on to https://www.editorialmanager.com/pone/ and select the 'Submissions Needing Revision' folder to locate your manuscript file.

Please include the following items when submitting your revised manuscript:

  • A letter that responds to each point raised by the academic editor and reviewer(s). You should upload this letter as a separate file labeled 'Response to Reviewers'.

  • A marked-up copy of your manuscript that highlights changes made to the original version. You should upload this as a separate file labeled 'Revised Manuscript with Track Changes'.

  • An unmarked version of your revised paper without tracked changes. You should upload this as a separate file labeled 'Manuscript'.

-->

If you would like to make changes to your financial disclosure, please include your updated statement in your cover letter. Guidelines for resubmitting your figure files are available below the reviewer comments at the end of this letter.

If applicable, we recommend that you deposit your laboratory protocols in protocols.io to enhance the reproducibility of your results. Protocols.io assigns your protocol its own identifier (DOI) so that it can be cited independently in the future. For instructions see: https://journals.plos.org/plosone/s/submission-guidelines#loc-laboratory-protocols. Additionally, PLOS ONE offers an option for publishing peer-reviewed Lab Protocol articles, which describe protocols hosted on protocols.io. Read more information on sharing protocols at https://plos.org/protocols?utm_medium=editorial-email&utm_source=authorletters&utm_campaign=protocols.

As the corresponding author, your ORCID iD is verified in the submission system and will appear in the published article. PLOS supports the use of ORCID, and we encourage all coauthors to register for an ORCID iD and use it as well. Please encourage your coauthors to verify their ORCID iD within the submission system before final acceptance, as unverified ORCID iDs will not appear in the published article. Only  the individual author can complete the verification step; PLOS staff cannot  verify ORCID iDs on behalf of authors.

We look forward to receiving your revised manuscript.

Kind regards,

Amit Nanavati

Academic Editor

PLOS One

Journal Requirements:

-->1. When submitting your revision, we need you to address these additional requirements.-->--> -->-->Please ensure that your manuscript meets PLOS ONE's style requirements, including those for file naming. The PLOS ONE style templates can be found at -->-->https://journals.plos.org/plosone/s/file?id=wjVg/PLOSOne_formatting_sample_main_body.pdf and -->-->https://journals.plos.org/plosone/s/file?id=ba62/PLOSOne_formatting_sample_title_authors_affiliations.pdf-->--> -->-->2. Please update your submission to use the PLOS LaTeX template. The template and more information on our requirements for LaTeX submissions can be found at http://journals.plos.org/plosone/s/latex.-->--> -->-->3. Please note that PLOS One has specific guidelines on code sharing for submissions in which author-generated code underpins the findings in the manuscript. In these cases, we expect all author-generated code to be made available without restrictions upon publication of the work. Please review our guidelines at https://journals.plos.org/plosone/s/materials-and-software-sharing#loc-sharing-code and ensure that your code is shared in a way that follows best practice and facilitates reproducibility and reuse.-->--> -->-->4. We note that the grant information you provided in the ‘Funding Information’ and ‘Financial Disclosure’ sections do not match. -->--> -->-->When you resubmit, please ensure that you provide the correct grant numbers for the awards you received for your study in the ‘Funding Information’ section.-->--> -->-->5. Thank you for stating in your Funding Statement: -->-->Development of igraph and its interfaces is supported by two Chan Zuckerberg Essential Open Source Software (EOSS) grants (N. EOSS2-0000000067 and EOSS4-0000000179) and a Chan Zuckerberg Diversity grant (N. EOSS-DI-0000000021). -->--> -->-->Please provide an amended statement that declares *all* the funding or sources of support (whether external or internal to your organization) received during this study, as detailed online in our guide for authors at http://journals.plos.org/plosone/s/submit-now.  Please also include the statement “There was no additional external funding received for this study.” in your updated Funding Statement. -->-->Please include your amended Funding Statement within your cover letter. We will change the online submission form on your behalf.-->--> -->-->6. Thank you for stating the following financial disclosure: -->-->Development of igraph and its interfaces is supported by two Chan Zuckerberg Essential Open Source Software (EOSS) grants (N. EOSS2-0000000067 and EOSS4-0000000179) and a Chan Zuckerberg Diversity grant (N. EOSS-DI-0000000021).  -->--> -->-->Please state what role the funders took in the study.  If the funders had no role, please state: "The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript." -->-->If this statement is not correct you must amend it as needed. -->-->Please include this amended Role of Funder statement in your cover letter; we will change the online submission form on your behalf.-->--> -->-->7. In the online submission form, you indicated that [The datasets used and/or analysed during the current study available from the corresponding author on reasonable request. The code is available at https://igraph.org.]. -->-->All PLOS journals now require all data underlying the findings described in their manuscript to be freely available to other researchers, either a. In a public repository, b. Within the manuscript itself, or c. Uploaded as supplementary information.-->-->This policy applies to all data except where public deposition would breach compliance with the protocol approved by your research ethics board. If your data cannot be made publicly available for ethical or legal reasons (e.g., public availability would compromise patient privacy), please explain your reasons on resubmission and your exemption request will be escalated for approval.-->--> -->-->8. Please upload a new copy of Figures 1, 2 and 3, as the detail is not clear. Please follow the link for more information:  https://journals.plos.org/plosone/s/figures-->--> -->-->9. We note you have included a Supplementary figures and table to which you do not refer in the text of your manuscript. Please ensure that you refer to Supplementary figures 1, 2 and table 1 in your text; if accepted, production will need this reference to link the reader to the Supplementary figures and table.-->--> -->-->10. If the reviewer comments include a recommendation to cite specific previously published works, please review and evaluate these publications to determine whether they are relevant and should be cited. There is no requirement to cite these works unless the editor has indicated otherwise.

11. Please review your reference list to ensure that it is complete and correct. If you have cited papers that have been retracted, please include the rationale for doing so in the manuscript text, or remove these references and replace them with relevant current references. Any changes to the reference list should be mentioned in the rebuttal letter that accompanies your revised manuscript. If you need to cite a retracted article, indicate the article’s retracted status in the References list and also include a citation and full reference for the retraction notice.

Additional Editor Comments:

Thank you very much for your submission!

I request you to address the concerns of Reviewers 2 and 3 and resubmit after revising.

Thank you very much!

-->--> -->-->[Note: HTML markup is below. Please do not edit.]

Reviewers' comments:

Reviewer's Responses to Questions-->

-->Comments to the Author

1. Is the manuscript technically sound, and do the data support the conclusions?

The manuscript must describe a technically sound piece of scientific research with data that supports the conclusions. Experiments must have been conducted rigorously, with appropriate controls, replication, and sample sizes. The conclusions must be drawn appropriately based on the data presented. -->

Reviewer #1: Yes

Reviewer #2: No

Reviewer #3: Yes

**********

-->2. Has the statistical analysis been performed appropriately and rigorously? -->

Reviewer #1: Yes

Reviewer #2: Yes

Reviewer #3: N/A

**********

-->3. Have the authors made all data underlying the findings in their manuscript fully available?

The PLOS Data policy requires authors to make all data underlying the findings described in their manuscript fully available without restriction, with rare exception (please refer to the Data Availability Statement in the manuscript PDF file). The data should be provided as part of the manuscript or its supporting information, or deposited to a public repository. For example, in addition to summary statistics, the data points behind means, medians and variance measures should be available. If there are restrictions on publicly sharing data—e.g. participant privacy or use of data from a third party—those must be specified.-->

Reviewer #1: Yes

Reviewer #2: No

Reviewer #3: Yes

**********

-->4. Is the manuscript presented in an intelligible fashion and written in standard English?

PLOS ONE does not copyedit accepted manuscripts, so the language in submitted articles must be clear, correct, and unambiguous. Any typographical or grammatical errors should be corrected at revision, so please note any specific errors here.-->

Reviewer #1: Yes

Reviewer #2: Yes

Reviewer #3: Yes

**********

-->5. Review Comments to the Author

Please use the space provided to explain your answers to the questions above. You may also include additional comments for the author, including concerns about dual publication, research ethics, or publication ethics. (Please upload your review as an attachment if it exceeds 20,000 characters)-->

Reviewer #1:  My reasons for acceptance:

1. igraph has established itself over two decades as one of the most relied-upon libraries for graph and network analysis.

2. C core for performance: the core being written in C, igraph achieves much faster performance than pure python based implementations like networkx for graph analysis and visualisation.

3. Cross-language accessibility and interoperability: igraph's support for Python, R, and Mathematica through a shared C core is a valuable design choice. There is also compatibility with networkx.

4. Open science and open source: The transparent development model reflects best practices in open science..

Reviewer #2:  Major concerns:

1. Performance comparisons are limited

The benchmarks compare igraph only against NetworkX. The introduction itself acknowledges that graph-tool is faster than NetworkX, yet graph-tool is absent from all performance comparisons. The authors should either include comparisons with graph-tool or provide a clear justification for its exclusion. Graph-tool, SNAP, and Boost Graph are discussed in the Introduction but excluded from the main performance comparisons.

2. Billion edge performance claims are incomplete

The paper demonstrates that igraph can construct graphs with billions of edges, which is impressive. However, it does not show any analytical stuffs like centrality measures, or community detection perform well at this scale. Construction and analysis are different tasks, and the latter is what most users actually need. The authors should either provide benchmarks for analytical operations at large scale or moderate their claims accordingly.

3. Benchmarking methodology needs strengthening

Each graph size was tested only twice. While the performance claims are carefully worded, more repetitions with reported variance would make the results more convincing and allow readers to assess the reliability of the reported speedups.

4. Diversity and community section lacks quantitative evidence

The manuscript discusses efforts to increase diversity and community participation, including collaboration with Women in Network Science. However, no data is provided on the impact of these initiatives. For example, has the proportion of contributions from underrepresented groups changed? Quantitative evidence would strengthen this section considerably.

5.The UMAP layout shown in Figure 2 is presented as an example of igraph's visualisation capability. However, the figure would be more informative if the UMAP layout were shown alongside other commonly used layout algorithms.

6.The interoperability example in Figure 3 demonstrates that graphs can be converted between igraph and networkx. However, for users working with large graphs, the practical feasibility of this conversion depends on its speed and memory cost. The authors should provide information on conversion speed and memory usage across a range of graph sizes, so users can make informed decisions about whether conversion is practical for their use case.

Reviewer #3:  The paper presents igraph 1.0, a general-purpose graph analysis library. igraph has been in development since the last twenty years and the current release in the paper is capable of processing graphs with billions of edges, offers interactive visualization capabilities and integrates seamlessly with notebook environments.

The paper is well-written and insightful to read. As the authors mentioned, the development of fast and consistent graph analysis libraries across programming languages is attracting increasing research attention and remains highly important particularly given the growing scale and complexity of networks enabled by modern AI and large language models (e.g., in domains such as social network analysis and bioinformatics). The framework's generic design facilitates deeper integration with machine learning ecosystems, particularly as graph neural networks have become increasingly prominent for tasks such as node classification, link prediction and other related graph-level prediction problems. In this context, igraph is a valuable component within modern graph-based analysis experiments.

The paper has the following issues (no major comments):

1. For the NetworkX comparisons, what version was tested? Have comparisons been run against NetworkX 3.0+?

2. It would be valuable for the authors to report memory usage benchmarks in addition to runtime results for billion-edge graphs.

3. The authors should also consider comparing igraph with scikit-network, which provides optimized implementations for large-scale graph mining tasks (e.g., clustering, ranking and diffusion) that are not always efficiently supported in standard graph analysis libraries.

The study represents an important contribution to advancing the development of efficient and consistent graph analysis tools across programming languages.

**********

-->6. PLOS authors have the option to publish the peer review history of their article (what does this mean?). If published, this will include your full peer review and any attached files.

If you choose “no”, your identity will remain anonymous but your review may still be made public.

Do you want your identity to be public for this peer review?  For information about this choice, including consent withdrawal, please see our Privacy Policy.-->

Reviewer #1: No

Reviewer #2: No

Reviewer #3: No

**********

[NOTE: If reviewer comments were submitted as an attachment file, they will be attached to this email and accessible via the submission site. Please log into your account, locate the manuscript record, and check for the action link "View Attachments". If this link does not appear, there are no attachment files.]

To ensure your figures meet our technical requirements, please review our figure guidelines: https://journals.plos.org/plosone/s/figures

You may also use PLOS’s free figure tool, NAAS, to help you prepare publication quality figures: https://journals.plos.org/plosone/s/figures#loc-tools-for-figure-preparation.

NAAS will assess whether your figures meet our technical requirements by comparing each figure against our figure specifications.

-->

PLoS One. 2026 Aug 4;21(8):e0355108. doi: 10.1371/journal.pone.0355108.r002

Author response to Decision Letter 1


13 Jul 2026

(See PDF with point-by-point responses to reviewers' comments)

Attachment

Submitted filename: responses_to_reviewers.pdf

pone.0355108.s007.pdf (79KB, pdf)

Decision Letter 1

Amit Nanavati

17 Jul 2026

igraph 1.0 enables fast and robust network analysis across programming languages

PONE-D-26-21907R1

Dear Dr. Zanini,

We’re pleased to inform you that your manuscript has been judged scientifically suitable for publication and will be formally accepted for publication once it meets all outstanding technical requirements.

Within one week, you’ll receive an e-mail detailing the required amendments. When these have been addressed, you’ll receive a formal acceptance letter and your manuscript will be scheduled for publication.

An invoice will be generated when your article is formally accepted. Please note, if your institution has a publishing partnership with PLOS and your article meets the relevant criteria, all or part of your publication costs will be covered. Please make sure your user information is up-to-date by logging into Editorial Manager at Editorial Manager® and clicking the ‘Update My Information' link at the top of the page. For questions related to billing, please contact billing support.

If your institution or institutions have a press office, please notify them about your upcoming paper to help maximize its impact. If they’ll be preparing press materials, please inform our press team as soon as possible -- no later than 48 hours after receiving the formal acceptance. Your manuscript will remain under strict press embargo until 2 pm Eastern Time on the date of publication. For more information, please contact onepress@plos.org.

Kind regards,

Amit Nanavati

Academic Editor

PLOS One

Additional Editor Comments (optional):

Reviewers' comments:

Acceptance letter

Amit Nanavati

PONE-D-26-21907R1

PLOS One

Dear Dr. Zanini,

I'm pleased to inform you that your manuscript has been deemed suitable for publication in PLOS One. Congratulations! Your manuscript is now being handed over to our production team.

At this stage, our production department will prepare your paper for publication. This includes ensuring the following:

* All references, tables, and figures are properly cited

* All relevant supporting information is included in the manuscript submission,

* There are no issues that prevent the paper from being properly typeset

You will receive further instructions from the production team, including instructions on how to review your proof when it is ready. Please keep in mind that we are working through a large volume of accepted articles, so please give us a few days to review your paper and let you know the next and final steps.

Lastly, if your institution or institutions have a press office, please let them know about your upcoming paper now to help maximize its impact. If they'll be preparing press materials, please inform our press team within the next 48 hours. Your manuscript will remain under strict press embargo until 2 pm Eastern Time on the date of publication. For more information, please contact onepress@plos.org.

You will receive an invoice from PLOS for your publication fee after your manuscript has reached the completed accept phase. If you receive an email requesting payment before acceptance or for any other service, this may be a phishing scheme. Learn how to identify phishing emails and protect your accounts at https://explore.plos.org/phishing.

If we can help with anything else, please email us at customercare@plos.org.

Thank you for submitting your work to PLOS ONE and supporting open access.

Kind regards,

PLOS ONE Editorial Office Staff

on behalf of

Prof. Amit Nanavati

Academic Editor

PLOS One

Associated Data

    This section collects any data citations, data availability statements, or supplementary materials included in this article.

    Supplementary Materials

    S1 Fig. Example of igraph usage across programming languages.

    The code computes edge betweenness for a simple, manually constructed graph.

    (PDF)

    pone.0355108.s001.pdf (97.5KB, pdf)
    S2 Fig. Memory usage of igraph across graph sizes.

    Transitivity and Leiden clustering were computed for random graphs and assessed by malloc_stats() using igraph’s C core as in Figure 1B. Tests run on a tower server with 512 GB RAM and Intel Xeon cpus.

    (PDF)

    pone.0355108.s002.pdf (18.1KB, pdf)
    S3 Fig. Runtimes of igraph (Python) versus networkx for four algorithms across graph sizes.

    Tests run on a tower server with 512 GB RAM and Intel Xeon cpus. Tests run on networkx 3.6.1 and igraph 1.0.0.

    (PDF)

    pone.0355108.s003.pdf (25KB, pdf)
    S4 Fig. Runtimes of igraph (Python) versus graph-tool and scikit-network across graph sizes.

    (A) Leiden clustering of the Zachary karate club network (left) and of random graphs of various sizes (right) for scikit-network and igraph. Runtimes refer to community detection only, not graph construction. Comparisons performed on a laptop with 32GB RAM and Intel(R) Core(TM) Ultra 7 265H cpus, using scikit-network 0.33.0 and igraph 1.0.0. (B) Global transitivity for the Zachary karate club network (left) and random graphs of various sizes (m = 4 * n, with m = number of edges, n = number of nodes) for graph-tool and igraph. For the left and centre panels, runtimes include only the transitivity computation, not the graph construction. The right panel shows graph construction times for the random graphs of the middle panel. Total wall time is the sum of the analysis and construction runtime. Note that igraph is much faster than graph-tool to construct this particular type of graph, but graph-tool is faster (2-4x) for transitivity computations specifically of large graphs. Comparisons performed on a tower server with 512 GB RAM and Intel Xeon cpus, using graph-tool 2.98 and igraph 1.0.0.

    (PDF)

    pone.0355108.s004.pdf (139.9KB, pdf)
    S5 Fig. Runtimes for in-memory conversions of networks between igraph, networkx, and graph-tool.

    Each comparison was measured 10 times on a tower server with 512 GB RAM and Intel Xeon cpus using networkx 3.6.1, graph-tool 2.98, and igraph 1.0.0. Conversions from other libraries to igraph with large networks were limited by the runtime required to construct the network (in the external library).

    (PDF)

    pone.0355108.s005.pdf (23.6KB, pdf)
    S1 Table. Tabular history of features in igraph.

    (XLSX)

    pone.0355108.s006.xlsx (10.3KB, xlsx)
    Attachment

    Submitted filename: responses_to_reviewers.pdf

    pone.0355108.s007.pdf (79KB, pdf)

    Data Availability Statement

    The code and datasets used and/or analysed during the current study are publicly available on Zenodo (DOI: 10.5281/zenodo.21348995).


    Articles from PLOS One are provided here courtesy of PLOS

    RESOURCES