## 3 Methodology  
### Weighted Clique Percolation Method  
Clique represents the complete subgraphs in the network, which requires every pair of distinct nodes to be connected. The original clique percolation method creates clique graphs by searching for communities of size \(k\). Hence, a \(k\)-clique with \(k(k-1)/2\) connected pairs represents the strongest possible coupling of \(k\) nodes with unweighted links. When a link is removed from a \((k+1)\) clique, it creates two \(k\)-cliques sharing \((k-1)\) nodes. Those two \(k\)-cliques are defined as adjacent. In other words, a \(k\)-clique has \(k(k-1)/2\) connected pairs, while two adjacent \(k\)-cliques share \((k-1)\) nodes.  
Based on that, [PERSON] et al. applied an extension of the original algorithm to find modules in a weighted network [33]. They tended to include a \(k\)-clique into a module only when it had an intensity (\(I\)) larger than a fixed threshold value (\(I_{0}\)). The weight of a subgraph, defined as the subgraph intensity, is implemented by the geometric mean of the weights of its links. Consequently, a weighted clique community is defined as a maximal set of \(k\)-cliques with intensities higher than \(I_{0}\). While modules can be reached via a series of \(k\)-clique adjacency connections, the overlaps between the communities are allowed. The intensity of a \(k\)-clique (\(C\)) is written as follows:  
\[I(C)\ =\ \left(\prod{{}_{i<j,i,j\in C}w_{ij}}\right)^{2/k(k-1)} \tag{1}\]  
where \(k(k-1)/2\) and \(w_{ij}\) denote the edge number and the weight between node \(i\) and \(j\), respectively.  
Therefore, defining an optimal \(I_{0}\) for each \(k\) becomes the key for the clique percolation algorithm. If \(I_{0}\) is too big, the program will exclude all \(k\)-cliques, whereas a small \(I_{0}\) includes all \(k\)-cliques and can hardly detect any communities.  
Ideally, the size distribution of the communities follows a power law. When the number of communities is small, [PERSON] et al. proposed to instead optimize \(I_{0}\) based on the variance (\(\chi\)) of the community [33], which is defined as follows:  
\[\chi\ =\ \sum{{}^{n_{\alpha}}}{\frac{n_{\alpha}^{2}}{\left(\sum{{}^{\beta}}n_{ \beta}\right)^{2}}} \tag{2}\]where \(n\) represents all the communities identified in the network. More precisely, \(n_{\alpha}\) denotes a group of communities excluding the largest one, while \(n_{\beta}\) denotes a group of communities that exclude \(n_{\alpha}\) and the largest one. As a result, the maximal variance (\(\chi\)) is associated with the optimized \(I_{0}\) for each respective \(k\).  
When the network or the number of communities is too small to establish a stable estimate of \(\chi\), the entropy based on Shannon information becomes another option [34]. The \(I_{0}\) that has the maximum entropy for the respective \(k\) would be desirable to optimize \(k\). The entropy can be defined as follows:  
\[\text{entropy}\ =\ -\sum\limits_{i=1}^{N}p_{m}*\log_{2}p_{m} \tag{3}\]  
where \(N\) denotes the number of communities and \(p_{m}\) denotes the probability of being in community \(m\).  
Lastly, a permutation test is implemented to examine if the entropy is higher than expected by chance. The test creates permutations for the network, and extracts the highest entropy for each \(k\), before calculating the confidence interval of the entropy. By comparing the entropy with the upper bound of the confidence interval, the optimized \(I_{0}\) for the respective \(k\) can be spotted and interpreted.  
The research methodology is summarized in Figure 1.