I have an experiment that I did loop modeling on for 6 loops in each PDB. Energy vs. to_native_RMSD of the lowest energies are awful, so I now need the individual energies for each loop.
What I am trying to get is basically the total residue energy and the 2 body contributions of each of the loop residues' neighbors. Having trouble in a few different areas.
First, using score.eval_ci_2b and observing the non-zero energies gives the same scoretypes, with different energies as eval_cd_2b. This makes no sense...VDW, fa_pair, hack_elec are all ci_2b energies...
Second, is there a method to return residue neighbors? I tried to access protocols::toolbox::NeighborsByDistanceCalculator from pyrosetta, and nothing...
Finally, any idea of how to get Hbond energies of residues or between residues?
For loops in general: take a stab at LoopAnalyzerMover. Can you see it from python? It has no python friendly interface but it does some things similar to what you want. I'll send along the pilot app wrapper if you want to compile the C++ JD2 version.
There are more methods to return 3-D-coordinate neighbors than you can shake a stick at; the issue is whether they're python friendly. The Calculator (like NBDC) interface is weird in C++ and probably nonexistent in python. Try cracking open NBCD and directly using PointGraph like it does (it's surprisingly few lines of code), or alternatively use the RestrictToNeighborhoodOperation and parse the PackerTask yourself (roundabout but fewer lines of python).
I've sent this along to Andrew for dissecting the scorefunction - I don't know how to do it off the top of my head.
Hbonds: There's an HBondSet class that handles which hbonds exist, I don't believe scores are stored on a per-bond basis but if they are it's probably there.
I can't see either in python, though It looks like I might be able to use the PointGraph. The LoopAnalyzerMover has some interesting things I think might be useful. Once I figure this out, and benchmark the hell out of some stuff, perhaps I could put the loop energy somewhere in there (if you don't mind). Thanks for the forward to Andrew. I found a previous Hbond energy question with no answer, so I figured I would post.
LoopAnalyzer is pretty much just a pile of whatever data I thought useful for scoring AnchoredDesign trajectories. There's a risk of it turning ugly the way InterfaceAnalyzer has if stuff gets added willy-nilly, but I think in general additions are a good thing!