File size: 562 Bytes
08a3e96
85d5a4b
08a3e96
 
85d5a4b
08a3e96
 
 
 
85d5a4b
08a3e96
85d5a4b
08a3e96
 
85d5a4b
 
08a3e96
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
"""
Minimal NetworkX helpers for MedGenesis graphs.
"""
import networkx as nx
from typing import List, Dict, Tuple

def build_nx(nodes: List[Dict], edges: List[Dict]) -> nx.Graph:
    G = nx.Graph()
    for n in nodes:
        G.add_node(n["id"])
    for e in edges:
        G.add_edge(e["source"], e["target"])
    return G

def get_density(G: nx.Graph) -> float:
    return nx.density(G)

def get_top_hubs(G: nx.Graph, k: int = 5) -> List[Tuple[str, float]]:
    dc = nx.degree_centrality(G)
    return sorted(dc.items(), key=lambda x: x[1], reverse=True)[:k]