and the rest of terms normalise the output as $0\le\omega_{ij}\le1$. This concept was later extended onto networks with weighted edges by applying a “soft threshold” pre-process on the correlation matrix, for example as $$\begin{aligned}
  A_{ij}&=\left|\frac{1+C_{ij}}{2}\right|^\alpha,\\
  \intertext{or}
  A_{ij}&=\left|C_{ij}\right|^\alpha,\end{aligned}$$ such that $0\le A_{ij}\le1$ [@zhang2005b]. Note that in the first case only positive correlations have high edge weight, whereas in the second case positive and negative correlations are treated equally. The parameter $\alpha>1$ is determined such that the weighted network with adjacency matrix $A$ has approximately a scale-free degree distribution [@zhang2005b].

In principle, any clustering algorithm (including the aforementioned ones) can be applied to the topological overlap matrix ${\mathbf{\Omega}}$. In the popular **WGCNA** software (<http://labs.genetics.ucla.edu/horvath/htdocs/CoexpressionNetwork/Rpackages/WGCNA/>) [@Langfelder:2008], which is a multi-purpose toolbox for network analysis, hierachical clustering with a dynamic tree-cut algorithm [@langfelder2008defining] is employed.

#### Model-based clustering

Model-based clustering approaches assume that the observed data is generated by a mixture of probability distributions, one for each cluster, and takes explicitly into account the noise of gene expression data. To infer model parameters and cluster assignments, techniques such as Expectation Maximization (EM) or Gibbs sampling are used [@liu2002]. A recently developed method assumes that the expression levels of genes in a cluster are random 