biolab / orange3-network

🍊 🕸 Network analysis add-on for Orange data mining suite.
Other
39 stars 33 forks source link

Network Analysis: additional settings #57

Closed jerneju closed 5 years ago

jerneju commented 6 years ago
Network version

1.3.0 and older versions

Expected behavior

This below may be added:

"""
TODO: add
    average-degree_connectivity
    is_bipartite
    is_chordal
    katz_centrality
    katz_centrality_numpy
    communicability
    communicability_exp
    communicability_centrality
    communicability_centrality_exp
    communicability_betweenness_centrality
    average_node_connectivity
    is_directed_acyclic_graph
    center
    ??
"""

# additional attr needed
# ("attribute_assortativity_coefficient", False, "Attribute assortativity coefficient", GRAPHLEVEL, nx.attribute_assortativity_coefficient),
# ("numeric_assortativity_coefficient", False, "Numeric assortativity coefficient", GRAPHLEVEL, nx.numeric_assortativity_coefficient),

# TODO: input parameters
# ("max_flow", False, "Maximum flow", GRAPHLEVEL, nx.max_flow),
# ("min_cut", False, "Minimum cut", GRAPHLEVEL, nx.min_cut),
# ("ford_fulkerson", False, "Maximum single-commodity flow (Ford-Fulkerson)", GRAPHLEVEL, nx.ford_fulkerson),
# ("min_cost_flow_cost", False, "min_cost_flow_cost", GRAPHLEVEL, nx.min_cost_flow_cost),
# returns dict of dict
# ("shortest_path_length", False, "Shortest path length", GRAPHLEVEL, nx.shortest_path_length),
janezd commented 5 years ago

Networkx is very inefficient, in particular its computation of centrality measures (shortest paths in Python on thousands of nodes!?) We will eventually reimplement it in Cython, but I wouldn't like to add all kinds of measures from networkx that we won't support (or will be forced to support) when this happens.