diff planemo/lib/python3.7/site-packages/networkx/algorithms/smetric.py @ 1:56ad4e20f292 draft

"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
author guerler
date Fri, 31 Jul 2020 00:32:28 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/planemo/lib/python3.7/site-packages/networkx/algorithms/smetric.py	Fri Jul 31 00:32:28 2020 -0400
@@ -0,0 +1,37 @@
+import networkx as nx
+#from networkx.generators.smax import li_smax_graph
+
+
+def s_metric(G, normalized=True):
+    """Returns the s-metric of graph.
+
+    The s-metric is defined as the sum of the products deg(u)*deg(v)
+    for every edge (u,v) in G. If norm is provided construct the
+    s-max graph and compute it's s_metric, and return the normalized
+    s value
+
+    Parameters
+    ----------
+    G    : graph
+           The graph used to compute the s-metric.
+    normalized : bool (optional)
+           Normalize the value.
+
+    Returns
+    -------
+    s : float
+        The s-metric of the graph.
+
+    References
+    ----------
+    .. [1] Lun Li, David Alderson, John C. Doyle, and Walter Willinger,
+           Towards a Theory of Scale-Free Graphs:
+           Definition, Properties, and  Implications (Extended Version), 2005.
+           https://arxiv.org/abs/cond-mat/0501169
+    """
+    if normalized:
+        raise nx.NetworkXError("Normalization not implemented")
+#        Gmax = li_smax_graph(list(G.degree().values()))
+#        return s_metric(G,normalized=False)/s_metric(Gmax,normalized=False)
+#    else:
+    return float(sum([G.degree(u) * G.degree(v) for (u, v) in G.edges()]))