## Mercurial > repos > shellac > sam_consensus_v3

### comparison env/lib/python3.9/site-packages/networkx/algorithms/approximation/clustering_coefficient.py @ 0:4f3585e2f14b draft default tip

Find changesets by keywords (author, files, the commit message), revision
number or hash, or revset expression.

"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"

author | shellac |
---|---|

date | Mon, 22 Mar 2021 18:12:50 +0000 |

parents | |

children |

comparison

equal
deleted
inserted
replaced

-1:000000000000 | 0:4f3585e2f14b |
---|---|

1 from networkx.utils import not_implemented_for | |

2 from networkx.utils import py_random_state | |

3 | |

4 __all__ = ["average_clustering"] | |

5 | |

6 | |

7 @py_random_state(2) | |

8 @not_implemented_for("directed") | |

9 def average_clustering(G, trials=1000, seed=None): | |

10 r"""Estimates the average clustering coefficient of G. | |

11 | |

12 The local clustering of each node in `G` is the fraction of triangles | |

13 that actually exist over all possible triangles in its neighborhood. | |

14 The average clustering coefficient of a graph `G` is the mean of | |

15 local clusterings. | |

16 | |

17 This function finds an approximate average clustering coefficient | |

18 for G by repeating `n` times (defined in `trials`) the following | |

19 experiment: choose a node at random, choose two of its neighbors | |

20 at random, and check if they are connected. The approximate | |

21 coefficient is the fraction of triangles found over the number | |

22 of trials [1]_. | |

23 | |

24 Parameters | |

25 ---------- | |

26 G : NetworkX graph | |

27 | |

28 trials : integer | |

29 Number of trials to perform (default 1000). | |

30 | |

31 seed : integer, random_state, or None (default) | |

32 Indicator of random number generation state. | |

33 See :ref:`Randomness<randomness>`. | |

34 | |

35 Returns | |

36 ------- | |

37 c : float | |

38 Approximated average clustering coefficient. | |

39 | |

40 References | |

41 ---------- | |

42 .. [1] Schank, Thomas, and Dorothea Wagner. Approximating clustering | |

43 coefficient and transitivity. Universität Karlsruhe, Fakultät für | |

44 Informatik, 2004. | |

45 http://www.emis.ams.org/journals/JGAA/accepted/2005/SchankWagner2005.9.2.pdf | |

46 | |

47 """ | |

48 n = len(G) | |

49 triangles = 0 | |

50 nodes = list(G) | |

51 for i in [int(seed.random() * n) for i in range(trials)]: | |

52 nbrs = list(G[nodes[i]]) | |

53 if len(nbrs) < 2: | |

54 continue | |

55 u, v = seed.sample(nbrs, 2) | |

56 if u in G[v]: | |

57 triangles += 1 | |

58 return triangles / float(trials) |