Modules are tightly clustered subnetworks with more internal connections than expected randomly in the whole network. They are considered as to be relatively independent components in a graph. Members within a module are likely to work collectively to perform a biological function. The biological functions of a module can be explored using enrichment analysis. The image below gives an example of detected modules highlighted within a network:

OmicsAnalyst currently offers three different approaches for module detection - the WalkTrap, InfoMap, and Label Propagation algorithms.

- The general idea behind the
**Walktrap Algorithm**is that if you perform random walks on a graph, a higher number of walks are more likely to stay within a group of nodes that are highly connected to each other. The Walktrap algorithm runs many short random walks and uses the results to detect small modules, and then merge separate smaller modules in a bottom-up manner. - The
**InfoMap Algorithm**is also based on random walks, which it uses to minimize the hierarchical map equation for different partitions of the network into modules. - The
**Label Propagation Algorithm**works by randomly assigning a unique label to every node. On each iteration, node labels are updated to match the one that the maximum of its neighbours has. The algorithm converges when each node has the same label as the majority of its neighbours.

OmicsAnalyst also integrates the gene expression values as edge weights during module searches. Weights are calculated as the square of the mean absolute log fold changes of the two adjacent nodes. Larger weights mean closer connections during random walks.