Graph-tool

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Graph-tool
Graph-tool-logo.png
Developer(s) Tiago de Paula Peixoto
Stable release 2.2.36 / 8 January 2015; 6 months ago (2015-01-08)
Written in Python, C++
Operating system Cross-platform
Type Software library
License GPL
Website graph-tool.skewed.de

graph-tool is a Python module for manipulation and statistical analysis of graphs (a.k.a. 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. This type of approach can confer a level of performance which is comparable (both in memory usage and computation time) to that of a pure C++ library, which can be several orders of magnitude better than pure Python.[1][2]

Furthermore, many algorithms are implemented in parallel using OpenMP, which provides increased performance on multi-core architectures, without degrading the performance on single-core machines.

Features[edit]

Suitabilty[edit]

Graph-tool can be used to work with very large graphs in a variety of contexts, including simulation of cellular tissue,[3] data mining,[4][5] analysis of social networks,[6][7] analysis of P2P systems,[8] large-scale modeling of agent-based systems,[9] study of academic Genealogy trees,[10] theoretical assessment and modeling of network clustering,[11] large-scale call graph analysis,[12][13] and analysis of the brain's Connectome.[14]

References[edit]

  1. ^ Graph-tool performance comparison, Graph-tool
  2. ^ Which programs are fastest?
  3. ^ Bruno Monier et al, "Apico-basal forces exerted by apoptotic cells drive epithelium folding", Nature, 2015 [1]
  4. ^ Ma, Shuai, et al. "Distributed graph pattern matching." Proceedings of the 21st international conference on World Wide Web. ACM, 2012. [2]
  5. ^ Ma, Shuai, et al. "Capturing topology in graph pattern matching." Proceedings of the VLDB Endowment 5.4 (2011): 310-321. [3]
  6. ^ 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). [4]
  7. ^ 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. [5]
  8. ^ Teresniak, Sven, et al. "Information-Retrieval in einem P2P-Netz mit Small-World-Eigenschaften Simulation und Evaluation des SemPIR-Modells."[6]
  9. ^ 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. [7]
  10. ^ Miyahara, Edson Kiyohiro, Jesus P. Mena-Chalco, and Roberto M. Cesar-Jr. "Genealogia Acadêmica Lattes." [8]
  11. ^ Abdo, Alexandre H., and A. P. S. de Moura. "Clustering as a measure of the local topology of networks." arXiv preprint physics/0605235 (2006). [9]
  12. ^ 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. [10]
  13. ^ Campos, José Creissac, et al. "GUIsurfer: A Reverse Engineering Framework for User Interface Software." [11]
  14. ^ Gerhard, Stephan, et al. "The connectome viewer toolkit: an open source framework to manage, analyze, and visualize connectomes." Frontiers in neuroinformatics 5 (2011). [12]

External links[edit]