Igraph: network analysis package

When working on neural network (my PhD subject), I stumbled upon https://igraph.org/, a tool for network properties analysis. It might be helpful for people working on the WOT @gerard94

3 Likes

Merci. J’ai récupéré les sources et la doc. Cela peut être très utile, pour étudier les algorithmes utilisés, et il sera possible d’interfacer les nouveaux outils que je prépare en Go avec la version en C de igraph :slightly_smiling_face:.

1 Like

Avant de faire la WorldWotMap, j’avais utilisĂ© cette bibli (l’interface en python) pour faire ça avec la WoT :


Mais bon c’était assez lent à générer et l’image lisible fait 45 Mo. Si quelqu’un veut le bout de code qui fait ça, demandez-moi.

2 Likes

Dans la même idée que mon post, voici un paquet R pour calculer certaines autres propriétés des graphes : https://github.com/cwatson/brainGraph

Null graph-related measures

  • Null/random graph generation (both the “standard” method, and also a method controlling for clustering; see Bansal et al., 2009)
  • Small-worldness (the “original” of Watts & Strogatz, 1998 and Humphries et al., 2008; and “omega” introduced in Telesford et al., 2011)
  • Rich-club coefficients and normalization (see Zhou & Mondragon, 2004; and Colizza et al., 2006)

Other measures

  • Efficiency (global, nodal, and local; see Latora & Marchiori, 2001)
  • The rich-core (see Ma & Mondragon, 2015)
  • Leverage centrality (see Joyce et al., 2010)
  • Asymmetry index
  • Robustness (“targeted attack” and “random failure”) and vulnerability
  • Euclidean distances of edges
  • Participation coefficient and within-module degree z-score (see Guimera & Amaral, 2005)
  • Gateway coefficient (see Vargas & Wahl, 2014)
  • Communicability and communicability betweenness (see Estrada & Hatano, 2008; Estrada et al., 2009; Crofts & Higham, 2009)
  • Vertex s-core membership (see Eidsaa & Almaas, 2013)

Justement ça fait aussi à peu près un mois que je découvre cette bibliothèque. Comme je ne suis pas un grand habitué de Python, j’ai installé PyCharm et ai suivi l’ensemble du tutoriel pour la prise en main de Igraph. Je pense que je vais sûrement galéré comparé à certains d’entre vous qui ont l’air de manipuler Python comme leur langue maternelle.

VoilĂ  mon besoin, cela concerne la wotmap :
J’aimerais avoir un programme en python avec cette bibliothèque pour interroger un nœud duniter local puis générer un fichier JSON compatible sigmaJS avec tout un tas d’attributs calculés par Igraph (centralités, détection de communautés, position des noeuds avec un layout de forces, etc.). Ce qui éviterait que ces calculs soient effectués par les navigateurs. J’aimerais que ce programme se lance par CRON toutes les 24h afin de mettre à jour les données.

Je suis prêt à négocier un prix en monnaie libre :wink:

1 Like

J’ai commencé à faire ça, mais j’ai un petit problème : dans Duniter 1.7.9 les tables d’index ne sont pas stockées dans duniter.db, il n’y a que des piscines.
Il doit bien y avoir un moyen de les retrouver, je vais chercher.

Edit : C’est bon, il y a des biblis Python pour LevelDB. (je vais utiliser plyvel ou leveldb)
Re-edit : J’ai fait une merge-request avec un script qui a l’air de fonctionner très bien.

2 Likes

Ouah ! Un graand merci ! J’ai hâte de tester ça :slight_smile: tu pourrais éditer le readme pour ajouter la ligne de CRON pour le script python ? et éventuellement les paquets à installer sur le serveur pour le faire tourner

J’ai un projet en cours, je pose ça là, mais je serais en mesure de proposer une API pour interagir avec n’importe quel graphe. Mes nœuds sont stockés dans une base de données, servis en JSON et visualisables en d3js. J’ai commencé ça pendant les vacances parce que j’avais du temps, mais je crains de ne pas pouvoir arriver à avancer avant les prochaines vacances. J’ai commencé à développer un module “wot”, mais je veux avancer un peu sur la base avant de développer des modules.

J’ai pas accès au dépôt. Surement un dépôt privé ou semi-privé où il faut un compte sur gitlab.com.

1 Like

Merci d’avoir checké, je pensais l’avoir mis en public, mais apparemment pas. C’est une bonne occasion pour qu’il le devienne !