Research Article

Discovering Distinct Functional Modules of Specific Cancer Types Using Protein-Protein Interaction Networks

Algorithm 1

Distinct pattern detection (list of subgraphs).
//construct data structure
()   Define hash table h_edgepatterncnt_all
()   for every subgraph in list subgraphs
()    define hash table h_edgepattern_cnt
()    for every edge in
()    store key: value pair, key is the edge pattern, value is count of pattern
()    end for
()    store key: value pair in h_edgepatterncnt_all, key is a unique ID, value is an object
     which stores the concatenation of key and value pair h_edgepattern_cnt,
()   end for
()   for every subgraph in list subgraphs
()  define a list of IDs pointing to h_edgepatterncnt_all (data structure 1)
() end for
() for every object in h_edgepatterncnt_all
()  define a list of IDs pointing to list of subgraphs (data structure 2)
() end for
//perform query
() for every subgraph in list subgraphs
()  define set of subgraphs with matching patterns s_match
()  use data structure 1 to get list of IDs
()  expand list of IDs to include more occurrence of patterns
()  for every id in IDs
()   use data structure 2 to get set of subgraphs s_thismatch
()   if first id then s_match = s_thismatch
()   else s_match = s_match s_thismatch
()  end for
()  if s_match is empty after excluding itself then include into distinct modules
()  else verify_matching(, s_match)
() end for