Require: t, R, b, nt, λ
|
1: ∏ = ∅ |
2: for each protein p ∈ R do
|
3: if p·fold ∉ ∏ then
|
4: ∏ = ∏ ∪ {p·fold} |
5: Count[p·fold] ← 1 |
6: else
|
7: Count[p·fold] ← Count[p·fold] + 1 |
8: end if
|
9: end for
|
10: for i ← 0 to |∏| - 1 do
|
11: if Count[i] <nt then
|
12: ∏ ← ∏ - {i} |
13: end if
|
14: [i] ← 0 |
15: Count[i] ← 0 |
16: end for
|
17: for each candidate SCOP fold F∈ ∏ do
|
18: for each p ∈ R starting from the top ranked protein do
|
19: if p·fold = F then
|
20: Count[F] ← Count[F] + 1 |
21: if Count[F] <nt then
|
22: [F] ← [F] + E_Measure(p, b) |
23: end if
|
24: end if
|
25: end for
|
26: end for
|
27: F* ← arg minf [f] |
28: if (λ = on) AND (S(t,P0) < S(t,)) then
|
29: F* ← P0.fold
|
30: end if
|
31: return F*
|