ppi networks have been widely used to understand biology at the system level [ 13 ] . network module , a group of proteins that are connected with each other to carry out a function , will be more accurate because a loss or gain of interaction will not break down the module structure . modules have been applied to predict protein function   and disease genes   and trace the evolutionary history of networks [ 810 ] . to perform complex biochemical or developmental functions for example , three modules in s. cerevisiae  the set3c complex , protein phosphatase type 2a ( pp2a ) complex , and cell polarity budding  share a protein : zds1 . zds1 can bind pp2a to control mitotic progression , and it also participates in set3c complex during budding processes and repress meiotic process , so zds1 may serve as a bridge between mitosis and meiosis . here we define these three modules as overlapping modules and define the shared protein as the overlapping nodes . construction of such network can be helpful for understanding the coordinated relationship between different biological processes . the problem of identifying modules has been studied by bioinformatics , applied mathematics , and physics . many methods have been developed to identify modules within a network , and they have been reviewed and evaluated [ 1519 ] . ( 1 ) local seed - based methods which start from a node or clique ( fully connected subgraph ) and follow by an expanding search strategy . mcode   is the first method for module detecting , and it expands highly scoring seed nodes by a local search procedure . but cfinder   is the first algorithm for overlapping communities detection , and it develops a clique percolation method ( cpm ) where k - cliques are explored by rotating about its component ( k-1)-cliques . cfinder is too slow when applied to dense ppi networks , and particularly it can not detect spoken - like module ( noncliques ) . to overcome this problem , zhang et al . combines the line graph transformation ( lgt ) and cpm to detect overlapping network modules and builds the overlapping modules network . wu et al .   proposes coach ( core - attachment based method ) to predict complexes by detecting protein - complex core and then adding attachments . the local protein community finder , lpcf for short , uses two local clustering algorithms to find a community close to a queried protein . combine a neighbour - sharing score with hierarchical agglomerative clustering to identify both dense network and dense bipartite network structures in a single approach . reichardt and bornholdt   propose a method to detect overlapping ( fuzzy ) communities that maps the graph onto a zero - temperature q - potts model with nearest - neighbor interactions . combine the idea of modularity function q , spectral relaxation , and fuzzy c - means clustering method for detecting overlapping community structure . propose a bcd ( betweenness - commonality decomposition ) algorithm which uses edge commonality and edge - betweenness . other methods such as nonnegative matrix factorization ( nmf ) technique were also used for uncovering overlapping ( fuzzy ) communities [ 27 , 28 ] . besides these topological - based methods , chen and yuan integrate 265 microarray datasets to detect functional modules in yeast protein - protein interaction network . here we describe mofinder , an alternative method we have developed that can effectively identify functional modules , especially overlapping modules , from a ppi network . we used all the overlapping modules detected from human ppi network to generate a graph of module - module communication , and we analyzed the functional properties of the overlapping modules . cancer genes   (  tumor suppressor  and  oncogene  ) and immunome [ 33 , 34 ] were used to annotate cancer- and immune - related proteins . clustering coefficient of node n is defined as cc(n ) = 2sn / kn(kn  1 ) , where kn is the degree of n and sn is the number of connected links between all neighbors of n. given a predicted module , the p - value of it with respect to a go term is computed by the hypergeometric distribution in ( 1 ) and corrected by bonferroni correction . the functional module is defined as a module enriched in at least one go term ( bonferroni p - value < 0.01 ) : 
 ( 1)p - value=(mk)(nmnk)(nn ) , 
 where a predicted complex with size m , k proteins share a go term , and in a total of n proteins , n of them have the same go term . assuming go1 = { go11 ,  go12 ,  , go1 m }  and go2 = { go21 ,  go22 , , go2n } are two sets of go terms that annotate modules a and b , respectively , the following jaccard index was used to calculate the functional similarity between modules a and b : 
 ( 2)sim(a , b)=|go1go2||go1go2| . mofinder is based on an amd ( approximate minimum degree ordering ) algorithm [ 35 , 36 ] which has been used for network clustering from electrical engineering . amd algorithm is usually used in ordering a sparse matrix prior to cholesky factorization ( or for lu factorization with diagonal pivoting ) , and it can transform the sparse matrix to make the nonzero elements close to the diagonal . the approach used by mofinder is summarized in figure 1 . mofinder first converts the ppi file into a sparse matrix , where a nonzero element represents a protein - protein interaction . it then performs a global amd of the sparse matrix in which the densely connected elements ( module ) will be clustered along the diagonal . besides the global amd , which produces the global ordering , a local amd is performed to give the approximate minimum degree ordering . mofinder uses a sliding window along the diagonal to fetch the local sparse matrix and make the local amd . the clustering coefficient ( cc )   value of the submatrix in the sliding window is calculated ; if the cc value is not less than the cut - off , mofinder will save the submatrix as a module . then the sliding window moves one step along the diagonal to find new modules , and the iteration process is repeated until the sliding window reaches the end . lastly , mofinder removes redundant modules ( if module a belongs to module b , a is removed ) and saves results . mofinder contains two adjustable parameters : the cc cut - off value and the size of sliding window . the performance was assessed in term of accuracy of identified modules with respect to annotated function . mofinder was tested over a broad range of parameters for cc cut - off value ( 0.21 ) and sliding window ( 20450 ) using ppi data from yeast and human . first , the percentage of functional modules was plotted against a range of cc cut - off values , and for each cc cut - off value , all sizes of sliding window ( 20450 , step  =  10 ) were tested and the resulting percentages of functional modules were plotted as a group of points . as shown in figure 2 , the percentage of functional modules increases with the increase of cc cut - off value , and it is observed to have 4 distinct and stable ranges for values of cc cut - off , [ 0.2,0.5 ) , [ 0.5,0.67 ) , [ 0.67,0.84 ) , and [ 0.84,1 ] , respectively . although the highest percentage of functional modules is achieved in the last range ( cc cut - off value [0.84,1 ] ) , using cc cut - off value of this range will identify densely connected complex and ignore other modules . additionally in this range , mofinder only generates a small number of modules ( e.g. , it predicts , on average , 36 modules from human ppi network when cc cut - off  =  0.84 ) . since the purpose is to detect modules instead of complex , we recommended that the suitable setting of threshold would be in the third range ( cc cut - off value [0.67,0.84 ) ) . the best choice for cc cut - off value is 0.67 because the number of predicted modules decrease with cc cut - off value ( data not shown ) . figure 3 shows the number of functional modules matched for the 0.67 cut - off value over all tried sizes of sliding window ( 20450 , step  =  10 ) . so the sliding window should be set to 350 which maximized the number of functional modules . to achieve best performance , we recommended that the parameter set was cc cut - off value  =  0.67 and size of sliding window  =  350 . mofinder was tested using ppi data from yeast and human and compared with the performance of other five software available algorithms : mcode ( default parameters ) , cfinder ( k = 4 , as suggested ) , coach ( default parameters ) nemo ( default parameters ) , and lpcf ( community size was set to 311 which was comparable to mofinder ) . the percentage of functional modules was used to indicate accuracy , and mofinder was the top performing algorithm with respect to accuracy in yeast ( 93.9% ) ( figure 4(a ) ) and human ( 81.5% ) ( figure 4(b ) ) . also , we compared the major module size of six methods in yeast ( table 1 ) and in human ( see supplementary table  1 in supplementary material available online at doi:10./155/2011/103702 ) . most of the modules detected by mcode are of size 3 , size 4 for cfinder , size 3 for coach , size 4 for nemo , size 10 for lpcf , and size 5 for mofinder . although the number of modules and the number of proteins assigned to modules were smaller for mofinder than some of these methods , the percentage of functional modules was highest for mofinder . we applied mofinder to the yeast and human ppi network with default parameters ( cc cut - off  =  0.67 , sliding window  =  350 ) . as shown in figure 5 , the overlapping size distribution is different between yeast and human . most of the modules in yeast ppi network share one protein ( figure 5(a ) ) , but in human ppi network the most common overlapping size is 4 ( figure 5(b ) ) . for example , three modules ( a , b , and c ) share a protein d , so protein d is counted 3 times ( a - b , a - c , b - c ) . to avoid the overcount problem , we deleted the repeats , so protein d is only counted once . figure 6(a ) shows that the resulting distribution of overlapping size in yeast is obviously changed , and the most common overlapping size changes into 4 which is similar to human ( figure 6(b ) ) . these observations suggest that although modules in yeast tend to share less proteins than modules in human , the small overlapping parts ( size 1 and size 2 ) are more repeatedly used in yeast than human , and thus the distribution of overlapping size becomes similar in yeast and human after removing repeats . since proteins in one module work together to perform functions , a similar function is expected to appear if two modules are overlapping with each other . and the larger the overlapping size , the more likely the same function . to verify this , we used the go annotation similarity to represent the functional similarity . figure 7 shows that the average functional similarity is increased with the increase of overlapping size . such a trend has been observed in both yeast ( figure 7(a ) ) and human ( figure 7(b ) ) . mofinder identified 221 modules , of which 152 were overlapped with at least one other module . these overlapped modules were used to construct a module - module communication network ( figure 8(a ) ) . in the communication network , each node is a module , two modules being connected if they share at least one protein . to explore the functional of this network , we used david 6.7 [ 40 , 41 ] to search for enrichment of gene ontology ( go ) terms and the kegg pathways . we found that go terms and pathways related to cancer and immune response were enriched in the network proteins , so we mapped the cancer and immune - related proteins to the modules . as shown in figure 8(a ) , of the 47 modules containing immune - related proteins , 33 included cancer - related proteins , and the ratio ( 33/47 ) was greater than expected by chance ( 62 of 152 modules have cancer - related proteins , binomial test , p < 0.01 ) . therefore , the modules containing immune - related proteins always included cancer - related proteins and vice versa ( 33/62 was greater than expected 47/152 , binomial test , p < 0.01 ) . to explore the communication between functional modules , we map the functional annotation to each module and evaluate the functional similarity between two overlapping modules . the functional similarity is shown as edge color in figure 8 : the values between 0 and 1 are painted with a pink / blue color gradient , and modules without go annotation have gray edges . figure 8(b ) gives the functional annotation of modules from the largest cluster in figure 8(a ) . some overlapping modules have the same function , such as the three modules involve in the acetylation of peptidyl - lysine , while several overlapping modules have distinct function , for instance , a module involved in the change of mast cell is overlapping with another module which takes part in the reactions mediated by protein kinases . one module function is in b - cell activation processes and it contains five proteins : q15464 , o75791 , o43561 , q13094 , and p08575 . the other module ( p08575 , p20963 , p06729 , and p06127 ) involves in t - cell activation . these two modules share a protein : p08575 ( receptor - type tyrosine - protein phosphatase c , cd45 ) , which plays a critical role in receptor - mediated signalling in both b and t - cells [ 42 , 43 ] . consistent with this hypothesis , several studies have illustrated t - cell - dependent b - cell activation . the module - module communication network included 341 overlapping nodes ( nodes belonging to two or more modules ) . several studies showed that modular overlaps are potential drug targets because they are key determinants of cooperation between network modules . so we investigated the potential druggability of overlapping nodes : 56 of them were established drug targets and another 43 proteins were from druggable family , which were 99 druggable proteins in all . the ratio of druggable proteins ( 99/341 ) was significantly higher than expected ( 20003000 druggable proteins in human , binomial test , p < 0.01 ) . for both yeast and human interactomes , mofinder surpasses the other five methods in accuracy . furthermore , mofinder is fast in practice for large networks . for example , when applied to a yeast network including nearly 40,000 interactions ( from i2d ) , the running time of mofinder was only 15 seconds . since the size of biological networks continues to grow , mofinder is likely to meet the needs of biological analysis . one is that mofinder specifically detects small - sized modules ( less than 12 ) , but the major module size ( 5 ) is close to the average size of mips complexes ( 6 ) . mofinder detects 125 modules from the yeast ppi network , which is less than coach and lpcf . from the perspective of the covered proteins of predicted modules , these observations suggest another limitation : mofinder is of too strict to detect loosely connected modules , partly because the cc cut - off value is set to 0.67 . we suppose that setting the cc cut - off value to a small value can increase the number of detected modules especially loosely connected modules ( including pathways ) . but what is the biological significance of the different clustering coefficient thresholds is still an open question . yeast is a simple single - celled eukaryote , so the overlapping modules in yeast generally use one protein for communication . on the contrary , human , a multicellular organism , employs more complex system , and thus the overlapping size of human is larger than that of yeast . we also found the overall distribution of overlapping size is similar between yeast and human after removing repeats . and in figure 2 the functional steps occur at similar places between yeast and human . although overlaps may lead to redundant modules which overlap with each other heavily , excluding the overlapping size 4 ( a heavily overlap because the major module size is 5 ) from figures 5 , 6 , and 7 does not change the overall pattern of results . overlapping modules will work together to carry out several complicated jobs , such as signal transduction . so constructing a module - module communication network to explore how these modules communicate with each other can help to understand biological complexity . although we just built such a network in human , similar approach can be applied to other species . we found that the immune- and cancer - related proteins are always in the same modules . the association between immune cells and cancer has been discussed , and several clinical studies and experiment have proven that the immune system is a new weapon against cancer . antitumor adaptive immune responses can suppress tumor growth , and several immunotherapy drugs could cure cancers . in this paper , we describe a novel algorithm for the identification of overlapping modules in ppi networks . mofinder performs competitively with other methods and uses two adjustable parameters that enable it to identify modules flexibly . mofinder is a cross - platform package which is implemented as a c / c++ script , and it can be downloaded and installed free of charge ( http://bsb.kiz.ac.cn/mofinder/ ) . the application of mofinder to human ppi gives clues for fighting against cancer using immune system . and the overlapping nodes , which are in charge of intermodule crosstalk , could help to identify potential drug targets .
since organism development and many critical cell biology processes are organized in modular patterns , many algorithms have been proposed to detect modules . in this study , 
 a new method , mofinder , was developed to detect overlapping modules in a protein - protein interaction ( ppi ) network . 
 we demonstrate that our method is more accurate than other 5 methods . 
 then , we applied mofinder to yeast and human ppi network and explored the overlapping information . using the overlapping modules of human ppi network 
 , we constructed the module - module communication network . 
 functional annotation showed that the immune - related and cancer - related proteins were always together and present in the same modules , which offer some clues for immune therapy for cancer . 
 our study around overlapping modules suggests a new perspective on the analysis of ppi network and improves our understanding of disease .