Warning

This documents an unmaintained version of NetworkX. Please upgrade to a maintained version and see the current NetworkX documentation.

# 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 [1]:

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

where $$v$$ and $$u$$ are nodes from the same bipartite node set, and $$w$$ is a node of the opposite node set. The value $$k_w$$ is the degree of node $$w$$ in the bipartite network and $$\delta_{v}^{w}$$ is 1 if node $$v$$ is linked to node $$w$$ 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: B (NetworkX graph) – The input graph should be bipartite. nodes (list or iterable) – Nodes to project onto (the “bottom” nodes). Graph – A graph that is the projection onto the given nodes. NetworkX graph

Examples

>>> from networkx.algorithms import bipartite
>>> B = nx.path_graph(5)
>>> G = bipartite.collaboration_weighted_projected_graph(B, [0, 2, 4, 5])
>>> print(G.nodes())
[0, 2, 4, 5]
>>> for edge in G.edges(data=True): print(edge)
...
(0, 2, {'weight': 0.5})
(0, 5, {'weight': 0.5})
(2, 4, {'weight': 1.0})
(2, 5, {'weight': 0.5})


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.

References

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