for large networks is **Fast Modularity** (<http://www.cs.unm.edu/~aaron/research/fastmodularity.htm>) [@Clauset:2004].

#### Markov Cluster algorithm

The Markov Cluster (MCL) algorithm is a graph-based clustering algorithm, which emulates random walks among gene vertices to detect clusters in a graph obtained directly from the co-expression matrix ${\mathbf{C}}$. It is implemented in the **MCL** software (<http://micans.org/mcl/>) [@Van-Dongen:2001; @Enright:2002]. The MCL algorithm starts with the correlation matrix ${\mathbf{C}}$ as the probability flow matrix of a random walk, and then iteratively suppresses weak structures of the network and performs a multi-step random walk. In the end, only backbones of the network structure remain, essentially capturing the modules of co-expression network. To be precise, the MCL algorithm performs the following two operations on ${\mathbf{C}}$ alternatingly:

-   **Inflation:** The algorithm first contrasts stronger direct connections against weaker ones, using an element-wise power law transformation, and normalizes each column separately to sum to one, such that the element $C_{ij}$ corresponds to the dissipation rate from vertex $X_i$ to $X_j$ in a single step. The inflation operation hence updates ${\mathbf{C}}$ as ${\mathbf{C}}\rightarrow\mathbf{\Gamma}_\alpha{\mathbf{C}}$, where the contrast rate $\alpha>1$ is a predefined parameter of the algorithm. After operation $\mathbf{\Gamma}_\alpha$, each element of ${\mathbf{C}}$ becomes [$$C_{ij}\rightarrow\mathbf{\Gamma}_\alpha
        C_{ij}=|C_{ij}|^\alpha/\sum_{p=1}^k|C_{pj}|^\alpha.$$]{}

-   **Expansion:** The probability flow matrix ${\mathbf{C}}$ controls 