Skip to main content
. 2006 Jul 26;7:362. doi: 10.1186/1471-2105-7-362

Appendix 1 E-Predict Algorithm

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:    Esumt MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacH8akY=wiFfYdH8Gipec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqai=hGuQ8kuc9pgc9s8qqaq=dirpe0xb9q8qiLsFr0=vr0=vr0dc8meaabaqaciaacaGaaeqabaqabeGadaaakeaacqWGfbqrdaqhaaWcbaGaem4CamNaemyDauNaemyBa0gabaGaemiDaqhaaaaa@33A2@[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:             Esumt MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacH8akY=wiFfYdH8Gipec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqai=hGuQ8kuc9pgc9s8qqaq=dirpe0xb9q8qiLsFr0=vr0=vr0dc8meaabaqaciaacaGaaeqabaqabeGadaaakeaacqWGfbqrdaqhaaWcbaGaem4CamNaemyDauNaemyBa0gabaGaemiDaqhaaaaa@33A2@ [F] ← Esumt MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacH8akY=wiFfYdH8Gipec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqai=hGuQ8kuc9pgc9s8qqaq=dirpe0xb9q8qiLsFr0=vr0=vr0dc8meaabaqaciaacaGaaeqabaqabeGadaaakeaacqWGfbqrdaqhaaWcbaGaem4CamNaemyDauNaemyBa0gabaGaemiDaqhaaaaa@33A2@ [F] + E_Measure(p, b)
23:          end if
24:       end if
25:    end for
26: end for
27: F* ← arg minf Esumt MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacH8akY=wiFfYdH8Gipec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqai=hGuQ8kuc9pgc9s8qqaq=dirpe0xb9q8qiLsFr0=vr0=vr0dc8meaabaqaciaacaGaaeqabaqabeGadaaakeaacqWGfbqrdaqhaaWcbaGaem4CamNaemyDauNaemyBa0gabaGaemiDaqhaaaaa@33A2@[f]
28: if (λ = on) AND (S(t,P0) < S(t,PNNF* MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacH8akY=wiFfYdH8Gipec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqai=hGuQ8kuc9pgc9s8qqaq=dirpe0xb9q8qiLsFr0=vr0=vr0dc8meaabaqaciaacaGaaeqabaqabeGadaaakeaacqWGqbaudaqhaaWcbaGaemOta4KaemOta4eabaGaemOrayKaeiOkaOcaaaaa@323D@)) then
29:    F* ← P0.fold
30: end if
31: return F*