Subrotamer Optimization¶
The idea of the flexible rotamer model is to have several subrotamers representing one single rotamer. One subrotamer is the representative (the active subrotamer). Thats the one that gets inserted in the structure once the reconstruction has finished. This is not necessarily the optimal one. The SubrotamerOptimizer takes a list of flexible rotamers, converts every single flexible rotamer in a rotamer group of rigid rotamers, solves the sidechain reconstruction problem and assigns the optimal subrotamers as active in the original flexible rotamers. In terms of energies, the SubrotamerOptimizer expects the energy of the flexible rotamers towards the rigid frame already to be set. The internal energies can be controlled as parameters and a constant value is set for rotamers that are currently active or not. The reason for that is that you might want to prefer the currently active subrotamers if no pairwise energies to other rotamers are observed.
- promod3.sidechain.SubrotamerOptimizer(rotamers, [active_internal_energy=-2.0, inactive_internal_energy=0.0, max_complexity=100000000, initial_epsilon=0.02)¶
Takes the rotamers of type
FRMRotamer
, converts all their subrotamers into rigid rotamers, solves the sidechain reconstruction problem and assigns the ideal subrotamers as active in the input rotamers.- Parameters:
rotamers (
list
ofFRMRotamer
) – The rotamers to be optimizedactive_internal_energy (
float
) – Internal energy that gets assigned to all currently active subrotamersinactive_internal_energy (
float
) – Internal energy that gets assigned to all currently inactive subrotamersmax_complexity (
int
) – Max complexity of the internalRotamerGraph
initial_epsilon (
float
) – Epsilon value controlling the pruning of internalRotamerGraph