that the data is generated by a mixture of probability distributions, one for each cluster [@medvedovic2002bayesian]. Here we briefly describe a few recently developed methods with readily available softwares.

#### Modularity maximization

Modularity maximization is a network clustering method that is particularly popular in the physical and social sciences, based on the assumption that intra-module connectivity should be much denser than inter-module connectivity [@newman2004; @newman2006b]. In the context of co-expression networks, this method can be used to identify gene modules directly from the correlation matrix ${\mathbf{C}}$ [@Ayroles:2009]. Suppose the genes are grouped into $N$ modules $M_l,~l=1,\dots,N$. Each module $M_l$ is a non-empty set that can contain any combination of the genes $i=1,\dots,k$, but each gene is contained by exactly one module. Also define $M_0$ as the set containing all genes. The modularity score function is defined as [$$S(M)=\sum_{l=1}^N\left(\frac{W(M_l,M_l)}{W(M_0,M_0)}-\left(\frac{W(M_l,M_0)}{W(M_0,M_0)}\right)^2\right),$$]{} where $W(A,B) =\sum_{i\in A,j\in B,i\ne j}w(C_{ij})$ is a weight function, summing over all the edges that connect one vertex in $A$ with another vertex in $B$, and $w(x)$ is a monotonic function to map correlation values to edge strengths. Common functions are $w(x)=|x|$, $|x|^\beta$ (power law) [@Langfelder:2008], $e^{\beta |x|}$ (exponential) [@Ayroles:2009], or $1/(1+e^{\beta x})$ (sigmoid) [@lee2009learning].

A modularity maximization software particularly suited 