Research Article

Parallel Seed-Based Approach to Multiple Protein Structure Similarities Detection

Algorithm 5

Graph splitting algorithm.
(1)   function split_and_solve(globalGraph)
(2)   INPUT: globalGraph, an alignment graph between atoms from two proteins
(3)   OUTPUT: globalRes, a list of the longest distinct alignments found in the graph
(4)   
(5)   ResultList globalRes = empty_result_list()
(6)   Graph subGraphs = split(globalGraph)
(7)   sort(subgraphs)
(8)   For each subGraph in subGraphs
(9)      SeedList best_seeds = empty_list()
(10)    SeedList seeds = enumerate_seeds(subGraph)
(11)     For each seed in seeds
(12)       VertexSet current_res = extend_and_filter(subGraph, seed)
(13)       best_seeds.insert_if_better(seed)
(14)    End For
(15)    For each seed in best_seeds
(16)       VertexSet current_res = extend_and_filter(globalGraph, seed)
(17)       globalRes.insert_if_better(current_res)
(18)    End For
(19) End For