pybel / pybel-tools

A PyBEL extension for analyzing BEL graphs
http://pybel-tools.readthedocs.io/
MIT License
5 stars 5 forks source link

Implement degree-preserving network shuffle #116

Open cthoyt opened 6 years ago

cthoyt commented 6 years ago

@ddomingof do you have a reference for the paper talking about making randomized graphs?

ddomingof commented 6 years ago

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3307026/ """ In order to obtain an appropriate null distribution on causal graphs, it is important to require that the randomized graphs share basic structural properties with the original causal graph, yet have enough flexibility to reflect the space of reasonable graphical models. We propose to fix the vertex set V of our original graph G = (V, E) and randomize the edges, requiring that the randomized versions G' = (V, E') maintain three properties:

  1. Vertex degrees. We require that each vertex a ∈ V have the same positive and negative in- and out-degrees in G' as in G. This requirement is important as biological networks typically have long-tailed degree distributions that include highly connected "hubs" as well as vertices with few incident edges.

  2. Simplicity. We disallow self-edges and parallel edges in G' as these are not present in G. In other words, for any two vertices a, b ∈ V, there cannot be an edge from a to itself and there can be at most one directed edge from a to b, either positive or negative.

  3. Connectedness. We require that G' be connected, as is the case for our original biological network G. For our signed directed graphs, we take connectedness to mean that the graph induced by ignoring edge signs and directions is connected. """

cthoyt commented 6 years ago

Awesome, thanks. This is a low priority but good to have on the to-do list

ddomingof commented 6 years ago

Definitely