AllegroMCODE Analysis Options

allegromcode-analysis-options

AllegroMCODE plugin for Cytoscape runs two steps of its clustering algorithm: node scoring and cluster finding. The following give a detailed explanation about the parameters used in the two steps. The default parameter setting is appropriate for most networks, but you can fine-tune the clustering algorithm by adjusting its parameters to more suitable ones for your networks.

Please note that all the AllegroMCODE options are compatible with the MCODE options.

Device

You can see a list of supported computing devices in your system which includes CPU and Nvidia GPU. To use a GPU as a computing device, you have to activate an AllegroMCODE Professional license.

Node Scoring

Include Loops

When it is turned on, AllegroMCODE will exclude loops (self-edges) if they exist while calculating the density and score of the neighbor sub-network for each node. This is expected to decrease density and score slightly in case that its sub-network has loops. In most cases, it is better to exclude loops (self-edges) if they exist because they are not real connections between nodes in the meaning of a cluster, which means a highly interconnected group.

Please note again that checking the “Include Loops” means to ignore loops in the analysis because a network includes some loops.

Degree Cutoff

This value controls the minimum degree (number of edges) of a node necessary in order to be scored. Valid values are 2 or higher to prevent singly connected nodes from getting an artificially high node score. For example, nodes which have 2 or less edges have zero as their node scores if degree cutoff is 3.

Cluster Finding

Node Score Cutoff

This is the most influential parameter for cluster size and is the basis for the Size Threshold Slider in the Exploring Results section. During cluster expansion, its new members are added only if their node score deviates from the score of its seed node by less than the set node score cutoff. This is a percentage, where a value of 0.2 allows for the node scores of new members to be no less than 80% of the seed node. Thus, smaller values create smaller clusters and vice versa.

K-Core

This parameter filters out clusters that do not contain a maximally inter-connected sub-cluster of at least k degrees. For example, a triangle (3 nodes, 3 edges) is a 2-core (2 connections per node). Two nodes with 2 edges between them satisfy the 2-core rule as well. Since the default value is 2, this ensures that clusters must contain one of these two sub-clusters. Increasing this value will exclude smaller clusters.

An example of k-core decomposition for a small graph is shown below. Each closed line contains the set of vertices belonging to a given k-core, while colors on the vertices distinguish different k-shells.

k-core

Max. Depth

Maximum depth limits the distance from the seed node within which AllegroMCODE can search for cluster members. By default this is set to an arbitrarily large number so that clusters are virtually unlimited. To limit cluster size, please set this parameter to a small number. The following figure illustrates how Max. Depth influences the size of clusters.

max-depth-from-seed

max-depth-1

Max. Depth = 1
max-depth-2

Max. Depth = 2
max-depth-3

Max. Depth > 2

Please note that MCODE plugin can finds different clusters from what the AllegroMCODE plugin does since the MCODE plugin incorrectly calculate the distance from the seed node in some cases as shown below. However, clusters from both of the AllegroMCODE and MCODE plugin are usually same when Max. Depth has the default value.

Incorrect clustering of the MCODE plugin

The MCODE plugin implements its clustering step by using recursive function call and considering the calling depth as the distance from the seed node, but it does not correctly cluster nodes as shown below. The detailed sequences of clustering process are followed in case that node S is a seed node and Max. Depth is 2.

  1. Node a is visited and considered as a clustered node since its distance is 1. Its neighbor nodes will be visited next and their distances are considered as 2.
    1. The node c is visited and considered as a clustered node.
      1. Its neighbor nodes of node d and e are visited, but the nodes are not included in the cluster since their distances are considered as 3. (The distance of node d from the seed node is actually 2, not 3.)
    2. The node b is visited and considered as a clustered node.
  2. Node b is visited again, but it is already clustered so that its neighbor of node d won’t be visited.
  3. Clustering is finished and the found cluster includes the node S, a, b, and c.
    However, the real cluster should include the node S, a, b, c, and d.

mcode-wrong-cluster

An example where the MCODE plugin finds a wrong cluster when Max. Depth = 2