I am working with calculating the rotamer-rotamer pairwise energies over the rotamer library for a fixed backbone. To do this I've essentially reimplemented the body of pack_rotamers_setup(), which ultimately calls RoatmersSet.calculate_energy(). I have a few questions on the topic, some of these are code-based others are to clear up my lack of biology background:
* What is the field RotamerSets.nmoltenres? This appears to be the number of rotamer positions, but is strictly less than the number of residues on the backbone. Shouldn't there be rotamers at every residue?
* RotamerSets.rotamer(id): Is this argument expecting the ID of the rotamer in the full sequence (i.e. over *all* rotamers in the set)?
* After computing the InteractionGraph I get an edge with ig.find_edge(i,j). Looking at the RotamerSet for rotamers i & j I see that they have Mi and Mj rotamers, respectively. However, when I calculate the two-body energy with ig.calculate_two_body_energy(i,j,si,sj) it seems I have nonzero energy for states si>Mi and sj>Mj outside the range of rotamer states.
* Is the two-body energy calculated in InteractionGraph.calculate_two_body_energy() a weighted energy? What energy terms are generally involved? Is it only the Dunbrack energy?