|
Algorithm 1 SIDEpro Pseudocode. |
| Calculate boxes: 3DboxBB, 3DboxSC, and 3DboxRot
|
| Calculate neighbor sets: NbrBB, NbrSC and NbrRot
|
| //set qij to be pij and remove clashing rotamers |
|
for all residue i do
|
| for all rotamers at residue j do
|
| qij=pij
|
| Evdw(i, j) = calculate equation (38)
|
| if Evdw(i, j) > 1.0 then
|
| remove rotamer j
|
| end if
|
| end for
|
| end for |
| //calculate EBB
|
|
for all residue i do
|
| for all rotamers j at residue i do
|
| EBB(i, j) = calculate equation (39)
|
| end for
|
| end for |
| //calculate ESC
|
|
for all residue i do
|
| for all rotamers j at residue i do
|
| for all l, m ∈ NbrRot(i, j) do
|
| ESC(i, j, l, m) = calculate equation (40)
|
| end for
|
| end for
|
| end for |
| // update energies and probabilities until r converges |
|
while any qij does not converge do
|
| for all residue i do
|
| //update energy of rotamers at residue i
|
| for all rotamers j at residue i do
|
| eij = calculate equation (41)
|
| end for
|
| //update probability of rotamers at residue i
|
| for all rotamers j at residue i do
|
| qij = calculate equation (42)
|
| end for
|
| end for
|
| end while |
|
for all residue i do
|
|
|
| end for |
| where |
-
qij : updated probability of rotamer j at residue i
pij : initial probability of rotamer j at residue i (from library)
r : current set of rotamers i
r̂i: predicted rotamer for residue i
|