Note

This documents the development version of NetworkX. Documentation for the current release can be found here.

# networkx.algorithms.bipartite.projection.collaboration_weighted_projected_graph¶

collaboration_weighted_projected_graph(B, nodes)[source]

Newman’s weighted projection of B onto one of its node sets.

The collaboration weighted projection is the projection of the bipartite network B onto the specified nodes with weights assigned using Newman’s collaboration model :

$w_{u, v} = \sum_k \frac{\delta_{u}^{k} \delta_{v}^{k}}{d_k - 1}$

where u and v are nodes from the bottom bipartite node set, and k is a node of the top node set. The value d_k is the degree of node k in the bipartite network and delta_{u}^{k} is 1 if node u is linked to node k in the original bipartite graph or 0 otherwise.

The nodes retain their attributes and are connected in the resulting graph if have an edge to a common node in the original bipartite graph.

Parameters
BNetworkX graph

The input graph should be bipartite.

nodeslist or iterable

Nodes to project onto (the “bottom” nodes).

Returns
GraphNetworkX graph

A graph that is the projection onto the given nodes.

Notes

No attempt is made to verify that the input graph B is bipartite. The graph and node properties are (shallow) copied to the projected graph.

See bipartite documentation for further details on how bipartite graphs are handled in NetworkX.

References

1

Scientific collaboration networks: II. Shortest paths, weighted networks, and centrality, M. E. J. Newman, Phys. Rev. E 64, 016132 (2001).

Examples

>>> from networkx.algorithms import bipartite
>>> B = nx.path_graph(5)