by learning a separate Bayesian network for each co-expression module (Section \[sec-coex\] and [@zhang2013integrated]). Dependencies between modules could then be learned as a Bayesian network among the module eigengenes [@langfelder2007eigengene], although this does not seem to have been explored.

-   Second, Bayesian network learning algorithms inevitably result in locally optimal models which may contain a high number of false positives. To address this problem, we can run the algorithm multiple times and report an averaged network, only consisting of edges which appear sufficiently frequent.

-   Finally, another technique that helps in distinguishing genuine dependencies from false positives is *bootstrapping*, where resampling with replacement is executed on the existing sample pool. A fixed number of samples are randomly selected and then processed to predict a Bayesian network. This process is repeated many times, essentially regarding the distribution of sample pool as the true PDF, and allowing to estimate the robustness of each predicted edge, so that only those with high significance are retained [@friedman1999data]. In theory, even the whole pipeline of Figure \[fig-flow\] up to the *in silico* validation could be simulated in this way. Although bootstrapping is computationally expensive and mostly suited for small datasets, it could be used in 