graph-tool est un module Python permettant la manipulation et l'analyse statistique des graphes (ou réseaux ). Ses structures de données et algorithmes principaux sont implémentés en C++ , faisant largement appel à la métaprogrammation et s'appuyant fortement sur la bibliothèque Boost Graph . De nombreux algorithmes sont implémentés en parallèle grâce à OpenMP , ce qui améliore les performances sur les architectures multicœurs .
Caractéristiques
- Création et manipulation de graphes orientés ou non orientés .
- Association d'informations arbitraires aux sommets, aux arêtes ou même au graphe lui-même, au moyen de cartes de propriétés.
- Filtrer les sommets et/ou les arêtes « à la volée », de manière à ce qu'ils apparaissent comme ayant été supprimés.
- Prise en charge des formats dot , Graph Modelling Language et GraphML .
- Un outil pratique et puissant pour la création de graphiques basé sur Cairo ou Graphviz .
- Prise en charge des mesures statistiques typiques : histogramme degré/propriété, histogramme degré/propriété combiné, corrélations sommet-sommet, assortativité , chemin le plus court moyen sommet-sommet , etc.
- Prise en charge de plusieurs algorithmes de théorie des graphes : tels que l’isomorphisme de graphes , l’isomorphisme de sous-graphes , l’arbre couvrant minimal , les composantes connexes , l’arbre des dominateurs , le flot maximal , etc.
- Soutien à plusieurs mesures de centralité .
- Prise en charge des coefficients de regroupement , ainsi que des statistiques sur les motifs de réseau et de la détection de la structure communautaire .
- Génération de graphes aléatoires , avec une distribution des degrés et des corrélations arbitraires.
- Prise en charge des modèles de réseaux bien établis : Price , Barabási-Albert , réseaux géométriques, graphes multidimensionnels , etc.
Pertinence
Graph-tool peut être utilisé pour travailler avec de très grands graphes tissus cellulaires , l'exploration de données , l'analyse des réseaux sociaux , l'analyse des systèmes P2P , la modélisation à grande échelle des systèmes à base d'agents , l'évaluation théorique et la modélisation du clustering de réseaux , l'analyse à grande échelle des graphes d'appels , et l'analyse du connectome du cerveau .