This article may rely excessively on sources too closely associated with the subject, potentially preventing the article from being verifiable and neutral. Please help improve it by replacing them with more appropriate citations to reliable, independent, third-party sources. (January 2021) (Learn how and when to remove this message) |
Developer(s) | Tiago P. Peixoto |
---|---|
Stable release | 2.45 / 22 May 2022; 2 years ago (2022-05-22) |
Repository | |
Written in | Python, C++ |
Operating system | OS X, Linux |
Type | Software library |
License | LGPL |
Website | graph-tool |
graph-tool is a Python module for manipulation and statistical analysis of graphs (AKA networks). The core data structures and algorithms of graph-tool are implemented in C++, making extensive use of metaprogramming, based heavily on the Boost Graph Library. Many algorithms are implemented in parallel using OpenMP, which provides increased performance on multi-core architectures.
Features
- Creation and manipulation of directed or undirected graphs.
- Association of arbitrary information to the vertices, edges or even the graph itself, by means of property maps.
- Filter vertices and/or edges "on the fly", such that they appear to have been removed.
- Support for dot, Graph Modelling Language and GraphML formats.
- Convenient and powerful graph drawing based on cairo or Graphviz.
- Support for typical statistical measurements: degree/property histogram, combined degree/property histogram, vertex-vertex correlations, assortativity, average vertex-vertex shortest path, etc.
- Support for several graph-theoretical algorithms: such as graph isomorphism, subgraph isomorphism, minimum spanning tree, connected components, dominator tree, maximum flow, etc.
- Support for several centrality measures.
- Support for clustering coefficients, as well as network motif statistics and community structure detection.
- Generation of random graphs, with arbitrary degree distribution and correlations.
- Support for well-established network models: Price, Barabási-Albert, Geometric Networks, Multidimensional lattice graph, etc.
Suitability
Graph-tool can be used to work with very large graphs in a variety of contexts, including simulation of cellular tissue, data mining, analysis of social networks, analysis of P2P systems, large-scale modeling of agent-based systems, study of academic Genealogy trees, theoretical assessment and modeling of network clustering, large-scale call graph analysis, and analysis of the brain's Connectome.
References
- Graph-tool performance comparison, Graph-tool
- Bruno Monier et al, "Apico-basal forces exerted by apoptotic cells drive epithelium folding", Nature, 2015
- Ma, Shuai, et al. "Distributed graph pattern matching." Proceedings of the 21st international conference on World Wide Web. ACM, 2012.
- Ma, Shuai, et al. "Capturing topology in graph pattern matching." Proceedings of the VLDB Endowment 5.4 (2011): 310-321.
- Janssen, E., M. A. T. T. Hurshman, and N. A. U. Z. E. R. Kalyaniwalla. "Model selection for social networks using graphlets." Internet Mathematics (2012).
- Asadi, Hirad Cyrus. Design and implementation of a middleware for data analysis of social networks. Diss. M Sc thesis report, KTH School of Computer Science and Communication, Stockholm, Sweden, 2007. Archived 2015-01-22 at the Wayback Machine
- Teresniak, Sven, et al. "Information-Retrieval in einem P2P-Netz mit Small-World-Eigenschaften Simulation und Evaluation des SemPIR-Modells." Archived 2015-01-22 at the Wayback Machine
- Hamacher, Kay, and Stefan Katzenbeisser. "Public security: simulations need to replace conventional wisdom." Proceedings of the 2011 workshop on New security paradigms workshop. ACM, 2011.
- Miyahara, Edson Kiyohiro, Jesus P. Mena-Chalco, and Roberto M. Cesar-Jr. "Genealogia Acadêmica Lattes."
- Abdo, Alexandre H., and A. P. S. de Moura. "Clustering as a measure of the local topology of networks." arXiv preprint physics/0605235 (2006).
- Narayan, Ganesh, K. Gopinath, and V. Sridhar. "Structure and interpretation of computer programs." Theoretical Aspects of Software Engineering, 2008. TASE'08. 2nd IFIP/IEEE International Symposium on. IEEE, 2008.
- Gerhard, Stephan, et al. "The connectome viewer toolkit: an open source framework to manage, analyze, and visualize connectomes." Frontiers in neuroinformatics 5 (2011).